kahan gunja-pair-hedge + multi-tenant 4 ๊ณ์ข(admin/16/24/27) ๋์ ์ ์ฉ
2026-05-12 20:23 ~ 05-13 04:04 (8h) admin ๊ณ์ข์์ ETH/NEAR ํ์ด 7ํ ์ฒญ์ฐ 6ํ ์์ค ๋์ -$104.27 ๋ฐ์. ์ผ์ผ net -$99.04 ๋๋ฌ โ V4_ACCOUNT_DAILY_SL(-21%) ํธ๋ฆฌ๊ฑฐ โ 24h ์ ๊ท ์ง์ ์ฐจ๋จ.
๊ทผ๋ณธ ์์ธ (Bitget API ground truth + ๋ฉ๋ชจ๋ฆฌ feedback_gunja-db-vs-bitget-api-ground-truth):
์ ๋ต: ์ง์ ์ฌ๋ณผ universe๋ฅผ BTC/ETH๋ง์ผ๋ก ์ ํ + ๊ฐ leg ์ง์ ์ฌ์ด์ฆ 20% ์ด์.
์ด์ :
/opt/gunja/src/trading/pair_hedge_executor.py)| ์์น | Before | After | ์ํฅ |
|---|---|---|---|
line 85 POSITION_SIZE_PCT |
0.05 (5%) |
0.20 (20%) |
leg๋น ๋ง์ง 4๋ฐฐ |
line 87 NOTIONAL_RATIO |
1.2 |
4.5 |
๋จ์ผ leg ๋ ธ์ ์ํ cap ํด์ |
line 225 ASSET_POOL |
13 ์์ฐ (BTC, ETH, SOL, BNB, BCH, XRP, DOGE, SUI, ADA, LINK, AVAX, ARB, NEAR) | ['BTC', 'ETH'] |
์ง์ universe 2์์ฐ๋ง |
ENTRY_POOL์ ASSET_POOL - ENTRY_EXCLUDED_ASSETS(BCH,BNB) ์๋ ๊ณ์ฐ โ ['BTC', 'ETH'] ๊ฒฐ๊ณผ. ๋ฉ๋ชจ๋ฆฌ pair_hedge_executor.py๋ admin + multi-tenant ๊ณตํต ๋ชจ๋(line 28 ๋ช
์)์ด๋ผ ๋จ์ผ ๋ณ๊ฒฝ์ผ๋ก 4 ๊ณ์ข ๋์ ์ ์ฉ.
pair_hedge_executor.py.bak-btc-eth-only-20260513, pair_hedge_executor.py.bak-notional-ratio-20260513systemctl restart gunja-pair-hedge (PID 885160 โ 2206890)closePosition(symbol, side, params={"holdSide": side}) 10 leg ์ผ๊ด ์ฒญ์ฐ โ ์คํ -$38.28account_pause_admin.json.bak-manual-clear-20260513)gunja_users.db.user_api_keys์์ Fernet ๋ณตํธํ (UserManager.get_user_api_settings() ํ์ฉ)systemctl stop gunja-multi-tenantccxt close_position)account_pause_*.json ๋ฐฑ์
ํ ์ ๊ฑฐ (user 16/24)systemctl start gunja-multi-tenant| ๊ณ์ข | ์ฌํญ | ๊ธ์ก |
|---|---|---|
| admin | 20h ETH/NEAR churning + ๊ธฐํ | -$99.04 |
| admin | 10 leg ์ผ๊ด ์ฒญ์ฐ | -$38.28 |
| user 16 | 10 leg ์ผ๊ด ์ฒญ์ฐ | -$14.28 |
| user 27 | 10 leg ์ผ๊ด ์ฒญ์ฐ | -$8.05 |
| user 24/16 ์์กด ์ฒญ์ฐ | atomic restart ์ง์ | -$2 ์ถ์ |
| ํฉ๊ณ | ๋ชจ๋ ๊ณ์ข ์คํ ์์ค | ์ฝ -$162 |
restart ์ disk pair_registry json์ active๋ก reload๋์ง๋ง Bitget API์์ sync ๋ก์ง์์ ํ์ด๊ฐ single๋ก ํ์ (asset2=null). ๋ฉ๋ชจ๋ฆฌ feedback_multitenant-restart-pair-reload-bug์ ๋์ผ ํจํด.
ํด๊ฒฐ: pair_registry ์๋ ๋ณต๊ตฌ โ Bitget API ground truth๋ก asset1/asset2/contracts/group_id ์ง์ ์ฃผ์ ํ restart. admin pair 1848761c์์ ๊ฒ์ฆ.
disk account_pause_27.json ์ญ์ ํ์๋ multi-tenant ํ๋ก์ธ์ค ๋ฉ๋ชจ๋ฆฌ์ PauseExecutor ๊ฐ์ฒด ์ ์ง ("Account pause ๋ณต์" log)
ํด๊ฒฐ: multi-tenant restart ํ ๋ฒ ๋ (disk ๋น์ด์์ผ๋ฉด in-memory ์๋ก ์์). admin์ ๋ณ๋ ํ๋ก์ธ์ค๋ผ ์ฆ์ ํด์ ๊ฐ๋ฅํ์ผ๋ multi-tenant๋ ์์ ๋ค๋ฆ.
์ฒญ์ฐ ์งํ multi-tenant cycle์ด ์ฆ์ ์ ์์ฐ์ผ๋ก ์ฌ์ง์ (๋ฉ๋ชจ๋ฆฌ์ ์ ASSET_POOL 13 ์์ฐ ์ ์ง)
ํด๊ฒฐ: systemctl stop โ close โ cleanup โ start atomic ํจํด. 30์ด ๋ด ์๋ฃ.
| ๊ณ์ข | Capital | Active | Margin% | ๋น๊ณ |
|---|---|---|---|---|
| admin | $787.77 | 1 ํ์ด (BTC long + ETH short) | 29% | ์ฒซ ์ง์ 6% size ํ์ ์์กด, ์ ์ฌ ๊ท ํ ํ๋ณต |
| user 16 | $315.04 | 1 ํ์ด (BTC short + ETH long) | 40.1% | ์๋ ์ ํ ๋ฌ์ฑ |
| user 24 | $315.03 | 1 ํ์ด (BTC short + ETH long) | 40.1% | user 16 hedge-unify |
| user 27 | $244.10 | 0 (HOLD ๋๊ธฐ) | 0% | AI ์ ํธ ๋ณ๊ฒฝ ์ ์๋ ์ง์ |
.env ๋ณ๊ฒฝ 0๊ฑดpair_hedge_executor.py.bak-btc-eth-only-20260513pair_hedge_executor.py.bak-notional-ratio-20260513pair_registry_admin.json.bak-post-close-20260513 / .bak-recover-asset2-20260513pair_registry_{16,24,27}.json.bak-{post-close,atomic-close,final-clear}-20260513account_pause_admin.json.bak-manual-clear-20260513account_pause_{16,27}.json.bak-{expired,final-clear,manual-clear}-20260513gunja-bitget-loss200-trend-20260429 โ catastrophic gate -200% / trend mult / WIN distance ํ์ด ํ์ตgunja-v4-daily-sl-pair-recovery-20260511 โ V4 5๊ณ์ข ๋์ ํธ๋ฆฌ๊ฑฐ, hedge-unify ํจํดatm-mirror-overhaul-20260512 โ ATM v1.0 โ v1.3 ์ต์
B, 24 ํ์ด์ ํ์ตfeedback_multitenant-restart-pair-reload-bug โ restart ์ ํ์ด reload ๊นจ์งfeedback_gunja-db-vs-bitget-api-ground-truth โ DB trades.net_pnl 0, Bitget API๊ฐ ์ง์คuser_trading-philosophy-loss-diagnosis โ "์ฒญ์ฐ ์ธก ๊ฐ๋๊ฐ ๋ณธ์ง"