์ผ์: 2026-04-29 (KST) ์๋ฒ: kahan (66.42.42.24:7405) ์๋น์ค: gunja-pair-hedge + gunja-multi-tenant ์ ์ฉ ์ฌ์ฉ์: user 1/3/16/24/27 + admin (5๋ช ์ ์ฒด)
"์ฐ๋ฆฌ์ ๋ฌธ์ ๋ ์์ต ์ฒญ์ฐ์ ์ ๊ณ ์์ค ์ฒญ์ฐ์ ํฌ๋ค๋ ๊ฒ์ด๋ค."
ccxt API ์ค์ธก ์ง๋จ:
_check_tail_defense_single์ด single๋ง ๋ณดํธํ๋ฏ๋ก ํ์ด ํค์ง๊ฐ ๊ฐ๋ ์ฐํSTOP_LOSS_ENABLED False ์ ์ง, STALE_PROFIT_HARVEST_ENABLED False, TAIL_DEFENSE_ENABLED False)combined_pnl = (pnl1+pnl2)/2) โ ํ์ด ํต์งธ ๊ฐ์ ์ฒญ์ฐ_get_learned_pair_distance(asset1, asset2) ร _calc_pair_trend_multiplier(pair)| ๊ฒฝ๊ณผ ์๊ฐ | multiplier | ์๋ฏธ |
|---|---|---|
| 10๋ถ ๋ด | 2.5ร | ๊ฐํ ์ถ์ธ โ ํฐ retrace ํ์ฉ |
| 30๋ถ ๋ด | 1.5ร | ์ฝํ ์ถ์ธ |
| 1์๊ฐ ๋ด | 1.0ร | ์ ์ trailing |
| 1์๊ฐ ์ด๊ณผ | 0.7ร | ์ถ์ธ ์ข ๋ฃ โ ๋น ๋ฅธ ์ฒญ์ฐ |
_pt_cfg distance_pct/peak_ratio ์๋ fallback/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() ์
๋ฐ์ดํธ |
/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 ๊ฒฌ๋ค = ์ถ์ธ ๋ ํ.
/opt/gunja/src/trading/pair_hedge_executor.py.bak.20260429-loss200-trend-0635 (393801 bytes)ast.parse โ
from src.trading.pair_hedge_executor import PAIR_CATASTROPHIC_LOSS_PCT, PAIR_TREND_MULT_TABLE โ
Cycle complete: 3/3 users successful โ
| ํ์ผ | ์ฉ๋ |
|---|---|
/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) |
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) ์๋ ์คํ
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)
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 ์๋ ์ ์ฉ
| ์์น | ๋ณ๊ฒฝ ์ | ๋ณ๊ฒฝ ํ |
|---|---|---|
์์ค ๋น ๋ฅธ ์ฒญ์ฐ โ ์ถ์ธ ์์ต ๊ทน๋ํ (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 ํจํด ๋ฏธํฌํ |
2026-04-30 00:30 KST โ ๋ณ๊ฒฝ ํ ์ฒซ 24h ๋ฐ์ดํฐ๋ก baseline ๋๋น expectancy / WinRate / Avg_Win ร Avg_Loss / hold time ๋น๊ต๊ฐ Telegram ์๋ ๋ฐ์ก. ์๋ณธ: /opt/gunja/data/expectancy_history/20260430.json
gunja-bitget-loss200-trend-20260429.mdMEMORY.md ์ธ๋ฑ์ค ์ต์์ ๋ฑ๋ก ์๋ฃ