커뮤니티

질문 있습니다.

프로필 이미지
스오어스
2025-10-23 12:11:19
132
글번호 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"); } 즐거운 하루되세요