본문으로 건너뛰기

원문 보기

BtcSpotDualTimeframeMomentumConfluenceLong

가설

BTC 현물 이중 타임프레임 모멘텀 컨플루언스, LONG-ONLY 1x(BTCUSDT.BINANCE_SPOT, 4H 기본 + 1D 확인, BOTH 타임프레임이 모두 UP을 가리킬 때만 롱, 그 외에는 현금으로 FLAT, ATR 트레일링 + 일간 레짐 브레이크 청산, 원본 최적화 파라미터 유지)

가설

팩토리에서 가장 성과가 좋은 승격 전략(BtcDualTimeframeMomentumConfluenceLS, 샤프 1.99, 거래 458건, 페이퍼 29일 동안 +$4,774)을 BTCUSDT.BINANCE_SPOT로 이식한 LONG-ONLY, 1x, CASH 계정 버전이며, 라이브 거래소가 현물 전용이기 때문에 특별히 FIRST LIVE-TRADING CANDIDATE로서 만들어졌습니다. 메커니즘은 변경 없음, 순수 OHLCV, 단일 상품: FAST 레그 = 4-HOUR 봉의 후행 18봉 수익률 부호; SLOW 레그 = DAILY 봉의 후행 15봉 수익률 부호(on_extra_bar를 통해 컨텍스트 레그로 읽으며, 결코 동기화 장벽이 아닙니다). 둘 다 AGREE해야 합니다. CASH 계정이 강제하는 유일한 구조적 변경은 {LONG/FLAT/SHORT}을 {LONG/FLAT}로 축소하는 것입니다: 선물 모전략이 동반 하락 컨플루언스에서 SHORT로 가는 지점에서, 현물 버전은 100% USDT을 보유합니다. 나머지는 모두 그대로 보존됩니다: ATR(14) 트레일링 스탑은 러닝 익스트림으로부터 3.033x ATR, 일간 레짐 브레이크 청산, 변동성 스케일 자본 상대 사이징(risk_pct 1.011% / 3.033xATR 스탑 거리), 49.7% 최대 명목 상한, 그리고 소스 최적화가 선택한 정확한 파라미터 벡터(fast_lookback 18, slow_lookback 15, trail_atr_mult 3.033). 튜너블 세 개, 보조 데이터 없음, 숏 없음, 레버리지 없음. 현물 특화 코드 변경: BINANCE_SPOT CASH 거래소(position_size에 레버리지 승수 없음), size_precision 5 / price_precision 2, min_notional $10, 매도는 보유 기초 수량에만 맞춰 사이징. 데이터 존재 확인됨: BTCUSDT.BINANCE_SPOT 4-HOUR 및 1-DAY 봉이 2017-08-17부터 연속으로 실행됩니다(약 9년, 약 19,800 4H 봉).

가설

상위 선물 전략 BtcDualTimeframeMomentumConfluenceLS를 현물 거래소로 그대로 이식했는데, 이는 의도된 실거래 거래소가 현물 전용이기 때문이다. 메커니즘은 그대로 보존: 동일한 두 개의 모멘텀 레그, 동일한 AGREE-or-flat 게이트, 동일한 ATR(14) 3.033x 추적 고점 대비 트레일링 스톱, 동일한 일간 레짐 브레이크 청산, 동일한 변동성 스케일링 risk_pct / 손절 거리 기반 사이징과 49.7% 명목가 상한, 그리고 원본 최적화가 선정한 정확한 파라미터 벡터(fast_lookback 18, slow_lookback 15, trail_atr_mult 3.033). CASH 계정은 가설이 명시한 대로 정확히 하나의 구조적 변경을 강제함: {LONG,FLAT,SHORT}가 {LONG,FLAT}로 축소됨 — should_enter은 joint-up일 때만 BUY를 반환하고 그 외에는 None을 반환하므로, joint-down은 숏이 아니라 100% USDT가 된다. 현물 전용 수정 사항: 거래소 BINANCE_SPOT, 레버리지 1.0이며 position_size에 레버리지 항이 없음, size_precision 5 / price_precision 2(BTCUSDT 현물), min_notional은 $10로 인상, 그리고 모든 청산은 기본 템플릿의 reduce-only close_position를 통해 라우팅되어 SELL은 보유 중인 기초자산 수량만 줄일 수 있음(구조상 네이키드 현물 숏은 불가능하며, 기본 템플릿의 _would_open_spot_short 가드는 결코 트리거되지 않음). calculate_signal는 매 봉마다 연속적인 18봉 4H 수익률을 반환함(봉마다 변화함); 이산적인 컨플루언스 게이트는 요구된 대로 should_enter에 존재함. 봉당 비용은 O(1)임: ATR는 고정된 15봉 윈도우를 사용하고 fast 수익률은 단일 인덱스 조회이므로, 이력 스케일링 작업이 없음. 애널리스트를 위한 솔직한 유의사항 하나: 현물 왕복 비용은 ~0.20%로 선물 상위 전략의 ~0.10% 대비 높아, 거래당 엣지가 두 배의 마찰 비용을 넘어서야 함 — 추세 추종형 청산 구조(트레일 + 레짐 브레이크, 고정 익절 없음)가 평균 보유 기간을 그만큼 늘려 이를 가능하게 만드는 요인이지만, 가장 먼저 지켜봐야 할 지표다.

