커뮤니티

답변주신 수식에서 주석부탁합니다

프로필 이미지
하늘만큼11
2024-08-05 21:53:55
715
글번호 182283
답변완료
다 주기 관련해서 질문에 대한 답을 받았는데요.. 이해가 안됩니다. 주석을 좀 달아주시면 감사하겠습니다. input : 타주기분(10); input : short(12),long(26),sig(9); var : S1(0),D1(0),TM(0),TF(0); var : MACDV(0),MACDS(0); macdv = macd(short,long); macds = ema(macdv,sig); 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 { var1 = Open; } if CrossUp(MACDV,0) and C > var1 Then Buy(); if CrossDown(MACDV,0) and c < var1 Then Sell(); }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2024-08-06 11:23:19

안녕하세요 예스스탁입니다. 우선 아래식에 사용되는 TimeToMinutes함수는 봉의 시간을 0시이후 몇분이 경과했는지 리턴해주는 함수입니다. 9시이면 540리턴, 9시 30분이면 570리턴. input : 타주기분(10); input : short(12),long(26),sig(9); var : S1(0),D1(0),TM(0),TF(0); var : MACDV(0),MACDS(0); #기본차트 macd와 시그널 macdv = macd(short,long); macds = ema(macdv,sig); #영업일(거래소 영업일) 변경 if Bdate != Bdate[1] Then { #첫봉의 시간(0시이후 경과분) S1 = TimeToMinutes(stime); #첫봉 날짜(달력상 날짜, 0시 기준 변경된 날짜) D1 = sdate;; } #영업일 변경이후 if D1 > 0 then { #TM은 장시작후 몇분이 경과되었는지 계산해서 저장되는 변수 #봉의 날짜가 영엽일변경일과 같으면 if sdate == D1 Then #현재봉 경과분값과 영업일 첫봉의 경과분의 차이를 TM에 저장 TM = TimeToMinutes(stime)-S1; Else #영업일 변경 후 0시를 넘어가면(다음날) #현재 경과분에 24시에 해당하는 분을 더하고 영업일 첫봉의 경과분을 차감 TM = TimeToMinutes(stime)+1440-S1; #FM을 10으로 나누어 나머지를 구함 TF = TM%타주기분; #당일 첫봉이거나 #첫봉이후 타주기분이 1보다 클 경우 TF값이 상승하다가 하락하거나 #첫봉이후 타주기분이 1보다 클 경우 현재봉 경과시간(분)이 전봉대비 타주기분 이상 증가하거나 #첫봉이후 타주기분이 1이면 현재봉 경과시간(분)이 전봉대비 경과시간(분)보다 커질때 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 { #타주기봉 시가 저장 var1 = Open; } #기본차트 MACD가 0을 상향돌파하고 타주기봉이 양봉일때 if CrossUp(MACDV,0) and C > var1 Then Buy(); #기본차트 MACD가 0을 하향이탈하고 타주기봉이 음봉일때 if CrossDown(MACDV,0) and c < var1 Then Sell(); } 즐거운 하루되세요 > 하늘만큼11 님이 쓴 글입니다. > 제목 : 답변주신 수식에서 주석부탁합니다 > 다 주기 관련해서 질문에 대한 답을 받았는데요.. 이해가 안됩니다. 주석을 좀 달아주시면 감사하겠습니다. input : 타주기분(10); input : short(12),long(26),sig(9); var : S1(0),D1(0),TM(0),TF(0); var : MACDV(0),MACDS(0); macdv = macd(short,long); macds = ema(macdv,sig); 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 { var1 = Open; } if CrossUp(MACDV,0) and C > var1 Then Buy(); if CrossDown(MACDV,0) and c < var1 Then Sell(); }