跨周期取macd的值,取出来的值是错误的
OnInit() { SubscribeBar(Symbol,"30m",BeginDateTime); //自动订阅3mins }OnBar(ArrayRef<Integer> indexs){ MACDDiff2 = XAverage(Data[1].Close, 10 ) - XAverage( Data[1].Close, 26 ) ; AvgMACD2 = XAverage(MACDDiff2,9); MACDValue2 = 2 * (MACDDiff2 - AvgMACD2); Commentary("MACD30=="+Text(MACDValue2)); 这个跨周期出来的MACDValue值在5分钟图表上看不对,在30分钟图表上看是对的,请问如何处理
1.你这个代码不全2.代码有一个订阅,部分基于data1的计算MACDDiff2 你没带前缀那自然是赋值到了data0上的MACDDiff2 你必须根据需要准确的赋值data0.MACDDiff2 data1.MACDDiff2 是不同的
回复:Data[1].MACDDiff2 = XAverage(Data[1].Close, 10 ) - XAverage( Data[1].Close, 26 ) ; Data[1].AvgMACD2 = XAverage(Data[1].MACDDiff2,9); Data[1].MACDValue2 = 2 * (Data[1].MACDDiff2 - Data[1].AvgMACD2); Commentary("MACD30=="+Text(Data[1].MACDValue2));这样写也是一样的,值 也是不对
回复:在vars 中定义了变量Numeric MACDDiff2; Numeric AvgMACD2;Numeric MACDValue2;
回复:range[0:datasourcesize-1]{MACDDiff2 = XAverage(Close, 10 ) - XAverage( Close, 26 ) ;AvgMACD2 = XAverage(MACDDiff2,9);MACDValue2 = 2 * (MACDDiff2 - AvgMACD2);Commentary("MACD=="+Text(MACDValue2)); }你试试这样是不是对的呢
回复:这样在range[0:0]和range[1:1]间无法传值
回复:你这样算的不是MACD这个显然是对的
回复:range[1:datasourcesize-1] { MACDDiff2 = XAverage(Close, 10 ) - XAverage( Close, 26 ) ; AvgMACD2 = XAverage(MACDDiff2,9); MACDValue2 = 2 * (MACDDiff2 - AvgMACD2); Commentary("MACD30=="+Text(MACDValue2)); } Commentary("MACD30=="+Text(MACDValue2));
回复:range1表示对图层1操作了,你图层0没有操作所以第一个commentery在图层1,你在图层0当然看不到然后第二个commentery输出在图层0,但你又没有计算图层0的值,所以是0
回复:请问如何在图层0读取到图层1的macdvalue值
回复:请问大佬如何在图层0读取到图层1的macdvalue值
回复:来来来,零基础课程里面 https://www.bilibili.com/video/BV1rN4y1X7sC?spm_id_from=333.788.videopod.sections&vd_source=0f5409c4d9c360588dbae5f07a75e860 特别讲了容易踩的坑