안녕하세요?
시뮬레이션 돌리는 법 문의 드립니다.
실제 과거데이터로 시뮬레이션을 돌려 보면,
SetStopProfittarget(StopTrailingPrice, PointStop);
SetStopTrailing(1, StopTrailingPrice, PointStop);
은 아주 큰 차이를 보입니다.
실제 상황이랑, 이 2개 함수간에 어떤 차이가 있는지 알듯, 말듯 합니다.
그리고, 실제 상황과 가장 유사한, 추천하시는 시뮬레이션 방법에 대해 알려주십시요.
답변 1
예스스탁
예스스탁 답변
2025-06-20 11:02:12
안녕하세요
예스스탁입니다.
1
SetStopProfittarget은 목표수익 청산함수입니다.
SetStopProfittarget(3, PointStop);
와 같이 지정하면 3포인트 수익발생하면 즉시 청산합니다.
2
SetStopTrailing은 지정수익 후 수익이 일정값 감소하면 청산하는 함수입니다.
SetStopProfittarget(1, 3, PointStop);
와 같이 지정하면
매수진입후최고가가 진입가+3포인트 보다 크면 매수진입후최고가에서 1포인트 이상 하락하면 즉시청산,
매도진입후최저가가 진입가-3포인트 보다 작고 매도진입후최저가에서 1포인트 이상 상승하면 즉시청산됩니다.
3
목표이익은 실제와 시뮬레이션과의 괴리가 거의 없습니다.
괴리가 많이 발생하는 강제청산이 SetStopTrailing입니다.
해당 함수가 실시간 봉에서는 정확히 체크되지만
과거봉 시뮬레이션에서는 봉 중간의 움직임을 알수 없어
봉의 고가와 저가가 기준이 되어 수익이 과대계상됩니다.
아래와 같이 작성해서 사용하시면
실제와 시뮬레이션에서 거의 동일하게 사용할 수 있습니다.
아래와 같이 작성하면 수익조건판단은 완성봉으로만 하게 됩니다.
현재 미완성봉의 고가나 저가를 포함해 수익조건달성을 체크하지 않습니다.
최근 완성봉 기준 수익조건달성했으면 현재봉에서 수익잠소조건 만족시 즉시 청산입니다.
if MarketPosition == 1 and highest(H,BarsSinceEntry) >= EntryPrice+3 Then
ExitLong("bx",AtStop,highest(H,BarsSinceEntry)-1);
if MarketPosition == -1 and lowest(L,BarsSinceEntry) <= entryprice-3 Then
ExitShort("sx",AtStop,lowest(L,BarsSinceEntry)+1);
즐거운 하루되세요
> 쌈팔광땡 님이 쓴 글입니다.
> 제목 : 시뮬레이션 돌리는 법 문의
> 안녕하세요?
시뮬레이션 돌리는 법 문의 드립니다.
실제 과거데이터로 시뮬레이션을 돌려 보면,
SetStopProfittarget(StopTrailingPrice, PointStop);
SetStopTrailing(1, StopTrailingPrice, PointStop);
은 아주 큰 차이를 보입니다.
실제 상황이랑, 이 2개 함수간에 어떤 차이가 있는지 알듯, 말듯 합니다.
그리고, 실제 상황과 가장 유사한, 추천하시는 시뮬레이션 방법에 대해 알려주십시요.