๐Ÿ“– star365 Docs
โ† ๋ณด๊ณ ์„œ ๋ชฉ๋ก

BTC/ETH Only ํŠธ๋ ˆ์ด๋”ฉ ์ „๋žต ์ „ํ™˜ (2026-05-13)

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 ๊ณ„์ขŒ ๋™์‹œ ์ ์šฉ.

์ž‘์—… ํ๋ฆ„ (atomic close + restart)

admin (gunja-pair-hedge, paperclip โ†’ kahan)

  1. ๋ณ€๊ฒฝ ์‚ฌํ•ญ ๋ฐฑ์—…: pair_hedge_executor.py.bak-btc-eth-only-20260513, pair_hedge_executor.py.bak-notional-ratio-20260513
  2. systemctl restart gunja-pair-hedge (PID 885160 โ†’ 2206890)
  3. restart ์‹œ ํŽ˜์–ด ์ •ํ•ฉ false positive ๋ฐœ์ƒ (5ํŽ˜์–ด โ†’ 0 active, "์–‘์ชฝ ๋ชจ๋‘ ์—†์Œ" ์ž˜๋ชป ํŒ์ •)
  4. Bitget API ground truth ํ™•์ธ: 10 leg ์‹ค OPEN
  5. ccxt closePosition(symbol, side, params={"holdSide": side}) 10 leg ์ผ๊ด„ ์ฒญ์‚ฐ โ€” ์‹คํ˜„ -$38.28
  6. V4_ACCOUNT_PAUSED ์ˆ˜๋™ ํ•ด์ œ (account_pause_admin.json.bak-manual-clear-20260513)
  7. NOTIONAL_RATIO 4.5 ์ถ”๊ฐ€ ๋ณ€๊ฒฝ + restart
  8. ์ž๋™ BTC/ETH ํŽ˜์–ด ์ง„์ž…: BTC long 0.0157 + ETH short 0.46
  9. restart ์‹œ ๋˜ ํŽ˜์–ด ์ •ํ•ฉ false positive (asset2=null) โ†’ pair_registry ์ˆ˜๋™ ๋ณต๊ตฌ (Bitget API ๊ธฐ๋ฐ˜ asset2=ETH/short/0.41 ์ฑ„์›€)
  10. ์ตœ์ข… active: 1 ํŽ˜์–ด (BTC/ETH, group_id=84fb58b2)

multi-tenant (user 16/24/27)

  1. user 16 API key๋Š” gunja_users.db.user_api_keys์—์„œ Fernet ๋ณตํ˜ธํ™” (UserManager.get_user_api_settings() ํ™œ์šฉ)
  2. ์ฒซ ์ฒญ์‚ฐ ํ›„ multi-tenant ์ž๋™ ์žฌ์ง„์ž… โ†’ atomic stop/start ํ•„์š” ๊ฒฐ๋ก 
  3. atomic ํŠธ๋žœ์žญ์…˜:
    • systemctl stop gunja-multi-tenant
    • user 16/24/27 ๋ชจ๋“  leg ์ฒญ์‚ฐ (ccxt close_position)
    • pair_registry_{16,24,27}.json ๋ชจ๋“  active/single โ†’ closed ๋งˆํ‚น
    • ๋งŒ๋ฃŒ account_pause_*.json ๋ฐฑ์—… ํ›„ ์ œ๊ฑฐ (user 16/24)
    • user 27๋Š” V4_PAUSED ํ™œ์„ฑ (-21.46% trigger ์ƒˆ๋กœ ๋ฐœ์ƒ) โ†’ ๋‘ ๋ฒˆ์งธ atomic restart๋กœ in-memory ํ•ด์ œ
    • systemctl start gunja-multi-tenant
  4. ์ƒˆ cycle ์ž๋™ ์ง„์ž… ๊ฒฐ๊ณผ:
    • user 16: BTC short 0.0156 + ETH long 0.55, margin 40.1% (BTC 20.0% + ETH 20.1%) โœ…
    • user 24: ๋™์ผ (hedge-unify ํŒจํ„ด)
    • user 27: BTC/ETH HOLD ์‹ ํ˜ธ (AI ์‹ ๋ขฐ๋„ 0.00) โ†’ ๋‹ค์Œ cycle ๋Œ€๊ธฐ

์‹คํ˜„ ์†์ต (์˜ค๋Š˜ ๋ˆ„์ )

๊ณ„์ขŒ ์‚ฌํ•ญ ๊ธˆ์•ก
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

๋ถ€์ž‘์šฉ + ํ•ด๊ฒฐ ํŒจํ„ด

๋ถ€์ž‘์šฉ 1: ํŽ˜์–ด ์ •ํ•ฉ false positive (admin + user 27)

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์—์„œ ๊ฒ€์ฆ.

๋ถ€์ž‘์šฉ 2: in-memory V4_PAUSED ์ž”์กด (user 27)

disk account_pause_27.json ์‚ญ์ œ ํ›„์—๋„ multi-tenant ํ”„๋กœ์„ธ์Šค ๋ฉ”๋ชจ๋ฆฌ์— PauseExecutor ๊ฐ์ฒด ์œ ์ง€ ("Account pause ๋ณต์›" log)

ํ•ด๊ฒฐ: multi-tenant restart ํ•œ ๋ฒˆ ๋” (disk ๋น„์–ด์žˆ์œผ๋ฉด in-memory ์ƒˆ๋กœ ์‹œ์ž‘). admin์€ ๋ณ„๋„ ํ”„๋กœ์„ธ์Šค๋ผ ์ฆ‰์‹œ ํ•ด์ œ ๊ฐ€๋Šฅํ–ˆ์œผ๋‚˜ multi-tenant๋Š” ์–‘์ƒ ๋‹ค๋ฆ„.

๋ถ€์ž‘์šฉ 3: ์ž๋™ ์žฌ์ง„์ž… ๋ฌดํ•œ loop

์ฒญ์‚ฐ ์งํ›„ 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 ์‹ ํ˜ธ ๋ณ€๊ฒฝ ์‹œ ์ž๋™ ์ง„์ž…

๋ณด์กด ์•ˆ์ „์žฅ์น˜

ํ›„์† ๋ชจ๋‹ˆํ„ฐ๋ง (์‚ฌ์šฉ์ž ๊ฒฐ์ •)

๊ด€๋ จ ๋ฉ”๋ชจ๋ฆฌ