macd

//------------------------------------------------------------------------

// 简称: a1

// 名称:

// 类别: 公式应用

// 类型: 用户应用

// 输出: Void

//------------------------------------------------------------------------

Params

Numeric FastLength(12);

Numeric SlowLength(26);

Numeric MACDLength(9);

Vars

Numeric MACDDiff;            

Numeric AvgMACD;

Numeric MACDValue;

       

Events

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

OnBar(ArrayRef<Integer> indexs)

{

if (CurrentBar==0)

{

fast_ma = close;        

slow_ma = close;

MACDDiff = fast_ma - slow_ma;

AvgMACD = macddiff;

}else

{

//XAverage = XAvgValue[1] + sFcactor * (Price - XAvgValue[1]) ;

//sFcactor =2 / (length *+1 );

fast_ma = fast_ma[1] + Close-fast_ma[1])*2/(fastlength+1);//XAverage(Close,Fastlength)

slow_ma = slow_ma[1] + Close-slow_ma[1])*2/(slowlength+1);//XAverage(Close,SLowlength)

MACDDiff = fast_ma - slow_ma ;//XAverage(Close,Fastlength) - XAverage(Close,SLowlength);

//macddiff = fast_ma[1] + (x-fast_ma[1])*2/(fastlength+1) - slow_ma[1] - (x-slow_ma[1])*2/(SLowlength+1)

AvgMACD = avgmacd[1] + (macddiff-vgmacd[1])*2/(MACDlength+1);//XAverage( MACDDiff,MACDlength);

}    

//MACDDiff = AvgMACD

//MACDDiff = avgmacd[1] + (MACDDiff-avgmacd[1])*2/(MACDlength+1)

       //(MACDlength+1)*MACDDiff = avgmacd[1]*(MACDlength+1) + (MACDDiff-avgmacd[1])*2

       //(MACDlength +1 -2) MACDDiff = avgmacd[1]*(MACDlength+1) -2*(avgmacd[1]);

       //MACDDiff =(avgmacd[1]*(MACDlength+1) -2* (avgmacd[1]))/MACDlength-1);

//MACDDiff = fast_ma - slow_ma

//MACDDiff = fast_ma[1] + (x-fast_ma[1]*2/(fastlength+1) - slow_ma[1] - (x-slow_ma[1])*2/(SLowlength+1)

//(x-fast_ma[1])*2/(fastlength+1) - (x-slow_ma[1])*2/(SLowlength+1) = MACDDiff - fast_ma[1] + slow_ma[1]

//(SLowlength+1)*(x-fast_ma[1]) - (fastlength+1) * (x-slow_ma[1]) = (fastlength+1) * (SLowlength+1)*( MACDDiff - fast_ma[1] + slow_ma[1])/2

//(SLowlength+1-fastlength-1)x = (fastlength+1) * (SLowlength+1)*( MACDDiff - fast_ma[1] + slow_ma[1])/2 +  (SLowlength+1)*fast_ma[1]-(fastlength+1)* slow_ma[1]

pen2.line("MACDDiff",MACDDiff);

pen2.line("MACDDEA",AvgMACD);

numeric x;

x=((fastlength+1) * (SLowlength+1) * ((avgmacd[1]*(MACDlength+1) -2* (avgmacd[1]))/MACDlength-1) - fast_ma[1] + slow_ma[1])/2 + (SLowlength+1)*fast_ma[1]-(fastlength+1)* slow_ma[1])/(SLowlength-fastlength);

pen1.line("x",x);

MACDValue =(MACDDiff - AvgMACD);

If (MACDValue >= 0)

   pen2.setoption("MACD","color",Red);

Else

   pen2.setoption("MACD","color",Green);

pen2.barv("MACD",MACDValue);

pen1.line("零线",0);

}    

//------------------------------------------------------------------------

// 编译版本 2025/04/12 233019

// 版权所有 diaoningjun

// 更改声明 TradeBlazer Software保留对TradeBlazer平台

// 每一版本的TradeBlazer公式修改和重写的权利

//------------------------------------------------------------------------

macd
MACD指标修改
MACD逆向
画macd柱线
macd异常
MACD逆向算法
如何调取MACD数值?
macd一定义字段
请问下MACD值怎么回溯?
【求助】MACD反转表达

这是什么意思呢?