커뮤니티

질문 있습니다.

프로필 이미지
스오어스
2025-10-23 12:11:19
71
글번호 227224
답변완료

안녕하세요!
답변 덕분에 해결이 되었지만 특정 시간대 진입 거래만 누적 손익 계산이 잘 안되서 도움 요청합니다. ㅠㅠ
제가 원하는 것은 예를 들어서 특정 시간대(예: 7시~21시)에 진입한 거래의 누적 손익만 별도로 계산하고 싶습니다.
=== 현재 시도한 방법 === Input : StartHour(7), EndHour(21); var : TradingPL(0), InTimeEntry(0), SignalHour(0); // 신호 발생 시 시간 기록 if 매수신호 Then { SignalHour = CurrentHour; if SignalHour >= StartHour and SignalHour < EndHour Then InTimeEntry = 1; Else InTimeEntry = 0; } // 진입 (다음 봉) if 신호[1] == 1 Then { Buy(); } // 청산 시 누적 if TotalTrades > TotalTrades[1] Then { if InTimeEntry[1] == 1 Then { TradingPL = TradingPL[1] + (NetProfit - NetProfit[1]) / PriceScale; } } // 22시 누적수익 표시 (EndHour + 1) if CurrentHour == 22 and CurrentHour != CurrentHour[1] Then { Text_New(sDate, sTime, H + 2.0, NumToStr(TradingPL, 0) + "T"); } // 영업일 변경 if Bdate != Bdate[1] Then { TradingPL = 0; }
=== 문제 상황 === 실제 거래 (7시~21시 진입): - 9시 진입 → 11시 청산 +25틱 - 13시 진입 → 15시 청산 -18틱 - 17시 진입 → 19시 청산 +67틱 - 20시 진입 → 22시 청산 -12틱 합계: +62틱
하지만 22시 표시 결과: 3틱 또는 부정확한 값!! (이것 때문에 미치겠습니다. ㅠㅠ)
=== 질문 === 1. 변수 InTimeEntry가 청산 시점까지 제대로 유지되나요? (신호 → 진입 → 청산 과정에서 [1] 참조의 타이밍 문제?)
2. TradingPL 누적 방식이 올바른가요? 매 봉마다 TradingPL = TradingPL[1]로 상태 유지가 필요한가요?
3. 특정 시간대 진입 거래만 필터링하여 누적 손익을 계산하는 표준적인 방법이 있을까요?
바쁘신데 감사합니다. ㅠㅠ

시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2025-10-23 18:19:48

안녕하세요 예스스탁입니다. 올리신 수식에서 InTimeEntry이 시간간격 구분이 되는지 알수 없습니다 아래 내용 참고하시기 바랍니다. var : NP(0),NP1(0),dayPL(0); NP = NetProfit; //7시 직전까지의 총손익 if CurrentHour == 7 and CurrentHour != CurrentHour[1] Then { NP1 = NP[1]; } //7시~21시 사이에 현재까지 당일손익을 틱수로 계산 if CurrentHour >= 7 and CurrentHour <= 21 Then { dayPL = (NP-NP1)/PriceScale } // 22시 출력 if CurrentHour == 22 and CurrentHour != CurrentHour[1] Then { Text_New(sDate, sTime, H + 2.0, NumToStr(dayPL, 0) + "T"); } 즐거운 하루되세요