커뮤니티

문의드립니다.

프로필 이미지
웹피
2017-09-01 05:31:40
110
글번호 112416
답변완료
항상 감사드립니다. 1.지표 150틱 차트에서 300틱차트의 이평선(80일선, 260일선)과 ADX 지표를 불러와서 보고 싶습니다. 그리고 일목균형표도 150틱차트에서 300틱차트의 일목균형표를 불러와서 보고 싶습니다. 주말 즐겁게 보내세요.
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2017-09-01 14:59:29

안녕하세요 예스스탁입니다. 1 input : N(2),P1(80),P2(260); var : idx(0),TT(0),cnt(0),sum1(0),mav1(0),sum2(0),mav2(0); Array : CC[300](0); if Bdate != Bdate[1] Then idx = 0; Else idx = idx+1; TT = idx%N; if bdate != bdate[1] or (Bdate == Bdate[1] and TT < TT[1]) Then{ for cnt = 1 to 299{ CC[cnt] = CC[cnt-1][1]; } } CC[0] = C; if CC[P1] > 0 Then{ sum1 = 0; for cnt = 0 to P1-1{ sum1 = sum1 + CC[cnt]; } mav1 = sum1/P1; plot1(mav1,"이평1"); } if CC[P2] > 0 Then{ sum2 = 0; for cnt = 0 to P2-1{ sum2 = sum2 + CC[cnt]; } mav2 = sum2/P2; plot2(mav2,"이평2"); } 2 ADX ADX의 경우에는 계산법상 타주기가 정확히 계산되지 않습니다. 최대한 비슷하게 작성된 식입낟.참고용으로 보시기 바랍니다. input : N(2),Length(14); var : TT(0),BarCnt(0),cnt(0),MyRange(0); var : DP(0),PlusDM(0),MinusDM(0),TH(0),TL(0); var : DM(0),idx(0); var : SumDMI(0),SumCnt(0),ADXV(0),PreADX(0); Array : HH[61](0),LL[61](0),CC[61](0),TR[61](0),TRange[61](0),DMIV[60](0); Array : PlusDM14[61](0),MinusDM14[61](0); if Bdate != Bdate[1] Then idx = 0; Else idx = idx+1; TT = idx%N; if bdate != bdate[1] or (Bdate == Bdate[1] and TT < TT[1]) Then{ BarCnt = BarCnt+1; HH[0] = H; LL[0] = L; PreADX = ADXV[1]; for cnt = 1 to 60{ HH[cnt] = HH[cnt-1][1]; LL[cnt] = LL[cnt-1][1]; CC[cnt] = CC[cnt-1][1]; TR[cnt] = TR[cnt-1][1]; TRange[cnt] = TRange[cnt-1][1]; PlusDM14[cnt] = PlusDM14[cnt-1][1]; MinusDM14[cnt] = MinusDM14[cnt-1][1]; DMIV[cnt] = DMIV[cnt-1][1]; } } if H > HH[0] Then HH[0] = H; if L < LL[0] Then LL[0] = L; CC[0] = C; if CC[1] > 0 Then{ If CC[1] > HH[0] then TH = CC[1]; else TH = HH[0]; If CC[1] < LL[0] then TL = CC[1]; else TL = LL[0]; TR[0] = TH-TL; } If BarCnt == Length+2 Then { MyRange = Length; DP = 0; DM = 0; PlusDM14[0] = 0; MinusDM14[0] = 0; TRange[0] = 0; For cnt = 0 To MyRange - 1 { If HH[cnt] - HH[cnt+1] < 0 Then PlusDM = 0; Else PlusDM = HH[cnt] - HH[cnt+1]; If LL[cnt+1] - LL[cnt] < 0 Then MinusDM = 0; Else MinusDM = LL[cnt+1] - LL[cnt]; If MinusDM >= PlusDM Then PlusDM = 0; If PlusDM >= MinusDM Then MinusDM = 0; TRange[0] = TRange[0] + TR[cnt]; PlusDM14[0] = PlusDM14[0] + PlusDM; MinusDM14[0] = MinusDM14[0] + MinusDM; } If TRange[0] <> 0 Then { DP = 100 * PlusDM14[0] / TRange[0]; DM = 100 * MinusDM14[0] / TRange[0]; } Else { DP = 0 ; DM = 0; } } Else If BarCnt > Length+2 Then { If HH[0] - HH[1] < 0 Then PlusDM = 0; Else PlusDM = HH[0] - HH[1]; If LL [1] - LL [0] < 0 Then MinusDM = 0; Else MinusDM = LL[1] - LL[0]; If MinusDM >= PlusDM Then PlusDM = 0; If PlusDM >= MinusDM Then MinusDM = 0 ; If MyRange > 0 Then { TRange[0] = TRange[1] - (TRange[1] / MyRange) + TR[0]; PlusDM14[0] = PlusDM14[1] - (PlusDM14[1] / MyRange) + PlusDM; MinusDM14[0] = MinusDM14[1] - (MinusDM14[1] / MyRange) + MinusDM; } If TRange[0] <> 0 Then{ DP = 100 * PlusDM14[0] / TRange[0]; DM = 100 * MinusDM14[0] / TRange[0]; } Else{ DP = 0; DM = 0; } } If DP + DM == 0 Then DMIv[0] = 0; Else DMIv[0] = 100 * AbsValue(DP - DM) / (DP + DM); if DMIV[0] > 0 then { if DMIV[Length] == 0 Then { SumDMI = 0; SumCnt = 0; for cnt = 0 To Length { if DMIV[cnt] > 0 Then{ SumDMI = SumDMI + DMIV[cnt]; SumCnt = SumCnt + 1; } } ADXv = SumDMI / SumCnt; } Else { ADXv = (PreADX * (Length - 1) + DMIV[0]) / Length; } plot1(ADXV); } 3 일목 /*Var : 기준선(0), 전환선(0), 후행스팬(0), 선행스팬1(0), 선행스팬2(0); 전환선 = (Highest(c, 9) + Lowest(c, 9)) / 2; 기준선 = (Highest(c, 26) + Lowest(c, 26)) / 2; 후행스팬 = c ; 선행스팬1 = (전환선 + 기준선) / 2 ; 선행스팬2 = (Highest(c, 52) + Lowest(c, 52)) / 2; Plot1(전환선, "전환선"); Plot2(기준선, "기준선"); Plot3(후행스팬, "후행스팬"); Plot4(선행스팬1,"선행스팬1"); Plot5(선행스팬2, "선행스팬2");*/ input : N(2),전환선기간(9),기준선기간(26),선행스팬2기간(52); var : TT(0),idx(0); var : cnt(0),H1(0),L1(0),H11(0),L11(0),H2(0),L2(0),H22(0),L22(0),H3(0),L3(0); var : 전환선(0),기준선(0),선행스팬1(0),선행스팬2(0); Array : HH[100](0),LL[100](0); if Bdate != Bdate[1] Then idx = 0; Else idx = idx+1; TT = Idx%N; if bdate != bdate[1] or (Bdate == Bdate[1] and TT < TT[1]) Then{ HH[0] = H; LL[0] = L; for cnt = 1 to 99{ HH[cnt] = HH[cnt-1][1]; LL[cnt] = LL[cnt-1][1]; } } if H > HH[0] Then HH[0] = H; if L < LL[0] Then LL[0] = L; if HH[선행스팬2기간+25] > 0 and LL[선행스팬2기간+25] > 0 then{ H1 = HH[0]; L1 = LL[0]; H11 = HH[25]; L11 = LL[25]; H2 = HH[0]; L2 = LL[0]; H22 = HH[25]; L22 = LL[25]; H3 = HH[25]; L3 = LL[25]; for cnt = 0 to 선행스팬2기간-1{ if cnt < 전환선기간 Then{ if HH[cnt] > H1 Then H1 = HH[cnt]; if LL[cnt] < L1 Then L1 = LL[cnt]; if HH[cnt+25] > H11 Then H11 = HH[cnt+25]; if LL[cnt+25] < L11 Then L11 = LL[cnt+25]; } if cnt < 기준선기간 Then{ if HH[cnt] > H2 Then H2 = HH[cnt]; if LL[cnt] < L2 Then L2 = LL[cnt]; if HH[cnt+25] > H22 Then H22 = HH[cnt+25]; if LL[cnt+25] < L22 Then L22 = LL[cnt+25]; } if HH[cnt+25] > H3 Then H3 = HH[cnt+25]; if LL[cnt+25] < L3 Then L3 = LL[cnt+25]; } 전환선 = (H1 + L1)/2; 기준선 = (H2 + L2)/2; 선행스팬1 = ((H11+L11)/2 + (H22+L22)/2) / 2 ; 선행스팬2 = (H3+L3) / 2; plot1(전환선); plot2(기준선); plot3(선행스팬1); plot4(선행스팬2); } 즐거운 하루되세요 > 웹피 님이 쓴 글입니다. > 제목 : 문의드립니다. > 항상 감사드립니다. 1.지표 150틱 차트에서 300틱차트의 이평선(80일선, 260일선)과 ADX 지표를 불러와서 보고 싶습니다. 그리고 일목균형표도 150틱차트에서 300틱차트의 일목균형표를 불러와서 보고 싶습니다. 주말 즐겁게 보내세요.