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

Gunja Bitget v3.6.0 โ†’ trend+catastrophic ์ •์ฑ… sprint

์ผ์‹œ: 2026-04-29 (KST) ์„œ๋ฒ„: kahan (66.42.42.24:7405) ์„œ๋น„์Šค: gunja-pair-hedge + gunja-multi-tenant ์ ์šฉ ์‚ฌ์šฉ์ž: user 1/3/16/24/27 + admin (5๋ช… ์ „์ฒด)


0. ๋ฐฐ๊ฒฝ: ์‚ฌ์šฉ์ž ์ง์ ‘ ์ง„๋‹จ

"์šฐ๋ฆฌ์˜ ๋ฌธ์ œ๋Š” ์†์ต ์ฒญ์‚ฐ์€ ์ ๊ณ  ์†์‹ค ์ฒญ์‚ฐ์€ ํฌ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค."

ccxt API ์‹ค์ธก ์ง„๋‹จ:


1. ์‚ฌ์šฉ์ž ๋ช…๋ น (์ •์ฑ… ๋ณ€๊ฒฝ)

LOSS ์ธก โ€” ๋ฌดํ•œ ํ™€๋“œ + ๋‹จ์ผ catastrophic gate

WIN ์ธก โ€” ํŽ˜์–ด ํ•™์Šต ร— ์ถ”์„ธ multiplier

๊ฒฝ๊ณผ ์‹œ๊ฐ„ multiplier ์˜๋ฏธ
10๋ถ„ ๋‚ด 2.5ร— ๊ฐ•ํ•œ ์ถ”์„ธ โ€” ํฐ retrace ํ—ˆ์šฉ
30๋ถ„ ๋‚ด 1.5ร— ์•ฝํ•œ ์ถ”์„ธ
1์‹œ๊ฐ„ ๋‚ด 1.0ร— ์ •์ƒ trailing
1์‹œ๊ฐ„ ์ดˆ๊ณผ 0.7ร— ์ถ”์„ธ ์ข…๋ฃŒ โ€” ๋น ๋ฅธ ์ฒญ์‚ฐ

2. ์ฝ”๋“œ ๋ณ€๊ฒฝ (/opt/gunja/src/trading/pair_hedge_executor.py)

์˜์—ญ ๋ณ€๊ฒฝ
์ƒ์ˆ˜ (line 117/127) STALE_PROFIT_HARVEST_ENABLED = False / TAIL_DEFENSE_ENABLED = False
์‹ ๊ทœ ์ƒ์ˆ˜ (line 138~149) PAIR_CATASTROPHIC_LOSS_PCT = -200.0 / PAIR_LEARNED_DISTANCE_PATH / PAIR_TREND_MULT_TABLE / PAIR_TRAILING_DISTANCE_FLOOR = 0.30
HedgePair dataclass last_peak_update_ts: Optional[float] ํ•„๋“œ ์ถ”๊ฐ€ + save/load ์–‘๋ฐฉํ–ฅ ์ง๋ ฌํ™”
์‹ ๊ทœ helper 4์ข… (line 5887~) _load_pair_distance_table (5๋ถ„ TTL ์บ์‹œ) / _get_learned_pair_distance / _calc_pair_trend_multiplier / _check_pair_catastrophic_loss
catastrophic ๋ถ„๊ธฐ (line ~7728 ์ง์ „) combined_pnl โ‰ค -200% ๋„๋‹ฌ ์‹œ ํŽ˜์–ด ํ†ต์งธ ์ฒญ์‚ฐ + Telegram ์•Œ๋ฆผ
trailing distance ๋ถ„๊ธฐ (line ~7780) learnedร—trend ํ†ตํ•ฉ + (learned/default ร— trend) ๋กœ๊ทธ ํ‘œ๊ธฐ
peak ๊ฐฑ์‹  ๋‘ ์œ„์น˜ pair.last_peak_update_ts = time.time() ์—…๋ฐ์ดํŠธ

3. ํ•™์Šต ๋ฐ์ดํ„ฐ

/opt/gunja/data/pair_distance_learned.json โ€” 24 ํŽ˜์–ด์Œ (357 closed pair โ†’ P25 peak% ร— 0.5):

