
通达信期货量化指标源码的核心逻辑
期货量化交易的核心在于将市场行为转化为可计算的数学公式。通达信的公式系统(TDX Formula Language)通过处理价格、成交量等基础数据,生成买卖信号。MACD指标的典型源码结构包含三个关键部分:
DIF:EMA(CLOSE,12)-EMA(CLOSE,26);
DEA:EMA(DIF,9);
MACD:(DIF-DEA)2,COLORSTICK;
这种均值回归逻辑在螺纹钢、铁矿石等波动性较强的品种中表现突出。参数优化时需要注意:
高频交易策略的源码实现
日内高频策略需要处理tick级数据,以下是突破策略的简化示例:
// 5分钟K线突破前高
HH:=HHV(H,10);
LL:=LLV(L,10);
BUY_SIGNAL:=C>REF(HH,1) AND VOL>MA(VOL,5);
SELL_SIGNAL:=C
实际应用中要特别注意:
品种 | 最佳参数 | 胜率 | 盈亏比 |
---|---|---|---|
沪铜 | 8 | 62% | 1.8 |
原油 | 12 | 58% | 2.1 |
多因子策略的源码架构
成熟的量化系统需要组合多个因子,以下是典型的多因子框架:
// 动量因子
MOM:=C/REF(C,20)-1;
// 波动率因子
ATR_RANGE:=MA(TR,14)/C;
// 资金流向因子
MFI:=SUM(IF(C>REF(C,1),VOL,-VOL),20);
// 综合信号
COMPOSITE_SCORE:=(MOM0.4 + ATR_RANGE0.3 + MFI0.3);
BUY:=COMPOSITE_SCORE>0.7 AND C>MA(C,60);
权重分配
实盘中的异常处理机制
源码中必须包含风险控制模块,以下是典型的风控代码:
// 动态止损模块
ENTRY_PRICE:=VALUEWHEN(BUY,C);
MAX_LOSS:=ENTRY_PRICE0.98;
TRAILING_STOP:=MAX(ENTRY_PRICE1.05,HHV(H,5)0.995);
// 仓位控制
POSITION_SIZE:=MIN(ACCOUNT_EQ0.02/(ENTRY_PRICE-MAX_LOSS),CONTRACT_LIMIT);
关键参数设置原则:
成交量过滤参数的设置其实很有讲究,不能简单套用固定数值。不同品种的流动性差异很大,像原油、股指期货这种高流动性品种,用3-5根K线的短期均线就能有效过滤噪音,而螺纹钢、焦炭这类商品期货最好用6-10根K线的中期均线。实际操作中我发现,把成交量均线周期和价格突破的K线周期保持1:2的比例效果最好,比如用5分钟K线做突破,就配合10根K线的成交量均线。
测试参数时有个小技巧,先观察品种过去3个月的成交量分布。如果大部分时间成交量都在某个区间波动,就把均线周期设在这个区间的中位数附近。比如某品种80%的时间成交量在5万-15万手之间,那就取8-12根K线的均线。记住一个原则:过滤后的有效信号要保证每天有交易机会,但也不能太频繁,3-5次刚刚好,既能抓住主要行情又不会过度交易。
常见问题解答
如何判断MACD参数是否适合当前期货品种?
测试12-26-9标准参数组合时, 先用3个月历史数据进行回测。观察DIF与价格背离情况,若在螺纹钢等品种上出现超过60%的假信号,可将快线EMA调整为8-15日范围,慢线EMA调整到20-30日区间。
突破策略中成交量过滤参数怎么设置?
成交量均线周期通常取5-10根K线,具体数值要根据品种流动性调整。例如原油主力合约用MA(VOL,3),而螺纹钢用MA(VOL,8)。关键要确保过滤后的信号量能维持日均3-5次交易机会。
多因子策略中如何避免因子过度拟合?
采用20-30个因子进行初选,通过IC值测试保留3-5个相关性低于0.3的因子。每月需重新计算因子权重,当样本外测试胜率低于55%时应立即暂停策略。
实盘中如何动态调整止损幅度?
基础止损 设置2-3%的固定比例,同时叠加ATR动态调整。例如沪铜用1.5倍ATR(14),铁矿石用2倍ATR(20)。当连续3笔止损触发后,应缩小头寸至正常规模的50-70%。
通达信公式系统支持哪些特殊函数?
除常规技术指标函数外,特别推荐使用TDX独有的持仓量分析函数(如OPENINTEREST)、资金流函数(如BIGORDER)和套利函数(如SPREAD)。这些函数在原油、股指期货等品种上尤其有效。