커뮤니티
질문 있습니다.
안녕하세요!
답변 덕분에 해결이 되었지만
특정 시간대 진입 거래만 누적 손익 계산이 잘 안되서 도움 요청합니다. ㅠㅠ
제가 원하는 것은
예를 들어서 특정 시간대(예: 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