커뮤니티

수정좀 부탁드립니다

프로필 이미지
라몬
2021-06-23 11:47:05
1098
글번호 150199
답변완료
늘 감사합니다. 아래 수식은 지금도 잘 사용하고 있습니다. 그런데 항셍에서는 10시 15분에 시작이라 시가는 10시 15분 부터가 맞는데 30분 단위의 아래수식에서 45분에 변경이 됩니다. 즉 항셍만 10시 30분, 11시등으로 30분 단위로 변경 부탁드립니다. input : ntime1(30),ntime2(60); var : S1(0),D1(0),TM(0),TF1(0),TF2(0),O1(0),O2(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; TF1 = TM%ntime1; if Bdate != Bdate[1] or (Bdate == Bdate[1] and ntime1 > 1 and TF1 < TF1[1]) or (Bdate == Bdate[1] and ntime1 > 1 and TM >= TM[1]+ntime1) or (Bdate == Bdate[1] and ntime1 == 1 and TM > TM[1]) Then { O1 = O; } Plot1(O1,"30분봉시가"); Plot2(C,"30분봉종가"); TF2 = TM%ntime2; if Bdate != Bdate[1] or (Bdate == Bdate[1] and ntime2 > 1 and TF2 < TF2[1]) or (Bdate == Bdate[1] and ntime2 > 1 and TM >= TM[1]+ntime2) or (Bdate == Bdate[1] and ntime2 == 1 and TM > TM[1]) Then { O2 = O; } Plot3(O2,"60분봉시가"); Plot4(C,"60분봉종가"); } Plot5(DayOpen," 일봉시가"); Plot6(C,"일봉종가");
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2021-06-23 16:41:18

안녕하세요 예스스탁입니다. 1번이나 2번 내용참고하시기 바랍니다. 1 올리신 식은 항셍에서 10시 15분 기준은 아닙니다. 항셍의 경우에는 해당 종목의 거래소에서는 새로운 영업일 변경을 한국시간 18시15분(거래소시간 17시 15분)을 기준으로 합니다. 해당 시간을 기준으로 30분 간격으로 시간을 분할하게 되는데 항셍과 같이 거래소와는 별도의 시간을 당일시작으로 보는 종목은 별도로 식을 작성해서 사용하셔야 합니다. 현재 수식에서 구분할 방법이 없고 항셍과 같은 종목은 아래식 이용하시면 됩니다. input : 기준시간(101500),ntime1(30),ntime2(60); var : S1(0),D1(0),TM(0),TF1(0),TF2(0),O1(0),O2(0); var : Tcond(False); Tcond = (sdate != sdate[1] and stime >= 기준시간) or (sdate == sdate[1] and stime >= 기준시간 and stime[1] < 기준시간) ; if Tcond == true Then { S1 = TimeToMinutes(100000); D1 = sdate; } if D1 > 0 then { if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; TF1 = TM%ntime1; if Tcond == true or (Tcond == False and ntime1 > 1 and TF1 < TF1[1]) or (Tcond == False and ntime1 > 1 and TM >= TM[1]+ntime1) or (Tcond == False and ntime1 == 1 and TM > TM[1]) Then { O1 = O; } Plot1(O1,"30분봉시가"); Plot2(C,"30분봉종가"); TF2 = TM%ntime2; if Bdate != Bdate[1] or (Bdate == Bdate[1] and ntime2 > 1 and TF2 < TF2[1]) or (Bdate == Bdate[1] and ntime2 > 1 and TM >= TM[1]+ntime2) or (Bdate == Bdate[1] and ntime2 == 1 and TM > TM[1]) Then { O2 = O; } Plot3(O2,"60분봉시가"); Plot4(C,"60분봉종가"); } Plot5(DayOpen," 일봉시가"); Plot6(C,"일봉종가"); 2 기존식을 모든 종목에 그대로 사용하시기 원하시고 ntime1이 60분을 넘지 않으시면 아래와 같이 변경해 사용하시면 됩니다. 시간구분을 90분이나 120분으로 60분이 넘는 시간이 아니면 0시를 기준으로 일정분을 구분해서 보셔도 됩니다. input : ntime1(30),ntime2(60); var : S1(0),D1(0),TM(0),TF1(0),TF2(0),O1(0),O2(0); if sdate != date[1] Then { S1 = TimeToMinutes(0); D1 = sdate; } if D1 > 0 then { if sdate == D1 Then TM = TimeToMinutes(stime)-S1; Else TM = TimeToMinutes(stime)+1440-S1; TF1 = TM%ntime1; if Bdate != Bdate[1] or (Bdate == Bdate[1] and ntime1 > 1 and TF1 < TF1[1]) or (Bdate == Bdate[1] and ntime1 > 1 and TM >= TM[1]+ntime1) or (Bdate == Bdate[1] and ntime1 == 1 and TM > TM[1]) Then { O1 = O; } Plot1(O1,"30분봉시가"); Plot2(C,"30분봉종가"); TF2 = TM%ntime2; if Bdate != Bdate[1] or (Bdate == Bdate[1] and ntime2 > 1 and TF2 < TF2[1]) or (Bdate == Bdate[1] and ntime2 > 1 and TM >= TM[1]+ntime2) or (Bdate == Bdate[1] and ntime2 == 1 and TM > TM[1]) Then { O2 = O; } Plot3(O2,"60분봉시가"); Plot4(C,"60분봉종가"); } Plot5(DayOpen," 일봉시가"); Plot6(C,"일봉종가"); 즐거운 하루되세요 > 라몬 님이 쓴 글입니다. > 제목 : 수정좀 부탁드립니다 > 늘 감사합니다. 아래 수식은 지금도 잘 사용하고 있습니다. 그런데 항셍에서는 10시 15분에 시작이라 시가는 10시 15분 부터가 맞는데 30분 단위의 아래수식에서 45분에 변경이 됩니다. 즉 항셍만 10시 30분, 11시등으로 30분 단위로 변경 부탁드립니다. input : ntime1(30),ntime2(60); var : S1(0),D1(0),TM(0),TF1(0),TF2(0),O1(0),O2(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; TF1 = TM%ntime1; if Bdate != Bdate[1] or (Bdate == Bdate[1] and ntime1 > 1 and TF1 < TF1[1]) or (Bdate == Bdate[1] and ntime1 > 1 and TM >= TM[1]+ntime1) or (Bdate == Bdate[1] and ntime1 == 1 and TM > TM[1]) Then { O1 = O; } Plot1(O1,"30분봉시가"); Plot2(C,"30분봉종가"); TF2 = TM%ntime2; if Bdate != Bdate[1] or (Bdate == Bdate[1] and ntime2 > 1 and TF2 < TF2[1]) or (Bdate == Bdate[1] and ntime2 > 1 and TM >= TM[1]+ntime2) or (Bdate == Bdate[1] and ntime2 == 1 and TM > TM[1]) Then { O2 = O; } Plot3(O2,"60분봉시가"); Plot4(C,"60분봉종가"); } Plot5(DayOpen," 일봉시가"); Plot6(C,"일봉종가");