커뮤니티

틱차트에 분봉이평

프로필 이미지
swhinc
2020-08-14 15:06:46
952
글번호 141519
답변완료
틱차트에 1/3/5/10분봉 가중/지수/단순 이평을 표현하는 지표와 시스템에 적용하는 방법 부탁드립니다
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2020-08-14 17:07:19

안녕하세요 예스스탁입니다. 틱차트에서 분봉의 이평은 정확한 계산이 불가능합니다. 랭귀지는 봉의 시고저종가만 이용이 가능한데 분봉의 시간경계가 봉 중간에 위치할 경우가 많아 해당 가격을 추출할 방법이 없습니다. 근사값으로 계산해 보신다면 아래식 이용하시면 됩니다. 이평은 5, 20이평 2개 계산하는 내용으로 작성해 드립니다. 분봉주기는 ntime으로 지정하시고 여러 분봉이면 ntime변경해서 여러번 적용하시면 됩니다. 시스템은 2개 이평 크로스로 작성해 드립니다. 1-1 분봉 단순이평 input : ntime(10),P1(5),P2(20); var : S1(0),D1(0),TM(0),TF(0),cnt(0); var : sum1(0),sum11(0),sum2(0),sum21(0); var : mav1(0),mav11(0),mav2(0),mav21(0); Array : C1[100](0); 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%ntime; if Bdate != Bdate[1] or (Bdate == Bdate[1] and ntime > 1 and TF < TF[1]) or (Bdate == Bdate[1] and ntime > 1 and TM >= TM[1]+ntime) or (Bdate == Bdate[1] and ntime == 1 and TM > TM[1]) Then { for cnt = 1 to 99 { C1[cnt] = C1[cnt-1][1]; } } C1[0] = C; if C1[P1-1] > 0 then { sum1 = 0; for cnt = 0 to P1-1 { sum1 = sum1+C1[cnt]; } mav1 = sum1/P1; Plot1(mav1); } if C1[P2-1] > 0 then { sum2 = 0; for cnt = 0 to P2-1 { sum2 = sum2+C1[cnt]; } mav2 = sum2/P2; Plot2(mav2); } } 1-2 분봉 단순이평 이용 크로스 매매 input : ntime(10),P1(5),P2(20); var : S1(0),D1(0),TM(0),TF(0),cnt(0); var : sum1(0),sum11(0),sum2(0),sum21(0); var : mav1(0),mav11(0),mav2(0),mav21(0); Array : C1[100](0); 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%ntime; if Bdate != Bdate[1] or (Bdate == Bdate[1] and ntime > 1 and TF < TF[1]) or (Bdate == Bdate[1] and ntime > 1 and TM >= TM[1]+ntime) or (Bdate == Bdate[1] and ntime == 1 and TM > TM[1]) Then { for cnt = 1 to 99 { C1[cnt] = C1[cnt-1][1]; } } C1[0] = C; if C1[P1-1] > 0 then { sum1 = 0; for cnt = 0 to P1-1 { sum1 = sum1+C1[cnt]; } mav1 = sum1/P1; } if C1[P2-1] > 0 then { sum2 = 0; for cnt = 0 to P2-1 { sum2 = sum2+C1[cnt]; } mav2 = sum2/P2; } if mav1 > 0 and mav2 > 0 Then { if CrossUp(mav1,mav2) Then buy(); if CrossDown(mav1,mav2) Then Sell(); } } 2 분봉 지수이평 Input : ntime(10),P1(5),P2(20); var : S1(0),D1(0),TM(0),TF1(0); Var : Ep1(0), JISU1(0), PreJISU1(0); Var : Ep2(0), JISU2(0), PreJISU2(0); Ep1 = 2/(P1+1); Ep2 = 2/(P2+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; TF1 = TM%ntime; if Bdate != Bdate[1] or (Bdate == Bdate[1] and ntime > 1 and TF1 < TF1[1]) or (Bdate == Bdate[1] and ntime > 1 and TM >= TM[1]+ntime) or (Bdate == Bdate[1] and ntime == 1 and TM > TM[1]) Then { value1 = value1+1; PreJISU1 = JISU1[1]; PreJISU2 = JISU2[1]; } if value1 <= 1 then { JISU1 = C; JISU2 = C; } else{ JISU1 = C * EP1 + PreJISU1 * (1-EP1); JISU2 = C * EP2 + PreJISU2 * (1-EP2); } plot1(JiSu1); plot2(Jisu2); } 2-2 분봉 지수이평 이용 크로스 매매 Input : ntime(10),P1(5),P2(20); var : S1(0),D1(0),TM(0),TF1(0); Var : Ep1(0), JISU1(0), PreJISU1(0); Var : Ep2(0), JISU2(0), PreJISU2(0); Ep1 = 2/(P1+1); Ep2 = 2/(P2+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; TF1 = TM%ntime; if Bdate != Bdate[1] or (Bdate == Bdate[1] and ntime > 1 and TF1 < TF1[1]) or (Bdate == Bdate[1] and ntime > 1 and TM >= TM[1]+ntime) or (Bdate == Bdate[1] and ntime == 1 and TM > TM[1]) Then { value1 = value1+1; PreJISU1 = JISU1[1]; PreJISU2 = JISU2[1]; } if value1 <= 1 then { JISU1 = C; JISU2 = C; } else{ JISU1 = C * EP1 + PreJISU1 * (1-EP1); JISU2 = C * EP2 + PreJISU2 * (1-EP2); } if JISU1 > 0 and JISU2 > 0 Then { if CrossUp(JISU1,JISU2) Then buy(); if CrossDown(JISU1,JISU2) Then Sell(); } } 3-1 분봉 가중이평 지표 input : ntime(10),P1(5),P2(20); var : S1(0),D1(0),TM(0),TF(0),cnt(0); var : Sum1(0),CSum1(0),wma1(0); var : Sum2(0),CSum2(0),wma2(0); Array : CC[100](0); 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%ntime; if Bdate != Bdate[1] or (Bdate == Bdate[1] and ntime > 1 and TF < TF[1]) or (Bdate == Bdate[1] and ntime > 1 and TM >= TM[1]+ntime) or (Bdate == Bdate[1] and ntime == 1 and TM > TM[1]) Then { for cnt = 1 to 99 { CC[cnt] = CC[cnt-1][1]; } } CC[0] = C; if CC[P1-1] > 0 Then { Sum1 = 0; CSum1 = 0; For cnt = 0 To P1 - 1 { Sum1 = Sum1 + CC[cnt] * (P1 - cnt); CSum1 = CSum1 + (P1 - cnt); } If CSum1 > 0 Then WMA1 = Sum1/CSum1; Else WMA1 = 0; Plot1(WMA1); } if CC[P2-1] > 0 Then { Sum2 = 0; CSum2 = 0; For cnt = 0 To P2 - 1 { Sum2 = Sum2 + CC[cnt] * (P2 - cnt); CSum2 = CSum2 + P2 - cnt; } If CSum2 > 0 Then WMA2 = Sum2/CSum2; Else WMA2 = 0; Plot2(WMA2); } } 3-2 분봉 가중이평 이동 크로스 매매 input : ntime(10),P1(5),P2(20); var : S1(0),D1(0),TM(0),TF(0),cnt(0); var : Sum1(0),CSum1(0),wma1(0); var : Sum2(0),CSum2(0),wma2(0); Array : CC[100](0); 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%ntime; if Bdate != Bdate[1] or (Bdate == Bdate[1] and ntime > 1 and TF < TF[1]) or (Bdate == Bdate[1] and ntime > 1 and TM >= TM[1]+ntime) or (Bdate == Bdate[1] and ntime == 1 and TM > TM[1]) Then { for cnt = 1 to 99 { CC[cnt] = CC[cnt-1][1]; } } CC[0] = C; if CC[P1-1] > 0 Then { Sum1 = 0; CSum1 = 0; For cnt = 0 To P1 - 1 { Sum1 = Sum1 + CC[cnt] * (P1 - cnt); CSum1 = CSum1 + (P1 - cnt); } If CSum1 > 0 Then WMA1 = Sum1/CSum1; Else WMA1 = 0; } if CC[P2-1] > 0 Then { Sum2 = 0; CSum2 = 0; For cnt = 0 To P2 - 1 { Sum2 = Sum2 + CC[cnt] * (P2 - cnt); CSum2 = CSum2 + P2 - cnt; } If CSum2 > 0 Then WMA2 = Sum2/CSum2; Else WMA2 = 0; } if WMA1 > 0 and WMA2 > 0 Then { if CrossUp(WMA1,WMA2) Then buy(); if CrossDown(WMA1,WMA2) Then Sell(); } } 즐거운 하루되세요 > swhinc 님이 쓴 글입니다. > 제목 : 틱차트에 분봉이평 > 틱차트에 1/3/5/10분봉 가중/지수/단순 이평을 표현하는 지표와 시스템에 적용하는 방법 부탁드립니다