답변완료
지표 변환 부탁드립니다.
//@version=3
//@author=cI8DH
study(title="Accumulation/Distribution Money Flow (ADMF) [cI8DH]", shorttitle="ADMF [cI8DH]", precision=0)
len = input(14, minval=1, title="length") // EMA27 = SMMA/RMA14 ~ lunar month
price_enable = input(true, title="factor price (=money flow)")
AD_weight = input(0.0, minval=0.0, maxval=1.0, step=0.5, title="A/D weight (at 1 all volume is included)")
AD_ratio = nz(change(close)/tr(true)) // 'True Range' fixes issues caused by gaps in price
AD_ratio := (1-AD_weight)*AD_ratio+sign(AD_ratio)*AD_weight
trl = min(low,close[1]), trh = max(high,close[1])
vol = if price_enable
volume*hlc3
else
volume
plot(rma(vol*AD_ratio,len), style=line, color=#4477ffff, title="A/D Money Flow")
hline(0, color=#88888888, linestyle=dotted, title="0 line")
2025-09-19
154
글번호 194130
지표
답변완료
안녕하세요 질문 있습니다.
SetStopLoss 손절 정확도 관련 문의 (PriceScale 사용법 포함)
안녕하세요.
해외선물 시스템매매에서 SetStopLoss를 사용한 손절이 설정값보다 큰 손실로 청산되는 문제로 문의드립니다.
현재 상황:
SetStopLoss(1.5, PointStop)로 1.5포인트 손절 설정했는데
실제 청산은 1.8~2.5포인트에서 발생, 이유를 알고보니 1.5 손절 도달 했지만 종가 끝나고 다음 캔들에서 바로 청산함
OnClose 방식으로 진입 후 손절 설정
현재 사용 중인 코드:
Buy("BreakUp", OnClose, Def, 1);
SetStopLoss(StopTicks, PointStop); // StopTicks = 1.5
Sell("BreakDown", OnClose, Def, 1);
SetStopLoss(StopTicks, PointStop);
문제점:
1.5포인트 손절 설정했으나 실제로는 1.5 넘었다는 캔들 종가 확인 후 1.8~2.5포인트에서 청산(캔들 높낮이 상황에 다름)
종가 진입 후 다음 봉에서 손절 체결되면서 변동성 큰 구간에서 손절가를 크게 뚫고 청산하니 손해가 막심합니다.
추가 발견사항:
다른 질문 답변에서 예스스탁이 제공한 코드를 보니:
SetStopLoss(PriceScale*손절틱수,PointStop);
SetStopProfittarget(PriceScale*익절틱수,PointStop);
이렇게 PriceScale을 곱해서 사용하고 있더라고요.
질문사항:
OnClose 진입 시 SetStopLoss의 정확한 실행 타이밍은 언제인가요?
SetStopLoss 설정 시 PriceScale을 곱해야 하는지, 아니면 포인트값을 직접 입력해야 하는지 궁금합니다.
제가 현재 SetStopLoss(1.5, PointStop)로 설정한 것이 맞는 방법인가요? 아니면 SetStopLoss(1.5*PriceScale, PointStop)로 해야 하나요?
설정한 손절가에 최대한 가깝게 청산하는 권장 방법이 있나요?
실시간 손절 방식과 SetStopLoss 방식 중 어떤 것이 더 정확한가요?
진입과 동시에 손절 주문을 OCO 방식으로 설정하는 방법이 있나요?
실시간 손절 대안 코드:
if MarketPosition == 1 and L <= AvgEntryPrice - StopTicks then
ExitLong("Stop_L", AtMarket);
if MarketPosition == -1 and H >= AvgEntryPrice + StopTicks then
ExitShort("Stop_S", AtMarket);
해외선물에서 정확한 손절을 위한 최적의 방법과 PriceScale 사용법에 대한 조언 부탁드립니다.
추가할 질문:
OCO 주문 관련:
진입과 동시에 손절/익절 주문을 미리 걸어두는 OCO(One Cancels Other) 주문이나 브래킷 주문이 지원되나요?
예) 3700.0 매도 진입 시 동시에 3701.5 손절 매수주문, 3697.0 익절 매수주문을 대기시키는 방법
현재 SetStopLoss 대신 자동으로 지정가 손절 주문을 거는 방법이 있나요?
Buy("entry") 후 즉시 Sell("stop", AtStop, EntryPrice + StopTicks) 이런 방식으로요
실무적 질문:
1분봉 기준 매매에서 틱 단위 실시간 손절 체크가 시스템 성능에 부담을 주나요?
SetStopLoss의 정확한 작동 로그나 디버깅 정보를 확인할 수 있는 방법이 있나요?
감사합니다.
2025-09-19
123
글번호 194119
시스템