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

//------------------------------------------------------------------------

// 简称: 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公式修改和重写的权利

//------------------------------------------------------------------------

求帮看下,信号消失是哪里出问题了
请老师指教信号闪烁的问题
老师帮忙看下为什么信号一直闪烁
请问老师关于跨周期信号闪烁问题
请老师帮忙看下,代码问题出在哪里哦
信号闪烁问题
信号闪烁问题
信号闪烁问题
信号闪烁问题
老师,信号闪烁怎么处理

建议投稿

在哪里投稿