- 精华
- 0
- 在线时间
- 137 小时
- UID
- 2914
- 积分
- 949
- 帖子
- 259
- 阅读权限
- 60
- 注册时间
- 2008-11-30
- 最后登录
- 2010-8-6
- 精华
- 0
- UID
- 2914
- 积分
- 949
- 帖子
- 259
- 主题
- 84
- 阅读权限
- 60
- 注册时间
- 2008-11-30
- 最后登录
- 2010-8-6
|
原帖由 bigbear2046 于 2009-3-12 06:24 发表
同一个bar开仓就会遇到这个问题,每个tick运算一次,这个bar还没走完就运行了N次了
延迟一个bar即可
Buy(1,avgline[1],true);
延迟一个BAR?你太害人了,超低级!
楼主造成开5次仓的原因应该是这样:当一个TICK来了触发程序发出委托,但是并未马上成交,因此条件继续满足,第二个TICK,第三个TICK接踵而来,均再次发委托,所以出现建了多个仓的情况。
解决办法,用全局变量控制只发一次。
AA=GetGlobalVar(40);
if ( AA==0 && 其他条件 )
{
你的程序段;
AA=1;
SetGlobalVar(40,AA);
}
[ 本帖最后由 天行健 于 2009-3-12 19:21 编辑 ] |
|