Add trend MACD spot strategy
This commit is contained in:
@@ -176,8 +176,11 @@ def _safe_config(settings: Settings) -> dict[str, Any]:
|
||||
"auto_select_symbols": settings.auto_select_symbols,
|
||||
"top_symbols_count": settings.top_symbols_count,
|
||||
"symbols": settings.symbols,
|
||||
"strategy_mode": settings.strategy_mode,
|
||||
"base_interval": settings.base_interval,
|
||||
"kline_limit": settings.kline_limit,
|
||||
"trend_interval": settings.trend_interval,
|
||||
"trend_kline_limit": settings.trend_kline_limit,
|
||||
"loop_interval_seconds": settings.loop_interval_seconds,
|
||||
"fast_trading_enabled": settings.fast_trading_enabled,
|
||||
"fast_loop_interval_seconds": settings.fast_loop_interval_seconds,
|
||||
@@ -213,6 +216,10 @@ def _safe_config(settings: Settings) -> dict[str, Any]:
|
||||
"kelly_sizing_enabled": settings.kelly_sizing_enabled,
|
||||
"kelly_fraction": settings.kelly_fraction,
|
||||
"kelly_max_fraction": settings.kelly_max_fraction,
|
||||
"risk_per_trade_percent": settings.risk_per_trade_percent,
|
||||
"atr_trailing_multiplier": settings.atr_trailing_multiplier,
|
||||
"trend_rsi_min": settings.trend_rsi_min,
|
||||
"trend_rsi_max": settings.trend_rsi_max,
|
||||
"time_series_forecast_enabled": settings.time_series_forecast_enabled,
|
||||
"time_series_min_candles": settings.time_series_min_candles,
|
||||
"time_series_forecast_horizon": settings.time_series_forecast_horizon,
|
||||
@@ -909,6 +916,7 @@ HTML = r"""
|
||||
function renderConfig(config) {
|
||||
const keys = [
|
||||
['Режим', modeName(config.trading_mode)],
|
||||
['Стратегия', config.strategy_mode || '-'],
|
||||
['Стартовый баланс', money(config.starting_balance_usdt)],
|
||||
['Мин. уверенность', config.min_signal_confidence],
|
||||
['Быстрая торговля', yesNo(config.fast_trading_enabled)],
|
||||
@@ -923,25 +931,15 @@ HTML = r"""
|
||||
['Мин. оборот 24ч', money(config.min_24h_turnover_usdt)],
|
||||
['Размер позиции', `${money(config.min_position_usdt)} - ${money(config.max_position_usdt)}`],
|
||||
['Лимит на пару', money(config.max_symbol_exposure_usdt)],
|
||||
['Grid-режим', yesNo(config.grid_trading_enabled)],
|
||||
['Grid порог / зона', `${num(config.grid_entry_confidence, 2)} / ${num((config.grid_buy_zone || 0) * 100, 0)}%`],
|
||||
['Grid макс. размер', money(config.grid_max_position_usdt)],
|
||||
['Rebound-режим', yesNo(config.rebound_trading_enabled)],
|
||||
['Rebound порог / вероятность', `${num(config.rebound_entry_confidence, 2)} / ${num(config.rebound_min_probability, 2)}`],
|
||||
['Rebound макс. размер', money(config.rebound_max_position_usdt)],
|
||||
['Kelly размер', `${yesNo(config.kelly_sizing_enabled)} · ${num(config.kelly_fraction, 2)}x · max ${num((config.kelly_max_fraction || 0) * 100, 1)}%`],
|
||||
['Прогноз временных рядов', yesNo(config.time_series_forecast_enabled)],
|
||||
['Модельный горизонт', `${config.time_series_forecast_horizon} свечи`],
|
||||
['Мин. edge прогноза', `${num(config.time_series_min_edge_percent, 3)}%`],
|
||||
['Нейропрогноз', modelArtifactSummary(config)],
|
||||
['Файл модели', config.time_series_lstm_model_path || '-'],
|
||||
['Риск на сделку', `${num((config.risk_per_trade_percent || 0) * 100, 2)}% equity`],
|
||||
['RSI входа', `${num(config.trend_rsi_min, 1)} - ${num(config.trend_rsi_max, 1)}`],
|
||||
['Лимит в позициях', money(config.max_total_exposure_usdt)],
|
||||
['Лимит позиций', `${config.max_open_positions} всего / ${config.max_positions_per_symbol} на пару`],
|
||||
['Стоп / цель', `${num(config.stop_loss_percent * 100, 2)}% / ${num(config.take_profit_percent * 100, 2)}%`],
|
||||
['Трейлинг-стоп', `${num(config.trailing_stop_percent * 100, 2)}%`],
|
||||
['Стоп', `${num(config.stop_loss_percent * 100, 2)}%`],
|
||||
['ATR trailing', `${num(config.atr_trailing_multiplier, 2)} ATR`],
|
||||
['Удержание / пауза', `${config.min_hold_seconds}с / ${config.entry_cooldown_seconds}с`],
|
||||
['Комиссия / проскальзывание', `${num(config.taker_fee_rate * 100, 3)}% / ${num(config.slippage_rate * 100, 3)}%`],
|
||||
['Таймфрейм', `${config.base_interval}м`],
|
||||
['Таймфрейм', `${config.base_interval} / тренд ${config.trend_interval}`],
|
||||
['Поток данных', yesNo(config.websocket_enabled)]
|
||||
];
|
||||
document.getElementById('configGrid').innerHTML = keys.map(([k, v]) => `
|
||||
|
||||
Reference in New Issue
Block a user