커뮤니티

문의드립니다~

프로필 이미지
겐지
2017-02-16 03:01:53
178
글번호 106880
답변완료

첨부 이미지

우선 분주기표현식대로 하니깐 잘 되네요 감사합니다~ 1.항생에서 적용할때요 15분이 시가이고 이후로 30분봉이 계산될때에 15분 45분 15분 45분식으로 계산되거든요 이걸15분을 시작으로 한 단위가 아니고 30분단위로 30분 60분 30분 60분 이렇게 계산될 수 있을까요~ 그리고 그림에 보면 항생점심시간에 봉1개가 지표에서는 계산을 못해주고 비거든요.~ 전에30분시초가지표가지고 표시해봐도 여전히 봉1개가 비는 모습인데요 이걸 잡아줄 수 있는 방법이 있을까요 키움이랑 비교해봤는데 키움에서는 1시30분에 점심시간에 이런식으로 봉 하나가 잡혀져 있습니다. 2.받은항생시스템을 적용해 보니깐 신호가 하루치 밖에 나오지 않습니다. 위에 1-1 선물 라고표시된 식은 전체가 나오는데요 항생에 적용해 보니깐 마찬가지로 15분 45분식으로 표현이 되어서요~ 항생용으로 올려주신 시스템식에서도 차트상 보이는 전체기간에서 신호가 나올 수 있고 30분단위로 표현되도록 수정 부탁드립니다~ 3.그리고 분주기로 계산된 30분봉의 종가가격이 계산되기 15분전의 가격을 CC(1)이런식으로 표현할 수 있는 방법 문의드립니다.~ 분주기로15분단위로 계산해서 적용해 봤는데 30분봉이 완성되는 시점에 15분봉도 같이 완성되면서 원하는 식표현이 안되더라구요 30분봉이완성되기 5분전,10분전,15분전을 변수로만들어서 식에 표현하고 싶습니다~
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2017-02-16 13:45:53

