커뮤니티

해외선물지표

프로필 이미지
뱅어돔
2017-04-11 12:18:42
164
글번호 108677
답변완료
해외선물에서 장이시작될때 지표값을 새로 초기화해서 화면에 출력시킬려면 어떻게 하는지 도움을 부탁합니다. MACD, TSI,DMI지표입니다 예를들면DMI지표를 그냥사용하면 해선 장마감 후 다시 해선 장이 시작되면 DP,DM값이 그대로 연결되서 시작합니다 장시작시 DP와 DM이 같은 값이나 동등한 값에서 출발할수 있도록 초기화 시키길 원합니다. 수식작성을 도와주세요. 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");
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2017-04-11 18:12:04

안녕하세요 예스스탁입니다. 당일 봉으로만 계산되게 작성해 드립니다. 지정한 봉수가 충족되기 전까지는 모두 0값만 리턴합니다. 식마다 작성법이 달라 시간상 모두 모든 지표에 대해 작성해 드릴수 없습니다. 아래 수식 구조 파악하셔서 이후 지표 수정보완해 작성하시기 바랍니다. 1.MACD Input : Period1(12),Period2(26),Period3(9); Var : Ep1(0), JISU1(0),Ep2(0), JISU2(0),Ep3(0),Jisu3(0); var : MACDVal(0),MACDSig(0),idx(0); Ep1 = 2/(Period1+1); Ep2 = 2/(Period2+1); Ep3 = 2/(Period3+1); if bdate != Bdate[1] Then idx = 0; idx = idx+1; if idx == 1 then { JISU1 = C; JISU2 = C; MACDVal = JiSu1-Jisu2; MACDsig = MACDVal; } else{ JISU1 = C * EP1 + JISU1[1] * (1-EP1); JISU2 = C * EP2 + JISU2[1] * (1-EP2); MACDVal = JiSu1-Jisu2; MACDsig = MACDVal * EP3 + MACDsig[1] * (1-EP3); } plot1(MACDVal); plot2(MACDsig); PlotBaseLine1(0); 2 DMI Input : Length(14) ; Var : idx(0),Counter(0), TRange(0), MyRange(Length), PlusDM14(0), PlusDM(0), MinusDM(0),DP(0); var : MinusDM14(0),DM(0),DMIV(0); if Bdate != Bdate[1] Then idx = 0; idx = idx+1; If idx == Length Then { MyRange = Length; DP = 0; PlusDM14 = 0; TRange = 0; For Counter = 0 To Length - 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]; If MinusDM >= PlusDM Then PlusDM = 0; Else MinusDM = 0; TRange = TRange + TrueRange[Counter]; PlusDM14 = PlusDM14 + PlusDM; MinusDM14 = MinusDM14 + MinusDM; } If TRange <> 0 Then DP = 100 * PlusDM14 / TRange; Else DP = 0 ; } Else If idx > Length 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]; If MinusDM >= PlusDM Then PlusDM = 0; Else 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; } } Else{ DP = 0; DM = 0; } If DP + DM == 0 Then DMIv = 0; Else DMIv = 100 * AbsValue(DP - DM) / (DP + DM); plot1(DMIV); plot2(DP); plot3(DM); 즐거운 하루되세요 > 뱅어돔 님이 쓴 글입니다. > 제목 : 해외선물지표 > 해외선물에서 장이시작될때 지표값을 새로 초기화해서 화면에 출력시킬려면 어떻게 하는지 도움을 부탁합니다. MACD, TSI,DMI지표입니다 예를들면DMI지표를 그냥사용하면 해선 장마감 후 다시 해선 장이 시작되면 DP,DM값이 그대로 연결되서 시작합니다 장시작시 DP와 DM이 같은 값이나 동등한 값에서 출발할수 있도록 초기화 시키길 원합니다. 수식작성을 도와주세요. 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");