源码如下:
问题现象:A_SendOrder一直返回false。从输出文件端和调控台看到的返回值都是false。请老师帮忙看看。谢谢。
Vars
Global Integer sendCount(0);
Global Integer fillCount(0);
Position mypos;
Events
OnReady()
{
//根据操作源订阅委托
Bool ret = A_SubscribeTradeByCreateSource(A_GetOrderCreateSource);
Print("A_SubscribeTradeByCreateSource:" + IIFString(ret, "True", "False"));
}
OnBar(ArrayRef<Integer> indexs)
{
Bool ret = false;
A_GetPosition(Symbol, mypos, "", 0);
Commentary("Symbol:" + Symbol +" "+ Text(mypos.shortCurrentVolume) +" "+ Text(mypos.longCurrentVolume));
if(BarStatus == 2 && sendCount == 0)
{//发开仓单
//针对当前策略应用的帐户、商品发送委托单
ret = A_SendOrder(Enum_Sell, Enum_Entry, 1, Q_BidPrice);
Print("SellShort,A_SendOrder:" + IIFString(ret, "True", "False"));
Print("Date="+DateToString(Date)+ " Time= "+TimeToString(time) +" " + Text(Q_BidPrice));
if(ret)
{
sendCount = sendCount + 1;
}
FileAppend("D:\\TBQuant\\users\\EvantanQ\\uidata\\Workspace\\a_log.txt","Date="+DateToString(Date)+" Time= "+TimeToString(time)
+" KTKC="+Text(Q_BidPrice)+" Contract="+ Symbol +" "+ IIFString(ret, "True", "False"));
Print("SellShort,A_SendOrder:" + IIFString(ret, "True", "False"));
}
if(BarStatus == 2 && sendCount > 0 && sendCount <= fillCount)
{//发平仓单
//针对当前策略应用的帐户、商品发送委托单
ret = A_SendOrder(Enum_Buy, Enum_Exit, 1, Q_AskPrice);
Print("BuyToCover,A_SendOrder:" + IIFString(ret, "True", "False"));
Print("Date="+DateToString(Date)+ " Time= "+TimeToString(time) +" " + Text(Q_AskPrice));
sendCount = -1;
FileAppend("D:\\TBQuant\\users\\EvantanQ\\uidata\\Workspace\\a_log.txt","Date="+DateToString(Date)+" Time= "+TimeToString(time)
+" KTPC="+Text(Q_AskPrice)+" Contract="+ Symbol +" "+ IIFString(ret, "True", "False"));
Print("BuyToCover,A_SendOrder:" + IIFString(ret, "True", "False"));
}
}
OnFill(FillRef ordFill)
{
fillCount = fillCount + 1;
Print("fillCount:" + Text(fillCount));
}
实时发出单子才会是true