커뮤니티

수정부탁트립니다 dmi

프로필 이미지
외국인
2026-10-23 11:14:34
73
글번호 233968
답변완료

Input : Length(14) ;

Var : Counter(0), TRange(0), MyRange(Length);

var : PlusDM14(0),MinusDM14(0),PlusDM(0), MinusDM(0);

var : DP(0),DM(0);


If CurrentBar == 1 Then

{

MyRange = Length;

DP = 0;

PlusDM14 = 0;

MinusDM14 = 0;

TRange = 0;

For Counter = 0 To MyRange - 1

{

If High[Counter] - High[Counter+1] < 0 Then

PlusDM = 0;

Else

PlusDM = High[Counter] - High[Counter+1];

If Low[Counter+1] - Low[Counter] < 0 Then

MinusDM = 0;

Else

MinusDM = Low[Counter+1] - Low[Counter];

var1 = PlusDM;

var2 = MinusDM;


If var2 >= var1 Then

PlusDM = 0;


If var1 >= var2 Then

MinusDM = 0;

TRange = TRange + TrueRange[Counter];

PlusDM14 = PlusDM14 + PlusDM;

MinusDM14 = MinusDM14 + MinusDM;

}


If TRange <> 0 Then

{

DP = 100 * PlusDM14 / TRange;

DM = 100 * MinusDM14 / TRange;

}

Else

{

DP = 0 ;

DM = 0;

}

}

Else If CurrentBar > 1 Then

{

If High[0] - High[1] < 0 Then

PlusDM = 0;

Else

PlusDM = High[0] - High[1];


If Low [1] - Low [0] < 0 Then

MinusDM = 0;

Else

MinusDM = Low[1] - Low[0];


var1 = PlusDM;

var2 = MinusDM;


If var2 >= var1 Then

PlusDM = 0;


If var1 >= var2 Then

MinusDM = 0;

If MyRange > 0 Then

{

TRange = TRange[1] - (TRange[1] / MyRange) + TrueRange;

PlusDM14 = PlusDM14[1] - (PlusDM14[1] / MyRange) + PlusDM;

MinusDM14 = MinusDM14[1] - (MinusDM14[1] / MyRange) + MinusDM;

}


If TRange <> 0 Then

{

DP = 100 * PlusDM14 / TRange;

DM = 100 * MinusDM14 / TRange;

}

Else

{

DP = 0;

DM = 0;

}

}


(DP,"DI+"); "출력을 삼각형표시 및 수치 필요합니다 (plot 사용하지않음)"

(DM,"DI-");"출력을 삼각형표시및 수치 필요합니다 (plot 사용하지않음)"

시스템
답변 3
프로필 이미지

예스스탁 예스스탁 답변

2026-10-23 15:40:34

안녕하세요 예스스탁입니다. 삼각형과 수치를 매봉 봉 근처에 표시를 하고자 하시는지 아니면 하단에 별도영역에 표시를 하시는지 표시조건과 영역에 대해 좀더 구체적으로 내용을 올려주시기 바랍니다. 즐거운 하루되세요
프로필 이미지

외국인

2026-10-25 11:11:02

두개 다 각각 부탁드립니다.
프로필 이미지

예스스탁 예스스탁 답변

2026-10-26 10:34:53

