按照交易系统在交易评测和事后回盘显示,今天我的交易系统应该对股指期货开多。但是模拟交易却开空,导致整个交易相反了。分析原因,估计是我判断交易方向时,把变量放在判断日期变化的代码段时中赋值,而此代码段在模拟交易中没有执行而导致的。请大家帮忙分析下原因
IF DATE<>REF(DATE,1) THEN BEGIN
S:=XXX;
K:=XXX;
END
BPK:=S>K;
SPK:=S<=K;
IF BPK THEN BEGIN
开多1:BUY(BPK,1,MARKET,0);{开多}
END
ELSE BEGIN
开空1:BUYSHORT(SPK,1,MARKET,0);{开空}
END
或是BPK、SPK存在问题
也有可能在模拟交易中DATE<>REF(DATE,1) 的判断出错了,根本没有执行IF判断里面的代码
还有,我的S、K变量在if判断中第一次使用,随后在if判断外面使用S、K变量来做判断,是不是也会出现问题?
请金字塔自己测试下,看看到底怎回事。
对了,今天我用了自定义的框架,对两个品种分别使用不同的公式下单。这会不会也可能是出现问题原因?
公式中的逻辑问题,是很难通过猜理去解决的,希望你能仔细的看看
http://www.weistock.com/bbs/dispbbs.asp?boardid=4&Id=332 问题4
中的调试技巧,将公式运行时的一些关键变量记录下来,出现问题后通过日志的记录来寻找逻辑错误的蛛丝马迹