信号闪烁 老师帮看下问题在哪里

//------------------------------------------------------------------------// 简称: rfyr0323// 名称: 客户策略0323// 类别: 公式应用// 类型: 用户应用// 输出: Void//------------------------------------------------------------------------Params //此处添加参数 Numeric len1(20); Numeric len3(40); Numeric lots(1); Numeric len2(10); Numeric Length(14); Numeric SlowLength(3); Numeric SmoothLength(3);Vars //此处添加变量 Series<Numeric> ma20_a; Series<Numeric> ma40_a; Series<Numeric> ma20_b; Series<Numeric> ma10; Bool con1; Bool con2; Bool con3; Bool con4; Bool con5; Bool con6; Bool con7; Series<Numeric> HighestValue; Series<Numeric> LowestValue; Series<Numeric> KValue; Numeric SumHLValue; Numeric SumCLValue; Numeric DValue; Numeric JValue; Bool con8; Bool con9; Bool con10;Defs //此处添加公式函数 Events //此处实现事件函数 //初始化事件函数,策略运行期间,首先运行且只有一次 OnInit() { // SubscribeBar(data1.Symbol,\"30m\",data1.BeginDateTime); } //Bar更新事件函数,参数indexs表示变化的数据源图层ID数组 OnBar(ArrayRef<Integer> indexs) { data0.ma20_a=XAverage(data0.Close,len1);//计算20日均线 data0.ma10=XAverage(data0.Close,len2);//计算10日均线 data1.ma40_a=data1.XAverage(data1.Close[1],len3);//计算40日均线 PlotNumeric(\"ma20_b\",ma20_a); PlotNumeric(\"ma10\",ma10); data1.PlotNumeric(\"ma40_a\",ma40_a); data1.PlotNumeric(\"data1.Close\",data1.Close); // con1=data0.Close>ma20_a;//收盘在20日均线上方 //con2=CrossUnder(data0.Close,ma20_a);//收盘价下穿20日均线 con3=data0.Close[1]-data0.Open[1]<20;//前一根K线收盘价和开盘价是否差距超过20 con10=data0.Open[1]-data0.Close[1]<20;//前一根K线收盘价和开盘价是否差距超过20 con4=data0.Close[0]>=data0.Close[1] And data0.Open[0]>data0.Open[2] And data0.Open[0]>data0.Close[2];//底针形 con5=data0.Close[0]<=data0.Close[1] And data0.Open[0]<data0.Open[2] And data0.Open[0]<data0.Close[2];//顶针型 //KDJ计算指标 { HighestValue = data0.HighestFC(data0.High, Length); LowestValue = data0.LowestFC(data0.Low, Length); SumHLValue = data0.SummationFC(HighestValue-LowestValue,SlowLength); SumCLValue = data0.SummationFC(data0.Close - LowestValue,SlowLength); If(SumHLValue <> 0) { KValue = SumCLValue/SumHLValue*100; }Else { KValue = 0; } DValue = data0.AverageFC(KValue,SmoothLength); JValue=3*data0.KValue - 2*data0.DValue; //PlotNumeric(\"K\",data0.KValue); //PlotNumeric(\"D\",DValue); //PlotNumeric(\"J\",J); //PlotNumeric(\"Ref1\",20); //PlotNumeric(\"Ref2\",50); } con6=JValue>50; con7=JValue<50; con8=data1.Close[1]>data1.ma40_a; con9=data1.Close[1]<data1.ma40_a; //多头开仓条件 If(MarketPosition==0 And con8 ) { If (con3 And con10 And con4 And con6) { data0.Buy(lots,(data0.Close[1]-data0.open[1])*0.67+data0.open[1]); } } //空头开仓条件 If (MarketPosition==0 And con9 ) { If (con3 And con10 And con5 And con7) { SellShort(lots,(data0.Open[1]-data0.Close[1])*0.67+data0.close[1]); }} //多头平仓条件 If (data0.Close-longEntryPrice>5) { Sell(lots,data0.High); } If(longEntryPrice-data0.Close>10) { Sell(lots,data0.Low); } If (CrossUnder(data0.Close,ma10)) { Sell(lots,data0.Low); } //空头平仓条件 If (data0.Close-shortEntryPrice>10) { BuyToCover(lots,data0.High) ; } If (shortEntryPrice-data0.Close>5) { BuyToCover(lots,data0.Low) ; } If (CrossOver(data0.Close,ma10)) { BuyToCover(lots,data0.Low); }} //------------------------------------------------------------------------// 编译版本 2023/03/23 113518// 版权所有 20220208161940178// 更改声明 TradeBlazer Software保留对TradeBlazer平台// 每一版本的TradeBlazer公式修改和重写的权利//------------------------------------------------------------------------

建议投稿

回复:在哪里投稿