커뮤니티
부탁드립니다
수고하십니다
아래수식을 오류 없게 수정부탁드립니다
Input: Period(14);
Input: adx_width1(2), adx_width2(4), adx_width3(7);
Input: plus_gold_width(3), plus_dead_width(1);
Input: minus_dead_width(3), minus_gold_width(1);
Input: price_offset(0.5);
Var: ADXv(0), DP(0), DM(0);
Var: adx_line_width(0), plus_line_width(0), minus_line_width(0);
Var: text_color(0), display_price(0);
//Calculate ADX values
ADXv = ADX(Period);
DP = DiPlus(Period);
DM = DiMinus(Period);
//Determine ADX line width based on ADX level
If ADXv >= 20 and ADXv <= 50 Then
adx_line_width = adx_width2
Else If ADXv < 20 Then
adx_line_width = adx_width1
Else
adx_line_width = adx_width3;
//Determine +DI line width
If DP > DM Then
plus_line_width = plus_gold_width
Else
plus_line_width = plus_dead_width;
//Determine -DI line width
If DP < DM Then
minus_line_width = minus_dead_width
Else
minus_line_width = minus_gold_width;
//Plot indicator lines
Plot1(ADXv, "ADX", Def, Def, adx_line_width);
Plot2(DP, "+DI", Def, Def, plus_line_width);
Plot3(DM, "-DI", Def, Def, minus_line_width);
//Display price with ADX strength and DI condition
display_price = High + price_offset;
If ADXv >= 20 and ADXv <= 50 Then Begin
If DP > DM Then Begin
text_color = RGB(0, 255, 255); //Cyan
DrawText("ADX:" + NumToStr(ADXv, 2) + " +DI>-DI", display_price, text_color);
End
Else Begin
text_color = RGB(255, 255, 0); //Yellow
DrawText("ADX:" + NumToStr(ADXv, 2) + " +DI<-DI", display_price, text_color);
End;
End
Else If ADXv < 20 Then Begin
text_color = RGB(128, 128, 128); //Gray
DrawText("ADX:" + NumToStr(ADXv, 2) + " Weak", display_price, text_color);
End
Else Begin
If DP > DM Then Begin
text_color = RGB(255, 165, 0); //Orange
DrawText("ADX:" + NumToStr(ADXv, 2) + " Strong +DI", display_price, text_color);
End
Else Begin
text_color = RGB(255, 0, 0); //Red
DrawText("ADX:" + NumToStr(ADXv, 2) + " Strong -DI", display_price, text_color);
End;
End;
답변 1
예스스탁 예스스탁 답변
2025-11-03 08:49:48