Thư viện AFL
Thư viện AFL
ADXVMA - Chỉ báo - Mã AFL của Amibroker

ADXVMA - Chỉ báo - Mã AFL của Amibroker

ADXVMA là đường trung bình động biến động sử dụng ADX làm khái niệm cốt lõi để xác định xu hướng. Bộ lọc xu hướng đóng vai trò hỗ trợ trong các thị trường có xu hướng tăng (màu xanh lá cây) và kháng cự trong các thị trường có xu hướng giảm (màu đỏ). Chỉ báo cũng vẽ vùng trung lập (màu vàng) có thể được sử dụng để xác định thị trường đi ngang/biến động.

Trên đây là biểu đồ 3 phút của Nifty Futures

Đây là Mã AFL Amibroker cho Chỉ báo ADXVMA

Liên quan

Mã nguồn (.afl)
//Coded by Rajandran R
//Founder of www.marketcalls.in
//Coded on 20th Sep 2023


_SECTION_BEGIN("ADXVMA Indicator");



adxvma_period = param("ADXVMA Period",15,1,100,1);
atr_period = Param("ATR Period",200,1,300,1);


ups = 0.0;
downs = 0.0;
index = 0.0;
adxvma = 0.0;
trend = 0;
up = 0.0;
down = 0.0;

k = 1.0 / adxvma_period;

volatility = atr(atr_period);

currentUp = Max((Close - Ref(Close,-1)),0);
currentDown = Max((Ref(Close,-1) - Close),0);

for(i=1;i<BarCount;i++)
{
up[i] = (1 - k) * nz(up[i-1]) + (k * currentUp[i]);
down[i] = (1 - k) * nz(down[i-1]) + (k * currentDown[i]);
}


//Plot(up,"up",colorGreen,styleLine|styleThick);
//Plot(down,"down",colorRed,styleLine|styleThick);

isum = up + down;

fractionUp = 0.0;
fractionDown = 0.0;

fractionUp = IIf(iSum>0,up/iSum,0);
fractionDown = IIf(iSum>0,down/iSum,0);

for(i=1;i<BarCount;i++)
{
ups[i] = (1 - k) * nz(ups[i-1]) + (k * fractionUp[i]);
downs[i] = (1 - k) * nz(downs[i-1]) + (k * fractionDown[i]);
}

normDiff = abs(ups - downs);
normSum = ups + downs;

normFraction = IIf(normSum > 0.0, normDiff / normSum, 0);


for(i=1;i<BarCount;i++)
{
index[i]= (1 - k) * Nz(index[i-1]) + (k * normFraction[i]);
ups[i]= (1 - k) * Nz(ups[i-1]) + (k * fractionUp[i]);
downs[i] = (1 - k) * Nz(downs[i-1]) + (k * fractionDown[i]);
}

epsilon = 0.1 * Nz(Ref(volatility,-1));
hhp = Ref(hhv(index, adxvma_period),-1);
llp = Ref(llv(index, adxvma_period),-1);

ihhv = max(index, hhp);
illv = min(index, llp);

vIndex = 0.0;

vIndex = IIf((ihhv - illv) > 0.0, (index - illv) / (ihhv - illv), 0);
adxvma = 0;

for(i=1;i<BarCount;i++)
{
adxvma[i] = (1 - k * vIndex[i]) * Nz(adxvma[i-1]) + (k * vIndex[i] * close[i]);
}




color = IIf(adxvma>Ref(adxvma,-1),colorGreen,IIf(adxvma<Ref(adxvma,-1),colorRed,colorYellow));


Plot(adxvma,"ADXVMA",color,styleThick);

Plot( C, "Price", ParamColor( "Color", colorDefault ), ParamStyle( "Style", styleCandle, maskPrice ) );



_SECTION_END();

Hướng dẫn: Copy đoạn mã trên, mở AmiBroker Formula Editor, dán vào và lưu lại với tên tương ứng.