커뮤니티

시스템 식 구성중인데 도와주세요!

프로필 이미지
추세추적자
2023-05-31 05:51:48
691
글번호 169407
답변완료
나스닥 전략으로 구성하고 있습니다. 아래 조건 및 질문에 답 부탁드리겠습니다. 1 장 종료 1시간 전부터는 진입하지 않는다. (장시작~장종료 1시간전 까지 매매) 2. 장 종료 30분 전 포지션이 있다면 청산한다. 조건식 부탁드리겠습니다. 3. 수식이 봉완성때마다 돌아가다보니, 조건 만족 후 주문이 들어가 다음봉에 진입이 됩니다. 그러다보니 장대봉이 나오는 경우 등의 불가피한 상황에서 손해를 보게 됩니다. ex) 조건만족 후 매수신호 들어가고, 다음봉에서 장대하락봉발생으로 매수하자마자 손절이 나가는 경우 이 경우를 어떻게 해결하는게 좋을까요? '종가가 진입가랑 어느수치 이내로 떨어져 있으면 진입' 이런 식으로 해결하는게 좋을지 아니면 어떻게 해결하면 좋을지 수식으로 부탁드리겠습니다! 3. 수식이 봉완성때마다 돌아간다고 하셨는데, 그럼 이전에 문의로 답변받았던 아래 식을 사용했을 때, 봉이 장대봉이 나오게 된다면, 실시간으로 처리가 안 될 수도 있는건가요? 시스템식을 차트에 입힐때 나오는 설정창에서 강제청산 부분에서는 '조건만족시 즉시' 라는 항목이 있던데, 해당 설정창에서도 추가적으로 설정해 주는 것이 더 안정적일까요? ######################################################################## var : 시스템_익절틱수(0); var : 시스템_손절틱수(0); 시스템_익절틱수 = 50; 시스템_손절틱수 = 50; if MarketPosition == 1 Then { ExitLong("매수익절",AtLimit,시스템_매수진입가[BarsSinceEntry]+PriceScale*시스템_익절틱수); ExitLong("매수손절",AtStop,시스템_매수진입가[BarsSinceEntry]-PriceScale*시스템_손절틱수); } if MarketPosition == -1 Then { ExitShort("매도익절",AtLimit,시스템_매도진입가[BarsSinceEntry]-PriceScale*시스템_익절틱수); ExitShort("매도손절",AtStop,시스템_매도진입가[BarsSinceEntry]+PriceScale*시스템_손절틱수); } ########################################################################
시스템
답변 2
프로필 이미지

예스스탁 예스스탁 답변

2023-05-31 10:58:01

