커뮤니티

수식부탁드립니다.

프로필 이미지
천년대로
2022-05-26 17:01:09
1124
글번호 159319
답변완료
안녕하세요? 수고에 감사드립니다. 아래의 dmi지표수식을 30분봉의 매수,매도 신호를 5분봉에 전환하는식을 부탁합니다. 감사합니다. input : Period(14); var : DP(0),DM(0),adxv(0); DP = ema(iff(H-H[1]>0 && H-H[1]>L[1]-L,H-H[1],0),Period)/ ema(max(max(H-L,abs(C[1]-H)),abs(C[1]-L)),Period)*100; DM = ema(iff(L[1]-L>0 && H-H[1]<L[1]-L,L[1]-L,0),Period)/ ema(max(max(H-L,abs(C[1]-H)),abs(C[1]-L)),Period)*100; adxv = Ema(abs(DP-DM)/(DP+DM),period)*100; # 매수/매도청산 If CrossUP(dp,dm) Then { Buy(); } # 매수청산 If CrossDown(dp,dm) Then { Sell(); }
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2022-05-27 10:05:52

안녕하세요 예스스탁입니다. 지수이평이 근간이 되는 지표는 과거봉수에 따라 값이 다릅니다. 특히나 타주기를 계산할 경우 상대적으로 봉수가 작아져 실제 보시는 30분봉의 값과 다를수 있습니다. 이용에 참고하시기 바랍니다. input : 타주기분(30),Period(14); var : S1(0),D1(0),TM(0),TF(0),idx(0),EP(0); var : CC(0),CC1(0),HH(0),HH1(0),LL(0),LL1(0); var : Ema1(0),PreEma1(0),Ema2(0),PreEma2(0),Ema3(0),PreEma3(0); var : DP(0),DM(0),Adxv(0),PreAdxv(0),PreDP(0),PreDM(0); Ep = 2/(Period+1); if Bdate != Bdate[1] Then { S1 = TimeToMinutes(stime); D1 = sdate; } if D1 > 0 then{ if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; TF = TM%타주기분; if Bdate != Bdate[1] or (Bdate == Bdate[1] and 타주기분 > 1 and TF < TF[1]) or (Bdate == Bdate[1] and 타주기분 > 1 and TM >= TM[1]+타주기분) or (Bdate == Bdate[1] and 타주기분 == 1 and TM > TM[1]) Then { TL_New(sDate,sTime,0,sDate,sTime,99999999); HH = H; LL = L; HH1 = HH[1]; LL1 = LL[1]; CC1 = CC[1]; idx = idx+1; PreEma1 = Ema1[1]; PreEma2 = Ema2[1]; PreEma3 = Ema3[1]; PreAdXv = ADXv[1]; PreDP = DP[1]; PreDM = DM[1]; } if H > HH Then HH = H; if L < LL Then LL = L; CC = C; if HH1 > 0 Then { if HH-HH1>0 && HH-HH1 > LL1-LL then var1 = HH-HH1; Else var1 = 0; if LL1-LL>0 && HH-HH1 < LL1-LL then var2 = LL1-LL; Else var2 = 0; Var3 = max(HH-LL,abs(CC1-HH),abs(CC1-LL)); if idx <= 1 Then { Ema1 = var1; Ema2 = var2; Ema3 = var3; DP = Ema1/Ema3*100; DM = Ema2/Ema3*100; var4 = abs(DP-DM)/(DP+DM)*100; adxv = var4; } Else { Ema1 = var1 * EP + PreEma1 * (1-EP); Ema2 = var2 * EP + PreEma2 * (1-EP); Ema3 = var3 * EP + PreEma3 * (1-EP); DP = Ema1/Ema3*100; DM = Ema2/Ema3*100; var4 = abs(DP-DM)/(DP+DM)*100; adxv = var4 * EP + PreAdxv * (1-EP); } If DP > DM and PreDP < PreDM Then { Buy(); } If DP < DM and PreDP > PreDM Then { Sell(); } } } 즐거운 하루되세요 > 천년대로 님이 쓴 글입니다. > 제목 : 수식부탁드립니다. > 안녕하세요? 수고에 감사드립니다. 아래의 dmi지표수식을 30분봉의 매수,매도 신호를 5분봉에 전환하는식을 부탁합니다. 감사합니다. input : Period(14); var : DP(0),DM(0),adxv(0); DP = ema(iff(H-H[1]>0 && H-H[1]>L[1]-L,H-H[1],0),Period)/ ema(max(max(H-L,abs(C[1]-H)),abs(C[1]-L)),Period)*100; DM = ema(iff(L[1]-L>0 && H-H[1]<L[1]-L,L[1]-L,0),Period)/ ema(max(max(H-L,abs(C[1]-H)),abs(C[1]-L)),Period)*100; adxv = Ema(abs(DP-DM)/(DP+DM),period)*100; # 매수/매도청산 If CrossUP(dp,dm) Then { Buy(); } # 매수청산 If CrossDown(dp,dm) Then { Sell(); }