- 精华
- 0
- 在线时间
- 53 小时
- UID
- 116165
- 积分
- 51
- 帖子
- 20
- 阅读权限
- 30
- 注册时间
- 2013-3-3
- 最后登录
- 2013-6-18
- 精华
- 0
- UID
- 116165
- 积分
- 51
- 帖子
- 20
- 主题
- 5
- 阅读权限
- 30
- 注册时间
- 2013-3-3
- 最后登录
- 2013-6-18
|
这是在tb公式指南中,A函数与全局变量匹配使用小节中的一条语句:DeleteOrderTickCounter = DeleteOrderTickCounter + 1;不明白的是,为什么要在这里将该变量+1处理呢???
这是整段代码:
Params
Numeric offSet(1); // 委托价格偏移,为了保证成交
Numeric BeforeMins(5); // 收盘前几分钟开始操作
Vars
Numeric tempPos; // 仓位
Numeric DeleteOrderTickCounter;
Numeric HasSendOrder(0);
Begin
If(BarStatus == 0)
{
DeleteOrderTickCounter = 9999;
HasSendOrder = 0;
SetGlobalVar(0,DeleteOrderTickCounter);
SetGlobalVar(1,HasSendOrder);
}Else
{
DeleteOrderTickCounter = GetGlobalVar(0);
HasSendOrder = GetGlobalVar(1);
}
If(CurrentTime > (0.1459 - 0.0001*(BeforeMins-1)) && BarStatus == 2 && HasSendOrder == 0)
{
If(Data0.Close != InvalidNumeric && Data0.A_GetOpenOrderCount()>0) //商品0全部撤单
{
Data0.A_DeleteOrder();
DeleteOrderTickCounter = 1;
}
If(Data1.Close != InvalidNumeric && Data1.A_GetOpenOrderCount()>0)//商品1全部撤单
{
Data1.A_DeleteOrder();
DeleteOrderTickCounter = 1;
}
If(Data2.Close != InvalidNumeric && Data2.A_GetOpenOrderCount()>0) //商品2全部撤单
{
Data2.A_DeleteOrder();
DeleteOrderTickCounter = 1;
}
DeleteOrderTickCounter = DeleteOrderTickCounter + 1; //就是这里看不明白???
SetGlobalVar(0,DeleteOrderTickCounter);
If(DeleteOrderTickCounter < 5) Return; // 撤单后需要延迟几个Tick才平仓
tempPos = Data0.A_BuyPosition();
If(tempPos > 0) // 平多单
{
Data0.A_SendOrder(Enum_Sell,Enum_Exit,tempPos,Data0.Q_BidPrice - offSet* Data0.MinMove*Data0.PriceScale);
}
tempPos = Data0.A_SellPosition();
If(tempPos > 0) //平空单
{
Data0.A_SendOrder(Enum_Buy,Enum_Exit,tempPos,Data0.Q_AskPrice +offSet*Data0.MinMove*Data0.PriceScale);
}
tempPos = Data1.A_BuyPosition;
If(tempPos > 0) // 平多单
{
Data1.A_SendOrder(Enum_Sell,Enum_Exit,tempPos,Data1.Q_BidPrice -offSet*Data1.MinMove*Data1.PriceScale);
}
tempPos = Data1.A_SellPosition;
If(tempPos > 0) //平空单
{
Data1.A_SendOrder(Enum_Buy,Enum_Exit,tempPos,Data1.Q_AskPrice +offSet*Data1.MinMove*Data1.PriceScale);
}
tempPos = Data2.A_BuyPosition;
If(tempPos > 0) // 平多单
{
Data2.A_SendOrder(Enum_Sell,Enum_Exit,tempPos,Data2.Q_BidPrice -offSet*Data2.MinMove*Data2.PriceScale);
}
tempPos = Data2.A_SellPosition;
If(tempPos > 0) //平空单
{
Data2.A_SendOrder(Enum_Buy,Enum_Exit,tempPos,Data2.Q_AskPrice +offSet*Data2.MinMove*Data2.PriceScale);
}
HasSendOrder = 1;
SetGlobalVar(1,HasSendOrder);
}
End |
|