안녕하세요 예스스탁입니다. 0 우선 이전에 51928 문의의 항생 수식에 수식내 누락된 부분이 있어 추가해 드립니다. 0-1지표 input : 분주기(30),P(5); var : S1(0),D1(0),TM(0),TF(0); var : cnt(0),sum(0),mav(0); Array : CC[100](0),OO[100](0),HH[100](0),LL[100](0); if (sdate != sdate[1] and stime >= 100000) or (sdate == sdate[1] and (Stime == 100000 or (stime > 100000 and stime[1] < 100000))) 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 (sdate != sdate[1] and stime >= 100000) or (sdate == sdate[1] and (Stime == 100000 or (stime > 100000 and stime[1] < 100000))) or (Sdate == sdate[1] and TF < TF[1]) Then{ OO[0] = o; for cnt = 1 to 99{ OO[cnt] = OO[cnt-1][1]; HH[cnt] = HH[cnt-1][1]; LL[cnt] = LL[cnt-1][1]; CC[cnt] = CC[cnt-1][1]; } } if H > HH[0] Then HH[0] = H; if L < LL[0] Then LL[0] = L; CC[0] = C; plot1(OO[0]); plot2(OO[1]); plot3(OO[2]); plot4(OO[3]); plot5(OO[4]); plot6(OO[5]); } 0-2 시스템 input : 분주기(30),P(5); var : S1(0),D1(0),TM(0),TF(0); var : cnt(0),sum(0),mav(0); Array : CC[100](0),OO[100](0),HH[100](0),LL[100](0); if (sdate != sdate[1] and stime >= 100000) or (sdate == sdate[1] and (Stime == 100000 or (stime > 100000 and stime[1] < 100000))) 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 (sdate != sdate[1] and stime >= 100000) or (sdate == sdate[1] and (Stime == 100000 or (stime > 100000 and stime[1] < 100000))) or (Sdate == sdate[1] and TF < TF[1]) Then{ OO[0] = o; for cnt = 1 to 99{ OO[cnt] = OO[cnt-1][1]; HH[cnt] = HH[cnt-1][1]; LL[cnt] = LL[cnt-1][1]; CC[cnt] = CC[cnt-1][1]; } } if H > HH[0] Then HH[0] = H; if L < LL[0] Then LL[0] = L; CC[0] = C; } input : P5(5), P20(20), P60(60), get(25), cut(25); var : mav0(0), mav1(0), mav2(0), mav3(0), mav4(0), mav5(0), tic20(0), tic60(0), tic5(0); mav0 = CC[0]; mav1 = CC[1]; mav2 = CC[2]; mav3 = CC[3]; mav4 = CC[4]; mav5 = CC[5]; tic20 = ma(c,P20); tic60 = ma(c,P60); tic5 = ma(c,P5); if stime >= 103000 and stime < 165500 Then{ if mav0 > mav5 and mav1 > (mav0+mav2+mav3+mav4)/4 and mav5 > 0 then{ if crossup(tic5,tic20) Then{ if MarketPosition == 0 Then buy("E매수"); if MarketPosition == -1 Then buy("E리버스매수"); } } if mav0 < mav5 and mav1 < (mav0+mav2+mav3+mav4)/4 and mav5 > 0 then{ if CrossDown(tic5,tic20) then{ if MarketPosition == 0 Then sell("E매도"); if MarketPosition == 1 Then sell("E리버스매도"); } } if mav0 < mav5 and mav1 < (mav0+mav2+mav3+mav4)/4 and mav5 > 0 then exitlong("불매수청산"); if mav0 > mav5 and mav1 > (mav0+mav2+mav3+mav4)/4 and mav5 > 0 Then ExitShort("불매도청산"); } if stime == 170000 or (stime > 170000 and stime[1] < 170000) Then{ exitlong(); ExitShort(); } SetStopProfittarget(PriceScale*get,PointStop); SetStopLoss(PriceScale*cut,PointStop); 1 15분기준으로 이후 30분씩 분할이 아닌 30분/ 60분 단위이면 전체 수식에서 아래 조건만 변경하시면 됩니다. if (sdate != sdate[1] and stime >= 100000) or (sdate == sdate[1] and (Stime == 100000 or (stime > 100000 and stime[1] < 100000))) Then{ S1 = TimeToMinutes(stime); D1 = sdate; } 위식은 10시 15분 이후의 첫봉의 분단위시간값을 S1에 저장합니다. 아래와 같이 변경하시면 10시가 기준이되므로 이후 30분 60분 주기로 계산할수 있습니다. S1 = TimeToMinutes(100000); 2 수식 자체에서 타주기를 계산하면 타주기로 계산하는 지표값등이 계산할 만큼 충분한 데이터가 확보된 다음부터 신호가 발생할수 있습니다. 해당 부분은 따로 추리할수 있는 부분이 아닙니다. 3 아래 내용 참고하시기 바랍니다. 주기를 하나더 추가했습니다. C1배열변수이고 다른주기의 직전봉의 값이므로 C1[1]로 출력해 보시면 됩니다. input : 분주기(30),P(5),분주기1(15); var : S1(0),D1(0),TM(0),TF(0); var : cnt(0),sum(0),mav(0),tf1(0); Array : CC[100](0),OO[100](0),HH[100](0),LL[100](0),C1[100](0); if (sdate != sdate[1] and stime >= 100000) or (sdate == sdate[1] and (Stime == 100000 or (stime > 100000 and stime[1] < 100000))) 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 (sdate != sdate[1] and stime >= 100000) or (sdate == sdate[1] and (Stime == 100000 or (stime > 100000 and stime[1] < 100000))) or (Sdate == sdate[1] and TF < TF[1]) Then{ OO[0] = o; for cnt = 1 to 99{ OO[cnt] = OO[cnt-1][1]; HH[cnt] = HH[cnt-1][1]; LL[cnt] = LL[cnt-1][1]; CC[cnt] = CC[cnt-1][1]; } } if H > HH[0] Then HH[0] = H; if L < LL[0] Then LL[0] = L; CC[0] = C; TF1 = TM%분주기1; if (sdate != sdate[1] and stime >= 100000) or (sdate == sdate[1] and (Stime == 100000 or (stime > 100000 and stime[1] < 100000))) or (Sdate == sdate[1] and TF1 < TF1[1]) Then{ for cnt = 1 to 99{ C1[cnt] = C1[cnt-1][1]; } } C1[0] = C; plot1(CC[0]); plot1(C1[1]); } 즐거운 하루되세요 > 겐지 님이 쓴 글입니다. > 제목 : 문의드립니다~ > 우선 분주기표현식대로 하니깐 잘 되네요 감사합니다~ 1.항생에서 적용할때요 15분이 시가이고 이후로 30분봉이 계산될때에 15분 45분 15분 45분식으로 계산되거든요 이걸15분을 시작으로 한 단위가 아니고 30분단위로 30분 60분 30분 60분 이렇게 계산될 수 있을까요~ 그리고 그림에 보면 항생점심시간에 봉1개가 지표에서는 계산을 못해주고 비거든요.~ 전에30분시초가지표가지고 표시해봐도 여전히 봉1개가 비는 모습인데요 이걸 잡아줄 수 있는 방법이 있을까요 키움이랑 비교해봤는데 키움에서는 1시30분에 점심시간에 이런식으로 봉 하나가 잡혀져 있습니다. 2.받은항생시스템을 적용해 보니깐 신호가 하루치 밖에 나오지 않습니다. 위에 1-1 선물 라고표시된 식은 전체가 나오는데요 항생에 적용해 보니깐 마찬가지로 15분 45분식으로 표현이 되어서요~ 항생용으로 올려주신 시스템식에서도 차트상 보이는 전체기간에서 신호가 나올 수 있고 30분단위로 표현되도록 수정 부탁드립니다~ 3.그리고 분주기로 계산된 30분봉의 종가가격이 계산되기 15분전의 가격을 CC(1)이런식으로 표현할 수 있는 방법 문의드립니다.~ 분주기로15분단위로 계산해서 적용해 봤는데 30분봉이 완성되는 시점에 15분봉도 같이 완성되면서 원하는 식표현이 안되더라구요 30분봉이완성되기 5분전,10분전,15분전을 변수로만들어서 식에 표현하고 싶습니다~