对于想要进行量化交易的投资者来说,策略设计是核心环节。无论是使用 TB交易开拓者 还是 QMT、PTrade 等平台,策略的设计都需要结合自身交易逻辑、市场规律以及技术实现。
你提到的是“低频趋势交易策略”,周期在 5分钟到1小时之间,这属于典型的趋势跟踪策略。这类策略的核心在于捕捉市场趋势,通过均线、动量、价格形态等指标判断趋势方向,并在合适的时机建仓或平仓。
设计思路:
你目前使用的是 TB交易开拓者,这是一个常用的量化交易平台,支持多种语言(如Tushare、C 等)。如果你希望用 Python 编写策略,QMT 和 PTrade 是非常好的选择,它们都支持 Python 策略编写,功能强大且稳定。
以 QMT 为例,一个简单的 Python 策略通常包括以下几个部分:
init() 函数用于初始化模型,如设置股票池、基准、变量等。
def init(context):
context.universe = ['000001.SZ', '600000.SH'] # 设置股票池
context.benchmark = '000001.SZ' # 设置基准
handlebar(ContextInfo) 函数这是策略的核心执行函数,每根 K 线都会调用一次。
def handlebar(context):
# 获取当前K线数据
data = context.get_history_data('000001.SZ', bar_count=20)
# 计算均线
ma5 = data['close'].rolling(5).mean()
ma20 = data['close'].rolling(20).mean()
# 判断趋势信号
if ma5[-1] > ma20[-1] and ma5[-2] <= ma20[-2]:
context.order('000001.SZ', 100) # 买入
elif ma5[-1] < ma20[-1] and ma5[-2] >= ma20[-2]:
context.sell('000001.SZ', 100) # 卖出
paint() 绘图展示结果可以将策略运行结果可视化,便于分析。
context.paint('ma5', ma5[-1])
context.paint('ma20', ma20[-1])
QMT 的策略运行是基于 K线驱动 的,即每根 K 线会触发一次 handlebar 函数。你可以通过以下方式控制策略执行频率:
ContextInfo.barpos 获取当前 K 线索引位置,控制策略执行时机;passorder 或 do_order 控制下单时机,特别是对高频或实时策略。量化交易策略的设计是一个系统性工程,需要结合市场逻辑、编程能力和数据分析能力。无论你是使用 TB 还是 QMT/PTrade,关键在于构建一套可复现、可测试、可优化的交易体系。
如果你正在使用 TB交易开拓者,也可以尝试将其与 Python 结合,利用更强大的数据处理和策略编写能力。如需进一步了解 QMT 或 PTrade 的 Python 策略编写方法,欢迎联系国金证券客户经理,获取一对一指导与支持。
(注:点我红色头像旁边有个咨询TA,加我微或者电话联系我)