- 精华
- 0
- 在线时间
- 70 小时
- UID
- 237072
- 积分
- 53
- 帖子
- 28
- 阅读权限
- 30
- 注册时间
- 2016-6-23
- 最后登录
- 2017-6-28
- 精华
- 0
- UID
- 237072
- 积分
- 53
- 帖子
- 28
- 主题
- 9
- 阅读权限
- 30
- 注册时间
- 2016-6-23
- 最后登录
- 2017-6-28
|
希望高手解答,用A函数比较怕,想做到保证没成交的单一直追单到成交为止再执行下面的。我在开始的时候通过以下的代码控制可以吗?请帮我看看。
可以的话,帮我改一下可以吗?请一定帮我解决一下,自己看A函数,因为不能回测,很多不明白
Vars
Numeric BuyOrSell;
Numeric EntryOrExit;
Numeric Lot;
SetTBProfileString(Symbol,X,0);//用此变量记录过了多少TICK
Begin
If(GetTBProfileString(Symbol,Check) == 1)//当每次开仓时把CHECK改为1,进入监测状态
{
If(GetTBProfileString(Symbol,X) < 3)//记录3TICK缓冲期,保证没成交的可以成交
{
If(A_GetOpenOrderCount() > 0)//当检测到有未成交的单时
{
BuyOrSell = A_GetLastOpenOrderIndex(BuyOrSell);//疑问:可不可以通过这样来赋值
EntryOrExit = A_GetLastOpenOrderIndex(EntryOrExit);//同上
Lot = A_OpenOrderLot();
A_DeleteOrder("");
If(BuyOrSell = Enum_Buy)//疑问:这样的判断可以不
{
A_SendOrder(BuyOrSell,EntryOrExit,Lot,Q_AskPrice+1,);
}
Else If(BuyOrSell = Enum_Sell)//疑问:这样的判断可以不
{
A_SendOrder(BuyOrSell,EntryOrExit,Lot,Q_BidPrice-1,);
}
SetTBProfileString(Symbol,X,0);//发了新单后重置TICK计数,重新计算
Return;
}
SetTBProfileString(Symbol,X,GetTBProfileString(Symbol,X)+1);
Return;
}
SetTBProfileString(Symbol,X,0);//计数重置
SetTBProfileString(Symbol,Check,0);//检测状态关闭,再次进入下面的开平仓判断
}
End
这样的控制可以不,还有会不会出现A_DeleteOrder发出去后,原来没有成交的单成交了,就等于我反而重复发了单 |
|