@WangKaiMing
王老师:
您好!
我在OnBar运行两腿程序发送信号到OnSignal,在OnSignal中用A函数发单开平仓,模拟交易已经有成交持仓了,但A_SendOrderEx()的返回值为False,在OnOrder中也查不到OrderId。下面是程序:
OnBar (ArrayRef<Integer> indexs)
{
If(条件)
{
Data[layer0].SellShort(1,Data[layer0].open,Enum_Signal_NotSend);
Data[layer1].Buy(1,Data[layer1].Open,Enum_Signal_UnCorrectPrice);
}
If(条件)
{
Data[layer0].Buy(1,Data[layer0].open,Enum_Signal_NotSend);
Data[layer1].SellShort(1,Data[layer1].Open,Enum_Signal_UnCorrectPrice);
}
}
Onsignal(ArrayRef<Signal> sigs)
{
signal mysig0;
signal mysig1;
SignalRef sig = sigs[i];
Integer i = 0;
For i = 0 To GetArraySize(sigs) - 1
{
If(sig.index==0)
{
mysig0=sig;
If(!BitHas(sig.flag,Enum_Signal_NotSend)&&QuoteStatus==Enum_QuoteStatus_RealTime )
{
If(mysig0.side==1 and condition==0 )
{
Bool ret0=data0.A_SendOrderEx(Enum_Buy,mysig0.combOffset,mysig0.volume, mytick.bidask1.bidP,myorderId);
condition==1;
Print("data0.A_SendOrderEx:" + IIFString(ret0,"True","False");
}
If(mysig0.side==2 and condition==0)
{
Bool ret0=data0.A_SendOrderEx(Enum_Sell,mysig0.combOffset,mysig0.volume, mytick.bidask1.askP,myorderId);
condition==1;
Print("data0.A_SendOrderEx:" + IIFString(ret0,"True","False"));
}
}
}
If(sig.index==1)
{
mysig1=sig;
If(!BitHas(sig.flag,Enum_Signal_NotSend)&&QuoteStatus==Enum_QuoteStatus_RealTime)
{
If(mysig1.side==1 and condition==0 )
{
Bool ret1=data1.A_SendOrderEx(Enum_Buy, mysig1.combOffset, mysig1.volume, mytick.bidask1.bidP,myorderId);
condition==1;
Print("data1.A_SendOrderEx:" + IIFString(ret1,"True","False"));
}
If(mysig1.side==2 and condition==0)
{
bool ret1=data1.A_SendOrderEx(Enum_Sell, mysig1.combOffset, mysig1.volume, mytick.bidask1.askP,myorderId);
condition==1;
Print("data1.A_SendOrderEx:" + IIFString(ret1,"True","False"))
}
}
}
}
}
下面是截图:
你可以现在K线上调试,这个print才可能输出true
王老师,您是说要白天调试才能输出true吗?