커뮤니티

주석요청

프로필 이미지
흰둥이아빠
2018-09-07 17:43:35
164
글번호 121898
답변완료
안녕하세요? 바쁘시겠지만 답변주신 아래 스크립트 주석을 요청드립니다. var :T(0),Year(0); Year = Floor(sDate / 10000); Value2 = 15 - dayofweek((10000 * Year) + (100 * 3) + 1); // 3월 두번째 일요일 날짜 value4 = 8 - dayofweek((10000 * Year) + (100 * 11) + 1); // 11월 첫번째 일요일 날짜 If date > (10000 * Year) + (100 * 3) + value2 And date < (10000 * Year) + (100 * 11) + value4 Then T = 1; Else T = 0; if T == 1 Then { if stime == 223000 Then { var1 = o; if C > O Then buy("b1",AtMarket); if C < O Then sell("s1",AtMarket); } if stime == 223600 Then { if MarketPosition == 1 and C > var1 Then buy("b2",AtMarket); if MarketPosition == 1 and C < var1 Then exitlong("bx"); if MarketPosition == -1 and C < var1 Then sell("s2",AtMarket); if MarketPosition == -1 and C > var1 Then ExitShort("sx"); } if MarketPosition != 0 and stime == 033000 Then { exitlong("bx1"); ExitShort("sx1"); } } else { if stime == 233000 Then { var1 = o; if C > O Then buy("b1.",AtMarket); if C < O Then sell("s1.",AtMarket); } if stime == 233600 Then { if MarketPosition == 1 and C > var1 Then buy("b2.",AtMarket); if MarketPosition == 1 and C < var1 Then exitlong("bx."); if MarketPosition == -1 and C < var1 Then sell("s2.",AtMarket); if MarketPosition == -1 and C > var1 Then ExitShort("sx."); } if MarketPosition != 0 and stime == 043000 Then { exitlong("bx1."); ExitShort("sx1."); } } SetStopProfittarget(1,PointStop); SetStopLoss(1,PointStop);
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2018-09-10 11:00:36

안녕하세요 예스스탁입니다. var :T(0),Year(0); #날짜(YYYYMMDD)값에서 연도(YYYY)만 추출 Year = Floor(sDate / 10000); #두번째 일요일은 매달1일이 일요일경우 15일 이내이므로 15에서 매달 1일의 요일값을 빼서 계산 Value2 = 15 - dayofweek((10000 * Year) + (100 * 3) + 1); // 3월 두번째 일요일 일자 #첫번째 일요일은 매달1일이 일요일경우 8일 이내이므로 15에서 매달 1일의 요일값을 빼서 계산 value4 = 8 - dayofweek((10000 * Year) + (100 * 11) + 1); // 11월 첫번째 일요일 일자 #매년 3월일요일 이후부터~매년 11월 첫번째 일요일 사이이면 1 아니면 0 If date > (10000 * Year) + (100 * 3) + value2 And date < (10000 * Year) + (100 * 11) + value4 Then T = 1; Else T = 0; #1이면(썸머타임기간이면) if T == 1 Then { #22시 30분봉이면 if stime == 223000 Then { #시가저장 var1 = o; #양봉이면 다음봉 시가매수 if C > O Then buy("b1",AtMarket); #음봉이면 다음봉 시가매도 if C < O Then sell("s1",AtMarket); } #22시36분봉이면 if stime == 223600 Then { #매수중이고 종가가 22시30분봉 시가보다 크면 추가매수 if MarketPosition == 1 and C > var1 Then buy("b2",AtMarket); #매수중이고 종가가 22시30분봉 시가보다 작으면 청산 if MarketPosition == 1 and C < var1 Then exitlong("bx"); #매도중이고 종가가 22시30분봉 시가보다 작으면 추가매도 if MarketPosition == -1 and C < var1 Then sell("s2",AtMarket); #매도중이고 종가가 22시30분봉 시가보다 크면 청산 if MarketPosition == -1 and C > var1 Then ExitShort("sx"); } #진입중임고 3시30분이 되면 청산 if MarketPosition != 0 and stime == 033000 Then { exitlong("bx1"); ExitShort("sx1"); } } else#썸머타임이 아니면(위와 시간만 다르고 내용 동일) { if stime == 233000 Then { var1 = o; if C > O Then buy("b1.",AtMarket); if C < O Then sell("s1.",AtMarket); } if stime == 233600 Then { if MarketPosition == 1 and C > var1 Then buy("b2.",AtMarket); if MarketPosition == 1 and C < var1 Then exitlong("bx."); if MarketPosition == -1 and C < var1 Then sell("s2.",AtMarket); if MarketPosition == -1 and C > var1 Then ExitShort("sx."); } if MarketPosition != 0 and stime == 043000 Then { exitlong("bx1."); ExitShort("sx1."); } } #1포인트 수익시 청산 SetStopProfittarget(1,PointStop); #1포인트 손실시 청산 SetStopLoss(1,PointStop); 즐거운 하루되세요 > 흰둥이아빠 님이 쓴 글입니다. > 제목 : 주석요청 > 안녕하세요? 바쁘시겠지만 답변주신 아래 스크립트 주석을 요청드립니다. var :T(0),Year(0); Year = Floor(sDate / 10000); Value2 = 15 - dayofweek((10000 * Year) + (100 * 3) + 1); // 3월 두번째 일요일 날짜 value4 = 8 - dayofweek((10000 * Year) + (100 * 11) + 1); // 11월 첫번째 일요일 날짜 If date > (10000 * Year) + (100 * 3) + value2 And date < (10000 * Year) + (100 * 11) + value4 Then T = 1; Else T = 0; if T == 1 Then { if stime == 223000 Then { var1 = o; if C > O Then buy("b1",AtMarket); if C < O Then sell("s1",AtMarket); } if stime == 223600 Then { if MarketPosition == 1 and C > var1 Then buy("b2",AtMarket); if MarketPosition == 1 and C < var1 Then exitlong("bx"); if MarketPosition == -1 and C < var1 Then sell("s2",AtMarket); if MarketPosition == -1 and C > var1 Then ExitShort("sx"); } if MarketPosition != 0 and stime == 033000 Then { exitlong("bx1"); ExitShort("sx1"); } } else { if stime == 233000 Then { var1 = o; if C > O Then buy("b1.",AtMarket); if C < O Then sell("s1.",AtMarket); } if stime == 233600 Then { if MarketPosition == 1 and C > var1 Then buy("b2.",AtMarket); if MarketPosition == 1 and C < var1 Then exitlong("bx."); if MarketPosition == -1 and C < var1 Then sell("s2.",AtMarket); if MarketPosition == -1 and C > var1 Then ExitShort("sx."); } if MarketPosition != 0 and stime == 043000 Then { exitlong("bx1."); ExitShort("sx1."); } } SetStopProfittarget(1,PointStop); SetStopLoss(1,PointStop);