구현

LONG-ONLY 1x BTCUSDT 현물(BINANCE_SPOT, CASH) 듀얼 타임프레임 모멘텀 컨플루언스. FAST 레그 = 4-HOUR 봉의 후행 18봉 수익률 부호(주(主) 레그); SLOW 레그 = 1-DAY 봉의 후행 15봉 수익률 부호로, on_extra_bar를 통해 더 느린 타임프레임의 컨텍스트 레그로 소비됩니다(타임프레임이 다르므로 기본 템플릿의 교차 레그 정렬 장벽이 4H 신호를 지연시키지 않습니다). BTC을 보유하려면 두 레그 모두 UP을 가리켜야 합니다; 동반 하락(선물 모전략이 숏을 잡는 경우)과 불일치 둘 다 100% USDT 보유를 의미합니다. 청산: ATR(14) 트레일링 스탑은 포지션의 러닝 피크 아래 3.033x ATR, OR 롱 포지션 하에서 일간 레그가 하락 전환하는 경우(상위 타임프레임 레짐 브레이크). 사이징은 변동성 스케일 및 자본 상대 방식입니다: equity * 1.011% / (3.033 * ATR), 명목 기준 USDT 잔고의 49.7%로 상한, NO 레버리지 승수(CASH 계정은 차입 불가), size_precision 5로 양자화되며 $10 현물 최소 명목 미만은 거부됩니다. 튜너블 세 개, 순수 OHLCV, 보조 데이터 없음, 숏 없음.

검증 결과

should_exit의 트레일 비교에서 self._atr(현재값)을 사용하여 상위 전략과 정확히 일치시키거나, 트레일이 진입 봉 ATR에 고정되어 있음을 설명에 명시하여 애널리스트가 상위 전략과의 차이를 거래소 변경 탓으로 오인하지 않도록 할 것.

검증 결과

트레일링 스톱 ATR은 진입 시점에 FROZEN되며(self._entry_atr, should_enter 내부 또는 포지션 인수 시 캡처), 이후 갱신되지 않으므로, 트레일 거리는 3.033 x 현재 ATR(14)이 아니라 3.033 x ATR 진입 시점 값에 고정된다. 상위 선물 전략(BtcDualTimeframeMomentumConfluenceLS4H)은 매 봉마다 CURRENT ATR으로 트레일을 래칫한다. 가설의 문구('ATR(14) 추적 고점 대비 3.033x ATR 트레일링 스톱')는 어느 경우든 충족되며, _extreme이 단조증가이므로 스톱 레벨은 여전히 상승만 하므로 이는 정확성 결함은 아니다 — 하지만 진입 이후 변동성이 확대될 경우 실효 스톱이 상위 전략보다 타이트해지는데, 이는 '그대로(verbatim)' 이식했다고 주장하는 전략과의 실질적인 행동 차이다.

검증 결과

should_enter 내부가 아니라 체결 결과(on_order_filled / 포지션이 열린 첫 봉)로부터 거래 상태를 설정하거나, 포지션 조회 전에 calculate_signal 상단에서 방어적으로 리셋할 것.

검증 결과

should_enter()은 기본 템플릿이 주문 사이징을 완료하고 최소 명목가 게이트를 적용한 BEFORE 거래 상태(_in_long = True, _extreme, _entry_atr)를 변경한다. position_size()가 0를 반환하거나 $10 최소 명목가 검사로 진입이 드롭되면, 전략은 실제로는 플랫 상태임에도 in-long 상태로 플래그되고 트레일이 armed 상태로 남는다. 실제로는 다음 봉에서 자가 복구된다(calculate_signal는 포지션이 None임을 보고 플래그를 리셋하며, 플랫 상태에서는 should_exit에 결코 도달하지 않음), 따라서 관측 가능한 동작상 버그는 없다 — 하지만 청산 경로가 향후 변경될 경우 이 불변식은 취약하다.

검증 결과

정확성을 위한 수정은 불필요함. 동일 봉 소비를 정확히 맞추고 싶다면, on_extra_bar에 캐싱하는 대신 calculate_signal 내부에서 self._extra_bars[...]로부터 _slow_dir을 지연 재계산할 것.

검증 결과

