//------------------------------------------------------------------------
// 简称: 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公式修改和重写的权利
//------------------------------------------------------------------------
这是什么意思呢?