代码有信号,没有买入卖出动作,请老师看一下哦
Params String Str01("Line2");//公式简称 String Str02("Line");//线的名称 Numeric P_pin(5);// 上穿趋势P跳数; Numeric S_pin(10);// 止损S跳数; Numeric Y_pin(100);// 止盈Y跳数; Numeric G_pin(20);// 加仓间隔G跳数; Numeric share(1);// 加仓手数; Numeric Max_lots(10);// 总加仓次数 Vars Series<Numeric> LineValue; Series<Numeric> P_Moxe; Series<Numeric> S_Moxe; Series<Numeric> Y_Moxe; Series<Numeric> G_Moxe; Series<bool> cond_BK; Series<bool> cond_BK_T; Series<bool> cond_loss; Series<bool> cond_win; Series<Numeric> EntryP_01;//首单建仓价 Series<Numeric> EntryP_02; Series<Numeric> EntryP_03; Series<Numeric> EntryP_04; Series<Numeric> EntryP_05; Series<Numeric> EntryP_06; Series<Numeric> EntryP_07; Series<Numeric> EntryP_08; Series<Numeric> EntryP_09; Series<Numeric> EntryP_10; Global Bool ret ; Global Numeric lots; Series<bool> cond_BK01; Series<bool> cond_BK02; Series<bool> cond_BK03; Series<bool> cond_BK04; Series<bool> cond_BK05; Series<bool> cond_BK06; Series<bool> cond_BK07; Series<bool> cond_BK08; Series<bool> cond_BK09; Global Numeric EntryNum; Global Numeric Sign_N(0);//状态码 Series<Numeric> Sign_N_REF;//前一个状态码 Global array<Integer> my_id; Events //此处实现事件函数 //初始化事件函数,策略运行期间,首先运行且只有一次 OnInit() { } //Bar更新事件函数,参数indexs表示变化的数据源图层ID数组 OnBar(ArrayRef<Integer> indexs) { LineValue =lion_line(Str01, Str02); P_Moxe=P_pin*MinMove*PriceScale; S_Moxe=S_pin*MinMove*PriceScale; Y_Moxe=Y_pin*MinMove*PriceScale; G_Moxe=G_pin*MinMove*PriceScale; Sign_N_REF=EntryNum; IF(LineValue!=InvalidNumeric And LineValue[1]==InvalidNumeric){PlotString("方向","---当前{做多策略}---",Low,white);} cond_BK=CrossOver(high,LineValue+P_Moxe) and LineValue!=InvalidNumeric ; cond_loss=CrossUnder(Low,EntryP_01-S_pin) and LineValue!=InvalidNumeric; cond_win=high>=EntryP_01+Y_Moxe and LineValue!=InvalidNumeric; cond_BK01= high>= EntryP_01+G_Moxe; cond_BK02= high>= EntryP_02+G_Moxe; cond_BK03= high>= EntryP_03+G_Moxe; cond_BK04= high>= EntryP_04+G_Moxe; cond_BK05= high>= EntryP_05+G_Moxe; cond_BK06= high>= EntryP_06+G_Moxe; cond_BK07= high>= EntryP_07+G_Moxe; cond_BK08= high>= EntryP_08+G_Moxe; cond_BK09= high>= EntryP_09+G_Moxe; //===================================开仓区域=========================== If(MarketPosition==0 && cond_BK ) { ret=Buy(1,Max(Open,LineValue+P_Moxe)); EntryNum=1; EntryP_01=Max(Open,LineValue+P_Moxe); if(ret){PlotString("开仓","首单",High,Red);} } If(MarketPosition>0 && cond_loss and BarsSinceEntry>0 ) { ret=Sell(0,Min(EntryP_01-S_pin,Open)); EntryNum=0; if(ret){PlotString("平仓","止损",High,Red);} Sign_N=11; } If(MarketPosition>0 && cond_win and BarsSinceEntry>0) { ret=Sell(0,Max(EntryP_01+Y_Moxe,Open)); EntryNum=0; if(ret){PlotString("平仓","止盈",High,Red);} Sign_N=12; } //=========================================加仓================== If( cond_BK01 and EntryNum==1 And EntryNum<Max_lots and BarsSincelastEntry>0 ){Buy(share,Max(EntryP_01+G_Moxe,Open));EntryNum=2;EntryP_02=Max(EntryP_01+G_Moxe,Open);} If( cond_BK02 and EntryNum==2 And EntryNum<Max_lots and BarsSincelastEntry>0 ){Buy(share,Max(EntryP_02+G_Moxe,Open));EntryNum=3;EntryP_03=Max(EntryP_02+G_Moxe,Open);} If( cond_BK03 and EntryNum==3 And EntryNum<Max_lots and BarsSincelastEntry>0 ){Buy(share,Max(EntryP_03+G_Moxe,Open));EntryNum=4;EntryP_04=Max(EntryP_03+G_Moxe,Open);} If( cond_BK04 and EntryNum==4 And EntryNum<Max_lots and BarsSincelastEntry>0 ){Buy(share,Max(EntryP_04+G_Moxe,Open));EntryNum=5;EntryP_05=Max(EntryP_04+G_Moxe,Open);} If( cond_BK05 and EntryNum==5 And EntryNum<Max_lots and BarsSincelastEntry>0 ){Buy(share,Max(EntryP_05+G_Moxe,Open));EntryNum=6;EntryP_06=Max(EntryP_05+G_Moxe,Open);} If( cond_BK06 and EntryNum==6 And EntryNum<Max_lots and BarsSincelastEntry>0 ){Buy(share,Max(EntryP_06+G_Moxe,Open));EntryNum=7;EntryP_07=Max(EntryP_06+G_Moxe,Open);} If( cond_BK07 and EntryNum==7 And EntryNum<Max_lots and BarsSincelastEntry>0 ){Buy(share,Max(EntryP_07+G_Moxe,Open));EntryNum=8;EntryP_08=Max(EntryP_07+G_Moxe,Open);} If( cond_BK08 and EntryNum==8 And EntryNum<Max_lots and BarsSincelastEntry>0 ){Buy(share,Max(EntryP_08+G_Moxe,Open));EntryNum=9;EntryP_09=Max(EntryP_08+G_Moxe,Open);} If( cond_BK09 and EntryNum==9 And EntryNum<Max_lots and BarsSincelastEntry>0 ){Buy(share,Max(EntryP_09+G_Moxe,Open));EntryNum=10;EntryP_10=Max(EntryP_09+G_Moxe,Open);} //=======================================状态码控制============= If(Sign_N_REF[1]!=EntryNum and BarStatus == 2) { If(EntryNum==1 and Sign_N!=1){A_SendOrderEx(Enum_Buy,Enum_Entry,1,EntryP_01,my_id); print("订单委托:--首单---委托价:"+text(EntryP_01)+"---时间="+Text(time));Sign_N=1;} If(EntryNum==2 and Sign_N!=2){A_SendOrderEx(Enum_Buy,Enum_Entry,share,EntryP_02,my_id); print("订单委托:--加仓1---委托价:"+text(EntryP_02)+"---时间="+Text(time));Sign_N=2;} If(EntryNum==3 and Sign_N!=3){A_SendOrderEx(Enum_Buy,Enum_Entry,share,EntryP_03,my_id); print("订单委托:--加仓2---委托价:"+text(EntryP_03)+"---时间="+Text(time));Sign_N=3;} If(EntryNum==4 and Sign_N!=4){A_SendOrderEx(Enum_Buy,Enum_Entry,share,EntryP_04,my_id); print("订单委托:--加仓3---委托价:"+text(EntryP_04)+"---时间="+Text(time));Sign_N=4;} If(EntryNum==5 and Sign_N!=5){A_SendOrderEx(Enum_Buy,Enum_Entry,share,EntryP_05,my_id); print("订单委托:--加仓4---委托价:"+text(EntryP_05)+"---时间="+Text(time));Sign_N=5;} If(EntryNum==6 and Sign_N!=6){A_SendOrderEx(Enum_Buy,Enum_Entry,share,EntryP_06,my_id); print("订单委托:--加仓5---委托价:"+text(EntryP_06)+"---时间="+Text(time));Sign_N=6;} If(EntryNum==7 and Sign_N!=7){A_SendOrderEx(Enum_Buy,Enum_Entry,share,EntryP_07,my_id); print("订单委托:--加仓6---委托价:"+text(EntryP_07)+"---时间="+Text(time));Sign_N=7;} If(EntryNum==8 and Sign_N!=8){A_SendOrderEx(Enum_Buy,Enum_Entry,share,EntryP_08,my_id); print("订单委托:--加仓7---委托价:"+text(EntryP_08)+"---时间="+Text(time));Sign_N=8;} If(EntryNum==9 and Sign_N!=9){A_SendOrderEx(Enum_Buy,Enum_Entry,share,EntryP_09,my_id); print("订单委托:--加仓8---委托价:"+text(EntryP_09)+"---时间="+Text(time));Sign_N=9;} If(EntryNum==10 and Sign_N!=10){A_SendOrderEx(Enum_Buy,Enum_Entry,share,EntryP_10,my_id); print("订单委托:--加仓9---委托价:"+text(EntryP_10)+"---时间="+Text(time));Sign_N=10;} If(Sign_N==11){A_SendOrderEx(Enum_Sell,Enum_Exit,MaxContracts,Min(EntryP_01-S_pin,Open),my_id); print("订单委托:--止损---委托价:"+text(Min(EntryP_01-S_pin,Open))+"---时间="+Text(time));Sign_N=0;} If(Sign_N==12){A_SendOrderEx(Enum_Sell,Enum_Exit,MaxContracts,Max(EntryP_01+Y_Moxe,Open),my_id); print("订单委托:--止盈---委托价:"+text(Max(EntryP_01+Y_Moxe,Open))+"---时间="+Text(time));Sign_N=0;} } //==================================== If(Sign_N_REF[1]!=EntryNum ) { print("EntryNum-[发生变化]---当前:"+text(EntryNum)+"---前一个---"+text(Sign_N_REF[1])+" 时间= "+text(time)); } If(Sign_N_REF[1]==EntryNum ) { print("EntryNum-[相同]-------当前:"+text(EntryNum)+"---前一个---"+text(Sign_N_REF[1])+" 时间= "+text(time)); } }