- 精华
- 0
- 在线时间
- 280 小时
- UID
- 5525
- 积分
- 1473
- 帖子
- 429
- 阅读权限
- 60
- 注册时间
- 2009-9-22
- 最后登录
- 2022-5-23
- 精华
- 0
- UID
- 5525
- 积分
- 1473
- 帖子
- 429
- 主题
- 93
- 阅读权限
- 60
- 注册时间
- 2009-9-22
- 最后登录
- 2022-5-23
|
我的程序如下:但日志发现nCount为1,表明有一个未成交委托单(与买入委托实际相符),但记录发现A_OrderFilledLot(i)和A_OpenOrderFilledLot(i)的值均为0,与A_GetOpenOrderCount==1不符,请问是何原因?
我要用 A_OrderFilledLot(i) - A_OpenOrderFilledLot(i)来得到所有未成交委托单的未成交委托手数,是否表述正确?
谢谢版主!
nCount = IIF(AccountDataExist,A_GetOpenOrderCount,0); //当前未成交的委托单数
If (nCount>0 && GetGlobalVar(10)>=5) //委托单超过3秒未成交,则撤销所有委托单
{ //统计所有四种未成交委托的未成交量
SetGlobalVar(20,0); //EnterBuy 的未成交量
SetGlobalVar(21,0); //EnterSell的未成交量
SetGlobalVar(22,0); //ExitBuy 的未成交量
SetGlobalVar(23,0); //ExitSell 的未成交量
FileAppend("C://MyATM1.Log",TimeToString(CurrentTime)+" nCount: "+Text(nCount));
For i = 1 To nCount
{ If (A_OpenOrderEntryOrExit(i)==Enum_Entry && A_OpenOrderBuyOrSell(i)==Enum_Buy)
{ SetGlobalVar(20,GetGlobalVar(20)+A_OrderFilledLot(i)-A_OpenOrderFilledLot(i));
FileAppend("C://MyATM1.Log",Text(i)+" "+TimeToString(CurrentTime)+" G20");
FileAppend("C://MyATM1.Log",text(A_OrderFilledLot(i))+" G20");
FileAppend("C://MyATM1.Log",text(A_OpenOrderFilledLot(i))+" G20");
FileAppend("C://MyATM1.Log",Text(GetGlobalVar(20))+" GV20");
} //累计未成交量
If (A_OpenOrderEntryOrExit(i)==Enum_Entry && A_OpenOrderBuyOrSell(i)==Enum_Sell)
{ SetGlobalVar(21,GetGlobalVar(21)+A_OrderFilledLot(i)-A_OpenOrderFilledLot(i));
FileAppend("C://MyATM1.Log",Text(i)+" "+TimeToString(CurrentTime)+" G21");
FileAppend("C://MyATM1.Log",text(A_OrderFilledLot(i))+" G21");
FileAppend("C://MyATM1.Log",text(A_OpenOrderFilledLot(i))+" G21");
FileAppend("C://MyATM1.Log",Text(GetGlobalVar(21))+" GV21");
}
If (A_OpenOrderEntryOrExit(i)==Enum_Exit && A_OpenOrderBuyOrSell(i)==Enum_Buy)
{ SetGlobalVar(22,GetGlobalVar(22)+A_OrderFilledLot(i)-A_OpenOrderFilledLot(i));
FileAppend("C://MyATM1.Log",Text(i)+" "+TimeToString(CurrentTime)+" G22");
FileAppend("C://MyATM1.Log",text(A_OrderFilledLot(i))+" G22");
FileAppend("C://MyATM1.Log",text(A_OpenOrderFilledLot(i))+" G22");
FileAppend("C://MyATM1.Log",Text(GetGlobalVar(22))+" G22");
}
If (A_OpenOrderEntryOrExit(i)==Enum_Exit && A_OpenOrderBuyOrSell(i)==Enum_Sell)
{ SetGlobalVar(23,GetGlobalVar(23)+A_OrderFilledLot(i)-A_OpenOrderFilledLot(i));
FileAppend("C://MyATM1.Log",Text(i)+" "+TimeToString(CurrentTime)+" G23");
FileAppend("C://MyATM1.Log",text(A_OrderFilledLot(i))+" G22");
FileAppend("C://MyATM1.Log",text(A_OpenOrderFilledLot(i))+" G22");
FileAppend("C://MyATM1.Log",Text(GetGlobalVar(23))+" G22");
}
}
A_DeleteOrder(); //撤销所有委托单
SetGlobalVar(10,0); //Tick1计数回0,需等待5个Tick,使撤单指令完成后方可重新委托 |
|