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值