안녕하세요 예스스탁입니다. 아래 식구조 참고하시기 바랍니다. 3번으로 문의하신 내용은 별도로 해결방법을 모르겠습니다. 익절과 손절은 강제청산 함수를 이용하시면 됩니다. 작성하신 수식도 봉 중간에 가격조건 만족하면 즉시 청산하는 식이 맞습니다. 다만 if문이 봉완성이고 진입이 onclose일 경우 진입신호봉 다음봉이 완성 되어야 포지션체크가 가능하므로 해당식으로 진입식 다음봉에서는 청산신호가 발생하지 못합니다. 진입봉 다음봉에서도 즉시 익절이나 손절이 발생하게 강제청산함수를 이용하시면 됩니다. 설정창에서 익절,손절 설정하시는 것과 수식안에서 강제청산함수를 사용하는 것은 동일합니다. 수식에서 사용되면 설정창에서 지정되지 않고 모두 동일하게 설정창의 '조건만족 즉시"가 적용됩니다. var : DD(0),Year(0),V1(0),V2(0),V3(0),V4(0),summer(False); var : ET(0),XT(0),Tcond(False); if sDate != sDate[1] Then { DD = DayOfWeek(sDate); Year = Floor(sDate/10000); V1 = (10000 * Year) + (100 * 3) + 1; V2 = 15 - dayofweek(v1); v3 = (10000 * Year) + (100 * 11) + 1; v4 = 8 - dayofweek(v3); Summer = Sdate > (10000 * Year) + (100 * 3) + v2 and Sdate < (10000 * Year) + (100 * 11) + v4; if summer == true Then { ET = 050000; XT = 053000; } Else { ET = 060000; XT = 063000; } SetStopEndofday(XT); } if Bdate != Bdate[1] Then { Tcond = true; SetStopEndofday(0); } if (sdate != sdate[1] and stime >= ET) or (sdate == sdate[1] and stime >= ET and stime[1] < XT) Then { Tcond = False; } if Tcond == False Then { 진입식 } var : 시스템_익절틱수(0); var : 시스템_손절틱수(0); 시스템_익절틱수 = 50; 시스템_손절틱수 = 50; SetStopProfittarget(PriceScale*시스템_익절틱수,PointStop); SetStopLoss(PriceScale*시스템_손절틱수,PointStop); 즐거운 하루되세요 > 추세추적자 님이 쓴 글입니다. > 제목 : 시스템 식 구성중인데 도와주세요! > 나스닥 전략으로 구성하고 있습니다. 아래 조건 및 질문에 답 부탁드리겠습니다. 1 장 종료 1시간 전부터는 진입하지 않는다. (장시작~장종료 1시간전 까지 매매) 2. 장 종료 30분 전 포지션이 있다면 청산한다. 조건식 부탁드리겠습니다. 3. 수식이 봉완성때마다 돌아가다보니, 조건 만족 후 주문이 들어가 다음봉에 진입이 됩니다. 그러다보니 장대봉이 나오는 경우 등의 불가피한 상황에서 손해를 보게 됩니다. ex) 조건만족 후 매수신호 들어가고, 다음봉에서 장대하락봉발생으로 매수하자마자 손절이 나가는 경우 이 경우를 어떻게 해결하는게 좋을까요? '종가가 진입가랑 어느수치 이내로 떨어져 있으면 진입' 이런 식으로 해결하는게 좋을지 아니면 어떻게 해결하면 좋을지 수식으로 부탁드리겠습니다! 3. 수식이 봉완성때마다 돌아간다고 하셨는데, 그럼 이전에 문의로 답변받았던 아래 식을 사용했을 때, 봉이 장대봉이 나오게 된다면, 실시간으로 처리가 안 될 수도 있는건가요? 시스템식을 차트에 입힐때 나오는 설정창에서 강제청산 부분에서는 '조건만족시 즉시' 라는 항목이 있던데, 해당 설정창에서도 추가적으로 설정해 주는 것이 더 안정적일까요? ######################################################################## var : 시스템_익절틱수(0); var : 시스템_손절틱수(0); 시스템_익절틱수 = 50; 시스템_손절틱수 = 50; if MarketPosition == 1 Then { ExitLong("매수익절",AtLimit,시스템_매수진입가[BarsSinceEntry]+PriceScale*시스템_익절틱수); ExitLong("매수손절",AtStop,시스템_매수진입가[BarsSinceEntry]-PriceScale*시스템_손절틱수); } if MarketPosition == -1 Then { ExitShort("매도익절",AtLimit,시스템_매도진입가[BarsSinceEntry]-PriceScale*시스템_익절틱수); ExitShort("매도손절",AtStop,시스템_매도진입가[BarsSinceEntry]+PriceScale*시스템_손절틱수); } ########################################################################
프로필 이미지

추세추적자

2023-05-31 16:05:44

