인과적 GT 신호·복리 배분 시뮬을 도입하고 운영 정합성을 맞춘다.

미래 데이터를 쓰지 않는 causal 신호/tier와 전기간 복리 포트폴리오 비교로 GT 대비 sim_sized 검증 경로를 정리하고, 일한도·매수 상한·live_buy 스케일을 제거한다.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
xavis
2026-05-31 19:50:54 +09:00
parent 5842cc9fa3
commit e68bb44083
16 changed files with 1817 additions and 474 deletions

View File

@@ -16,7 +16,7 @@
"pivot": "peak",
"price": "High",
"weight_rule": "fixed_split_or_full",
"weights_two_sell": [
"weights_split": [
0.65,
0.35
],
@@ -24,13 +24,13 @@
"max_sells_per_leg": 2
},
"capital": {
"buy": "min(total_asset * w_share * tier_scale, cash/(1+fee))",
"buy": "target = total_asset * (weight/remaining_weights) * tier_scale; amount = min(target, available_cash/(1+fee))",
"optimal_buy_rate": "weight / sum(remaining_buy_weights_in_leg)",
"large_leg_top_pct": 0.2,
"pct_large_leg": 1.0,
"pct_small_leg": 0.05,
"min_order_krw": 5000.0,
"sell": "leg_qty * sell_weight * price (last sell = full leg_qty)"
"sell": "sell_base_qty * sell_weight * price (last sell = full leg_qty)"
},
"execution": {
"chrono": "amount_krw 배분·summary.pnl_pct = 시각순 체결(매도 후 현금 → 다음 매수 반영)",
@@ -42,7 +42,7 @@
"interval_min": 3,
"lookback_days": 365,
"period_start": "2025-06-04 03:57:00",
"period_end": "2026-05-31 15:58:00",
"period_end": "2026-05-31 19:36:00",
"trend_at_end": "range",
"params": {
"min_swing_pct": 4.0,
@@ -55,40 +55,39 @@
"max_sells_per_leg": 2
},
"summary": {
"pivot_candidates": 382,
"pivot_candidates": 383,
"sell_peaks": 75,
"trade_count": 454,
"buy_count": 304,
"trade_count": 456,
"buy_count": 306,
"sell_count": 150,
"round_trips": 76,
"sum_sell_leg_return_pct": 1634.3,
"sum_sell_leg_return_pct": 1631.75,
"initial_cash_krw": 1000000,
"final_asset_krw": 43963648.0,
"pnl_krw": 42963648.0,
"pnl_pct": 4296.36,
"total_fees_krw": 238798.0,
"cash_krw": 43963648.0,
"final_asset_krw": 43913513.0,
"pnl_krw": 42913513.0,
"pnl_pct": 4291.35,
"total_fees_krw": 240578.0,
"cash_krw": 43913513.0,
"holding_qty": 0.0,
"holding_value_krw": 0.0,
"mark_price": 503.0,
"mark_price": 487.0,
"fee_rate": 0.0005,
"realized_final_asset_krw": 43963648.0,
"realized_pnl_krw": 42963648.0,
"realized_pnl_pct": 4296.36,
"realized_final_asset_krw": 43913513.0,
"realized_pnl_krw": 42913513.0,
"realized_pnl_pct": 4291.35,
"unrealized_pnl_krw": 0.0,
"execution_order": "chronological",
"order_amount_min_krw": 5000,
"order_amount_max_buy_krw": 100000,
"buy_pct_large_leg": 1.0,
"buy_pct_small_leg": 0.05,
"large_leg_top_pct": 0.2,
"buy_executed": 295,
"buy_executed": 297,
"buy_skipped": 9,
"sell_executed": 150,
"sell_skipped": 0,
"buy_total_krw": 217196361.0,
"buy_total_krw": 219000974.0,
"large_leg_count": 16,
"buy_amount_avg_krw": 736259.0,
"buy_amount_avg_krw": 737377.0,
"buy_amount_min_krw": 5000,
"buy_amount_max_krw": 14200590.0
},
@@ -5974,27 +5973,53 @@
"dt": "2026-05-31 09:36:00",
"action": "buy",
"price": 495.0,
"memo": "저점 분할 매수 · 비중 100% · leg#75(기간말)",
"weight": 1.0,
"amount_krw": 2196518.0,
"memo": "저점 분할 매수 · 비중 33% · leg#75(기간말)",
"weight": 0.331,
"amount_krw": 727048.0,
"leg_id": 75,
"bb_pos": 0.0,
"rsi": 33.3,
"pivot_kind": "trough",
"forward_return_pct": 1.62
"forward_return_pct": -1.62
},
{
"dt": "2026-05-31 15:58:00",
"dt": "2026-05-31 17:39:00",
"action": "buy",
"price": 498.0,
"memo": "저점 분할 매수 · 비중 33% · leg#75(기간말)",
"weight": 0.329,
"amount_krw": 1080300.0,
"leg_id": 75,
"bb_pos": 0.028,
"rsi": 38.5,
"pivot_kind": "trough",
"forward_return_pct": -2.21
},
{
"dt": "2026-05-31 19:33:00",
"action": "buy",
"price": 482.0,
"memo": "저점 분할 매수 · 비중 34% · leg#75(기간말)",
"weight": 0.34,
"amount_krw": 2193783.0,
"leg_id": 75,
"bb_pos": 0.0,
"rsi": 16.7,
"pivot_kind": "trough",
"forward_return_pct": 1.04
},
{
"dt": "2026-05-31 19:36:00",
"action": "sell",
"price": 503.0,
"price": 487.0,
"memo": "기간말 잔여 청산 · leg#75",
"weight": 1.0,
"amount_krw": 2232017.0,
"amount_krw": 3988276.0,
"leg_id": 75,
"bb_pos": 0.091,
"rsi": 35.7,
"bb_pos": 0.042,
"rsi": 16.7,
"pivot_kind": "peak",
"forward_return_pct": 1.62
"forward_return_pct": -0.93
}
]
}