如何获取最近一次满足条件的Bar的收盘价

需求:本指标订阅了多个图层,现需要获取data1层(60分钟)的数据,获取距今最近一次白色MA1与紫色MA3金叉时,获取对应Bar的收盘价A。同时以A点的价格画出一条水平价格线。并用该价格A与最新的收盘价B计算比值()。

问题:我的代码如下,要求输出的这个A值本来应该是我下图箭头所指的K线的收盘价,但目前这个A值输出为0,没有达到我想要的结果。不知道是哪里写错了,求助。

Params

   //此处添加参数

   //Numeric millsecs(1000);

Vars

   //此处添加变量

   //Numeric avg;

   //Global Integer timerId;

   Series<Numeric> MA1;

   Series<Numeric> MA2;

   Series<Numeric> MA3;

   Series<Numeric> bizhi;

   Series<Numeric> A;


Events

   //初始化事件函数,策略运行期间,首先运行且只有一次,应用在订阅数据等操作

   OnInit()

   {        

       //与数据源有关

       Range[0:DataCount-1]

       {

           SubscribeBar(  Symbol, "1h",   BeginDateTime  );

       }

   }


   //Bar更新事件函数,参数indexs表示变化的数据源图层ID数组

   OnBar(ArrayRef<Integer> indexs)

   {

       //avg=calcAvg(high,low);

       MA1 = Data[1].MA(Data[1].Close,5);

       MA3 = Data[1].MA(Data[1].Close,20);

       If(  Data[1].CrossOver(  MA1 ,  MA3  )  )

       {

           A = Data[1].Close;

           bizhi=  Close  /  Data[1].Close ;

           

       }

       PlotNumeric("A",A);//这个A值本来应该是我下图箭头所指的K线的收盘价,但目前这个A值输出为0,没有达到我想要的结果

       PlotNumeric("MA1",MA1);

       PlotNumeric("MA3",MA3);


   }



满足条件后,当前bar的低点
如何获取最近平仓的价格
求上一次条件X满足到现在的周期数
满足条件的周期统计问题
如何在15分钟的bar周期获取日线级别的收盘价并用于计算?
如何获取所有bar的序号
求连续满足某条件
最近一次平仓盈亏
请问如何获取特定时间bar的值?
主图BAR满足条件输出文字

你这段代码其实等效于

 data0.MA1 = Data[1].MA(Data[1].Close,5);

 data0.MA3 = Data[1].MA(Data[1].Close,20);

       If(  Data[1].CrossOver(  data1.MA1 ,  data1.MA3  )  )

自己看看问题在哪里?

感谢帮助,明白了🤝

没弄清图层

你对data0 的MA1和MA3 赋值了

但没有对data1 的MA1和MA3 赋值

但你的条件Data[1].CrossOver(  MA1 ,  MA3  )  计算的又是data1的金死叉

这个图很清晰,明白了,感谢指导🤝

你说得比较清楚了

王老师 你很久没夸我了

😁