감사합니다. 수정했는데 시스템식 기준으로 손절과 익절 데이터를 아래와 같이 표시했었는데 ############################################################################### If IsexitName("매수익절", 1) == true Then { 당일통계 = 당일통계 + 시스템_익절틱수 - 시스템_수수료슬리피지; 익절횟수 = 익절횟수 + 1; 익절텍스트1 = text_new(sDate, sTime, h + 출력간격*3, "익절"); Text_SetStyle(익절텍스트1,2,2); Text_SetColor(익절텍스트1,Magenta); 익절텍스트2 = text_new(sDate, sTime, h + 출력간격*4, "(익:" + NumToStr(익절횟수,0) + " / 손:" + NumToStr(손절횟수,0) + " / 합:" + NumToStr(당일손익,0) + ")"); Text_SetStyle(익절텍스트2,2,2); Text_SetColor(익절텍스트2,Magenta); } If IsexitName("매수손절", 1) == true Then { 당일통계 = 당일통계 - 시스템_손절틱수 - 시스템_수수료슬리피지; 손절횟수 = 손절횟수 + 1; 손절텍스트1 = text_new(sDate, sTime, l - 출력간격*3, "손절"); Text_SetStyle(손절텍스트1,2,2); Text_SetColor(손절텍스트1,Blue); 손절텍스트2 = text_new(sDate, sTime, l - 출력간격*4, "(" + NumToStr(손절횟수,0) + "/" + NumToStr(당일손익,0) + ")"); Text_SetStyle(손절텍스트2,2,2); Text_SetColor(손절텍스트2,Blue); } ############################################################################### 알려주신 즉시청산하는 Setstop으로 변경하면서 출력이 불가능해졌습니다. 혹시 시스템 기준으로 각 진입(손절, 익절 완료봉에)과 현재까지 수익횟수/손절횟수/총손익을 표시하는 건 어떻게 할 수 있을까요? > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 시스템 식 구성중인데 도와주세요! > 안녕하세요 예스스탁입니다. 아래 식구조 참고하시기 바랍니다. 3번으로 문의하신 내용은 별도로 해결방법을 모르겠습니다. 익절과 손절은 강제청산 함수를 이용하시면 됩니다. 작성하신 수식도 봉 중간에 가격조건 만족하면 즉시 청산하는 식이 맞습니다. 다만 if문이 봉완성이고 진입이 onclose일 경우 진입신호봉 다음봉이 완성 되어야 포지션체크가 가능하므로 해당식으로 진입식 다음봉에서는 청산신호가 발생하지 못합니다. 진입봉 다음봉에서도 즉시 익절이나 손절이 발생하게 강제청산함수를 이용하시면 됩니다. 설정창에서 익절,손절 설정하시는 것과 수식안에서 강제청산함수를 사용하는 것은 동일합니다. 수식에서 사용되면 설정창에서 지정되지 않고 모두 동일하게 설정창의 '조건만족 즉시"가 적용됩니다. var : DD(0),Year(0),V1(0),V2(0),V3(0),V4(0),summer(False); var : ET(0),XT(0),Tcond(False); if sDate != sDate[1] Then { DD = DayOfWeek(sDate); Year = Floor(sDate/10000); V1 = (10000 * Year) + (100 * 3) + 1; V2 = 15 - dayofweek(v1); v3 = (10000 * Year) + (100 * 11) + 1; v4 = 8 - dayofweek(v3); Summer = Sdate > (10000 * Year) + (100 * 3) + v2 and Sdate < (10000 * Year) + (100 * 11) + v4; if summer == true Then { ET = 050000; XT = 053000; } Else { ET = 060000; XT = 063000; } SetStopEndofday(XT); } if Bdate != Bdate[1] Then { Tcond = true; SetStopEndofday(0); } if (sdate != sdate[1] and stime >= ET) or (sdate == sdate[1] and stime >= ET and stime[1] < XT) Then { Tcond = False; } if Tcond == False Then { 진입식 } var : 시스템_익절틱수(0); var : 시스템_손절틱수(0); 시스템_익절틱수 = 50; 시스템_손절틱수 = 50; SetStopProfittarget(PriceScale*시스템_익절틱수,PointStop); SetStopLoss(PriceScale*시스템_손절틱수,PointStop); 즐거운 하루되세요 > 추세추적자 님이 쓴 글입니다. > 제목 : 시스템 식 구성중인데 도와주세요! > 나스닥 전략으로 구성하고 있습니다. 아래 조건 및 질문에 답 부탁드리겠습니다. 1 장 종료 1시간 전부터는 진입하지 않는다. (장시작~장종료 1시간전 까지 매매) 2. 장 종료 30분 전 포지션이 있다면 청산한다. 조건식 부탁드리겠습니다. 3. 수식이 봉완성때마다 돌아가다보니, 조건 만족 후 주문이 들어가 다음봉에 진입이 됩니다. 그러다보니 장대봉이 나오는 경우 등의 불가피한 상황에서 손해를 보게 됩니다. ex) 조건만족 후 매수신호 들어가고, 다음봉에서 장대하락봉발생으로 매수하자마자 손절이 나가는 경우 이 경우를 어떻게 해결하는게 좋을까요? '종가가 진입가랑 어느수치 이내로 떨어져 있으면 진입' 이런 식으로 해결하는게 좋을지 아니면 어떻게 해결하면 좋을지 수식으로 부탁드리겠습니다! 3. 수식이 봉완성때마다 돌아간다고 하셨는데, 그럼 이전에 문의로 답변받았던 아래 식을 사용했을 때, 봉이 장대봉이 나오게 된다면, 실시간으로 처리가 안 될 수도 있는건가요? 시스템식을 차트에 입힐때 나오는 설정창에서 강제청산 부분에서는 '조건만족시 즉시' 라는 항목이 있던데, 해당 설정창에서도 추가적으로 설정해 주는 것이 더 안정적일까요? ######################################################################## var : 시스템_익절틱수(0); var : 시스템_손절틱수(0); 시스템_익절틱수 = 50; 시스템_손절틱수 = 50; if MarketPosition == 1 Then { ExitLong("매수익절",AtLimit,시스템_매수진입가[BarsSinceEntry]+PriceScale*시스템_익절틱수); ExitLong("매수손절",AtStop,시스템_매수진입가[BarsSinceEntry]-PriceScale*시스템_손절틱수); } if MarketPosition == -1 Then { ExitShort("매도익절",AtLimit,시스템_매도진입가[BarsSinceEntry]-PriceScale*시스템_익절틱수); ExitShort("매도손절",AtStop,시스템_매도진입가[BarsSinceEntry]+PriceScale*시스템_손절틱수); } ########################################################################