커뮤니티

시스템 진입 오류

프로필 이미지
sewzie
2025-05-15 10:32:56
181
글번호 190845
답변완료
안녕하세요 해당 코드가 진입이 전혀 발생하지 않아 혹시 틀린 부분이 있는 검증 부탁드립니다. 감사합니다. 전략 전일 23:00~23:30 사이 형성된 고저 범위를 기준으로, 자정(00:00)봉에서 돌파 시 다음 봉에 진입하고, 손절은 해당 범위만큼, 익절은 손절의 1.5배로 설정합니다. Inputs: ORLen(1), // OR 범위 길이 (1=2봉, 2=3봉, ...) 1~3(step 1) RR(1.5), // 익절: 손절의 RR배 1.5~2.5 (step 0.25) MinRange(0.0); // OR 범위가 이 값보다 작으면 진입 안함 0~0.03 (step 0.005) Vars: orHigh(0), orLow(0), orRange(0), tradeEntered(False), orStartTime(2300 - (ORLen - 1) * 100); // OR 시작 시간 계산 // Opening Range 계산 If Time == orStartTime Then Begin orHigh = High; orLow = Low; tradeEntered = False; End; If Time > orStartTime and Time <= 2330 Then Begin orHigh = MaxList(orHigh, High); orLow = MinList(orLow, Low); End; If Time == 2330 Then orRange = orHigh - orLow; // 자정 봉에서 돌파 여부 확인 If Time >= 0 and Time <= 30 and tradeEntered == False and MarketPosition == 0 Then Begin If orRange >= MinRange Then Begin If Close > orHigh Then Begin Buy("ORB_Long", AtMarket, DEf, 1); tradeEntered = True; End Else If Close < orLow Then Begin Sell("ORB_Short", AtMarket, DEf, 1); tradeEntered = True; End; End; End; // 롱 포지션: 손절 / 익절 If MarketPosition == 1 Then Begin If Close < EntryPrice - orRange Then ExitLong("StopL"); If Close > EntryPrice + orRange * RR Then ExitLong("TargetL"); End; // 숏 포지션: 손절 / 익절 If MarketPosition == -1 Then Begin If Close > EntryPrice + orRange Then ExitShort("StopS"); If Close < EntryPrice - orRange * RR Then ExitShort("TargetS"); End;
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2025-05-16 11:16:25

안녕하세요 예스스탁입니다. 1 예스랭귀지에서 시간은 6자리숫자입니다. 작성하신 식에서는 시간이 모두 4자리입니다. 2 지정한 시간의 봉이 없을 수도 있고 각봉의 끝시간은 초단위까지 있어 정확히 같지 않을수 있습니다. 지정한 시간이후 첫봉이 지정되게 표현하시면 됩니다. 3 Inputs: ORLen(1), // OR 범위 길이 (1=2봉, 2=3봉, ...) 1~3(step 1) RR(1.5), // 익절: 손절의 RR배 1.5~2.5 (step 0.25) MinRange(0.0); // OR 범위가 이 값보다 작으면 진입 안함 0~0.03 (step 0.005) Vars: orHigh(0), orLow(0), orRange(0), tradeEntered(False), orStartTime(2300 - (ORLen - 1) * 10000); // OR 시작 시간 계산 // Opening Range 계산 If (Time >= orStartTime and time[1] < orStartTime) Then Begin orHigh = High; orLow = Low; tradeEntered = False; End; If Time > orStartTime and Time <= 233000 Then Begin orHigh = MaxList(orHigh, High); orLow = MinList(orLow, Low); End; If Time == 233000 Then orRange = orHigh - orLow; // 자정 봉에서 돌파 여부 확인 If Time >= 0 and Time <= 30 and tradeEntered == False and MarketPosition == 0 Then Begin If orRange >= MinRange Then Begin If Close > orHigh Then Begin Buy("ORB_Long", AtMarket, DEf, 1); tradeEntered = True; End Else If Close < orLow Then Begin Sell("ORB_Short", AtMarket, DEf, 1); tradeEntered = True; End; End; End; // 롱 포지션: 손절 / 익절 If MarketPosition == 1 Then Begin If Close < EntryPrice - orRange Then ExitLong("StopL"); If Close > EntryPrice + orRange * RR Then ExitLong("TargetL"); End; // 숏 포지션: 손절 / 익절 If MarketPosition == -1 Then Begin If Close > EntryPrice + orRange Then ExitShort("StopS"); If Close < EntryPrice - orRange * RR Then ExitShort("TargetS"); End; 즐거운 하루되세요 > sewzie 님이 쓴 글입니다. > 제목 : 시스템 진입 오류 > 안녕하세요 해당 코드가 진입이 전혀 발생하지 않아 혹시 틀린 부분이 있는 검증 부탁드립니다. 감사합니다. 전략 전일 23:00~23:30 사이 형성된 고저 범위를 기준으로, 자정(00:00)봉에서 돌파 시 다음 봉에 진입하고, 손절은 해당 범위만큼, 익절은 손절의 1.5배로 설정합니다. Inputs: ORLen(1), // OR 범위 길이 (1=2봉, 2=3봉, ...) 1~3(step 1) RR(1.5), // 익절: 손절의 RR배 1.5~2.5 (step 0.25) MinRange(0.0); // OR 범위가 이 값보다 작으면 진입 안함 0~0.03 (step 0.005) Vars: orHigh(0), orLow(0), orRange(0), tradeEntered(False), orStartTime(2300 - (ORLen - 1) * 100); // OR 시작 시간 계산 // Opening Range 계산 If Time == orStartTime Then Begin orHigh = High; orLow = Low; tradeEntered = False; End; If Time > orStartTime and Time <= 2330 Then Begin orHigh = MaxList(orHigh, High); orLow = MinList(orLow, Low); End; If Time == 2330 Then orRange = orHigh - orLow; // 자정 봉에서 돌파 여부 확인 If Time >= 0 and Time <= 30 and tradeEntered == False and MarketPosition == 0 Then Begin If orRange >= MinRange Then Begin If Close > orHigh Then Begin Buy("ORB_Long", AtMarket, DEf, 1); tradeEntered = True; End Else If Close < orLow Then Begin Sell("ORB_Short", AtMarket, DEf, 1); tradeEntered = True; End; End; End; // 롱 포지션: 손절 / 익절 If MarketPosition == 1 Then Begin If Close < EntryPrice - orRange Then ExitLong("StopL"); If Close > EntryPrice + orRange * RR Then ExitLong("TargetL"); End; // 숏 포지션: 손절 / 익절 If MarketPosition == -1 Then Begin If Close > EntryPrice + orRange Then ExitShort("StopS"); If Close < EntryPrice - orRange * RR Then ExitShort("TargetS"); End;