feat(sim): 물타기(애버리징) 토글 — 하락 시 손절 대신 평단↓ 추가매수

- config: AVERAGING_ENTRY·AVERAGING_DROP_PCT(0.10)·CRASH_DROP_PCT(0.10)
- signals.evaluate_holding: market_ok 인자 + 물타기 분기 (직전매수가 -10% 하락 시 ADD-down, 한도/강세장/비급락 조건, 당일 -10%급락은 손절·약세장 금지)
- engine·backtest: add_kind='down'이면 손절선 낮은 평단 기준 재설정(up은 위로 래칫 유지), engine은 market_ok 전달
- 첫 매수는 기존 검증 진입 그대로(우량주만 물타기)
- 백테스트: 즉시매수와 반대로 유리(10/20/60 수익·승률↑) → 라이브 변이 3개(v301/302/303) 등록, 총 223
- 웹 '물타기' 칩 + 설명 토스트

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
hyowons
2026-06-16 14:30:07 +09:00
parent 70f6b9a34d
commit eaa276b26d
233 changed files with 397 additions and 233 deletions
@@ -3761,5 +3761,65 @@
"RISK_PER_TRADE_PCT": 0.02,
"BEAR_ENTRY_MODE": 2
}
},
{
"id": "v301",
"name": "SMA10·RR3·S2·P1.5·V1.3·RSI↑88·RSI↓20·HOLD0·RISK0.02·BEAR_ENTRY_MODE1·MAX_POSITIONS10·TREND_SLOPE_GATE1·MID_ARRAY_GATE1·AVERAGING_ENTRY1",
"params": {
"SMA_LONG": 10,
"RR_RATIO": 3.0,
"STOP_ATR_MULT": 2.0,
"PULLBACK_ATR_MULT": 1.5,
"VOLUME_BREAKOUT_MULT": 1.3,
"RSI_OVERBOUGHT": 88,
"RSI_OVERSOLD": 20,
"MAX_HOLD_DAYS": 0,
"RISK_PER_TRADE_PCT": 0.02,
"BEAR_ENTRY_MODE": 1,
"MAX_POSITIONS": 10,
"TREND_SLOPE_GATE": 1,
"MID_ARRAY_GATE": 1,
"AVERAGING_ENTRY": 1
}
},
{
"id": "v302",
"name": "SMA20·RR3·S2·P1.5·V1.3·RSI↑88·RSI↓20·HOLD0·RISK0.02·BEAR_ENTRY_MODE1·MAX_POSITIONS10·TREND_SLOPE_GATE1·MID_ARRAY_GATE1·AVERAGING_ENTRY1",
"params": {
"SMA_LONG": 20,
"RR_RATIO": 3.0,
"STOP_ATR_MULT": 2.0,
"PULLBACK_ATR_MULT": 1.5,
"VOLUME_BREAKOUT_MULT": 1.3,
"RSI_OVERBOUGHT": 88,
"RSI_OVERSOLD": 20,
"MAX_HOLD_DAYS": 0,
"RISK_PER_TRADE_PCT": 0.02,
"BEAR_ENTRY_MODE": 1,
"MAX_POSITIONS": 10,
"TREND_SLOPE_GATE": 1,
"MID_ARRAY_GATE": 1,
"AVERAGING_ENTRY": 1
}
},
{
"id": "v303",
"name": "SMA60·RR3·S2·P1.5·V1.3·RSI↑75·RSI↓20·HOLD0·RISK0.01·BEAR_ENTRY_MODE1·MAX_POSITIONS10·TREND_SLOPE_GATE1·MID_ARRAY_GATE1·AVERAGING_ENTRY1",
"params": {
"SMA_LONG": 60,
"RR_RATIO": 3.0,
"STOP_ATR_MULT": 2.0,
"PULLBACK_ATR_MULT": 1.5,
"VOLUME_BREAKOUT_MULT": 1.3,
"RSI_OVERBOUGHT": 75,
"RSI_OVERSOLD": 20,
"MAX_HOLD_DAYS": 0,
"RISK_PER_TRADE_PCT": 0.01,
"BEAR_ENTRY_MODE": 1,
"MAX_POSITIONS": 10,
"TREND_SLOPE_GATE": 1,
"MID_ARRAY_GATE": 1,
"AVERAGING_ENTRY": 1
}
}
]