pair n P25 peak% distance
ARB_LINK 13 +2.21% +1.11%p
ADA_BTC 5 +2.77% +1.38%p
ADA_ARB 41 +0.78% +0.39%p
ADA_AVAX 44 +0.65% +0.32%p
ADA_DOGE 11 +0.85% +0.42%p
ARB_SOL 27 +0.95% +0.48%p
ARB_BTC 21 +0.84% +0.42%p
ETH_XRP 11 +0.80% +0.40%p
... (์ด 24๊ฐœ) floor 0.30

๊ธฐ์กด _pt_cfg 0.15%p ๋Œ€๋น„ 2~9๋ฐฐ ํ™•์žฅ = WIN side๊ฐ€ peak์—์„œ ๋” ํฐ retrace ๊ฒฌ๋”ค = ์ถ”์„ธ ๋” ํƒ.


4. ๋ฐฐํฌ


5. ์ž๋™ํ™”

์‹ ๊ทœ ์Šคํฌ๋ฆฝํŠธ

ํŒŒ์ผ ์šฉ๋„
/opt/gunja/scripts/expectancy_lib.py ๊ณตํ†ต ํ•จ์ˆ˜: 5 user ร— 24h closed โ†’ win_rate / Avg_Win/Loss / Expectancy ๊ณ„์‚ฐ
/opt/gunja/scripts/expectancy_baseline.py T0 baseline 1ํšŒ ์บก์ฒ˜ (/opt/gunja/data/expectancy_baseline.json)
/opt/gunja/scripts/expectancy_compare.py 24h closed โ†’ baseline ๋น„๊ต + Telegram (HTTP API ์ง์ ‘)
/opt/gunja/scripts/learn_pair_distance.py ํ•™์Šต JSON ๊ฐฑ์‹  (P25 peak% ร— 0.5, floor 0.30)

Cron (kahan root crontab)

0  15 * * *   /opt/gunja/gunja_env/bin/python /opt/gunja/scripts/learn_pair_distance.py >> /opt/gunja/logs/learn_pair_distance.log 2>&1
30 15 * * *   /opt/gunja/gunja_env/bin/python /opt/gunja/scripts/expectancy_compare.py >> /opt/gunja/logs/expectancy_compare.log 2>&1

โ†’ ๋งค์ผ 00:00/00:30 KST (15:00/15:30 UTC) ์ž๋™ ์‹คํ–‰

Baseline (T0 = 2026-04-29 06:47 UTC)

user 27: n=2 | win_rate=50.0% | Avg_Win=$+7.564 | Avg_Loss=$-4.736 | E=$+1.414/trade | net=$+2.83
(๋‚˜๋จธ์ง€ 4 user๋Š” 24h closed=0)

6. ์œ„ํ—˜ / ๋กค๋ฐฑ

์œ„ํ—˜ (1์ค„)

Cross margin ํ™˜๊ฒฝ โ†’ ํ•œ ํŽ˜์–ด -200% ๋„๋‹ฌ ์‹œ ๋‹ค๋ฅธ ํŽ˜์–ด ๋งˆ์ง„ ์ž ์‹ โ†’ cascade liquidation ๊ฐ€๋Šฅ. ํŽ˜์–ด๋‹น ๋งˆ์ง„ ์ž๋ณธ 5% ์ดํ•˜ ์œ ์ง€ ๊ถŒ์žฅ (๋ณ„๋„ sprint).

๋กค๋ฐฑ

ssh -p 7405 root@66.42.42.24
cp /opt/gunja/src/trading/pair_hedge_executor.py.bak.20260429-loss200-trend-0635 /opt/gunja/src/trading/pair_hedge_executor.py
systemctl restart gunja-multi-tenant gunja-pair-hedge

# ๋˜๋Š” ํ•™์Šต distance๋งŒ ๋„๊ณ  ์‹ถ์œผ๋ฉด:
rm /opt/gunja/data/pair_distance_learned.json   # 5๋ถ„ ํ›„ fallback ์ž๋™ ์ ์šฉ