일일 레그에서 한 바 지연이 발생합니다: DAILY 바와 해당 날짜의 마지막 4H 바는 동일한 종가 타임스탬프를 공유합니다. 엔진이 기본 4H 바를 먼저 전달하면 _maybe_process_primary()가 실행되어 _last_processed_ts를 기록하고, 동일한 ts에 도착하는 일일 바의 _slow_dir 업데이트는 NEXT 4H 바에서만 소비됩니다. 이는 보수적인 동작입니다(신호를 지연시킬 수만 있고 미래 데이터를 누출시키지는 않음). 그러나 약 절반의 경우 일일 레짐 이탈 청산이 일일 종가 이후 최대 4시간 뒤에 발동할 수 있으며, 백테스트와 페이퍼 트레이딩의 일치 여부는 전달 순서가 안정적인지에 달려 있습니다.

검증 결과

충실한 구현이지만, 전체 이력(full history)에서 분석가가 반드시 저울질해야 할 세 가지가 있습니다: (1) 현물 왕복(round-trip) 비용은 약 0.20%로 선물 모전략의 약 0.10%와 대비되므로, 동일한 총(gross) 엣지의 순(net) 수익은 대략 절반이 됩니다 — 샌드박스는 이미 커미션이 총액의 10.03%임을 보여줍니다; (2) 파라미터 벡터(fast 18 / slow 15 / trail 3.033)는 DIFFERENT 거래소, 타임프레임 조합 및 방향 집합(LONG/SHORT 선물)에서의 최적화 실행으로 선택된 것이므로, 이는 최적화된 구성이 아니라 표본 외(out-of-sample) 이전입니다 — 샌드박스 샤프는 0.527이며 벤치마크 대비 sharpe_ci_low -0.233 및 information_ratio -0.760입니다. 즉, 롱 온리(long-only) BTC 북이며 스모크 윈도우에서 BTC 보유를 언더퍼폼합니다; (3) 숏 레그를 제거하면 모전략 거래 모집단의 약 절반(거래 250건, 전부 롱, 익스포저 43.6%)이 사라지므로, 실현 샤프는 모전략의 1.99에 근접하기보다 훨씬 낮을 것으로 예상해야 합니다. 실제 백테스트에서 가장 먼저 확인할 것: avg_trade_return_pct이 0.25% 현물 하한에 대해 어떠한지(샌드박스는 0.82%을 보여주지만, 그 윈도우는 2017을 제외하며 2401일에 불과합니다) 그리고 'normal' 변동성 삼분위(-8.77%, 샌드박스 기준)가 전체 이력에서도 음수로 유지되는지 여부입니다.

백테스트 검토

3146일간(2017-08 → 2026-03) 314건의 청산된 거래, metrics_reliable=true, entry_diag 314/314건 진입 제출, 0건 드롭.

백테스트 검토

거래는 가설을 구현함: 전부 314 LONG / 0 숏(상위 전략의 LONG/FLAT/SHORT에 대한 올바른 CASH 축소), 최대 명목가/자기자본 비율 0.50 vs 0.497 상한, 평균 보유 4일8시간 및 선물 상위 전략을 재현하는 43.6% 익스포저.

백테스트 검토

avg_trade_return_pct 1.20% vs ~0.20% BINANCE_SPOT 왕복 비용; 커미션은 총액의 8.97%에 불과, 임팩트 4.33% — 수수료 한계 상황은 아님.

백테스트 검토

max_drawdown 10.3%(15% 현물 기본값 대비), PF 1.41, 승률 40.4%에서 페이오프 2.07(올바른 추세 형태), 스트레스 변동성 삼분위 구간 +28.0%.

백테스트 검토

극단적인 쏠림: 상위 10/314 거래가 거래별 수익 합계의 93.8%를 차지, 상위 20은 141%(거래 21–314은 순손실).

백테스트 검토

단 6/10개 연도만 양(+)의 수익 — 정확히 하한선 수준이며, 최근 두 해 모두 마이너스(2025 −10.5%, 2026 −9.9%).

백테스트 검토

샤프 0.664, sharpe_ci_low 0.0042, PSR 0.924(<0.95): 약 225회 시행 선정 기준을 적용하기 이전부터 이미 한계선상이었음.

백테스트 검토

QA의 우려가 부분적으로 확인됨: '정상' 변동성 삼분위 구간이 여전히 마이너스(−7.70%, 16.1% DD), information_ratio −0.757, 알파는 연 +2.4%에 불과 — 이는 BTC 보유 대비 저조하며, benchmark_meaningful=true이므로 그 미달분은 실질적이다.

백테스트 검토

파라미터는 다른 거래소/방향 세트로부터의 표본 외(out-of-sample) 이전임 — 과최적화된 것은 아니지만, 여기서 검증되지도 않았음.
전략 보고서

Stratmill은 리서치 및 페이퍼 트레이딩 도구이며, 투자 자문이나 중개업체가 아닙니다. 백테스트 및 페이퍼 트레이딩 결과는 가상의 결과입니다. 트레이딩에는 손실 위험이 따릅니다.