mirror of
https://github.com/NoFxAiOS/nofx.git
synced 2026-07-13 15:57:01 +08:00
feat: position sizing follows the strategy config — default 4x equity notional
Positions were stuck at ~equity×1.2 (~$420 on a $500 account) no matter what the strategy said: both the manager load path and the per-cycle config reload hardcoded vergex strategies to a 6-position × equity×1.2 book, silently overriding the configured 10x ratio. Both overrides removed — sizing now comes from the strategy's own RiskControl (ClampLimits bounds it, margin auto-reduce keeps the book solvent). Defaults aligned across all three config sources (backend default template, quick-create preset, studio unified config): 2 positions × 4x equity notional at 10x leverage ≈ 80% margin when both are open — concentrated per the operator's request. Live strategy updated via relaunch; loader log confirms maxPos=2 posRatio=4.0.
This commit is contained in:
@@ -422,15 +422,11 @@ func (at *AutoTrader) reloadStrategyConfigIfChanged() error {
|
||||
}
|
||||
strategyConfig.ClampLimits()
|
||||
|
||||
// Autopilot (vergex_signal/claw402) runs a balanced multi-position book:
|
||||
// hold several instruments at once with a smaller per-position notional so
|
||||
// multiple long/short positions fit the margin. Applied after ClampLimits so
|
||||
// the book size is not capped back down to the conservative default.
|
||||
if strategyConfig.CoinSource.SourceType == "vergex_signal" {
|
||||
strategyConfig.RiskControl.MaxPositions = 6
|
||||
strategyConfig.RiskControl.BTCETHMaxPositionValueRatio = 1.2
|
||||
strategyConfig.RiskControl.AltcoinMaxPositionValueRatio = 1.2
|
||||
}
|
||||
// NOTE: this used to hardcode the Autopilot book shape (6 positions ×
|
||||
// equity×1.2 notional), silently overriding whatever the user configured in
|
||||
// their strategy. Sizing now comes from the strategy's own RiskControl —
|
||||
// ClampLimits above bounds it (ratio 0.5–10, leverage caps), and the
|
||||
// margin auto-reduce at order time keeps the book solvent.
|
||||
|
||||
claw402Key := at.config.Claw402WalletKey
|
||||
if claw402Key == "" && at.config.AIModel == "claw402" && at.config.CustomAPIKey != "" {
|
||||
|
||||
Reference in New Issue
Block a user