40만 원 기준 시뮬·dry-run 정합 및 hybrid 체결 엔진 통합.
초기 자금 GT_INITIAL_CASH_KRW=400000과 원화 한도 비율(알림·LIVE_ORDER·일한도·손실한도)을 맞추고, dry-run/live 체결을 sim_causal_hybrid(replay)와 동일 경로로 통합한다. 시뮬 리포트 갱신, Phase C 슈퍼바이저·매수매도 리허설 스크립트를 추가한다. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -6,75 +6,75 @@
|
||||
"walk_forward": [
|
||||
{
|
||||
"month": "2025-06",
|
||||
"pnl_pct": 12.78,
|
||||
"start_asset_krw": 1000000.0,
|
||||
"end_asset_krw": 1127825.0
|
||||
"pnl_pct": 10.02,
|
||||
"start_asset_krw": 400000.0,
|
||||
"end_asset_krw": 440064.0
|
||||
},
|
||||
{
|
||||
"month": "2025-07",
|
||||
"pnl_pct": 60.89,
|
||||
"start_asset_krw": 1127825.0,
|
||||
"end_asset_krw": 1814584.0
|
||||
"start_asset_krw": 440064.0,
|
||||
"end_asset_krw": 708031.0
|
||||
},
|
||||
{
|
||||
"month": "2025-08",
|
||||
"pnl_pct": 22.9,
|
||||
"start_asset_krw": 1814584.0,
|
||||
"end_asset_krw": 2230083.0
|
||||
"start_asset_krw": 708031.0,
|
||||
"end_asset_krw": 870154.0
|
||||
},
|
||||
{
|
||||
"month": "2025-09",
|
||||
"pnl_pct": 57.63,
|
||||
"start_asset_krw": 2230083.0,
|
||||
"end_asset_krw": 3515283.0
|
||||
"pnl_pct": 58.24,
|
||||
"start_asset_krw": 870154.0,
|
||||
"end_asset_krw": 1376957.0
|
||||
},
|
||||
{
|
||||
"month": "2025-10",
|
||||
"pnl_pct": 9.29,
|
||||
"start_asset_krw": 3515283.0,
|
||||
"end_asset_krw": 3842010.0
|
||||
"pnl_pct": 1.41,
|
||||
"start_asset_krw": 1376957.0,
|
||||
"end_asset_krw": 1396376.0
|
||||
},
|
||||
{
|
||||
"month": "2025-11",
|
||||
"pnl_pct": 11.24,
|
||||
"start_asset_krw": 3842010.0,
|
||||
"end_asset_krw": 4273771.0
|
||||
"pnl_pct": 19.55,
|
||||
"start_asset_krw": 1396376.0,
|
||||
"end_asset_krw": 1669367.0
|
||||
},
|
||||
{
|
||||
"month": "2025-12",
|
||||
"pnl_pct": -0.87,
|
||||
"start_asset_krw": 4273771.0,
|
||||
"end_asset_krw": 4236421.0
|
||||
"pnl_pct": -1.53,
|
||||
"start_asset_krw": 1669367.0,
|
||||
"end_asset_krw": 1643749.0
|
||||
},
|
||||
{
|
||||
"month": "2026-01",
|
||||
"pnl_pct": 33.77,
|
||||
"start_asset_krw": 4236421.0,
|
||||
"end_asset_krw": 5666889.0
|
||||
"pnl_pct": 28.68,
|
||||
"start_asset_krw": 1643749.0,
|
||||
"end_asset_krw": 2115197.0
|
||||
},
|
||||
{
|
||||
"month": "2026-02",
|
||||
"pnl_pct": 15.61,
|
||||
"start_asset_krw": 5666889.0,
|
||||
"end_asset_krw": 6551242.0
|
||||
"pnl_pct": 20.21,
|
||||
"start_asset_krw": 2115197.0,
|
||||
"end_asset_krw": 2542690.0
|
||||
},
|
||||
{
|
||||
"month": "2026-03",
|
||||
"pnl_pct": 9.12,
|
||||
"start_asset_krw": 6551242.0,
|
||||
"end_asset_krw": 7148390.0
|
||||
"pnl_pct": 9.7,
|
||||
"start_asset_krw": 2542690.0,
|
||||
"end_asset_krw": 2789334.0
|
||||
},
|
||||
{
|
||||
"month": "2026-04",
|
||||
"pnl_pct": 22.85,
|
||||
"start_asset_krw": 7148390.0,
|
||||
"end_asset_krw": 8782116.0
|
||||
"pnl_pct": 22.86,
|
||||
"start_asset_krw": 2789334.0,
|
||||
"end_asset_krw": 3426893.0
|
||||
},
|
||||
{
|
||||
"month": "2026-05",
|
||||
"pnl_pct": 47.57,
|
||||
"start_asset_krw": 8782116.0,
|
||||
"end_asset_krw": 12959660.0
|
||||
"pnl_pct": 44.66,
|
||||
"start_asset_krw": 3426893.0,
|
||||
"end_asset_krw": 4957419.0
|
||||
}
|
||||
],
|
||||
"walk_forward_summary": {
|
||||
@@ -292,29 +292,29 @@
|
||||
{
|
||||
"name": "hybrid_holdout_pnl",
|
||||
"pass": true,
|
||||
"value": 62.35
|
||||
"value": 59.15
|
||||
},
|
||||
{
|
||||
"name": "hybrid_max_mdd",
|
||||
"pass": true,
|
||||
"value": 19.22
|
||||
"value": 19.89
|
||||
},
|
||||
{
|
||||
"name": "hybrid_fee_stress_pnl",
|
||||
"pass": true,
|
||||
"value": 975.74
|
||||
"value": 947.42
|
||||
},
|
||||
{
|
||||
"name": "option_c_target_300pct",
|
||||
"pass": true,
|
||||
"value": 1147.3,
|
||||
"value": 1116.87,
|
||||
"optional": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"go_no_go_option_c_phase2": {
|
||||
"go": true,
|
||||
"gt_capture_ratio": 0.2674,
|
||||
"go": false,
|
||||
"gt_capture_ratio": 0.1587,
|
||||
"targets": {
|
||||
"phase2_pnl_pct": 1000.0,
|
||||
"min_gt_capture": 0.23,
|
||||
@@ -328,33 +328,33 @@
|
||||
{
|
||||
"name": "full_pnl_1000pct",
|
||||
"pass": true,
|
||||
"value": 1147.3
|
||||
"value": 1116.87
|
||||
},
|
||||
{
|
||||
"name": "gt_capture_23pct",
|
||||
"pass": true,
|
||||
"value": 0.2674
|
||||
"pass": false,
|
||||
"value": 0.1587
|
||||
},
|
||||
{
|
||||
"name": "holdout_pnl_positive",
|
||||
"pass": true,
|
||||
"value": 62.35
|
||||
"value": 59.15
|
||||
},
|
||||
{
|
||||
"name": "max_mdd",
|
||||
"pass": true,
|
||||
"value": 19.22
|
||||
"value": 19.89
|
||||
},
|
||||
{
|
||||
"name": "fee_stress_ratio",
|
||||
"pass": true,
|
||||
"value": 975.74,
|
||||
"value": 947.42,
|
||||
"threshold": 850.0
|
||||
},
|
||||
{
|
||||
"name": "slippage_stress_positive",
|
||||
"pass": true,
|
||||
"value": 31.58,
|
||||
"value": 28.14,
|
||||
"note": "체결가 슬리피지 반영 후에도 흑자"
|
||||
},
|
||||
{
|
||||
@@ -366,87 +366,87 @@
|
||||
},
|
||||
"portfolio_compare": {
|
||||
"ground_truth_chrono": {
|
||||
"initial_cash_krw": 1000000,
|
||||
"final_asset_krw": 43913514.0,
|
||||
"pnl_krw": 42913514.0,
|
||||
"pnl_pct": 4291.35,
|
||||
"initial_cash_krw": 400000,
|
||||
"final_asset_krw": 28554960.0,
|
||||
"pnl_krw": 28154960.0,
|
||||
"pnl_pct": 7038.74,
|
||||
"total_fees_krw": 240578.0,
|
||||
"cash_krw": 43913514.0,
|
||||
"cash_krw": 28554960.0,
|
||||
"holding_qty": 0.0,
|
||||
"holding_value_krw": 0.0,
|
||||
"mark_price": 487.0,
|
||||
"fee_rate": 0.0005,
|
||||
"trade_count": 456,
|
||||
"max_drawdown_pct": 6.17,
|
||||
"peak_asset_krw": 1234838.0,
|
||||
"trough_asset_krw": 1158619.0
|
||||
"max_drawdown_pct": 8.34,
|
||||
"peak_asset_krw": 9032973.0,
|
||||
"trough_asset_krw": 8279398.0
|
||||
},
|
||||
"sim_sized": {
|
||||
"initial_cash_krw": 1000000,
|
||||
"final_asset_krw": 1746868.0,
|
||||
"pnl_krw": 746868.0,
|
||||
"pnl_pct": 74.69,
|
||||
"total_fees_krw": 29780.0,
|
||||
"cash_krw": 1509979.0,
|
||||
"holding_qty": 486.425998,
|
||||
"holding_value_krw": 236889.0,
|
||||
"initial_cash_krw": 400000,
|
||||
"final_asset_krw": 546248.0,
|
||||
"pnl_krw": 146248.0,
|
||||
"pnl_pct": 36.56,
|
||||
"total_fees_krw": 15161.0,
|
||||
"cash_krw": 467164.0,
|
||||
"holding_qty": 162.389581,
|
||||
"holding_value_krw": 79084.0,
|
||||
"mark_price": 487.0,
|
||||
"fee_rate": 0.0005,
|
||||
"trade_count": 5225,
|
||||
"max_drawdown_pct": 9.53,
|
||||
"peak_asset_krw": 1023021.0,
|
||||
"trough_asset_krw": 925549.0,
|
||||
"max_drawdown_pct": 20.54,
|
||||
"peak_asset_krw": 412326.0,
|
||||
"trough_asset_krw": 327644.0,
|
||||
"sizing_mode": "gt_model_compound_causal",
|
||||
"sizing_note": "전기간 복리·GT tier·총자산×비중, 보유현금 한도; 인과적 신호·tier(미래 미사용)"
|
||||
},
|
||||
"sim_fixed_order": {
|
||||
"initial_cash_krw": 1000000,
|
||||
"final_asset_krw": 58389.0,
|
||||
"pnl_krw": -941611.0,
|
||||
"initial_cash_krw": 400000,
|
||||
"final_asset_krw": 23356.0,
|
||||
"pnl_krw": -376644.0,
|
||||
"pnl_pct": -94.16,
|
||||
"total_fees_krw": 43869.0,
|
||||
"cash_krw": -0.0,
|
||||
"holding_qty": 119.896264,
|
||||
"holding_value_krw": 58389.0,
|
||||
"total_fees_krw": 17548.0,
|
||||
"cash_krw": 0.0,
|
||||
"holding_qty": 47.958506,
|
||||
"holding_value_krw": 23356.0,
|
||||
"mark_price": 487.0,
|
||||
"fee_rate": 0.0005,
|
||||
"order_krw": 100000.0,
|
||||
"order_krw": 40000.0,
|
||||
"sizing_mode": "fixed",
|
||||
"trade_count": 5225
|
||||
},
|
||||
"sim_gt_model": {
|
||||
"initial_cash_krw": 1000000,
|
||||
"final_asset_krw": 1081984.0,
|
||||
"pnl_krw": 81984.0,
|
||||
"pnl_pct": 8.2,
|
||||
"total_fees_krw": 240.0,
|
||||
"cash_krw": 881042.0,
|
||||
"holding_qty": 412.612808,
|
||||
"holding_value_krw": 200942.0,
|
||||
"initial_cash_krw": 400000,
|
||||
"final_asset_krw": 418244.0,
|
||||
"pnl_krw": 18244.0,
|
||||
"pnl_pct": 4.56,
|
||||
"total_fees_krw": 120.0,
|
||||
"cash_krw": 309487.0,
|
||||
"holding_qty": 223.320164,
|
||||
"holding_value_krw": 108757.0,
|
||||
"mark_price": 487.0,
|
||||
"fee_rate": 0.0005,
|
||||
"trade_count": 33,
|
||||
"max_drawdown_pct": 4.38,
|
||||
"peak_asset_krw": 1072413.0,
|
||||
"trough_asset_krw": 1025457.0,
|
||||
"max_drawdown_pct": 9.79,
|
||||
"peak_asset_krw": 429734.0,
|
||||
"trough_asset_krw": 387649.0,
|
||||
"sizing_mode": "gt_model_compound_causal",
|
||||
"sizing_note": "전기간 복리·GT tier·총자산×비중, 보유현금 한도; 인과적 신호·tier(미래 미사용)"
|
||||
},
|
||||
"sim_causal_gt": {
|
||||
"initial_cash_krw": 1000000,
|
||||
"final_asset_krw": 1147944.0,
|
||||
"pnl_krw": 147944.0,
|
||||
"pnl_pct": 14.79,
|
||||
"total_fees_krw": 2025.0,
|
||||
"cash_krw": 1147944.0,
|
||||
"initial_cash_krw": 400000,
|
||||
"final_asset_krw": 459948.0,
|
||||
"pnl_krw": 59948.0,
|
||||
"pnl_pct": 14.99,
|
||||
"total_fees_krw": 900.0,
|
||||
"cash_krw": 459948.0,
|
||||
"holding_qty": 0.0,
|
||||
"holding_value_krw": 0.0,
|
||||
"mark_price": 487.0,
|
||||
"fee_rate": 0.0005,
|
||||
"trade_count": 124,
|
||||
"max_drawdown_pct": 0.96,
|
||||
"peak_asset_krw": 1118535.0,
|
||||
"trough_asset_krw": 1107793.0,
|
||||
"trade_count": 129,
|
||||
"max_drawdown_pct": 1.51,
|
||||
"peak_asset_krw": 448991.0,
|
||||
"trough_asset_krw": 442216.0,
|
||||
"leg_count": 17,
|
||||
"sizing_mode": "causal_gt_leg_engine",
|
||||
"sizing_note": "인과 GT leg: split_buy + peak_sell, causal tier 복리 (미래 미사용)",
|
||||
@@ -461,46 +461,46 @@
|
||||
"use_local_trough": false
|
||||
},
|
||||
"alloc_stats": {
|
||||
"buy_executed": 91,
|
||||
"buy_executed": 96,
|
||||
"buy_skipped": 0,
|
||||
"sell_executed": 33,
|
||||
"sell_skipped": 0,
|
||||
"buy_total_krw": 1950020.0,
|
||||
"buy_total_krw": 870005.0,
|
||||
"large_leg_count": 0,
|
||||
"large_tier_buy_count": 0,
|
||||
"buy_amount_avg_krw": 21429.0,
|
||||
"buy_amount_avg_krw": 9063.0,
|
||||
"buy_amount_min_krw": 5000,
|
||||
"buy_amount_max_krw": 57216.0
|
||||
"buy_amount_max_krw": 22925.0
|
||||
}
|
||||
},
|
||||
"sim_causal_hybrid": {
|
||||
"initial_cash_krw": 1000000,
|
||||
"final_asset_krw": 12473032.0,
|
||||
"pnl_krw": 11473032.0,
|
||||
"pnl_pct": 1147.3,
|
||||
"total_fees_krw": 710297.0,
|
||||
"cash_krw": 0.0,
|
||||
"holding_qty": 25611.975633,
|
||||
"holding_value_krw": 12473032.0,
|
||||
"initial_cash_krw": 400000,
|
||||
"final_asset_krw": 4867465.0,
|
||||
"pnl_krw": 4467465.0,
|
||||
"pnl_pct": 1116.87,
|
||||
"total_fees_krw": 277183.0,
|
||||
"cash_krw": 3.0,
|
||||
"holding_qty": 9994.789459,
|
||||
"holding_value_krw": 4867462.0,
|
||||
"mark_price": 487.0,
|
||||
"fee_rate": 0.0005,
|
||||
"trade_count": 5225,
|
||||
"max_drawdown_pct": 19.22,
|
||||
"peak_asset_krw": 1174413.0,
|
||||
"trough_asset_krw": 948744.0,
|
||||
"max_drawdown_pct": 19.89,
|
||||
"peak_asset_krw": 3104956.0,
|
||||
"trough_asset_krw": 2487267.0,
|
||||
"sizing_mode": "monitor_dd_tier",
|
||||
"sizing_note": "monitor buy+sell + drawdown·past-leg tier (미래 미사용)",
|
||||
"alloc_stats": {
|
||||
"buy_executed": 1632,
|
||||
"buy_skipped": 655,
|
||||
"buy_executed": 1628,
|
||||
"buy_skipped": 659,
|
||||
"sell_executed": 2938,
|
||||
"sell_skipped": 0,
|
||||
"buy_total_krw": 710442254.0,
|
||||
"large_leg_count": 1535,
|
||||
"large_tier_buy_count": 1535,
|
||||
"buy_amount_avg_krw": 435320.0,
|
||||
"buy_amount_min_krw": 828.0,
|
||||
"buy_amount_max_krw": 8620153.0
|
||||
"buy_total_krw": 277244801.0,
|
||||
"large_leg_count": 1532,
|
||||
"large_tier_buy_count": 1532,
|
||||
"buy_amount_avg_krw": 170298.0,
|
||||
"buy_amount_min_krw": 323.0,
|
||||
"buy_amount_max_krw": 3363487.0
|
||||
},
|
||||
"input_fires": 5225
|
||||
},
|
||||
@@ -509,208 +509,208 @@
|
||||
"dd_medium_pct": 2.0
|
||||
},
|
||||
"sim_tier_enhanced": {
|
||||
"initial_cash_krw": 1000000,
|
||||
"final_asset_krw": 487437.0,
|
||||
"pnl_krw": -512563.0,
|
||||
"pnl_pct": -51.26,
|
||||
"total_fees_krw": 107068.0,
|
||||
"cash_krw": 1.0,
|
||||
"holding_qty": 1000.895401,
|
||||
"holding_value_krw": 487436.0,
|
||||
"initial_cash_krw": 400000,
|
||||
"final_asset_krw": 232667.0,
|
||||
"pnl_krw": -167333.0,
|
||||
"pnl_pct": -41.83,
|
||||
"total_fees_krw": 51034.0,
|
||||
"cash_krw": -0.0,
|
||||
"holding_qty": 477.75476,
|
||||
"holding_value_krw": 232667.0,
|
||||
"mark_price": 487.0,
|
||||
"fee_rate": 0.0005,
|
||||
"trade_count": 5225,
|
||||
"max_drawdown_pct": 74.08,
|
||||
"peak_asset_krw": 1540984.0,
|
||||
"trough_asset_krw": 399432.0,
|
||||
"max_drawdown_pct": 73.4,
|
||||
"peak_asset_krw": 735586.0,
|
||||
"trough_asset_krw": 195638.0,
|
||||
"sizing_mode": "monitor_tier_enhanced",
|
||||
"sizing_note": "monitor buy+sell + past-leg·drawdown tier + conviction (미래 미사용)",
|
||||
"alloc_stats": {
|
||||
"buy_executed": 279,
|
||||
"buy_skipped": 2008,
|
||||
"buy_executed": 241,
|
||||
"buy_skipped": 2046,
|
||||
"sell_executed": 2938,
|
||||
"sell_skipped": 0,
|
||||
"buy_total_krw": 107514607.0,
|
||||
"large_leg_count": 136,
|
||||
"large_tier_buy_count": 136,
|
||||
"buy_amount_avg_krw": 385357.0,
|
||||
"buy_total_krw": 51208940.0,
|
||||
"large_leg_count": 143,
|
||||
"large_tier_buy_count": 143,
|
||||
"buy_amount_avg_krw": 212485.0,
|
||||
"buy_amount_min_krw": 5000,
|
||||
"buy_amount_max_krw": 1540213.0
|
||||
"buy_amount_max_krw": 735224.0
|
||||
},
|
||||
"input_fires": 5225
|
||||
},
|
||||
"sim_sized_holdout": {
|
||||
"initial_asset_krw": 1605322.0,
|
||||
"final_asset_krw": 1751246.0,
|
||||
"pnl_krw": 145924.0,
|
||||
"pnl_pct": 9.09,
|
||||
"initial_asset_krw": 515736.0,
|
||||
"final_asset_krw": 547709.0,
|
||||
"pnl_krw": 31973.0,
|
||||
"pnl_pct": 6.2,
|
||||
"trade_count": 845,
|
||||
"note": "전기간 복리(causal tier) 후 holdout 구간 자산 증감"
|
||||
},
|
||||
"sim_hybrid_holdout": {
|
||||
"initial_asset_krw": 7982769.0,
|
||||
"final_asset_krw": 12959660.0,
|
||||
"pnl_krw": 4976891.0,
|
||||
"pnl_pct": 62.35,
|
||||
"initial_asset_krw": 3114931.0,
|
||||
"final_asset_krw": 4957419.0,
|
||||
"pnl_krw": 1842488.0,
|
||||
"pnl_pct": 59.15,
|
||||
"trade_count": 845,
|
||||
"note": "전기간 복리(hybrid DD tier) 후 holdout 구간 자산 증감"
|
||||
},
|
||||
"sim_hybrid_fee_stress": {
|
||||
"initial_cash_krw": 1000000,
|
||||
"final_asset_krw": 10757384.0,
|
||||
"pnl_krw": 9757384.0,
|
||||
"pnl_pct": 975.74,
|
||||
"total_fees_krw": 1289111.0,
|
||||
"initial_cash_krw": 400000,
|
||||
"final_asset_krw": 4189669.0,
|
||||
"pnl_krw": 3789669.0,
|
||||
"pnl_pct": 947.42,
|
||||
"total_fees_krw": 502923.0,
|
||||
"cash_krw": -0.0,
|
||||
"holding_qty": 22089.084224,
|
||||
"holding_value_krw": 10757384.0,
|
||||
"holding_qty": 8603.015894,
|
||||
"holding_value_krw": 4189669.0,
|
||||
"mark_price": 487.0,
|
||||
"fee_rate": 0.001,
|
||||
"trade_count": 5225,
|
||||
"max_drawdown_pct": 16.02,
|
||||
"peak_asset_krw": 7104706.0,
|
||||
"trough_asset_krw": 5966238.0
|
||||
"max_drawdown_pct": 20.18,
|
||||
"peak_asset_krw": 460724.0,
|
||||
"trough_asset_krw": 367741.0
|
||||
},
|
||||
"sim_hybrid_slippage_stress": {
|
||||
"initial_cash_krw": 1000000,
|
||||
"final_asset_krw": 1315755.0,
|
||||
"pnl_krw": 315755.0,
|
||||
"pnl_pct": 31.58,
|
||||
"total_fees_krw": 710297.0,
|
||||
"initial_cash_krw": 400000,
|
||||
"final_asset_krw": 512580.0,
|
||||
"pnl_krw": 112580.0,
|
||||
"pnl_pct": 28.14,
|
||||
"total_fees_krw": 277183.0,
|
||||
"cash_krw": -0.0,
|
||||
"holding_qty": 2701.755603,
|
||||
"holding_value_krw": 1315755.0,
|
||||
"holding_qty": 1052.52527,
|
||||
"holding_value_krw": 512580.0,
|
||||
"mark_price": 487.0,
|
||||
"fee_rate": 0.0005,
|
||||
"trade_count": 5225,
|
||||
"max_drawdown_pct": 59.08,
|
||||
"peak_asset_krw": 3483599.0,
|
||||
"trough_asset_krw": 1425625.0,
|
||||
"max_drawdown_pct": 59.13,
|
||||
"peak_asset_krw": 1358898.0,
|
||||
"trough_asset_krw": 555385.0,
|
||||
"slippage_pct": 0.05,
|
||||
"sizing_mode": "hybrid_slippage_stress"
|
||||
},
|
||||
"hybrid_portfolio_walk_forward": [
|
||||
{
|
||||
"month": "2025-06",
|
||||
"pnl_pct": 12.78,
|
||||
"start_asset_krw": 1000000.0,
|
||||
"end_asset_krw": 1127825.0
|
||||
"pnl_pct": 10.02,
|
||||
"start_asset_krw": 400000.0,
|
||||
"end_asset_krw": 440064.0
|
||||
},
|
||||
{
|
||||
"month": "2025-07",
|
||||
"pnl_pct": 60.89,
|
||||
"start_asset_krw": 1127825.0,
|
||||
"end_asset_krw": 1814584.0
|
||||
"start_asset_krw": 440064.0,
|
||||
"end_asset_krw": 708031.0
|
||||
},
|
||||
{
|
||||
"month": "2025-08",
|
||||
"pnl_pct": 22.9,
|
||||
"start_asset_krw": 1814584.0,
|
||||
"end_asset_krw": 2230083.0
|
||||
"start_asset_krw": 708031.0,
|
||||
"end_asset_krw": 870154.0
|
||||
},
|
||||
{
|
||||
"month": "2025-09",
|
||||
"pnl_pct": 57.63,
|
||||
"start_asset_krw": 2230083.0,
|
||||
"end_asset_krw": 3515283.0
|
||||
"pnl_pct": 58.24,
|
||||
"start_asset_krw": 870154.0,
|
||||
"end_asset_krw": 1376957.0
|
||||
},
|
||||
{
|
||||
"month": "2025-10",
|
||||
"pnl_pct": 9.29,
|
||||
"start_asset_krw": 3515283.0,
|
||||
"end_asset_krw": 3842010.0
|
||||
"pnl_pct": 1.41,
|
||||
"start_asset_krw": 1376957.0,
|
||||
"end_asset_krw": 1396376.0
|
||||
},
|
||||
{
|
||||
"month": "2025-11",
|
||||
"pnl_pct": 11.24,
|
||||
"start_asset_krw": 3842010.0,
|
||||
"end_asset_krw": 4273771.0
|
||||
"pnl_pct": 19.55,
|
||||
"start_asset_krw": 1396376.0,
|
||||
"end_asset_krw": 1669367.0
|
||||
},
|
||||
{
|
||||
"month": "2025-12",
|
||||
"pnl_pct": -0.87,
|
||||
"start_asset_krw": 4273771.0,
|
||||
"end_asset_krw": 4236421.0
|
||||
"pnl_pct": -1.53,
|
||||
"start_asset_krw": 1669367.0,
|
||||
"end_asset_krw": 1643749.0
|
||||
},
|
||||
{
|
||||
"month": "2026-01",
|
||||
"pnl_pct": 33.77,
|
||||
"start_asset_krw": 4236421.0,
|
||||
"end_asset_krw": 5666889.0
|
||||
"pnl_pct": 28.68,
|
||||
"start_asset_krw": 1643749.0,
|
||||
"end_asset_krw": 2115197.0
|
||||
},
|
||||
{
|
||||
"month": "2026-02",
|
||||
"pnl_pct": 15.61,
|
||||
"start_asset_krw": 5666889.0,
|
||||
"end_asset_krw": 6551242.0
|
||||
"pnl_pct": 20.21,
|
||||
"start_asset_krw": 2115197.0,
|
||||
"end_asset_krw": 2542690.0
|
||||
},
|
||||
{
|
||||
"month": "2026-03",
|
||||
"pnl_pct": 9.12,
|
||||
"start_asset_krw": 6551242.0,
|
||||
"end_asset_krw": 7148390.0
|
||||
"pnl_pct": 9.7,
|
||||
"start_asset_krw": 2542690.0,
|
||||
"end_asset_krw": 2789334.0
|
||||
},
|
||||
{
|
||||
"month": "2026-04",
|
||||
"pnl_pct": 22.85,
|
||||
"start_asset_krw": 7148390.0,
|
||||
"end_asset_krw": 8782116.0
|
||||
"pnl_pct": 22.86,
|
||||
"start_asset_krw": 2789334.0,
|
||||
"end_asset_krw": 3426893.0
|
||||
},
|
||||
{
|
||||
"month": "2026-05",
|
||||
"pnl_pct": 47.57,
|
||||
"start_asset_krw": 8782116.0,
|
||||
"end_asset_krw": 12959660.0
|
||||
"pnl_pct": 44.66,
|
||||
"start_asset_krw": 3426893.0,
|
||||
"end_asset_krw": 4957419.0
|
||||
}
|
||||
],
|
||||
"hybrid_portfolio_wf_summary": {
|
||||
"months": 12,
|
||||
"positive_months": 11,
|
||||
"positive_ratio": 0.9167,
|
||||
"mean_pnl_pct": 25.23
|
||||
"mean_pnl_pct": 24.8
|
||||
},
|
||||
"primary_sizing": "hybrid",
|
||||
"sim_primary": {
|
||||
"initial_cash_krw": 1000000,
|
||||
"final_asset_krw": 12473032.0,
|
||||
"pnl_krw": 11473032.0,
|
||||
"pnl_pct": 1147.3,
|
||||
"total_fees_krw": 710297.0,
|
||||
"cash_krw": 0.0,
|
||||
"holding_qty": 25611.975633,
|
||||
"holding_value_krw": 12473032.0,
|
||||
"initial_cash_krw": 400000,
|
||||
"final_asset_krw": 4867465.0,
|
||||
"pnl_krw": 4467465.0,
|
||||
"pnl_pct": 1116.87,
|
||||
"total_fees_krw": 277183.0,
|
||||
"cash_krw": 3.0,
|
||||
"holding_qty": 9994.789459,
|
||||
"holding_value_krw": 4867462.0,
|
||||
"mark_price": 487.0,
|
||||
"fee_rate": 0.0005,
|
||||
"trade_count": 5225,
|
||||
"max_drawdown_pct": 19.22,
|
||||
"peak_asset_krw": 1174413.0,
|
||||
"trough_asset_krw": 948744.0,
|
||||
"max_drawdown_pct": 19.89,
|
||||
"peak_asset_krw": 3104956.0,
|
||||
"trough_asset_krw": 2487267.0,
|
||||
"sizing_mode": "primary_hybrid_dd_tier",
|
||||
"sizing_note": "권장: monitor + past-leg·drawdown tier (검증 통과, 미래 미사용)",
|
||||
"alloc_stats": {
|
||||
"buy_executed": 1632,
|
||||
"buy_skipped": 655,
|
||||
"buy_executed": 1628,
|
||||
"buy_skipped": 659,
|
||||
"sell_executed": 2938,
|
||||
"sell_skipped": 0,
|
||||
"buy_total_krw": 710442254.0,
|
||||
"large_leg_count": 1535,
|
||||
"large_tier_buy_count": 1535,
|
||||
"buy_amount_avg_krw": 435320.0,
|
||||
"buy_amount_min_krw": 828.0,
|
||||
"buy_amount_max_krw": 8620153.0
|
||||
"buy_total_krw": 277244801.0,
|
||||
"large_leg_count": 1532,
|
||||
"large_tier_buy_count": 1532,
|
||||
"buy_amount_avg_krw": 170298.0,
|
||||
"buy_amount_min_krw": 323.0,
|
||||
"buy_amount_max_krw": 3363487.0
|
||||
},
|
||||
"input_fires": 5225
|
||||
},
|
||||
"gt_capture_ratio": 0.0174,
|
||||
"gt_pnl_pct": 4291.35,
|
||||
"sim_sized_pnl_pct": 74.69,
|
||||
"gt_model_capture_ratio": 0.0019,
|
||||
"causal_gt_capture_ratio": 0.0034,
|
||||
"sim_causal_gt_pnl_pct": 14.79,
|
||||
"causal_hybrid_capture_ratio": 0.2674,
|
||||
"sim_causal_hybrid_pnl_pct": 1147.3,
|
||||
"tier_enhanced_capture_ratio": -0.0119,
|
||||
"sim_tier_enhanced_pnl_pct": -51.26,
|
||||
"gt_capture_ratio": 0.0052,
|
||||
"gt_pnl_pct": 7038.74,
|
||||
"sim_sized_pnl_pct": 36.56,
|
||||
"gt_model_capture_ratio": 0.0006,
|
||||
"causal_gt_capture_ratio": 0.0021,
|
||||
"sim_causal_gt_pnl_pct": 14.99,
|
||||
"causal_hybrid_capture_ratio": 0.1587,
|
||||
"sim_causal_hybrid_pnl_pct": 1116.87,
|
||||
"tier_enhanced_capture_ratio": -0.0059,
|
||||
"sim_tier_enhanced_pnl_pct": -41.83,
|
||||
"causal_gt_params": {
|
||||
"peak_mode": "local",
|
||||
"pivot_order": 8,
|
||||
@@ -746,28 +746,28 @@
|
||||
"observed_implied_scale": {
|
||||
"all": {
|
||||
"count": 18,
|
||||
"mean": 0.1106,
|
||||
"median": 0.0527,
|
||||
"p25": 0.051,
|
||||
"p75": 0.054
|
||||
"mean": 0.3111,
|
||||
"median": 0.1346,
|
||||
"p25": 0.1309,
|
||||
"p75": 0.1509
|
||||
},
|
||||
"large_leg": {
|
||||
"count": 1,
|
||||
"mean": 1.0812,
|
||||
"median": 1.0812,
|
||||
"p25": 1.0812,
|
||||
"p75": 1.0812
|
||||
"mean": 3.2206,
|
||||
"median": 3.2206,
|
||||
"p25": 3.2206,
|
||||
"p75": 3.2206
|
||||
},
|
||||
"small_leg": {
|
||||
"count": 17,
|
||||
"mean": 0.0535,
|
||||
"median": 0.051,
|
||||
"p25": 0.051,
|
||||
"p75": 0.0539
|
||||
"mean": 0.14,
|
||||
"median": 0.1323,
|
||||
"p25": 0.1309,
|
||||
"p75": 0.1502
|
||||
}
|
||||
},
|
||||
"recommended_pct_large_leg": 1.0812,
|
||||
"recommended_pct_small_leg": 0.051,
|
||||
"recommended_pct_large_leg": 3.2206,
|
||||
"recommended_pct_small_leg": 0.1323,
|
||||
"note": "implied_scale = amount / (pre_buy_total_asset × weight_share); 시뮬 tier는 GT 분석 median 사용"
|
||||
},
|
||||
"causal_mode": {
|
||||
@@ -1499,15 +1499,15 @@
|
||||
],
|
||||
"gt_portfolio_calibration": {
|
||||
"portfolio": {
|
||||
"gt_final_asset_krw": 43913513.0,
|
||||
"subset_final_asset_krw": 1000000.0,
|
||||
"asset_ratio": 0.0228,
|
||||
"asset_accuracy_pct": 2.28,
|
||||
"gt_final_asset_krw": 28785435.0,
|
||||
"subset_final_asset_krw": 400000.0,
|
||||
"asset_ratio": 0.0139,
|
||||
"asset_accuracy_pct": 1.39,
|
||||
"target_met_90": false,
|
||||
"legs_total": 76,
|
||||
"legs_covered": 0,
|
||||
"leg_coverage_ratio": 0.0,
|
||||
"full_pnl_pct": 4291.35,
|
||||
"full_pnl_pct": 7096.36,
|
||||
"subset_pnl_pct": 0.0
|
||||
},
|
||||
"note": "캘리브레이션 미실행 — scripts/04_calibrate_gt_assets.py"
|
||||
|
||||
Reference in New Issue
Block a user