커뮤니티

지표식 문의

프로필 이미지
한글나라
2020-03-22 01:40:24
353
글번호 137082
답변완료
지표식 문의드립니다. 특정값의 adx를 구하는 지표식을 만들고 싶습니다. 즉 adx는 당일고가 당일저가 전일고가 전일저가를 var1,2,3,4로 대체한 식을 알고 싶습니다.
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2020-03-24 11:01:25

안녕하세요 예스스탁입니다. 수식을 모두 풀어서 고가는 var1, 저가는 var2, 종가는 var3으로 대체해 드립니다. var1~var3에 값 지정하시면 됩니다. Input : Length(14) ; Var : Counter(0), TRange(0), MyRange(Length), PlusDM14(0),MinusDM14(0),PlusDM(0), MinusDM(0); var : DP(0),DM(0),DMIv(0),ADXV(0); Var : CummDMI(0), Return(0); var : TH(0),TL(0),TR(0); var1 = h; var2 = L; var3 = c; If var3[1] > var1 then TH = var3[1]; else TH = var1; If var3[1] < var2[0] then TL = var3[1]; else TL = var2[0]; TR = TH-TL; If CurrentBar == 1 Then Begin MyRange = Length; DP = 0; PlusDM14 = 0; DM = 0; MinusDM14 = 0; TRange = 0; For Counter = 0 To MyRange - 1 Begin If var1[Counter] - var1[Counter+1] < 0 Then PlusDM = 0; Else PlusDM = var1[Counter] - var1[Counter+1]; If var2[Counter+1] - var2[Counter] < 0 Then MinusDM = 0; Else MinusDM = var2[Counter+1] - var2[Counter]; value1 = PlusDM; value2 = MinusDM; If value1 >= value2 Then MinusDM = 0; If value2 >= value1 Then PlusDM = 0; TRange = TRange + TR[Counter]; PlusDM14 = PlusDM14 + PlusDM; MinusDM14 = MinusDM14 + MinusDM; End; If TRange <> 0 Then DP = 100 * PlusDM14 / TRange; Else DP = 0 ; If TRange <> 0 Then DM = 100 * MinusDM14 / TRange; Else DM = 0; End Else If CurrentBar > 1 Then { If var1[0] - var1[1] < 0 Then PlusDM = 0; Else PlusDM = var1[0] - var1[1]; If var2[1] - var2[0] < 0 Then MinusDM = 0; Else MinusDM = var2[1] - var2[0]; value1 = PlusDM; value2 = MinusDM; If value1 >= value2 Then MinusDM = 0; If value2 >= value1 Then PlusDM = 0; If MyRange > 0 Then Begin TRange = TRange[1] - (TRange[1] / MyRange) + TrueRange; PlusDM14 = PlusDM14[1] - (PlusDM14[1] / MyRange) + PlusDM; MinusDM14 = MinusDM14[1] - (MinusDM14[1] / MyRange) + MinusDM; End; If TRange <> 0 Then DP = 100 * PlusDM14 / TRange; Else DP = 0 ; If TRange <> 0 Then DM = 100 * MinusDM14 / TRange; Else DM = 0; } If DP + DM == 0 Then DMIv = 0; Else DMIv = 100 * AbsValue(DP - DM) / (DP + DM); If CurrentBar >= 1 AND Length > 0 Then Begin If CurrentBar < Length Then begin CummDMI = 0; for Counter = 0 To CurrentBar - 1 Begin CummDMI = CummDMI + DMIV[Counter]; End; Return = CummDMI / CurrentBar; End Else Return = (ADXv[1] * (Length - 1) + DMIv) / Length; End; ADXv = Return; plot1(DP); plot2(DM); plot3(DMIV); plot4(ADXv); 즐거운 하루되세요 > 한글나라 님이 쓴 글입니다. > 제목 : 지표식 문의 > 지표식 문의드립니다. 특정값의 adx를 구하는 지표식을 만들고 싶습니다. 즉 adx는 당일고가 당일저가 전일고가 전일저가를 var1,2,3,4로 대체한 식을 알고 싶습니다.