macd 金叉 死叉的 时间价格 怎么计算 怎么输出

求macd 金叉 和死叉 之间的 时间 天数 ,怎么计算 怎么 从macd上显示出来

Numeric i; i= NthCon( CrossOver(diff,dea),1); Commentary("金叉:" +Text(i)); 这样不显示

回复:显示呀 我试了 没问题呀

回复:能给个 显示的截图吗

回复:有点问题 ,是从金叉到死叉的 时间间隔 刚按个写法 是第二次金叉的时间 当中包含了一个 死叉的时间

回复:眼睛看毛了你是说 上一个金叉到上一个死叉之间的时间哈?不论哪个在前是吗?Numeric i; Numeric ; i= NthCon( CrossOver(diff,dea),1); //上一个金叉到现在k线数 j= NthCon( CrossUnder(diff,dea),1);//上一个死叉到现在k线数 Numeric k; k=abs(i-j); //这应该就是你要的,如果你要区分金叉死叉的先后,就if判断一下i和j的大小再算

回复:👍

回复:// 增强版:记录所有金叉死叉之间的Bar数目Params Numeric FastLength(5); Numeric SlowLength(20); Numeric MACDLength(60);Vars Series<Numeric> DIF; Series<Numeric> DEA; Series<Numeric> MACD; Series<Numeric> CrossStatus; Series<Numeric> LastCrossBar; Series<Numeric> BarsSinceLastCross; Array<Numeric> CrossBars; // 存储交叉发生的Bar索引 Array<Numeric> CrossTypes; // 存储交叉类型:1-金叉,-1-死叉 Numeric CrossCount; // 交叉计数 Events OnBar(ArrayRef<Integer> indexs) { // 初始化数组 If (CurrentBar == 0) { CrossCount = 0; } // 计算MACD DIF = XAverage(Close, FastLength) - XAverage(Close, SlowLength); DEA = XAverage(DIF, MACDLength); MACD = DIF + DEA; // 绘制指标 PlotNumeric("DIF", DIF); PlotNumeric("DEA", DEA); PlotNumeric("MACD", MACD); // 检测交叉 Bool IsGoldenCross = (DIF > DEA && DIF[1] <= DEA[1]); Bool IsDeadCross = (DIF < DEA && DIF[1] >= DEA[1]); If (IsGoldenCross) { CrossStatus = 1; LastCrossBar = CurrentBar; BarsSinceLastCross = 0; // 记录交叉信息 CrossCount = CrossCount + 1; CrossBars[CrossCount] = CurrentBar; CrossTypes[CrossCount] = 1; Numeric i; i= NthCon( CrossOver(DIF,DEA),1); //上一个金叉到现在k线数 Commentary("金叉 #" + Text(i) + " 出现在Bar: " + Text(i)); // 计算与上次交叉之间的Bar数 If (CrossCount > 1) { Numeric BarsBetween = CurrentBar - CrossBars[CrossCount-1]; Commentary("与上次交叉相隔 " + Text(BarsBetween) + " 个Bar"); } } Else If (IsDeadCross) { CrossStatus = -1; LastCrossBar = CurrentBar; BarsSinceLastCross = 0; // 记录交叉信息 CrossCount = CrossCount + 1; CrossBars[CrossCount] = CurrentBar; CrossTypes[CrossCount] = -1; Numeric j ; j= NthCon( CrossUnder(DIF,DEA),1);//上一个死叉到现在k线数 Commentary("死叉 #" + Text(CrossCount) + " 出现在Bar: " + Text(CurrentBar)); // 计算与上次交叉之间的Bar数 If (CrossCount > 1) { Numeric BarsBetween = CurrentBar - CrossBars[CrossCount-1]; Commentary("与上次交叉相隔 " + Text(BarsBetween) + " 个Bar"); } } Else { CrossStatus = 0; BarsSinceLastCross = CurrentBar - LastCrossBar; } Return;} 全部的代码 显示不出来 commentary的 内容来

回复:j那个 还是用的原来写 也不出 commentary 的显示

回复:写这是啥.....基础课都没学 别用AI了 全是bug而且你自个AI比一般的AI更智障 从来没见过MACD = DIF + DEA;

回复:看AI不好使 ,还是来 这里 请教了呢 帮我改下 那个macd 怎么计算 不重要 重要的是 commentary 不显示

回复:大神 !基础课 从哪里学?给个网址 或者 课程学习流程吧