- 精华
- 0
- 在线时间
- 79 小时
- UID
- 113408
- 积分
- 81
- 帖子
- 44
- 阅读权限
- 30
- 注册时间
- 2012-11-9
- 最后登录
- 2013-5-10
- 精华
- 0
- UID
- 113408
- 积分
- 81
- 帖子
- 44
- 主题
- 13
- 阅读权限
- 30
- 注册时间
- 2012-11-9
- 最后登录
- 2013-5-10
|
小米 发表于 2013-2-24 19:18
我们参考F1进阶,是想要它的控制方式,而不必要去照搬它的条件。
进阶里例子里的的条件是有读帐户信息, ...
小米,梳理下你的案例code:
If(getglobalvar(0) == invalidnumeric)
{
SetGlobalVar(0,0);
}
if(barstatus==2)
{
if( 开仓条件 && a_buyposition==0 && getglobalvar(0)==0)
{
a_sendorder(enum_buy,enum_entry,lots,price);
setglobalvar(0,1);
}
if(a_buyposition>0) //或者在平仓动作时重置全局变量
{
setglobalvar(0,0);
}
}
上面的code核心思想是发出开仓指令后,设置一个全局变量,除非检测到持仓数发生变化,否则不调整全局变量状态,从而不能再次开仓。问题是:一旦出现回报延迟问题,持仓数为0,全局变量状态永远不会变,进而永远无法再次开仓啊(除非退出TB程序重进)!那一旦开仓失败(即因为行情剧烈发展,即使增加了N多滑点也未成交),如何撤单?如何再次开仓呢?
|
|