全部 智大领峰 TBQuant功能 TBL语言 TB开户 问答专区 高手圈 其他
A函数运行问题
2023-02-05 11:16

@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"))
              }
         }
       }
     }
   }

下面是截图:

wangkaiming

你可以现在K线上调试,这个print才可能输出true

2023-02-06 09:02
dgdrz2015

王老师,您是说要白天调试才能输出true吗?

 

 

2023-02-07 21:46
您未登录,请先 登录注册 后发表评论
顶部