안녕하세요 예스스탁입니다. 1 Input : Length(14) ; Var : Counter(0), TRange(0), MyRange(Length); var : PlusDM14(0),MinusDM14(0),PlusDM(0), MinusDM(0); var : DP(0),DM(0); If CurrentBar == 1 Then { MyRange = Length; DP = 0; PlusDM14 = 0; MinusDM14 = 0; TRange = 0; For Counter = 0 To MyRange - 1 { If High[Counter] - High[Counter+1] < 0 Then PlusDM = 0; Else PlusDM = High[Counter] - High[Counter+1]; If Low[Counter+1] - Low[Counter] < 0 Then MinusDM = 0; Else MinusDM = Low[Counter+1] - Low[Counter]; var1 = PlusDM; var2 = MinusDM; If var2 >= var1 Then PlusDM = 0; If var1 >= var2 Then MinusDM = 0; TRange = TRange + TrueRange[Counter]; PlusDM14 = PlusDM14 + PlusDM; MinusDM14 = MinusDM14 + MinusDM; } If TRange <> 0 Then { DP = 100 * PlusDM14 / TRange; DM = 100 * MinusDM14 / TRange; } Else { DP = 0 ; DM = 0; } } Else If CurrentBar > 1 Then { If High[0] - High[1] < 0 Then PlusDM = 0; Else PlusDM = High[0] - High[1]; If Low [1] - Low [0] < 0 Then MinusDM = 0; Else MinusDM = Low[1] - Low[0]; var1 = PlusDM; var2 = MinusDM; If var2 >= var1 Then PlusDM = 0; If var1 >= var2 Then MinusDM = 0; If MyRange > 0 Then { TRange = TRange[1] - (TRange[1] / MyRange) + TrueRange; PlusDM14 = PlusDM14[1] - (PlusDM14[1] / MyRange) + PlusDM; MinusDM14 = MinusDM14[1] - (MinusDM14[1] / MyRange) + MinusDM; } If TRange <> 0 Then { DP = 100 * PlusDM14 / TRange; DM = 100 * MinusDM14 / TRange; } Else { DP = 0; DM = 0; } } var : str(""),tx1(0),tx2(0); str = NewLine+ "DP:"+NumToStr(DP,2)+NewLine+ "DM:"+NumToStr(DM,2); tx1 = Text_New(sDate,sTime,L,"▲"); tx2 = Text_New(sDate,sTime,L,str); Text_SetStyle(tx1,2,0); Text_SetStyle(tx2,2,0); 2 별도 영역에 표시하기 위해서는 plot으로 값을 하나 출력해야 합니다. 0값을 출력하고 해당위치에 표시되게 작성해 드립니다. Input : Length(14) ; Var : Counter(0), TRange(0), MyRange(Length); var : PlusDM14(0),MinusDM14(0),PlusDM(0), MinusDM(0); var : DP(0),DM(0); If CurrentBar == 1 Then { MyRange = Length; DP = 0; PlusDM14 = 0; MinusDM14 = 0; TRange = 0; For Counter = 0 To MyRange - 1 { If High[Counter] - High[Counter+1] < 0 Then PlusDM = 0; Else PlusDM = High[Counter] - High[Counter+1]; If Low[Counter+1] - Low[Counter] < 0 Then MinusDM = 0; Else MinusDM = Low[Counter+1] - Low[Counter]; var1 = PlusDM; var2 = MinusDM; If var2 >= var1 Then PlusDM = 0; If var1 >= var2 Then MinusDM = 0; TRange = TRange + TrueRange[Counter]; PlusDM14 = PlusDM14 + PlusDM; MinusDM14 = MinusDM14 + MinusDM; } If TRange <> 0 Then { DP = 100 * PlusDM14 / TRange; DM = 100 * MinusDM14 / TRange; } Else { DP = 0 ; DM = 0; } } Else If CurrentBar > 1 Then { If High[0] - High[1] < 0 Then PlusDM = 0; Else PlusDM = High[0] - High[1]; If Low [1] - Low [0] < 0 Then MinusDM = 0; Else MinusDM = Low[1] - Low[0]; var1 = PlusDM; var2 = MinusDM; If var2 >= var1 Then PlusDM = 0; If var1 >= var2 Then MinusDM = 0; If MyRange > 0 Then { TRange = TRange[1] - (TRange[1] / MyRange) + TrueRange; PlusDM14 = PlusDM14[1] - (PlusDM14[1] / MyRange) + PlusDM; MinusDM14 = MinusDM14[1] - (MinusDM14[1] / MyRange) + MinusDM; } If TRange <> 0 Then { DP = 100 * PlusDM14 / TRange; DM = 100 * MinusDM14 / TRange; } Else { DP = 0; DM = 0; } } Plot1(0); var : str(""),tx1(0),tx2(0); str = NewLine+ "DP:"+NumToStr(DP,2)+NewLine+ "DM:"+NumToStr(DM,2); tx1 = Text_New_Self(sDate,sTime,0,"▲"); tx2 = Text_New_Self(sDate,sTime,0,str); Text_SetStyle(tx1,2,0); Text_SetStyle(tx2,2,0); 즐거운 하루되세요