- 精华
- 0
- 在线时间
- 192 小时
- UID
- 15246
- 积分
- 704
- 帖子
- 167
- 阅读权限
- 60
- 注册时间
- 2010-8-17
- 最后登录
- 2021-9-5
- 精华
- 0
- UID
- 15246
- 积分
- 704
- 帖子
- 167
- 主题
- 74
- 阅读权限
- 60
- 注册时间
- 2010-8-17
- 最后登录
- 2021-9-5
|
我也试过发单后延时,但基本上看重复发单都是在同一秒内,相差不超过3秒,有是发单正确,只开1手,有时2手,有时几手,总之,每次都不一样。做实盘主要预防的就是小概率事件,重复发单原因搞不清的话,会很致命的!
我套用的代码
TimeSeconds=Value(Left(TimeToString(CurrentTime),2))*3600 //记录系统当前时间,转化为秒数
+Value(Mid(TimeToString(CurrentTime),3,2))*60
+Value(Right(TimeToString(CurrentTime),2));
If ( TimeSeconds-GetGlobalVar(10)<WaitTime ) Return; //如果发单后等待时间小于WaitTime,则返回
If ( A_TotalPosition==0 )
{
计算开仓手数Lots;
If ( 满足开多仓条件 )
{
NewPrice=Q_AskPrice+ShiftUnit*MinMove*PriceScale; //计算开仓价格
A_SendOrder(Enum_Buy,Enum_Entry,Lots,NewPrice);
SetGlobalVar(0,TimeSeconds); //记录下单时间
Return;
}
If ( 满足开空仓条件 )
{
NewPrice=Q_BidPrice-ShiftUnit*MinMove*PriceScale;
A_SendOrder(Enum_Sell,Enum_Entry,Lots,NewPrice);
SetGlobalVar(0,TimeSeconds);
}
Return;
} |
|