onorder域里无法print

想在onorder域里进行一些业务运算同时打印一些变量,不知道为什么打印不出来,请问下什么原因呢?

比如以下一段代码,红色的打印语句在控制台里就是不打印:


Params

   Numeric FastLength(5);// 短期指数平均线参数

   Numeric SlowLength(20);// 长期指数平均线参数

Vars

   Series<Numeric> AvgValue1;

   Series<Numeric> AvgValue2;

    Global Numeric a;

    Global Numeric b;

     Global Numeric buynum;

    Global Numeric sellshortnum;

Events

   OnReady()

   {

       SetBackBarMaxCount(1+Max(FastLength,SlowLength));

       Range[0:DataSourceSize() - 1]

       {

           setPlotOption("MA1", "begin-bar", FastLength);

           setPlotOption("MA2", "begin-bar", SlowLength);

       }

   }

   

   OnOrder(OrderRef ord)

   {

      Print("OnOrder triggered: Order ID: " + Text(ord.orderid));

       print("ordertext"+text(ord));

       if(ord.side==Enum_Buy and ord.combOffset==Enum_entry)

           {

               a = ord.orderid;

               print("buytime:"+text(time));

               print("a:"+text(a));

               buynum=buynum+1;

           }

       

           if(ord.side==Enum_Sell and ord.combOffset==Enum_entry)

           {

               b = ord.orderid;

               print("sellshorttime:"+text(time));

               print("b:"+text(b));

               sellshortnum=sellshortnum+1;

           }

   }

   

   

   OnBar(ArrayRef<Integer> indexs)

   {

       AvgValue1 = AverageFC(Close,FastLength);

       AvgValue2 = AverageFC(Close,SlowLength);

       PlotNumeric("MA1",AvgValue1);

       PlotNumeric("MA2",AvgValue2);        

       print("a:"+text(a));

       print("b:"+text(b));

       print("buynum:"+text(buynum));

       print("sellshortnum:"+text(sellshortnum));

       

       If(MarketPosition <>1 && AvgValue1[1] > AvgValue2[1])

       {

           Buy(0,Open);

       }

       

       If(MarketPosition <>-1 && AvgValue1[1] < AvgValue2[1])

       {

           SellShort(0,Open);

       }    

   }

   

onorder域(二)
onorder事件域
关于OnOrder域机制的问题
关于OnOrder域和OnPosition的问题
onexit为何无法使用Print2Quote
PRINT输出不全
事件驱动在一个域里全局变量+1,另一个域里条件里含有此条件,是怎么运行的?
用buy函数无法触发onorder,onfill等类似事件么?
OnOrder不执行
onsignal域

1.先看位置

Print("OnOrder triggered: Order ID: " + Text(ord.orderid));

你写在了onorder底层,那么没打印说明什么? 说明onorder没有触发

谢谢,操作源搞错了

不打印的原因和简单,就是没执行。

没执行的原因,就是没驱动

没驱动的原因,就是没有发生符合事件域的事件

你写在onorder里的print没执行,那就说明没执行onorder域

谢谢老师,但是为什么没有触发呢?比如if(ord.side==Enum_Buy and ord.combOffset==Enum_entry),这个IF写法不能认为是筛选到买入委托吗?我对照着帐户的成交记录,有买入开仓,那就是上面这个写法不对,是哪里写得不对呢。谢谢


你确认发生了能驱动onorder域的事件了吗?


刘老师,的确是自己搞错了操作源。谢谢