- 精华
- 0
- 在线时间
- 0 小时
- UID
- 200458
- 积分
- 8
- 帖子
- 7
- 阅读权限
- 10
- 注册时间
- 2014-12-30
- 最后登录
- 2015-12-1
- 精华
- 0
- UID
- 200458
- 积分
- 8
- 帖子
- 7
- 主题
- 1
- 阅读权限
- 10
- 注册时间
- 2014-12-30
- 最后登录
- 2015-12-1
|
小米 发表于 2015-12-1 14:10
你是在交易前,就已经在公式里就写了多条语句,对某个委托索引号分别与所有的enum_xxx函数进行比较判断的 ...
AOrderTime=IIF(DataX==Data0.Symbol,Data0.A_OrderTime(j),IIF(DataX==Data1.Symbol,Data1.A_OrderTime(j),Data2.A_OrderTime(j)));
AOrderPrice=IIF(DataX==Data0.Symbol,Data0.A_OrderPrice(j),IIF(DataX==Data1.Symbol,Data1.A_OrderPrice(j),Data2.A_OrderPrice(j)));
AOrderFilledPrice=IIF(DataX==Data0.Symbol,Data0.A_OrderFilledPrice(j),IIF(DataX==Data1.Symbol,Data1.A_OrderFilledPrice(j),Data2.A_OrderFilledPrice(j)));
AOrderEntryOrExit=IIF(DataX==Data0.Symbol,Data0.A_OrderEntryOrExit(j),IIF(DataX==Data1.Symbol,Data1.A_OrderEntryOrExit(j),Data2.A_OrderEntryOrExit(j)));
AOrderBuyOrSell=IIF(DataX==Data0.Symbol,Data0.A_OrderBuyOrSell(j),IIF(DataX==Data1.Symbol,Data1.A_OrderBuyOrSell(j),Data2.A_OrderBuyOrSell(j)));
AOrderStatus=IIF(DataX==Data0.Symbol,Data0.A_OrderStatus(j),IIF(DataX==Data1.Symbol,Data1.A_OrderStatus(j),Data2.A_OrderStatus(j)));
//Enum_Declared:1,Enum_Filled():3,Enum_Deleted:5Enum_Canceled:4 Enum_Canceling:7,Enum_Declare:11
AOrderLot=IIF(DataX==Data0.Symbol,Data0.A_OrderLot(j),IIF(DataX==Data1.Symbol,Data1.A_OrderLot(j),Data2.A_OrderLot(j)));
Data_Log("第"+Text(j)+"条交易:"+DataX+" "+IIFString(AOrderBuyOrSell==Enum_Buy(),"B","S")+IIFString(AOrderEntryOrExit==Enum_Entry(),"K","P")+" "+Text(AOrderPrice)+" "+Text(AOrderTime)+" "+Text(AOrderLot));
If(TimeDiff(AOrderTime,OrderTime)>WTWCTime){
Data_Log("委托时间:"+Text(AOrderTime)+"过早,不匹配");
//Break;
}
If(Abs(TimeDiff(OrderTime,AOrderTime))<=WTWCTime And OrderPrice==AOrderPrice And OrderLot==AOrderLot
And OrderType==IIFString(AOrderBuyOrSell==Enum_Buy(),"B","S")+IIFString(AOrderEntryOrExit==Enum_Entry(),"K","P")){
//Data_Log("Enum_Canceled:"+Text(Enum_Canceled)+",Enum_Deleted"+Text(Enum_Deleted)+",Enum_Filled"+Text(Enum_Filled));
Data_Log("找到对应的交易,是"+DataX+"第"+Text(j)+"单,委托时间:"+Text(AOrderTime)+",委托价格:"+Text(AOrderPrice)
+",类型:"+IIFString(AOrderBuyOrSell==Enum_Buy(),"买","卖")+",笔数:"+Text(AOrderLot)
+",开平:"+IIFString(AOrderEntryOrExit==Enum_Entry(),"开","平")+",状态:"+Text(AOrderStatus)
+" "+IIFString(AOrderStatus==Enum_Filled(),"成交","未成交"));
//FileAppend(LogFile,"Data1委托超过"+Text(TimeDiff(Data1.A_OrderTime(j),CurrentTime()))+"秒");
If(ReturnContent==0) Return AOrderStatus;
Else If(ReturnContent==1) Return AOrderFilledPrice;
Else If(ReturnContent==2) Return j;
} |
|