7. ์‚ฌ์šฉ์ž ์ฒ ํ•™ ๋ถ€ํ•ฉ๋„ (๋ฉ”๋ชจ๋ฆฌ ์ •ํ•ฉ)

์›์น™ ๋ณ€๊ฒฝ ์ „ ๋ณ€๊ฒฝ ํ›„
์†์‹ค ๋น ๋ฅธ ์ฒญ์‚ฐ โ†’ ์ถ”์„ธ ์ˆ˜์ต ๊ทน๋Œ€ํ™” (feedback_ultimate-trading-philosophy) โŒ ์ฒญ์‚ฐ ์ž„๊ณ„ ๋ฏธ๋„๋‹ฌ๋กœ ๋ˆ„์ , WIN ๋น ๋ฅด๊ฒŒ ์ž˜๋ฆผ โœ… ๋ฌดํ•œ ํ™€๋“œ + ๋‹จ์ผ catastrophic, WIN ํ•™์Šตร—์ถ”์„ธ
BTC/ETH ๋™๋“ฑ ์ฒ˜๋ฆฌ (feedback_btc-eth-legacy-uniformity) OK โœ… ๋ชจ๋“  ์‹ฌ๋ณผ ๋™์ผ ๋ถ„๊ธฐ (legacy BTC/ETH ๋ถ„๊ธฐ ๋ฏธ์ˆ˜์ •)
๊ณ ์•„ single ๊ธˆ์ง€ (์‚ฌ์šฉ์ž ๋ช…๋ น 2026-04-29) STALE_HARVEST/_check_tail_defense_single์ด single ์ƒ์„ฑ ๊ฐ€๋Šฅ โœ… ๋‘ ๊ฒฝ๋กœ OFF, catastrophic์€ ํŽ˜์–ด ํ†ต์งธ
Gate โ†” Bitget ์ „๋žต ๋ถ„๋ฆฌ (feedback_gate-gunja-strategy-separation) OK โœ… ํŒŒ๋ผ๋ฏธํ„ฐ ์กฐ์ •๋งŒ, Gate V7 self-evolve ํŒจํ„ด ๋ฏธํฌํŒ…

8. ์ฒซ ์˜๋ฏธ ์žˆ๋Š” ๊ฒ€์ฆ ์‹œ์ 

2026-04-30 00:30 KST โ€” ๋ณ€๊ฒฝ ํ›„ ์ฒซ 24h ๋ฐ์ดํ„ฐ๋กœ baseline ๋Œ€๋น„ expectancy / WinRate / Avg_Win ร— Avg_Loss / hold time ๋น„๊ต๊ฐ€ Telegram ์ž๋™ ๋ฐœ์†ก. ์›๋ณธ: /opt/gunja/data/expectancy_history/20260430.json


9. ๋‹ค์Œ ๋‹จ๊ณ„ ๊ถŒ์žฅ (๋ณ„๋„ ๊ฒฐ์ •)

  1. Cross margin cascade ์œ„ํ—˜ ์ ๊ฒ€ sprint โ€” ํŽ˜์–ด๋‹น ๋งˆ์ง„ ์ž๋ณธ 5% ์ดํ•˜ ์œ ์ง€ / isolated ๋งˆ์ง„ ๊ฒ€ํ† 
  2. WIN/LOSS ๋ถ„๋ฆฌ ์ฒญ์‚ฐ (์žฅ๊ธฐ) โ€” 24h ๋ˆ„์  ํ›„ expectancy ํ˜ธ์ „ ๋ถ€์กฑ ์‹œ ๊ฒ€ํ†  (mco-bot ์•Œ๋ฆผ ์˜๋ฌด)
  3. ์ถ”์„ธ ๊ฐ•๋„ ADX/MACD ์™ธ๋ถ€ ์ง€ํ‘œ ๊ฒฐํ•ฉ (์•ˆ 3) โ€” ํ˜„์žฌ ์•ˆ 1+2(์‹œ๊ฐ„ ๊ธฐ๋ฐ˜ + ํ•™์Šต)๋งŒ ์ ์šฉ

Memory

์ ์šฉ ์ฑ…์ž„