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

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

MACD金叉死叉
MACD金叉死叉的分别
macd 金叉死叉周期确认
macd金叉和死叉
请教macd金叉死叉问题
MACD0轴附近形成金叉或者死叉怎么写呢
求macd金叉买 死叉平的交易策略
计算具体发生金叉死叉位置得价格
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 不显示


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