커뮤니티

타종목 적용 DMI

프로필 이미지
스로우
2014-02-21 01:01:01
182
글번호 72776
답변완료
Input : Period(14) ; var : DMIv(0),DP(0),DM(0); DMIv = DMI(Period); DP = DIPlus(Period); DM = DIMinus(Period); Plot1(DMIv, "Directional Movement Index"); Plot2(DP, "DIPlus"); Plot3(DM, "DIMinus"); if crossup(dp,dm) Then Plot4(999, "추세상방"); if crossup(dm,dp) Then Plot5(999, "추세하방"); ########## 1) 위의 DMI식에 Data1(c) 값대신에 따로 계산된 변수 "VAR1" 값을 적용하고자 합니다 2) 고점저점을 선으로 표시 ==> 주간장 12시00분 이후부터 15시30분까지 고점과 저점 ==> 당일 야간장부터(18:00) 표시하여 다음 주간장까지 (15:30) 표시 ==> 주간장 12시00분 이후부터 야간장 끝나는 익일 05시00분 까지 고점과 저점 ==> 다음 주간장 시작부터(09:00) 야간장 끝날때(익일05:00) 까지 표시
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2014-02-21 14:24:45

안녕하세요 예스스탁입니다. Inputs: Length(10); var : TH(0),TL(0),TR(0); Var : Price(0),Counter(0), TRange(0), MyRange(Length), PlusDM14(0), PlusDM(0), MinusDM(0),DPlus(0); Var : MinusDM14(0), Dminus(0),DMIv(0), ADXCounter(0), ADXCummDMI(0), ADXReturn(0),Return(0),GADX(0); var : H1(0),L1(0),Hv1(0),Lv1(0),H2(0),L2(0),Hv2(0),Lv2(0); Price = var1; If Price[1] > Price then TH = Price[1]; else TH = Price; If Price[1] < Price then TL = Price[1]; else TL = Price; TR = TH - TL; If CurrentBar == 1 Then { MyRange = Length; DPlus = 0; PlusDM14 = 0; MinusDM14 = 0; TRange = 0; For Counter = 0 To MyRange - 1 { If Price[Counter] - Price[Counter+1] < 0 Then PlusDM = 0; Else PlusDM = Price[Counter] - Price[Counter+1]; If Price[Counter+1] - Price[Counter] < 0 Then MinusDM = 0; Else MinusDM = Price[Counter+1] - Price[Counter]; If MinusDM >= PlusDM Then PlusDM = 0; If PlusDM >= MinusDM Then MinusDM = 0; TRange = TRange + TR[Counter]; PlusDM14 = PlusDM14 + PlusDM; MinusDM14 = MinusDM14 + MinusDM; } If TRange <> 0 Then DPlus = 100 * PlusDM14 / TRange; Else DPlus = 0 ; If TRange <> 0 Then DMinus = 100 * MinusDM14 / TRange; Else DMinus = 0; } ##dp Else If CurrentBar > 1 Then { If Price[0] - Price[1] < 0 Then PlusDM = 0; Else PlusDM = Price[0] - Price[1]; If Price[1] - Price[0] < 0 Then MinusDM = 0; Else MinusDM = Price[1] - Price[0]; If MinusDM >= PlusDM Then PlusDM = 0; If PlusDM >= MinusDM Then MinusDM = 0 ; If MyRange > 0 Then Begin TRange = TRange[1] - (TRange[1] / MyRange) + TR; PlusDM14 = PlusDM14[1] - (PlusDM14[1] / MyRange) + PlusDM; MinusDM14 = MinusDM14[1] - (MinusDM14[1] / MyRange) + MinusDM; End; If TRange <> 0 Then DPlus = 100 * PlusDM14 / TRange; Else DPlus = 0 ; If TRange <> 0 Then DMinus = 100 * MinusDM14 / TRange; Else DMinus = 0; } If DPlus + DMinus == 0 Then DMIv = 0; Else DMIv = 100 * AbsValue(DPlus - DMinus) / (DPlus + DMinus); Return = 0; If CurrentBar >= 1 AND Length > 0 Then Begin If CurrentBar < Length Then begin ADXCummDMI = 0; for Counter = 0 To CurrentBar - 1 Begin ADXCummDMI = ADxCummDMI + DMIV[Counter]; End; Return = ADXCummDMI / CurrentBar; End Else Return = (GADX[1] * (Length - 1) + DMIv) / Length; End; GADX = Return; plot3(Dmiv); plot2(Dplus); plot3(Dminus); if crossup(Dplus,Dminus) Then Plot4(999, "추세상방"); if crossup(Dminus,Dplus) Then Plot5(999, "추세하방"); if stime == 120000 or (stime > 120000 and stime[1] < 120000) Then{ H1 = DMiv; L1 = DMiv; } if stime >= 120000 and stime <= 151500 Then{ if DMiv > H1 Then H1 = DMiv; if DMiv < L1 Then L1 = DMiv; } if stime == 180000 or (stime > 180000 and stime[1] < 180000) then{ Hv1 = H1; Lv1 = L1; } plot6(Hv1); plot7(Lv1); if stime == 120000 or (stime > 120000 and stime[1] < 120000) Then{ H2 = DMiv; L2 = DMiv; } if stime >= 120000 or stime < 90000 Then{ if DMiv > H2 Then H2 = DMiv; if DMiv < L2 Then L2 = DMiv; } if stime == 90000 or (stime > 90000 and stime[1] < 90000) then{ Hv2 = H2; Lv2 = L2; } plot8(Hv2); plot9(Lv2); 즐거운 하루되세요 > 스로우 님이 쓴 글입니다. > 제목 : 타종목 적용 DMI > Input : Period(14) ; var : DMIv(0),DP(0),DM(0); DMIv = DMI(Period); DP = DIPlus(Period); DM = DIMinus(Period); Plot1(DMIv, "Directional Movement Index"); Plot2(DP, "DIPlus"); Plot3(DM, "DIMinus"); if crossup(dp,dm) Then Plot4(999, "추세상방"); if crossup(dm,dp) Then Plot5(999, "추세하방"); ########## 1) 위의 DMI식에 Data1(c) 값대신에 따로 계산된 변수 "VAR1" 값을 적용하고자 합니다 2) 고점저점을 선으로 표시 ==> 주간장 12시00분 이후부터 15시30분까지 고점과 저점 ==> 당일 야간장부터(18:00) 표시하여 다음 주간장까지 (15:30) 표시 ==> 주간장 12시00분 이후부터 야간장 끝나는 익일 05시00분 까지 고점과 저점 ==> 다음 주간장 시작부터(09:00) 야간장 끝날때(익일05:00) 까지 표시