1.log
· 63 KiB · Text
Raw
❯ vitest run src/mastra/super/skills/backtest-runner/skill.spec.ts
RUN v4.0.16 /home/dex/Документы/Work/santiment-ai/strategy-agent
stdout | src/mastra/super/skills/backtest-runner/skill.spec.ts > Backtest Runner: Copytrading Strategy Test (Real Docker) > should successfully prepare env, fetch data, and run freqtrade via docker
[Isolation] Environment prepared for run 9c19c475-6cf9-4474-a93c-7d45338d033b
stdout | src/mastra/super/skills/backtest-runner/skill.spec.ts > Backtest Runner: Copytrading Strategy Test (Real Docker) > should successfully prepare env, fetch data, and run freqtrade via docker
[RunBacktest] Enforcing config overrides: {
trading_mode: 'futures',
margin_mode: 'isolated',
dataformat_ohlcv: 'json',
dataformat_trades: 'json'
}
stdout | src/mastra/super/skills/backtest-runner/skill.spec.ts > Backtest Runner: Copytrading Strategy Test (Real Docker) > should successfully prepare env, fetch data, and run freqtrade via docker
[DataFetcher] Downloading 1 pairs...
stdout | src/mastra/super/skills/backtest-runner/skill.spec.ts > Backtest Runner: Copytrading Strategy Test (Real Docker) > should successfully prepare env, fetch data, and run freqtrade via docker
[DataFetcher] Completed. Processed: 1
stdout | src/mastra/super/skills/backtest-runner/skill.spec.ts > Backtest Runner: Copytrading Strategy Test (Real Docker) > should successfully prepare env, fetch data, and run freqtrade via docker
Checking/Rebuilding Docker image "mastra-freqtrade:latest"...
Docker command: cd /home/dex/Документы/Work/santiment-ai/strategy-agent/docker/freqtrade && docker build -t mastra-freqtrade:latest .
stdout | src/mastra/super/skills/backtest-runner/skill.spec.ts > Backtest Runner: Copytrading Strategy Test (Real Docker) > should successfully prepare env, fetch data, and run freqtrade via docker
Sending build context to Docker daemon 221.2kB
Step 1/7 : FROM freqtradeorg/freqtrade:stable
---> dfd23153a7f2
Step 2/7 : COPY requirements.txt /freqtrade/
---> Using cache
---> 2d950a4622c1
Step 3/7 : RUN pip install --no-cache-dir -r /freqtrade/requirements.txt
---> Using cache
---> 298f67123821
Step 4/7 : COPY add_pair.py /freqtrade/add_pair.py
---> Using cache
---> e3274112fd45
Step 5/7 : COPY pairs.json /freqtrade/pairs.json
---> Using cache
---> d4fc1270df5a
Step 6/7 : COPY exchange.py /freqtrade/freqtrade/exchange/exchange.py
---> Using cache
---> 04e7579357c7
Step 7/7 : RUN python /freqtrade/add_pair.py
---> Using cache
---> 2d26f279b9b1
Successfully built 2d26f279b9b1
Successfully tagged mastra-freqtrade:latest
Docker image "mastra-freqtrade:latest" is ready ✅
stdout | src/mastra/super/skills/backtest-runner/skill.spec.ts > Backtest Runner: Copytrading Strategy Test (Real Docker) > should successfully prepare env, fetch data, and run freqtrade via docker
[DOCKER CMD] docker run --rm --memory 1g -v "/home/dex/Документы/Work/santiment-ai/strategy-agent/data/freqtrade_runs/9c19c475-6cf9-4474-a93c-7d45338d033b:/freqtrade/user_data" -v "/home/dex/Документы/Work/santiment-ai/strategy-agent/data/market_cache/binance:/freqtrade/user_data/data/binance" mastra-freqtrade:latest backtesting --config /freqtrade/user_data/config.json --strategy Strategy --timerange 20251201-20251230 --export trades --data-format-ohlcv json --logfile /freqtrade/user_data/logs/freqtrade.log
stdout | src/mastra/super/skills/backtest-runner/skill.spec.ts > Backtest Runner: Copytrading Strategy Test (Real Docker) > should successfully prepare env, fetch data, and run freqtrade via docker
Backtest result: {
success: true,
runId: '9c19c475-6cf9-4474-a93c-7d45338d033b',
logTail: 'Result for strategy Strategy\n' +
' BACKTESTING REPORT \n' +
'┏━━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓\n' +
'┃ Pair ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃\n' +
'┡━━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩\n' +
'│ BTC/USDT:USDT │ 1 │ -1.82 │ -1.611 │ -0.16 │ 7 days, 0:00:00 │ 0 0 1 0 │\n' +
'│ TOTAL │ 1 │ -1.82 │ -1.611 │ -0.16 │ 7 days, 0:00:00 │ 0 0 1 0 │\n' +
'└───────────────┴────────┴──────────────┴─────────────────┴──────────────┴─────────────────┴────────────────────────┘\n' +
' LEFT OPEN TRADES REPORT \n' +
'┏━━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓\n' +
'┃ Pair ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃\n' +
'┡━━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩\n' +
'│ BTC/USDT:USDT │ 1 │ -1.82 │ -1.611 │ -0.16 │ 7 days, 0:00:00 │ 0 0 1 0 │\n' +
'│ TOTAL │ 1 │ -1.82 │ -1.611 │ -0.16 │ 7 days, 0:00:00 │ 0 0 1 0 │\n' +
'└───────────────┴────────┴──────────────┴─────────────────┴──────────────┴─────────────────┴────────────────────────┘\n' +
' ENTER TAG STATS \n' +
'┏━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓\n' +
'┃ Enter Tag ┃ Entries ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃\n' +
'┡━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩\n' +
'│ OTHER │ 1 │ -1.82 │ -1.611 │ -0.16 │ 7 days, 0:00:00 │ 0 0 1 0 │\n' +
'│ TOTAL │ 1 │ -1.82 │ -1.611 │ -0.16 │ 7 days, 0:00:00 │ 0 0 1 0 │\n' +
'└───────────┴─────────┴──────────────┴─────────────────┴──────────────┴─────────────────┴────────────────────────┘\n' +
' EXIT REASON STATS \n' +
'┏━━━━━━━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓\n' +
'┃ Exit Reason ┃ Exits ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃\n' +
'┡━━━━━━━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩\n' +
'│ force_exit │ 1 │ -1.82 │ -1.611 │ -0.16 │ 7 days, 0:00:00 │ 0 0 1 0 │\n' +
'│ TOTAL │ 1 │ -1.82 │ -1.611 │ -0.16 │ 7 days, 0:00:00 │ 0 0 1 0 │\n' +
'└─────────────┴───────┴──────────────┴─────────────────┴──────────────┴─────────────────┴────────────────────────┘\n' +
' MIXED TAG STATS \n' +
'┏━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓\n' +
'┃ Enter Tag ┃ Exit Reason ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃\n' +
'┡━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩\n' +
'│ │ force_exit │ 1 │ -1.82 │ -1.611 │ -0.16 │ 7 days, 0:00:00 │ 0 0 1 0 │\n' +
'│ TOTAL │ │ 1 │ -1.82 │ -1.611 │ -0.16 │ 7 days, 0:00:00 │ 0 0 1 0 │\n' +
'└───────────┴─────────────┴────────┴──────────────┴─────────────────┴──────────────┴─────────────────┴────────────────────────┘\n' +
' SUMMARY METRICS \n' +
'┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n' +
'┃ Metric ┃ Value ┃\n' +
'┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n' +
'│ Backtesting from │ 2025-12-09 00:00:00 │\n' +
'│ Backtesting to │ 2025-12-30 00:00:00 │\n' +
'│ Trading Mode │ Isolated Futures │\n' +
'│ Max open trades │ 1 │\n' +
'│ │ │\n' +
'│ Total/Daily Avg Trades │ 1 / 0.05 │\n' +
'│ Starting balance │ 1000 USDT │\n' +
'│ Final balance │ 998.389 USDT │\n' +
'│ Absolute profit │ -1.611 USDT │\n' +
'│ Total profit % │ -0.16% │\n' +
'│ CAGR % │ -2.76% │\n' +
'│ Sortino │ -100.00 │\n' +
'│ Sharpe │ -100.00 │\n' +
'│ Calmar │ -90.98 │\n' +
'│ SQN │ -100.00 │\n' +
'│ Profit factor │ 0.00 │\n' +
'│ Expectancy (Ratio) │ -1.61 (-1.00) │\n' +
'│ Avg. daily profit │ -0.077 USDT │\n' +
'│ Avg. stake amount │ 88.531 USDT │\n' +
'│ Total trade volume │ 175.751 USDT │\n' +
'│ │ │\n' +
'│ Best Pair │ BTC/USDT:USDT -0.16% │\n' +
'│ Worst Pair │ BTC/USDT:USDT -0.16% │\n' +
'│ Best trade │ BTC/USDT:USDT -1.82% │\n' +
'│ Worst trade │ BTC/USDT:USDT -1.82% │\n' +
'│ Best day │ -1.611 USDT │\n' +
'│ Worst day │ -1.611 USDT │\n' +
'│ Days win/draw/lose │ 0 / 0 / 1 │\n' +
'│ Min/Max/Avg. Duration Winners │ 0d 00:00 / 0d 00:00 / 0d 00:00 │\n' +
'│ Min/Max/Avg. Duration Losers │ 7d 00:00 / 7d 00:00 / 7d 00:00 │\n' +
'│ Max Consecutive Wins / Loss │ 0 / 1 │\n' +
'│ Rejected Entry signals │ 0 │\n' +
'│ Entry/Exit Timeouts │ 0 / 0 │\n' +
'│ │ │\n' +
'│ Min balance │ 998.389 USDT │\n' +
'│ Max balance │ 998.389 USDT │\n' +
'│ Max % of account underwater │ 0.16% │\n' +
'│ Absolute drawdown │ 1.611 USDT (0.16%) │\n' +
'│ Drawdown duration │ 0 days 00:00:00 │\n' +
'│ Profit at drawdown start │ 0 USDT │\n' +
'│ Profit at drawdown end │ -1.611 USDT │\n' +
'│ Drawdown start │ 2025-12-30 00:00:00 │\n' +
'│ Drawdown end │ 2025-12-30 00:00:00 │\n' +
'│ Market change │ -4.60% │\n' +
'└───────────────────────────────┴────────────────────────────────┘\n' +
'\n' +
'Backtested 2025-12-09 00:00:00 -> 2025-12-30 00:00:00 | Max open trades : 1\n' +
' STRATEGY SUMMARY \n' +
'┏━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━┓\n' +
'┃ Strategy ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃ Drawdown ┃\n' +
'┡━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━┩\n' +
'│ Strategy │ 1 │ -1.82 │ -1.611 │ -0.16 │ 7 days, 0:00:00 │ 0 0 1 0 │ 1.611 USDT 0.16% │\n' +
'└──────────┴────────┴──────────────┴─────────────────┴──────────────┴─────────────────┴────────────────────────┴───────────────────┘\n' +
'2026-01-09 13:21:46,122 - freqtrade - INFO - freqtrade 2025.12\n' +
'2026-01-09 13:21:46,652 - numexpr.utils - INFO - NumExpr defaulting to 8 threads.\n' +
'2026-01-09 13:21:48,161 - freqtrade.configuration.load_config - INFO - Using config: /freqtrade/user_data/config.json ...\n' +
'2026-01-09 13:21:48,164 - freqtrade.loggers - INFO - Enabling colorized output.\n' +
'2026-01-09 13:21:48,164 - freqtrade.loggers - INFO - Logfile configured\n' +
'2026-01-09 13:21:48,165 - freqtrade.loggers - INFO - Verbosity set to 0\n' +
'2026-01-09 13:21:48,165 - freqtrade.configuration.configuration - INFO - Using max_open_trades: None ...\n' +
'2026-01-09 13:21:48,166 - freqtrade.configuration.configuration - INFO - Parameter --timerange detected: 20251201-20251230 ...\n' +
'2026-01-09 13:21:48,179 - freqtrade.configuration.configuration - INFO - Using user-data directory: /freqtrade/user_data ...\n' +
'2026-01-09 13:21:48,179 - freqtrade.configuration.configuration - INFO - Using data directory: /freqtrade/user_data/data/binance ...\n' +
'2026-01-09 13:21:48,180 - freqtrade.configuration.configuration - INFO - Parameter --export detected: trades ...\n' +
'2026-01-09 13:21:48,180 - freqtrade.configuration.configuration - INFO - Parameter --cache=day detected ...\n' +
'2026-01-09 13:21:48,180 - freqtrade.configuration.configuration - INFO - Using "json" to store OHLCV data.\n' +
'2026-01-09 13:21:48,181 - freqtrade.configuration.configuration - INFO - Filter trades by timerange: 20251201-20251230\n' +
'2026-01-09 13:21:48,181 - freqtrade.exchange.check_exchange - INFO - Checking exchange...\n' +
'2026-01-09 13:21:48,192 - freqtrade.exchange.check_exchange - INFO - Exchange "binance" is officially supported by the Freqtrade developm'... 27101 more characters
}
stdout | src/mastra/super/skills/backtest-runner/skill.spec.ts > Backtest Runner: Copytrading Strategy Test (Real Docker)
[Test Info] Artifacts preserved for threadId: copytrading-test-1767964901498
❯ src/mastra/super/skills/backtest-runner/skill.spec.ts (1 test | 1 failed) 23712ms
❯ Backtest Runner: Copytrading Strategy Test (Real Docker) (1)
× should successfully prepare env, fetch data, and run freqtrade via docker 23711ms
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
FAIL src/mastra/super/skills/backtest-runner/skill.spec.ts > Backtest Runner: Copytrading Strategy Test (Real Docker) > should successfully prepare env, fetch data, and run freqtrade via docker
AssertionError: expected 'Result for strategy Strategy\n …' to match /TOTAL\s+1\s+-1.82\s+-1.611\s+-0.16\s+…/
- Expected:
/TOTAL\s+1\s+-1.82\s+-1.611\s+-0.16\s+7 days, 0:00:00\s+0\s+0\s+1\s+0/
+ Received:
"Result for strategy Strategy
BACKTESTING REPORT
┏━━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Pair ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃
┡━━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩
│ BTC/USDT:USDT │ 1 │ -1.82 │ -1.611 │ -0.16 │ 7 days, 0:00:00 │ 0 0 1 0 │
│ TOTAL │ 1 │ -1.82 │ -1.611 │ -0.16 │ 7 days, 0:00:00 │ 0 0 1 0 │
└───────────────┴────────┴──────────────┴─────────────────┴──────────────┴─────────────────┴────────────────────────┘
LEFT OPEN TRADES REPORT
┏━━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Pair ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃
┡━━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩
│ BTC/USDT:USDT │ 1 │ -1.82 │ -1.611 │ -0.16 │ 7 days, 0:00:00 │ 0 0 1 0 │
│ TOTAL │ 1 │ -1.82 │ -1.611 │ -0.16 │ 7 days, 0:00:00 │ 0 0 1 0 │
└───────────────┴────────┴──────────────┴─────────────────┴──────────────┴─────────────────┴────────────────────────┘
ENTER TAG STATS
┏━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Enter Tag ┃ Entries ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃
┡━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩
│ OTHER │ 1 │ -1.82 │ -1.611 │ -0.16 │ 7 days, 0:00:00 │ 0 0 1 0 │
│ TOTAL │ 1 │ -1.82 │ -1.611 │ -0.16 │ 7 days, 0:00:00 │ 0 0 1 0 │
└───────────┴─────────┴──────────────┴─────────────────┴──────────────┴─────────────────┴────────────────────────┘
EXIT REASON STATS
┏━━━━━━━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Exit Reason ┃ Exits ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃
┡━━━━━━━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩
│ force_exit │ 1 │ -1.82 │ -1.611 │ -0.16 │ 7 days, 0:00:00 │ 0 0 1 0 │
│ TOTAL │ 1 │ -1.82 │ -1.611 │ -0.16 │ 7 days, 0:00:00 │ 0 0 1 0 │
└─────────────┴───────┴──────────────┴─────────────────┴──────────────┴─────────────────┴────────────────────────┘
MIXED TAG STATS
┏━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Enter Tag ┃ Exit Reason ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩
│ │ force_exit │ 1 │ -1.82 │ -1.611 │ -0.16 │ 7 days, 0:00:00 │ 0 0 1 0 │
│ TOTAL │ │ 1 │ -1.82 │ -1.611 │ -0.16 │ 7 days, 0:00:00 │ 0 0 1 0 │
└───────────┴─────────────┴────────┴──────────────┴─────────────────┴──────────────┴─────────────────┴────────────────────────┘
SUMMARY METRICS
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Metric ┃ Value ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ Backtesting from │ 2025-12-09 00:00:00 │
│ Backtesting to │ 2025-12-30 00:00:00 │
│ Trading Mode │ Isolated Futures │
│ Max open trades │ 1 │
│ │ │
│ Total/Daily Avg Trades │ 1 / 0.05 │
│ Starting balance │ 1000 USDT │
│ Final balance │ 998.389 USDT │
│ Absolute profit │ -1.611 USDT │
│ Total profit % │ -0.16% │
│ CAGR % │ -2.76% │
│ Sortino │ -100.00 │
│ Sharpe │ -100.00 │
│ Calmar │ -90.98 │
│ SQN │ -100.00 │
│ Profit factor │ 0.00 │
│ Expectancy (Ratio) │ -1.61 (-1.00) │
│ Avg. daily profit │ -0.077 USDT │
│ Avg. stake amount │ 88.531 USDT │
│ Total trade volume │ 175.751 USDT │
│ │ │
│ Best Pair │ BTC/USDT:USDT -0.16% │
│ Worst Pair │ BTC/USDT:USDT -0.16% │
│ Best trade │ BTC/USDT:USDT -1.82% │
│ Worst trade │ BTC/USDT:USDT -1.82% │
│ Best day │ -1.611 USDT │
│ Worst day │ -1.611 USDT │
│ Days win/draw/lose │ 0 / 0 / 1 │
│ Min/Max/Avg. Duration Winners │ 0d 00:00 / 0d 00:00 / 0d 00:00 │
│ Min/Max/Avg. Duration Losers │ 7d 00:00 / 7d 00:00 / 7d 00:00 │
│ Max Consecutive Wins / Loss │ 0 / 1 │
│ Rejected Entry signals │ 0 │
│ Entry/Exit Timeouts │ 0 / 0 │
│ │ │
│ Min balance │ 998.389 USDT │
│ Max balance │ 998.389 USDT │
│ Max % of account underwater │ 0.16% │
│ Absolute drawdown │ 1.611 USDT (0.16%) │
│ Drawdown duration │ 0 days 00:00:00 │
│ Profit at drawdown start │ 0 USDT │
│ Profit at drawdown end │ -1.611 USDT │
│ Drawdown start │ 2025-12-30 00:00:00 │
│ Drawdown end │ 2025-12-30 00:00:00 │
│ Market change │ -4.60% │
└───────────────────────────────┴────────────────────────────────┘
Backtested 2025-12-09 00:00:00 -> 2025-12-30 00:00:00 | Max open trades : 1
STRATEGY SUMMARY
┏━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━┓
┃ Strategy ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃ Drawdown ┃
┡━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━┩
│ Strategy │ 1 │ -1.82 │ -1.611 │ -0.16 │ 7 days, 0:00:00 │ 0 0 1 0 │ 1.611 USDT 0.16% │
└──────────┴────────┴──────────────┴─────────────────┴──────────────┴─────────────────┴────────────────────────┴───────────────────┘
2026-01-09 13:21:46,122 - freqtrade - INFO - freqtrade 2025.12
2026-01-09 13:21:46,652 - numexpr.utils - INFO - NumExpr defaulting to 8 threads.
2026-01-09 13:21:48,161 - freqtrade.configuration.load_config - INFO - Using config: /freqtrade/user_data/config.json ...
2026-01-09 13:21:48,164 - freqtrade.loggers - INFO - Enabling colorized output.
2026-01-09 13:21:48,164 - freqtrade.loggers - INFO - Logfile configured
2026-01-09 13:21:48,165 - freqtrade.loggers - INFO - Verbosity set to 0
2026-01-09 13:21:48,165 - freqtrade.configuration.configuration - INFO - Using max_open_trades: None ...
2026-01-09 13:21:48,166 - freqtrade.configuration.configuration - INFO - Parameter --timerange detected: 20251201-20251230 ...
2026-01-09 13:21:48,179 - freqtrade.configuration.configuration - INFO - Using user-data directory: /freqtrade/user_data ...
2026-01-09 13:21:48,179 - freqtrade.configuration.configuration - INFO - Using data directory: /freqtrade/user_data/data/binance ...
2026-01-09 13:21:48,180 - freqtrade.configuration.configuration - INFO - Parameter --export detected: trades ...
2026-01-09 13:21:48,180 - freqtrade.configuration.configuration - INFO - Parameter --cache=day detected ...
2026-01-09 13:21:48,180 - freqtrade.configuration.configuration - INFO - Using \"json\" to store OHLCV data.
2026-01-09 13:21:48,181 - freqtrade.configuration.configuration - INFO - Filter trades by timerange: 20251201-20251230
2026-01-09 13:21:48,181 - freqtrade.exchange.check_exchange - INFO - Checking exchange...
2026-01-09 13:21:48,192 - freqtrade.exchange.check_exchange - INFO - Exchange \"binance\" is officially supported by the Freqtrade development team.
2026-01-09 13:21:48,192 - freqtrade.configuration.configuration - INFO - Using pairlist from configuration.
2026-01-09 13:21:48,192 - freqtrade.configuration.config_validation - INFO - Validating configuration ...
2026-01-09 13:21:48,194 - freqtrade.commands.optimize_commands - INFO - Starting freqtrade in Backtesting mode
2026-01-09 13:21:48,194 - freqtrade.exchange.exchange - INFO - Instance is running with dry_run enabled
2026-01-09 13:21:48,195 - freqtrade.exchange.exchange - INFO - Using CCXT 4.5.29
2026-01-09 13:21:48,195 - freqtrade.exchange.exchange - INFO - Applying additional ccxt config: {'options': {'defaultType': 'swap'}}
2026-01-09 13:21:48,204 - freqtrade.exchange.exchange - INFO - Applying additional ccxt config: {'options': {'defaultType': 'swap'}}
2026-01-09 13:21:48,215 - freqtrade.exchange.exchange - INFO - Using Exchange \"Binance\"
2026-01-09 13:21:50,833 - freqtrade.resolvers.exchange_resolver - INFO - Using resolved exchange 'Binance'...
2026-01-09 13:21:50,864 - freqtrade.resolvers.iresolver - INFO - Using resolved strategy Strategy from '/freqtrade/user_data/strategies/strategy.py'...
2026-01-09 13:21:50,865 - freqtrade.strategy.hyper - INFO - Found no parameter file.
2026-01-09 13:21:50,865 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'timeframe' with value from the configuration: 1d.
2026-01-09 13:21:50,866 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'stake_currency' with value from the configuration: USDT.
2026-01-09 13:21:50,866 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'stake_amount' with value from the configuration: 100.
2026-01-09 13:21:50,866 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using minimal_roi: {'0': 0.03}
2026-01-09 13:21:50,867 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using timeframe: 1d
2026-01-09 13:21:50,867 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using stoploss: -0.05
2026-01-09 13:21:50,867 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_stop: False
2026-01-09 13:21:50,868 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_stop_positive_offset: 0.0
2026-01-09 13:21:50,868 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_only_offset_is_reached: False
2026-01-09 13:21:50,868 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using use_custom_stoploss: False
2026-01-09 13:21:50,868 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using process_only_new_candles: True
2026-01-09 13:21:50,868 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using order_types: {'entry': 'limit', 'exit': 'limit', 'stoploss': 'limit', 'stoploss_on_exchange': False,
'stoploss_on_exchange_interval': 60}
2026-01-09 13:21:50,869 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using order_time_in_force: {'entry': 'GTC', 'exit': 'GTC'}
2026-01-09 13:21:50,869 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using stake_currency: USDT
2026-01-09 13:21:50,869 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using stake_amount: 100
2026-01-09 13:21:50,869 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using startup_candle_count: 10
2026-01-09 13:21:50,870 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using use_exit_signal: True
2026-01-09 13:21:50,870 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using exit_profit_only: False
2026-01-09 13:21:50,870 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using ignore_roi_if_entry_signal: False
2026-01-09 13:21:50,870 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using exit_profit_offset: 0.0
2026-01-09 13:21:50,871 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using disable_dataframe_checks: False
2026-01-09 13:21:50,871 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using ignore_buying_expired_candle_after: 0
2026-01-09 13:21:50,871 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using position_adjustment_enable: False
2026-01-09 13:21:50,871 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using max_entry_position_adjustment: -1
2026-01-09 13:21:50,871 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using max_open_trades: inf
2026-01-09 13:21:50,872 - freqtrade.configuration.config_validation - INFO - Validating configuration ...
2026-01-09 13:21:50,875 - freqtrade.resolvers.iresolver - INFO - Using resolved pairlist StaticPairList from '/freqtrade/freqtrade/plugins/pairlist/StaticPairList.py'...
2026-01-09 13:21:50,880 - freqtrade.optimize.backtesting - INFO - Using fee 0.0500% - worst case fee from exchange (lowest tier).
2026-01-09 13:21:50,883 - freqtrade.data.history.datahandlers.idatahandler - WARNING - /freqtrade/user_data/data/binance/futures/BTC_USDT_USDT-1h-futures.json exists already, can't migrate BTC/USDT.
2026-01-09 13:21:50,888 - freqtrade.data.history.datahandlers.idatahandler - WARNING - BTC/USDT:USDT, futures, 1d, data starts at 2025-11-29 00:00:00
2026-01-09 13:21:50,896 - freqtrade.optimize.backtesting - INFO - Loading data from 2025-11-29 00:00:00 up to 2025-12-30 00:00:00 (31 days).
2026-01-09 13:21:50,916 - freqtrade.optimize.backtesting - INFO - Dataload complete. Calculating indicators
2026-01-09 13:21:50,917 - freqtrade.optimize.backtesting - INFO - Running backtesting for Strategy Strategy
2026-01-09 13:21:50,919 - freqtrade.optimize.backtesting - INFO - Backtesting with data from 2025-12-09 00:00:00 up to 2025-12-30 00:00:00 (21 days).
2026-01-09 13:21:50,920 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-11-29 00:00:00+00:00 to 2025-11-30 00:00:00+00:00, direction='any'
2026-01-09 13:21:50,921 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch.
2026-01-09 13:21:50,921 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-11-29T00:00:00Z', 'endDate':
'2025-11-30T00:00:00Z', 'direction': 'any'}
2026-01-09 13:21:51,352 - sdk - INFO - Received 0 predictions for symbols: []
2026-01-09 13:21:51,352 - sdk - INFO - Returning 0 predictions after filtering by direction.
2026-01-09 13:21:51,353 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-11-30 00:00:00+00:00 to 2025-12-01 00:00:00+00:00, direction='any'
2026-01-09 13:21:51,353 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch.
2026-01-09 13:21:51,353 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-11-30T00:00:00Z', 'endDate':
'2025-12-01T00:00:00Z', 'direction': 'any'}
2026-01-09 13:21:51,731 - sdk - INFO - Received 0 predictions for symbols: []
2026-01-09 13:21:51,731 - sdk - INFO - Returning 0 predictions after filtering by direction.
2026-01-09 13:21:51,732 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-12-01 00:00:00+00:00 to 2025-12-02 00:00:00+00:00, direction='any'
2026-01-09 13:21:51,732 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch.
2026-01-09 13:21:51,733 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-12-01T00:00:00Z', 'endDate':
'2025-12-02T00:00:00Z', 'direction': 'any'}
2026-01-09 13:21:52,291 - sdk - INFO - Received 0 predictions for symbols: []
2026-01-09 13:21:52,291 - sdk - INFO - Returning 0 predictions after filtering by direction.
2026-01-09 13:21:52,292 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-12-02 00:00:00+00:00 to 2025-12-03 00:00:00+00:00, direction='any'
2026-01-09 13:21:52,292 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch.
2026-01-09 13:21:52,292 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-12-02T00:00:00Z', 'endDate':
'2025-12-03T00:00:00Z', 'direction': 'any'}
2026-01-09 13:21:52,681 - sdk - INFO - Received 0 predictions for symbols: []
2026-01-09 13:21:52,681 - sdk - INFO - Returning 0 predictions after filtering by direction.
2026-01-09 13:21:52,682 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-12-03 00:00:00+00:00 to 2025-12-04 00:00:00+00:00, direction='any'
2026-01-09 13:21:52,683 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch.
2026-01-09 13:21:52,683 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-12-03T00:00:00Z', 'endDate':
'2025-12-04T00:00:00Z', 'direction': 'any'}
2026-01-09 13:21:53,061 - sdk - INFO - Received 0 predictions for symbols: []
2026-01-09 13:21:53,061 - sdk - INFO - Returning 0 predictions after filtering by direction.
2026-01-09 13:21:53,062 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-12-04 00:00:00+00:00 to 2025-12-05 00:00:00+00:00, direction='any'
2026-01-09 13:21:53,062 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch.
2026-01-09 13:21:53,063 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-12-04T00:00:00Z', 'endDate':
'2025-12-05T00:00:00Z', 'direction': 'any'}
2026-01-09 13:21:53,451 - sdk - INFO - Received 1 predictions for symbols: ['ETH/USDT']
2026-01-09 13:21:53,452 - sdk - INFO - Returning 1 predictions after filtering by direction.
2026-01-09 13:21:53,452 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-12-05 00:00:00+00:00 to 2025-12-06 00:00:00+00:00, direction='any'
2026-01-09 13:21:53,453 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch.
2026-01-09 13:21:53,453 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-12-05T00:00:00Z', 'endDate':
'2025-12-06T00:00:00Z', 'direction': 'any'}
2026-01-09 13:21:54,011 - sdk - INFO - Received 0 predictions for symbols: []
2026-01-09 13:21:54,011 - sdk - INFO - Returning 0 predictions after filtering by direction.
2026-01-09 13:21:54,012 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-12-06 00:00:00+00:00 to 2025-12-07 00:00:00+00:00, direction='any'
2026-01-09 13:21:54,012 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch.
2026-01-09 13:21:54,012 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-12-06T00:00:00Z', 'endDate':
'2025-12-07T00:00:00Z', 'direction': 'any'}
2026-01-09 13:21:54,585 - sdk - INFO - Received 0 predictions for symbols: []
2026-01-09 13:21:54,585 - sdk - INFO - Returning 0 predictions after filtering by direction.
2026-01-09 13:21:54,586 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-12-07 00:00:00+00:00 to 2025-12-08 00:00:00+00:00, direction='any'
2026-01-09 13:21:54,586 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch.
2026-01-09 13:21:54,587 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-12-07T00:00:00Z', 'endDate':
'2025-12-08T00:00:00Z', 'direction': 'any'}
2026-01-09 13:21:54,971 - sdk - INFO - Received 0 predictions for symbols: []
2026-01-09 13:21:54,971 - sdk - INFO - Returning 0 predictions after filtering by direction.
2026-01-09 13:21:54,972 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-12-08 00:00:00+00:00 to 2025-12-09 00:00:00+00:00, direction='any'
2026-01-09 13:21:54,972 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch.
2026-01-09 13:21:54,972 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-12-08T00:00:00Z', 'endDate':
'2025-12-09T00:00:00Z', 'direction': 'any'}
2026-01-09 13:21:55,361 - sdk - INFO - Received 0 predictions for symbols: []
2026-01-09 13:21:55,361 - sdk - INFO - Returning 0 predictions after filtering by direction.
2026-01-09 13:21:55,362 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-12-09 00:00:00+00:00 to 2025-12-10 00:00:00+00:00, direction='any'
2026-01-09 13:21:55,362 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch.
2026-01-09 13:21:55,363 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-12-09T00:00:00Z', 'endDate':
'2025-12-10T00:00:00Z', 'direction': 'any'}
2026-01-09 13:21:55,931 - sdk - INFO - Received 0 predictions for symbols: []
2026-01-09 13:21:55,932 - sdk - INFO - Returning 0 predictions after filtering by direction.
2026-01-09 13:21:55,933 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-12-10 00:00:00+00:00 to 2025-12-11 00:00:00+00:00, direction='any'
2026-01-09 13:21:55,933 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch.
2026-01-09 13:21:55,933 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-12-10T00:00:00Z', 'endDate':
'2025-12-11T00:00:00Z', 'direction': 'any'}
2026-01-09 13:21:56,321 - sdk - INFO - Received 0 predictions for symbols: []
2026-01-09 13:21:56,322 - sdk - INFO - Returning 0 predictions after filtering by direction.
2026-01-09 13:21:56,323 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-12-11 00:00:00+00:00 to 2025-12-12 00:00:00+00:00, direction='any'
2026-01-09 13:21:56,323 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch.
2026-01-09 13:21:56,324 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-12-11T00:00:00Z', 'endDate':
'2025-12-12T00:00:00Z', 'direction': 'any'}
2026-01-09 13:21:56,742 - sdk - INFO - Received 0 predictions for symbols: []
2026-01-09 13:21:56,743 - sdk - INFO - Returning 0 predictions after filtering by direction.
2026-01-09 13:21:56,744 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-12-12 00:00:00+00:00 to 2025-12-13 00:00:00+00:00, direction='any'
2026-01-09 13:21:56,744 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch.
2026-01-09 13:21:56,745 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-12-12T00:00:00Z', 'endDate':
'2025-12-13T00:00:00Z', 'direction': 'any'}
2026-01-09 13:21:57,142 - sdk - INFO - Received 0 predictions for symbols: []
2026-01-09 13:21:57,142 - sdk - INFO - Returning 0 predictions after filtering by direction.
2026-01-09 13:21:57,143 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-12-13 00:00:00+00:00 to 2025-12-14 00:00:00+00:00, direction='any'
2026-01-09 13:21:57,143 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch.
2026-01-09 13:21:57,144 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-12-13T00:00:00Z', 'endDate':
'2025-12-14T00:00:00Z', 'direction': 'any'}
2026-01-09 13:21:57,521 - sdk - INFO - Received 0 predictions for symbols: []
2026-01-09 13:21:57,521 - sdk - INFO - Returning 0 predictions after filtering by direction.
2026-01-09 13:21:57,522 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-12-14 00:00:00+00:00 to 2025-12-15 00:00:00+00:00, direction='any'
2026-01-09 13:21:57,522 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch.
2026-01-09 13:21:57,523 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-12-14T00:00:00Z', 'endDate':
'2025-12-15T00:00:00Z', 'direction': 'any'}
2026-01-09 13:21:57,902 - sdk - INFO - Received 0 predictions for symbols: []
2026-01-09 13:21:57,903 - sdk - INFO - Returning 0 predictions after filtering by direction.
2026-01-09 13:21:57,904 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-12-15 00:00:00+00:00 to 2025-12-16 00:00:00+00:00, direction='any'
2026-01-09 13:21:57,904 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch.
2026-01-09 13:21:57,904 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-12-15T00:00:00Z', 'endDate':
'2025-12-16T00:00:00Z', 'direction': 'any'}
2026-01-09 13:21:58,292 - sdk - INFO - Received 0 predictions for symbols: []
2026-01-09 13:21:58,292 - sdk - INFO - Returning 0 predictions after filtering by direction.
2026-01-09 13:21:58,293 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-12-16 00:00:00+00:00 to 2025-12-17 00:00:00+00:00, direction='any'
2026-01-09 13:21:58,294 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch.
2026-01-09 13:21:58,294 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-12-16T00:00:00Z', 'endDate':
'2025-12-17T00:00:00Z', 'direction': 'any'}
2026-01-09 13:21:58,681 - sdk - INFO - Received 0 predictions for symbols: []
2026-01-09 13:21:58,681 - sdk - INFO - Returning 0 predictions after filtering by direction.
2026-01-09 13:21:58,682 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-12-17 00:00:00+00:00 to 2025-12-18 00:00:00+00:00, direction='any'
2026-01-09 13:21:58,682 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch.
2026-01-09 13:21:58,682 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-12-17T00:00:00Z', 'endDate':
'2025-12-18T00:00:00Z', 'direction': 'any'}
2026-01-09 13:21:59,071 - sdk - INFO - Received 0 predictions for symbols: []
2026-01-09 13:21:59,071 - sdk - INFO - Returning 0 predictions after filtering by direction.
2026-01-09 13:21:59,072 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-12-18 00:00:00+00:00 to 2025-12-19 00:00:00+00:00, direction='any'
2026-01-09 13:21:59,073 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch.
2026-01-09 13:21:59,073 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-12-18T00:00:00Z', 'endDate':
'2025-12-19T00:00:00Z', 'direction': 'any'}
2026-01-09 13:21:59,461 - sdk - INFO - Received 0 predictions for symbols: []
2026-01-09 13:21:59,461 - sdk - INFO - Returning 0 predictions after filtering by direction.
2026-01-09 13:21:59,462 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-12-19 00:00:00+00:00 to 2025-12-20 00:00:00+00:00, direction='any'
2026-01-09 13:21:59,462 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch.
2026-01-09 13:21:59,462 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-12-19T00:00:00Z', 'endDate':
'2025-12-20T00:00:00Z', 'direction': 'any'}
2026-01-09 13:21:59,841 - sdk - INFO - Received 0 predictions for symbols: []
2026-01-09 13:21:59,841 - sdk - INFO - Returning 0 predictions after filtering by direction.
2026-01-09 13:21:59,842 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-12-20 00:00:00+00:00 to 2025-12-21 00:00:00+00:00, direction='any'
2026-01-09 13:21:59,843 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch.
2026-01-09 13:21:59,843 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-12-20T00:00:00Z', 'endDate':
'2025-12-21T00:00:00Z', 'direction': 'any'}
2026-01-09 13:22:00,221 - sdk - INFO - Received 0 predictions for symbols: []
2026-01-09 13:22:00,221 - sdk - INFO - Returning 0 predictions after filtering by direction.
2026-01-09 13:22:00,222 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-12-21 00:00:00+00:00 to 2025-12-22 00:00:00+00:00, direction='any'
2026-01-09 13:22:00,222 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch.
2026-01-09 13:22:00,222 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-12-21T00:00:00Z', 'endDate':
'2025-12-22T00:00:00Z', 'direction': 'any'}
2026-01-09 13:22:00,601 - sdk - INFO - Received 0 predictions for symbols: []
2026-01-09 13:22:00,601 - sdk - INFO - Returning 0 predictions after filtering by direction.
2026-01-09 13:22:00,602 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-12-22 00:00:00+00:00 to 2025-12-23 00:00:00+00:00, direction='any'
2026-01-09 13:22:00,602 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch.
2026-01-09 13:22:00,603 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-12-22T00:00:00Z', 'endDate':
'2025-12-23T00:00:00Z', 'direction': 'any'}
2026-01-09 13:22:00,981 - sdk - INFO - Received 3 predictions for symbols: ['ETH/USDT', 'BTC/USDT', 'BTC/USDT']
2026-01-09 13:22:00,981 - sdk - INFO - Returning 3 predictions after filtering by direction.
2026-01-09 13:22:00,982 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-12-23 00:00:00+00:00 to 2025-12-24 00:00:00+00:00, direction='any'
2026-01-09 13:22:00,982 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch.
2026-01-09 13:22:00,983 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-12-23T00:00:00Z', 'endDate':
'2025-12-24T00:00:00Z', 'direction': 'any'}
2026-01-09 13:22:01,372 - sdk - INFO - Received 0 predictions for symbols: []
2026-01-09 13:22:01,372 - sdk - INFO - Returning 0 predictions after filtering by direction.
2026-01-09 13:22:01,373 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-12-24 00:00:00+00:00 to 2025-12-25 00:00:00+00:00, direction='any'
2026-01-09 13:22:01,374 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch.
2026-01-09 13:22:01,374 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-12-24T00:00:00Z', 'endDate':
'2025-12-25T00:00:00Z', 'direction': 'any'}
2026-01-09 13:22:01,751 - sdk - INFO - Received 1 predictions for symbols: ['ETH/USDT']
2026-01-09 13:22:01,751 - sdk - INFO - Returning 1 predictions after filtering by direction.
2026-01-09 13:22:01,752 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-12-25 00:00:00+00:00 to 2025-12-26 00:00:00+00:00, direction='any'
2026-01-09 13:22:01,752 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch.
2026-01-09 13:22:01,753 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-12-25T00:00:00Z', 'endDate':
'2025-12-26T00:00:00Z', 'direction': 'any'}
2026-01-09 13:22:02,311 - sdk - INFO - Received 0 predictions for symbols: []
2026-01-09 13:22:02,311 - sdk - INFO - Returning 0 predictions after filtering by direction.
2026-01-09 13:22:02,312 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-12-26 00:00:00+00:00 to 2025-12-27 00:00:00+00:00, direction='any'
2026-01-09 13:22:02,313 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch.
2026-01-09 13:22:02,313 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-12-26T00:00:00Z', 'endDate':
'2025-12-27T00:00:00Z', 'direction': 'any'}
2026-01-09 13:22:02,701 - sdk - INFO - Received 0 predictions for symbols: []
2026-01-09 13:22:02,701 - sdk - INFO - Returning 0 predictions after filtering by direction.
2026-01-09 13:22:02,702 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-12-27 00:00:00+00:00 to 2025-12-28 00:00:00+00:00, direction='any'
2026-01-09 13:22:02,702 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch.
2026-01-09 13:22:02,703 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-12-27T00:00:00Z', 'endDate':
'2025-12-28T00:00:00Z', 'direction': 'any'}
2026-01-09 13:22:03,091 - sdk - INFO - Received 0 predictions for symbols: []
2026-01-09 13:22:03,092 - sdk - INFO - Returning 0 predictions after filtering by direction.
2026-01-09 13:22:03,093 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-12-28 00:00:00+00:00 to 2025-12-29 00:00:00+00:00, direction='any'
2026-01-09 13:22:03,093 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch.
2026-01-09 13:22:03,093 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-12-28T00:00:00Z', 'endDate':
'2025-12-29T00:00:00Z', 'direction': 'any'}
2026-01-09 13:22:03,511 - sdk - INFO - Received 0 predictions for symbols: []
2026-01-09 13:22:03,511 - sdk - INFO - Returning 0 predictions after filtering by direction.
2026-01-09 13:22:03,512 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-12-29 00:00:00+00:00 to 2025-12-30 00:00:00+00:00, direction='any'
2026-01-09 13:22:03,512 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch.
2026-01-09 13:22:03,513 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-12-29T00:00:00Z', 'endDate':
'2025-12-30T00:00:00Z', 'direction': 'any'}
2026-01-09 13:22:03,891 - sdk - INFO - Received 0 predictions for symbols: []
2026-01-09 13:22:03,891 - sdk - INFO - Returning 0 predictions after filtering by direction.
2026-01-09 13:22:03,892 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-12-30 00:00:00+00:00 to 2025-12-31 00:00:00+00:00, direction='any'
2026-01-09 13:22:03,892 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch.
2026-01-09 13:22:03,893 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-12-30T00:00:00Z', 'endDate':
'2025-12-31T00:00:00Z', 'direction': 'any'}
2026-01-09 13:22:04,271 - sdk - INFO - Received 0 predictions for symbols: []
2026-01-09 13:22:04,271 - sdk - INFO - Returning 0 predictions after filtering by direction.
2026-01-09 13:22:04,415 - freqtrade.misc - INFO - dumping json to \"/freqtrade/user_data/backtest_results/backtest-result-2026-01-09_13-22-04.meta.json\"
"
❯ src/mastra/super/skills/backtest-runner/skill.spec.ts:209:28
207|
208| // 1. Проверки общей сводки стратегии
209| expect(output.logTail).toMatch(/TOTAL\s+1\s+-1.82\s+-1.611\s+-0.16\s+7 days, 0:00:00\s+0\s+0\s+1\s+0/);
| ^
210| expect(output.logTail).toContain('Total/Daily Avg Trades │ 1 / 0.05');
211| expect(output.logTail).toContain('Total profit % │ -0.16%');
| 1 | ❯ vitest run src/mastra/super/skills/backtest-runner/skill.spec.ts |
| 2 | |
| 3 | RUN v4.0.16 /home/dex/Документы/Work/santiment-ai/strategy-agent |
| 4 | |
| 5 | stdout | src/mastra/super/skills/backtest-runner/skill.spec.ts > Backtest Runner: Copytrading Strategy Test (Real Docker) > should successfully prepare env, fetch data, and run freqtrade via docker |
| 6 | [Isolation] Environment prepared for run 9c19c475-6cf9-4474-a93c-7d45338d033b |
| 7 | |
| 8 | stdout | src/mastra/super/skills/backtest-runner/skill.spec.ts > Backtest Runner: Copytrading Strategy Test (Real Docker) > should successfully prepare env, fetch data, and run freqtrade via docker |
| 9 | [RunBacktest] Enforcing config overrides: { |
| 10 | trading_mode: 'futures', |
| 11 | margin_mode: 'isolated', |
| 12 | dataformat_ohlcv: 'json', |
| 13 | dataformat_trades: 'json' |
| 14 | } |
| 15 | |
| 16 | stdout | src/mastra/super/skills/backtest-runner/skill.spec.ts > Backtest Runner: Copytrading Strategy Test (Real Docker) > should successfully prepare env, fetch data, and run freqtrade via docker |
| 17 | [DataFetcher] Downloading 1 pairs... |
| 18 | |
| 19 | stdout | src/mastra/super/skills/backtest-runner/skill.spec.ts > Backtest Runner: Copytrading Strategy Test (Real Docker) > should successfully prepare env, fetch data, and run freqtrade via docker |
| 20 | [DataFetcher] Completed. Processed: 1 |
| 21 | |
| 22 | stdout | src/mastra/super/skills/backtest-runner/skill.spec.ts > Backtest Runner: Copytrading Strategy Test (Real Docker) > should successfully prepare env, fetch data, and run freqtrade via docker |
| 23 | Checking/Rebuilding Docker image "mastra-freqtrade:latest"... |
| 24 | Docker command: cd /home/dex/Документы/Work/santiment-ai/strategy-agent/docker/freqtrade && docker build -t mastra-freqtrade:latest . |
| 25 | |
| 26 | stdout | src/mastra/super/skills/backtest-runner/skill.spec.ts > Backtest Runner: Copytrading Strategy Test (Real Docker) > should successfully prepare env, fetch data, and run freqtrade via docker |
| 27 | Sending build context to Docker daemon 221.2kB |
| 28 | Step 1/7 : FROM freqtradeorg/freqtrade:stable |
| 29 | ---> dfd23153a7f2 |
| 30 | Step 2/7 : COPY requirements.txt /freqtrade/ |
| 31 | ---> Using cache |
| 32 | ---> 2d950a4622c1 |
| 33 | Step 3/7 : RUN pip install --no-cache-dir -r /freqtrade/requirements.txt |
| 34 | ---> Using cache |
| 35 | ---> 298f67123821 |
| 36 | Step 4/7 : COPY add_pair.py /freqtrade/add_pair.py |
| 37 | ---> Using cache |
| 38 | ---> e3274112fd45 |
| 39 | Step 5/7 : COPY pairs.json /freqtrade/pairs.json |
| 40 | ---> Using cache |
| 41 | ---> d4fc1270df5a |
| 42 | Step 6/7 : COPY exchange.py /freqtrade/freqtrade/exchange/exchange.py |
| 43 | ---> Using cache |
| 44 | ---> 04e7579357c7 |
| 45 | Step 7/7 : RUN python /freqtrade/add_pair.py |
| 46 | ---> Using cache |
| 47 | ---> 2d26f279b9b1 |
| 48 | Successfully built 2d26f279b9b1 |
| 49 | Successfully tagged mastra-freqtrade:latest |
| 50 | |
| 51 | Docker image "mastra-freqtrade:latest" is ready ✅ |
| 52 | |
| 53 | stdout | src/mastra/super/skills/backtest-runner/skill.spec.ts > Backtest Runner: Copytrading Strategy Test (Real Docker) > should successfully prepare env, fetch data, and run freqtrade via docker |
| 54 | [DOCKER CMD] docker run --rm --memory 1g -v "/home/dex/Документы/Work/santiment-ai/strategy-agent/data/freqtrade_runs/9c19c475-6cf9-4474-a93c-7d45338d033b:/freqtrade/user_data" -v "/home/dex/Документы/Work/santiment-ai/strategy-agent/data/market_cache/binance:/freqtrade/user_data/data/binance" mastra-freqtrade:latest backtesting --config /freqtrade/user_data/config.json --strategy Strategy --timerange 20251201-20251230 --export trades --data-format-ohlcv json --logfile /freqtrade/user_data/logs/freqtrade.log |
| 55 | |
| 56 | stdout | src/mastra/super/skills/backtest-runner/skill.spec.ts > Backtest Runner: Copytrading Strategy Test (Real Docker) > should successfully prepare env, fetch data, and run freqtrade via docker |
| 57 | Backtest result: { |
| 58 | success: true, |
| 59 | runId: '9c19c475-6cf9-4474-a93c-7d45338d033b', |
| 60 | logTail: 'Result for strategy Strategy\n' + |
| 61 | ' BACKTESTING REPORT \n' + |
| 62 | '┏━━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓\n' + |
| 63 | '┃ Pair ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃\n' + |
| 64 | '┡━━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩\n' + |
| 65 | '│ BTC/USDT:USDT │ 1 │ -1.82 │ -1.611 │ -0.16 │ 7 days, 0:00:00 │ 0 0 1 0 │\n' + |
| 66 | '│ TOTAL │ 1 │ -1.82 │ -1.611 │ -0.16 │ 7 days, 0:00:00 │ 0 0 1 0 │\n' + |
| 67 | '└───────────────┴────────┴──────────────┴─────────────────┴──────────────┴─────────────────┴────────────────────────┘\n' + |
| 68 | ' LEFT OPEN TRADES REPORT \n' + |
| 69 | '┏━━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓\n' + |
| 70 | '┃ Pair ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃\n' + |
| 71 | '┡━━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩\n' + |
| 72 | '│ BTC/USDT:USDT │ 1 │ -1.82 │ -1.611 │ -0.16 │ 7 days, 0:00:00 │ 0 0 1 0 │\n' + |
| 73 | '│ TOTAL │ 1 │ -1.82 │ -1.611 │ -0.16 │ 7 days, 0:00:00 │ 0 0 1 0 │\n' + |
| 74 | '└───────────────┴────────┴──────────────┴─────────────────┴──────────────┴─────────────────┴────────────────────────┘\n' + |
| 75 | ' ENTER TAG STATS \n' + |
| 76 | '┏━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓\n' + |
| 77 | '┃ Enter Tag ┃ Entries ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃\n' + |
| 78 | '┡━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩\n' + |
| 79 | '│ OTHER │ 1 │ -1.82 │ -1.611 │ -0.16 │ 7 days, 0:00:00 │ 0 0 1 0 │\n' + |
| 80 | '│ TOTAL │ 1 │ -1.82 │ -1.611 │ -0.16 │ 7 days, 0:00:00 │ 0 0 1 0 │\n' + |
| 81 | '└───────────┴─────────┴──────────────┴─────────────────┴──────────────┴─────────────────┴────────────────────────┘\n' + |
| 82 | ' EXIT REASON STATS \n' + |
| 83 | '┏━━━━━━━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓\n' + |
| 84 | '┃ Exit Reason ┃ Exits ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃\n' + |
| 85 | '┡━━━━━━━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩\n' + |
| 86 | '│ force_exit │ 1 │ -1.82 │ -1.611 │ -0.16 │ 7 days, 0:00:00 │ 0 0 1 0 │\n' + |
| 87 | '│ TOTAL │ 1 │ -1.82 │ -1.611 │ -0.16 │ 7 days, 0:00:00 │ 0 0 1 0 │\n' + |
| 88 | '└─────────────┴───────┴──────────────┴─────────────────┴──────────────┴─────────────────┴────────────────────────┘\n' + |
| 89 | ' MIXED TAG STATS \n' + |
| 90 | '┏━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓\n' + |
| 91 | '┃ Enter Tag ┃ Exit Reason ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃\n' + |
| 92 | '┡━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩\n' + |
| 93 | '│ │ force_exit │ 1 │ -1.82 │ -1.611 │ -0.16 │ 7 days, 0:00:00 │ 0 0 1 0 │\n' + |
| 94 | '│ TOTAL │ │ 1 │ -1.82 │ -1.611 │ -0.16 │ 7 days, 0:00:00 │ 0 0 1 0 │\n' + |
| 95 | '└───────────┴─────────────┴────────┴──────────────┴─────────────────┴──────────────┴─────────────────┴────────────────────────┘\n' + |
| 96 | ' SUMMARY METRICS \n' + |
| 97 | '┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n' + |
| 98 | '┃ Metric ┃ Value ┃\n' + |
| 99 | '┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n' + |
| 100 | '│ Backtesting from │ 2025-12-09 00:00:00 │\n' + |
| 101 | '│ Backtesting to │ 2025-12-30 00:00:00 │\n' + |
| 102 | '│ Trading Mode │ Isolated Futures │\n' + |
| 103 | '│ Max open trades │ 1 │\n' + |
| 104 | '│ │ │\n' + |
| 105 | '│ Total/Daily Avg Trades │ 1 / 0.05 │\n' + |
| 106 | '│ Starting balance │ 1000 USDT │\n' + |
| 107 | '│ Final balance │ 998.389 USDT │\n' + |
| 108 | '│ Absolute profit │ -1.611 USDT │\n' + |
| 109 | '│ Total profit % │ -0.16% │\n' + |
| 110 | '│ CAGR % │ -2.76% │\n' + |
| 111 | '│ Sortino │ -100.00 │\n' + |
| 112 | '│ Sharpe │ -100.00 │\n' + |
| 113 | '│ Calmar │ -90.98 │\n' + |
| 114 | '│ SQN │ -100.00 │\n' + |
| 115 | '│ Profit factor │ 0.00 │\n' + |
| 116 | '│ Expectancy (Ratio) │ -1.61 (-1.00) │\n' + |
| 117 | '│ Avg. daily profit │ -0.077 USDT │\n' + |
| 118 | '│ Avg. stake amount │ 88.531 USDT │\n' + |
| 119 | '│ Total trade volume │ 175.751 USDT │\n' + |
| 120 | '│ │ │\n' + |
| 121 | '│ Best Pair │ BTC/USDT:USDT -0.16% │\n' + |
| 122 | '│ Worst Pair │ BTC/USDT:USDT -0.16% │\n' + |
| 123 | '│ Best trade │ BTC/USDT:USDT -1.82% │\n' + |
| 124 | '│ Worst trade │ BTC/USDT:USDT -1.82% │\n' + |
| 125 | '│ Best day │ -1.611 USDT │\n' + |
| 126 | '│ Worst day │ -1.611 USDT │\n' + |
| 127 | '│ Days win/draw/lose │ 0 / 0 / 1 │\n' + |
| 128 | '│ Min/Max/Avg. Duration Winners │ 0d 00:00 / 0d 00:00 / 0d 00:00 │\n' + |
| 129 | '│ Min/Max/Avg. Duration Losers │ 7d 00:00 / 7d 00:00 / 7d 00:00 │\n' + |
| 130 | '│ Max Consecutive Wins / Loss │ 0 / 1 │\n' + |
| 131 | '│ Rejected Entry signals │ 0 │\n' + |
| 132 | '│ Entry/Exit Timeouts │ 0 / 0 │\n' + |
| 133 | '│ │ │\n' + |
| 134 | '│ Min balance │ 998.389 USDT │\n' + |
| 135 | '│ Max balance │ 998.389 USDT │\n' + |
| 136 | '│ Max % of account underwater │ 0.16% │\n' + |
| 137 | '│ Absolute drawdown │ 1.611 USDT (0.16%) │\n' + |
| 138 | '│ Drawdown duration │ 0 days 00:00:00 │\n' + |
| 139 | '│ Profit at drawdown start │ 0 USDT │\n' + |
| 140 | '│ Profit at drawdown end │ -1.611 USDT │\n' + |
| 141 | '│ Drawdown start │ 2025-12-30 00:00:00 │\n' + |
| 142 | '│ Drawdown end │ 2025-12-30 00:00:00 │\n' + |
| 143 | '│ Market change │ -4.60% │\n' + |
| 144 | '└───────────────────────────────┴────────────────────────────────┘\n' + |
| 145 | '\n' + |
| 146 | 'Backtested 2025-12-09 00:00:00 -> 2025-12-30 00:00:00 | Max open trades : 1\n' + |
| 147 | ' STRATEGY SUMMARY \n' + |
| 148 | '┏━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━┓\n' + |
| 149 | '┃ Strategy ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃ Drawdown ┃\n' + |
| 150 | '┡━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━┩\n' + |
| 151 | '│ Strategy │ 1 │ -1.82 │ -1.611 │ -0.16 │ 7 days, 0:00:00 │ 0 0 1 0 │ 1.611 USDT 0.16% │\n' + |
| 152 | '└──────────┴────────┴──────────────┴─────────────────┴──────────────┴─────────────────┴────────────────────────┴───────────────────┘\n' + |
| 153 | '2026-01-09 13:21:46,122 - freqtrade - INFO - freqtrade 2025.12\n' + |
| 154 | '2026-01-09 13:21:46,652 - numexpr.utils - INFO - NumExpr defaulting to 8 threads.\n' + |
| 155 | '2026-01-09 13:21:48,161 - freqtrade.configuration.load_config - INFO - Using config: /freqtrade/user_data/config.json ...\n' + |
| 156 | '2026-01-09 13:21:48,164 - freqtrade.loggers - INFO - Enabling colorized output.\n' + |
| 157 | '2026-01-09 13:21:48,164 - freqtrade.loggers - INFO - Logfile configured\n' + |
| 158 | '2026-01-09 13:21:48,165 - freqtrade.loggers - INFO - Verbosity set to 0\n' + |
| 159 | '2026-01-09 13:21:48,165 - freqtrade.configuration.configuration - INFO - Using max_open_trades: None ...\n' + |
| 160 | '2026-01-09 13:21:48,166 - freqtrade.configuration.configuration - INFO - Parameter --timerange detected: 20251201-20251230 ...\n' + |
| 161 | '2026-01-09 13:21:48,179 - freqtrade.configuration.configuration - INFO - Using user-data directory: /freqtrade/user_data ...\n' + |
| 162 | '2026-01-09 13:21:48,179 - freqtrade.configuration.configuration - INFO - Using data directory: /freqtrade/user_data/data/binance ...\n' + |
| 163 | '2026-01-09 13:21:48,180 - freqtrade.configuration.configuration - INFO - Parameter --export detected: trades ...\n' + |
| 164 | '2026-01-09 13:21:48,180 - freqtrade.configuration.configuration - INFO - Parameter --cache=day detected ...\n' + |
| 165 | '2026-01-09 13:21:48,180 - freqtrade.configuration.configuration - INFO - Using "json" to store OHLCV data.\n' + |
| 166 | '2026-01-09 13:21:48,181 - freqtrade.configuration.configuration - INFO - Filter trades by timerange: 20251201-20251230\n' + |
| 167 | '2026-01-09 13:21:48,181 - freqtrade.exchange.check_exchange - INFO - Checking exchange...\n' + |
| 168 | '2026-01-09 13:21:48,192 - freqtrade.exchange.check_exchange - INFO - Exchange "binance" is officially supported by the Freqtrade developm'... 27101 more characters |
| 169 | } |
| 170 | |
| 171 | stdout | src/mastra/super/skills/backtest-runner/skill.spec.ts > Backtest Runner: Copytrading Strategy Test (Real Docker) |
| 172 | [Test Info] Artifacts preserved for threadId: copytrading-test-1767964901498 |
| 173 | |
| 174 | ❯ src/mastra/super/skills/backtest-runner/skill.spec.ts (1 test | 1 failed) 23712ms |
| 175 | ❯ Backtest Runner: Copytrading Strategy Test (Real Docker) (1) |
| 176 | × should successfully prepare env, fetch data, and run freqtrade via docker 23711ms |
| 177 | |
| 178 | ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ |
| 179 | |
| 180 | FAIL src/mastra/super/skills/backtest-runner/skill.spec.ts > Backtest Runner: Copytrading Strategy Test (Real Docker) > should successfully prepare env, fetch data, and run freqtrade via docker |
| 181 | AssertionError: expected 'Result for strategy Strategy\n …' to match /TOTAL\s+1\s+-1.82\s+-1.611\s+-0.16\s+…/ |
| 182 | |
| 183 | - Expected: |
| 184 | /TOTAL\s+1\s+-1.82\s+-1.611\s+-0.16\s+7 days, 0:00:00\s+0\s+0\s+1\s+0/ |
| 185 | |
| 186 | + Received: |
| 187 | "Result for strategy Strategy |
| 188 | BACKTESTING REPORT |
| 189 | ┏━━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓ |
| 190 | ┃ Pair ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃ |
| 191 | ┡━━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩ |
| 192 | │ BTC/USDT:USDT │ 1 │ -1.82 │ -1.611 │ -0.16 │ 7 days, 0:00:00 │ 0 0 1 0 │ |
| 193 | │ TOTAL │ 1 │ -1.82 │ -1.611 │ -0.16 │ 7 days, 0:00:00 │ 0 0 1 0 │ |
| 194 | └───────────────┴────────┴──────────────┴─────────────────┴──────────────┴─────────────────┴────────────────────────┘ |
| 195 | LEFT OPEN TRADES REPORT |
| 196 | ┏━━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓ |
| 197 | ┃ Pair ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃ |
| 198 | ┡━━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩ |
| 199 | │ BTC/USDT:USDT │ 1 │ -1.82 │ -1.611 │ -0.16 │ 7 days, 0:00:00 │ 0 0 1 0 │ |
| 200 | │ TOTAL │ 1 │ -1.82 │ -1.611 │ -0.16 │ 7 days, 0:00:00 │ 0 0 1 0 │ |
| 201 | └───────────────┴────────┴──────────────┴─────────────────┴──────────────┴─────────────────┴────────────────────────┘ |
| 202 | ENTER TAG STATS |
| 203 | ┏━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓ |
| 204 | ┃ Enter Tag ┃ Entries ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃ |
| 205 | ┡━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩ |
| 206 | │ OTHER │ 1 │ -1.82 │ -1.611 │ -0.16 │ 7 days, 0:00:00 │ 0 0 1 0 │ |
| 207 | │ TOTAL │ 1 │ -1.82 │ -1.611 │ -0.16 │ 7 days, 0:00:00 │ 0 0 1 0 │ |
| 208 | └───────────┴─────────┴──────────────┴─────────────────┴──────────────┴─────────────────┴────────────────────────┘ |
| 209 | EXIT REASON STATS |
| 210 | ┏━━━━━━━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓ |
| 211 | ┃ Exit Reason ┃ Exits ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃ |
| 212 | ┡━━━━━━━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩ |
| 213 | │ force_exit │ 1 │ -1.82 │ -1.611 │ -0.16 │ 7 days, 0:00:00 │ 0 0 1 0 │ |
| 214 | │ TOTAL │ 1 │ -1.82 │ -1.611 │ -0.16 │ 7 days, 0:00:00 │ 0 0 1 0 │ |
| 215 | └─────────────┴───────┴──────────────┴─────────────────┴──────────────┴─────────────────┴────────────────────────┘ |
| 216 | MIXED TAG STATS |
| 217 | ┏━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓ |
| 218 | ┃ Enter Tag ┃ Exit Reason ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃ |
| 219 | ┡━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩ |
| 220 | │ │ force_exit │ 1 │ -1.82 │ -1.611 │ -0.16 │ 7 days, 0:00:00 │ 0 0 1 0 │ |
| 221 | │ TOTAL │ │ 1 │ -1.82 │ -1.611 │ -0.16 │ 7 days, 0:00:00 │ 0 0 1 0 │ |
| 222 | └───────────┴─────────────┴────────┴──────────────┴─────────────────┴──────────────┴─────────────────┴────────────────────────┘ |
| 223 | SUMMARY METRICS |
| 224 | ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ |
| 225 | ┃ Metric ┃ Value ┃ |
| 226 | ┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩ |
| 227 | │ Backtesting from │ 2025-12-09 00:00:00 │ |
| 228 | │ Backtesting to │ 2025-12-30 00:00:00 │ |
| 229 | │ Trading Mode │ Isolated Futures │ |
| 230 | │ Max open trades │ 1 │ |
| 231 | │ │ │ |
| 232 | │ Total/Daily Avg Trades │ 1 / 0.05 │ |
| 233 | │ Starting balance │ 1000 USDT │ |
| 234 | │ Final balance │ 998.389 USDT │ |
| 235 | │ Absolute profit │ -1.611 USDT │ |
| 236 | │ Total profit % │ -0.16% │ |
| 237 | │ CAGR % │ -2.76% │ |
| 238 | │ Sortino │ -100.00 │ |
| 239 | │ Sharpe │ -100.00 │ |
| 240 | │ Calmar │ -90.98 │ |
| 241 | │ SQN │ -100.00 │ |
| 242 | │ Profit factor │ 0.00 │ |
| 243 | │ Expectancy (Ratio) │ -1.61 (-1.00) │ |
| 244 | │ Avg. daily profit │ -0.077 USDT │ |
| 245 | │ Avg. stake amount │ 88.531 USDT │ |
| 246 | │ Total trade volume │ 175.751 USDT │ |
| 247 | │ │ │ |
| 248 | │ Best Pair │ BTC/USDT:USDT -0.16% │ |
| 249 | │ Worst Pair │ BTC/USDT:USDT -0.16% │ |
| 250 | │ Best trade │ BTC/USDT:USDT -1.82% │ |
| 251 | │ Worst trade │ BTC/USDT:USDT -1.82% │ |
| 252 | │ Best day │ -1.611 USDT │ |
| 253 | │ Worst day │ -1.611 USDT │ |
| 254 | │ Days win/draw/lose │ 0 / 0 / 1 │ |
| 255 | │ Min/Max/Avg. Duration Winners │ 0d 00:00 / 0d 00:00 / 0d 00:00 │ |
| 256 | │ Min/Max/Avg. Duration Losers │ 7d 00:00 / 7d 00:00 / 7d 00:00 │ |
| 257 | │ Max Consecutive Wins / Loss │ 0 / 1 │ |
| 258 | │ Rejected Entry signals │ 0 │ |
| 259 | │ Entry/Exit Timeouts │ 0 / 0 │ |
| 260 | │ │ │ |
| 261 | │ Min balance │ 998.389 USDT │ |
| 262 | │ Max balance │ 998.389 USDT │ |
| 263 | │ Max % of account underwater │ 0.16% │ |
| 264 | │ Absolute drawdown │ 1.611 USDT (0.16%) │ |
| 265 | │ Drawdown duration │ 0 days 00:00:00 │ |
| 266 | │ Profit at drawdown start │ 0 USDT │ |
| 267 | │ Profit at drawdown end │ -1.611 USDT │ |
| 268 | │ Drawdown start │ 2025-12-30 00:00:00 │ |
| 269 | │ Drawdown end │ 2025-12-30 00:00:00 │ |
| 270 | │ Market change │ -4.60% │ |
| 271 | └───────────────────────────────┴────────────────────────────────┘ |
| 272 | |
| 273 | Backtested 2025-12-09 00:00:00 -> 2025-12-30 00:00:00 | Max open trades : 1 |
| 274 | STRATEGY SUMMARY |
| 275 | ┏━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━┓ |
| 276 | ┃ Strategy ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃ Drawdown ┃ |
| 277 | ┡━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━┩ |
| 278 | │ Strategy │ 1 │ -1.82 │ -1.611 │ -0.16 │ 7 days, 0:00:00 │ 0 0 1 0 │ 1.611 USDT 0.16% │ |
| 279 | └──────────┴────────┴──────────────┴─────────────────┴──────────────┴─────────────────┴────────────────────────┴───────────────────┘ |
| 280 | 2026-01-09 13:21:46,122 - freqtrade - INFO - freqtrade 2025.12 |
| 281 | 2026-01-09 13:21:46,652 - numexpr.utils - INFO - NumExpr defaulting to 8 threads. |
| 282 | 2026-01-09 13:21:48,161 - freqtrade.configuration.load_config - INFO - Using config: /freqtrade/user_data/config.json ... |
| 283 | 2026-01-09 13:21:48,164 - freqtrade.loggers - INFO - Enabling colorized output. |
| 284 | 2026-01-09 13:21:48,164 - freqtrade.loggers - INFO - Logfile configured |
| 285 | 2026-01-09 13:21:48,165 - freqtrade.loggers - INFO - Verbosity set to 0 |
| 286 | 2026-01-09 13:21:48,165 - freqtrade.configuration.configuration - INFO - Using max_open_trades: None ... |
| 287 | 2026-01-09 13:21:48,166 - freqtrade.configuration.configuration - INFO - Parameter --timerange detected: 20251201-20251230 ... |
| 288 | 2026-01-09 13:21:48,179 - freqtrade.configuration.configuration - INFO - Using user-data directory: /freqtrade/user_data ... |
| 289 | 2026-01-09 13:21:48,179 - freqtrade.configuration.configuration - INFO - Using data directory: /freqtrade/user_data/data/binance ... |
| 290 | 2026-01-09 13:21:48,180 - freqtrade.configuration.configuration - INFO - Parameter --export detected: trades ... |
| 291 | 2026-01-09 13:21:48,180 - freqtrade.configuration.configuration - INFO - Parameter --cache=day detected ... |
| 292 | 2026-01-09 13:21:48,180 - freqtrade.configuration.configuration - INFO - Using \"json\" to store OHLCV data. |
| 293 | 2026-01-09 13:21:48,181 - freqtrade.configuration.configuration - INFO - Filter trades by timerange: 20251201-20251230 |
| 294 | 2026-01-09 13:21:48,181 - freqtrade.exchange.check_exchange - INFO - Checking exchange... |
| 295 | 2026-01-09 13:21:48,192 - freqtrade.exchange.check_exchange - INFO - Exchange \"binance\" is officially supported by the Freqtrade development team. |
| 296 | 2026-01-09 13:21:48,192 - freqtrade.configuration.configuration - INFO - Using pairlist from configuration. |
| 297 | 2026-01-09 13:21:48,192 - freqtrade.configuration.config_validation - INFO - Validating configuration ... |
| 298 | 2026-01-09 13:21:48,194 - freqtrade.commands.optimize_commands - INFO - Starting freqtrade in Backtesting mode |
| 299 | 2026-01-09 13:21:48,194 - freqtrade.exchange.exchange - INFO - Instance is running with dry_run enabled |
| 300 | 2026-01-09 13:21:48,195 - freqtrade.exchange.exchange - INFO - Using CCXT 4.5.29 |
| 301 | 2026-01-09 13:21:48,195 - freqtrade.exchange.exchange - INFO - Applying additional ccxt config: {'options': {'defaultType': 'swap'}} |
| 302 | 2026-01-09 13:21:48,204 - freqtrade.exchange.exchange - INFO - Applying additional ccxt config: {'options': {'defaultType': 'swap'}} |
| 303 | 2026-01-09 13:21:48,215 - freqtrade.exchange.exchange - INFO - Using Exchange \"Binance\" |
| 304 | 2026-01-09 13:21:50,833 - freqtrade.resolvers.exchange_resolver - INFO - Using resolved exchange 'Binance'... |
| 305 | 2026-01-09 13:21:50,864 - freqtrade.resolvers.iresolver - INFO - Using resolved strategy Strategy from '/freqtrade/user_data/strategies/strategy.py'... |
| 306 | 2026-01-09 13:21:50,865 - freqtrade.strategy.hyper - INFO - Found no parameter file. |
| 307 | 2026-01-09 13:21:50,865 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'timeframe' with value from the configuration: 1d. |
| 308 | 2026-01-09 13:21:50,866 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'stake_currency' with value from the configuration: USDT. |
| 309 | 2026-01-09 13:21:50,866 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'stake_amount' with value from the configuration: 100. |
| 310 | 2026-01-09 13:21:50,866 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using minimal_roi: {'0': 0.03} |
| 311 | 2026-01-09 13:21:50,867 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using timeframe: 1d |
| 312 | 2026-01-09 13:21:50,867 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using stoploss: -0.05 |
| 313 | 2026-01-09 13:21:50,867 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_stop: False |
| 314 | 2026-01-09 13:21:50,868 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_stop_positive_offset: 0.0 |
| 315 | 2026-01-09 13:21:50,868 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_only_offset_is_reached: False |
| 316 | 2026-01-09 13:21:50,868 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using use_custom_stoploss: False |
| 317 | 2026-01-09 13:21:50,868 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using process_only_new_candles: True |
| 318 | 2026-01-09 13:21:50,868 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using order_types: {'entry': 'limit', 'exit': 'limit', 'stoploss': 'limit', 'stoploss_on_exchange': False, |
| 319 | 'stoploss_on_exchange_interval': 60} |
| 320 | 2026-01-09 13:21:50,869 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using order_time_in_force: {'entry': 'GTC', 'exit': 'GTC'} |
| 321 | 2026-01-09 13:21:50,869 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using stake_currency: USDT |
| 322 | 2026-01-09 13:21:50,869 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using stake_amount: 100 |
| 323 | 2026-01-09 13:21:50,869 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using startup_candle_count: 10 |
| 324 | 2026-01-09 13:21:50,870 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using use_exit_signal: True |
| 325 | 2026-01-09 13:21:50,870 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using exit_profit_only: False |
| 326 | 2026-01-09 13:21:50,870 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using ignore_roi_if_entry_signal: False |
| 327 | 2026-01-09 13:21:50,870 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using exit_profit_offset: 0.0 |
| 328 | 2026-01-09 13:21:50,871 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using disable_dataframe_checks: False |
| 329 | 2026-01-09 13:21:50,871 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using ignore_buying_expired_candle_after: 0 |
| 330 | 2026-01-09 13:21:50,871 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using position_adjustment_enable: False |
| 331 | 2026-01-09 13:21:50,871 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using max_entry_position_adjustment: -1 |
| 332 | 2026-01-09 13:21:50,871 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using max_open_trades: inf |
| 333 | 2026-01-09 13:21:50,872 - freqtrade.configuration.config_validation - INFO - Validating configuration ... |
| 334 | 2026-01-09 13:21:50,875 - freqtrade.resolvers.iresolver - INFO - Using resolved pairlist StaticPairList from '/freqtrade/freqtrade/plugins/pairlist/StaticPairList.py'... |
| 335 | 2026-01-09 13:21:50,880 - freqtrade.optimize.backtesting - INFO - Using fee 0.0500% - worst case fee from exchange (lowest tier). |
| 336 | 2026-01-09 13:21:50,883 - freqtrade.data.history.datahandlers.idatahandler - WARNING - /freqtrade/user_data/data/binance/futures/BTC_USDT_USDT-1h-futures.json exists already, can't migrate BTC/USDT. |
| 337 | 2026-01-09 13:21:50,888 - freqtrade.data.history.datahandlers.idatahandler - WARNING - BTC/USDT:USDT, futures, 1d, data starts at 2025-11-29 00:00:00 |
| 338 | 2026-01-09 13:21:50,896 - freqtrade.optimize.backtesting - INFO - Loading data from 2025-11-29 00:00:00 up to 2025-12-30 00:00:00 (31 days). |
| 339 | 2026-01-09 13:21:50,916 - freqtrade.optimize.backtesting - INFO - Dataload complete. Calculating indicators |
| 340 | 2026-01-09 13:21:50,917 - freqtrade.optimize.backtesting - INFO - Running backtesting for Strategy Strategy |
| 341 | 2026-01-09 13:21:50,919 - freqtrade.optimize.backtesting - INFO - Backtesting with data from 2025-12-09 00:00:00 up to 2025-12-30 00:00:00 (21 days). |
| 342 | 2026-01-09 13:21:50,920 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-11-29 00:00:00+00:00 to 2025-11-30 00:00:00+00:00, direction='any' |
| 343 | 2026-01-09 13:21:50,921 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch. |
| 344 | 2026-01-09 13:21:50,921 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-11-29T00:00:00Z', 'endDate': |
| 345 | '2025-11-30T00:00:00Z', 'direction': 'any'} |
| 346 | 2026-01-09 13:21:51,352 - sdk - INFO - Received 0 predictions for symbols: [] |
| 347 | 2026-01-09 13:21:51,352 - sdk - INFO - Returning 0 predictions after filtering by direction. |
| 348 | 2026-01-09 13:21:51,353 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-11-30 00:00:00+00:00 to 2025-12-01 00:00:00+00:00, direction='any' |
| 349 | 2026-01-09 13:21:51,353 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch. |
| 350 | 2026-01-09 13:21:51,353 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-11-30T00:00:00Z', 'endDate': |
| 351 | '2025-12-01T00:00:00Z', 'direction': 'any'} |
| 352 | 2026-01-09 13:21:51,731 - sdk - INFO - Received 0 predictions for symbols: [] |
| 353 | 2026-01-09 13:21:51,731 - sdk - INFO - Returning 0 predictions after filtering by direction. |
| 354 | 2026-01-09 13:21:51,732 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-12-01 00:00:00+00:00 to 2025-12-02 00:00:00+00:00, direction='any' |
| 355 | 2026-01-09 13:21:51,732 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch. |
| 356 | 2026-01-09 13:21:51,733 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-12-01T00:00:00Z', 'endDate': |
| 357 | '2025-12-02T00:00:00Z', 'direction': 'any'} |
| 358 | 2026-01-09 13:21:52,291 - sdk - INFO - Received 0 predictions for symbols: [] |
| 359 | 2026-01-09 13:21:52,291 - sdk - INFO - Returning 0 predictions after filtering by direction. |
| 360 | 2026-01-09 13:21:52,292 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-12-02 00:00:00+00:00 to 2025-12-03 00:00:00+00:00, direction='any' |
| 361 | 2026-01-09 13:21:52,292 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch. |
| 362 | 2026-01-09 13:21:52,292 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-12-02T00:00:00Z', 'endDate': |
| 363 | '2025-12-03T00:00:00Z', 'direction': 'any'} |
| 364 | 2026-01-09 13:21:52,681 - sdk - INFO - Received 0 predictions for symbols: [] |
| 365 | 2026-01-09 13:21:52,681 - sdk - INFO - Returning 0 predictions after filtering by direction. |
| 366 | 2026-01-09 13:21:52,682 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-12-03 00:00:00+00:00 to 2025-12-04 00:00:00+00:00, direction='any' |
| 367 | 2026-01-09 13:21:52,683 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch. |
| 368 | 2026-01-09 13:21:52,683 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-12-03T00:00:00Z', 'endDate': |
| 369 | '2025-12-04T00:00:00Z', 'direction': 'any'} |
| 370 | 2026-01-09 13:21:53,061 - sdk - INFO - Received 0 predictions for symbols: [] |
| 371 | 2026-01-09 13:21:53,061 - sdk - INFO - Returning 0 predictions after filtering by direction. |
| 372 | 2026-01-09 13:21:53,062 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-12-04 00:00:00+00:00 to 2025-12-05 00:00:00+00:00, direction='any' |
| 373 | 2026-01-09 13:21:53,062 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch. |
| 374 | 2026-01-09 13:21:53,063 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-12-04T00:00:00Z', 'endDate': |
| 375 | '2025-12-05T00:00:00Z', 'direction': 'any'} |
| 376 | 2026-01-09 13:21:53,451 - sdk - INFO - Received 1 predictions for symbols: ['ETH/USDT'] |
| 377 | 2026-01-09 13:21:53,452 - sdk - INFO - Returning 1 predictions after filtering by direction. |
| 378 | 2026-01-09 13:21:53,452 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-12-05 00:00:00+00:00 to 2025-12-06 00:00:00+00:00, direction='any' |
| 379 | 2026-01-09 13:21:53,453 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch. |
| 380 | 2026-01-09 13:21:53,453 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-12-05T00:00:00Z', 'endDate': |
| 381 | '2025-12-06T00:00:00Z', 'direction': 'any'} |
| 382 | 2026-01-09 13:21:54,011 - sdk - INFO - Received 0 predictions for symbols: [] |
| 383 | 2026-01-09 13:21:54,011 - sdk - INFO - Returning 0 predictions after filtering by direction. |
| 384 | 2026-01-09 13:21:54,012 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-12-06 00:00:00+00:00 to 2025-12-07 00:00:00+00:00, direction='any' |
| 385 | 2026-01-09 13:21:54,012 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch. |
| 386 | 2026-01-09 13:21:54,012 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-12-06T00:00:00Z', 'endDate': |
| 387 | '2025-12-07T00:00:00Z', 'direction': 'any'} |
| 388 | 2026-01-09 13:21:54,585 - sdk - INFO - Received 0 predictions for symbols: [] |
| 389 | 2026-01-09 13:21:54,585 - sdk - INFO - Returning 0 predictions after filtering by direction. |
| 390 | 2026-01-09 13:21:54,586 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-12-07 00:00:00+00:00 to 2025-12-08 00:00:00+00:00, direction='any' |
| 391 | 2026-01-09 13:21:54,586 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch. |
| 392 | 2026-01-09 13:21:54,587 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-12-07T00:00:00Z', 'endDate': |
| 393 | '2025-12-08T00:00:00Z', 'direction': 'any'} |
| 394 | 2026-01-09 13:21:54,971 - sdk - INFO - Received 0 predictions for symbols: [] |
| 395 | 2026-01-09 13:21:54,971 - sdk - INFO - Returning 0 predictions after filtering by direction. |
| 396 | 2026-01-09 13:21:54,972 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-12-08 00:00:00+00:00 to 2025-12-09 00:00:00+00:00, direction='any' |
| 397 | 2026-01-09 13:21:54,972 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch. |
| 398 | 2026-01-09 13:21:54,972 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-12-08T00:00:00Z', 'endDate': |
| 399 | '2025-12-09T00:00:00Z', 'direction': 'any'} |
| 400 | 2026-01-09 13:21:55,361 - sdk - INFO - Received 0 predictions for symbols: [] |
| 401 | 2026-01-09 13:21:55,361 - sdk - INFO - Returning 0 predictions after filtering by direction. |
| 402 | 2026-01-09 13:21:55,362 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-12-09 00:00:00+00:00 to 2025-12-10 00:00:00+00:00, direction='any' |
| 403 | 2026-01-09 13:21:55,362 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch. |
| 404 | 2026-01-09 13:21:55,363 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-12-09T00:00:00Z', 'endDate': |
| 405 | '2025-12-10T00:00:00Z', 'direction': 'any'} |
| 406 | 2026-01-09 13:21:55,931 - sdk - INFO - Received 0 predictions for symbols: [] |
| 407 | 2026-01-09 13:21:55,932 - sdk - INFO - Returning 0 predictions after filtering by direction. |
| 408 | 2026-01-09 13:21:55,933 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-12-10 00:00:00+00:00 to 2025-12-11 00:00:00+00:00, direction='any' |
| 409 | 2026-01-09 13:21:55,933 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch. |
| 410 | 2026-01-09 13:21:55,933 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-12-10T00:00:00Z', 'endDate': |
| 411 | '2025-12-11T00:00:00Z', 'direction': 'any'} |
| 412 | 2026-01-09 13:21:56,321 - sdk - INFO - Received 0 predictions for symbols: [] |
| 413 | 2026-01-09 13:21:56,322 - sdk - INFO - Returning 0 predictions after filtering by direction. |
| 414 | 2026-01-09 13:21:56,323 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-12-11 00:00:00+00:00 to 2025-12-12 00:00:00+00:00, direction='any' |
| 415 | 2026-01-09 13:21:56,323 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch. |
| 416 | 2026-01-09 13:21:56,324 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-12-11T00:00:00Z', 'endDate': |
| 417 | '2025-12-12T00:00:00Z', 'direction': 'any'} |
| 418 | 2026-01-09 13:21:56,742 - sdk - INFO - Received 0 predictions for symbols: [] |
| 419 | 2026-01-09 13:21:56,743 - sdk - INFO - Returning 0 predictions after filtering by direction. |
| 420 | 2026-01-09 13:21:56,744 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-12-12 00:00:00+00:00 to 2025-12-13 00:00:00+00:00, direction='any' |
| 421 | 2026-01-09 13:21:56,744 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch. |
| 422 | 2026-01-09 13:21:56,745 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-12-12T00:00:00Z', 'endDate': |
| 423 | '2025-12-13T00:00:00Z', 'direction': 'any'} |
| 424 | 2026-01-09 13:21:57,142 - sdk - INFO - Received 0 predictions for symbols: [] |
| 425 | 2026-01-09 13:21:57,142 - sdk - INFO - Returning 0 predictions after filtering by direction. |
| 426 | 2026-01-09 13:21:57,143 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-12-13 00:00:00+00:00 to 2025-12-14 00:00:00+00:00, direction='any' |
| 427 | 2026-01-09 13:21:57,143 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch. |
| 428 | 2026-01-09 13:21:57,144 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-12-13T00:00:00Z', 'endDate': |
| 429 | '2025-12-14T00:00:00Z', 'direction': 'any'} |
| 430 | 2026-01-09 13:21:57,521 - sdk - INFO - Received 0 predictions for symbols: [] |
| 431 | 2026-01-09 13:21:57,521 - sdk - INFO - Returning 0 predictions after filtering by direction. |
| 432 | 2026-01-09 13:21:57,522 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-12-14 00:00:00+00:00 to 2025-12-15 00:00:00+00:00, direction='any' |
| 433 | 2026-01-09 13:21:57,522 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch. |
| 434 | 2026-01-09 13:21:57,523 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-12-14T00:00:00Z', 'endDate': |
| 435 | '2025-12-15T00:00:00Z', 'direction': 'any'} |
| 436 | 2026-01-09 13:21:57,902 - sdk - INFO - Received 0 predictions for symbols: [] |
| 437 | 2026-01-09 13:21:57,903 - sdk - INFO - Returning 0 predictions after filtering by direction. |
| 438 | 2026-01-09 13:21:57,904 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-12-15 00:00:00+00:00 to 2025-12-16 00:00:00+00:00, direction='any' |
| 439 | 2026-01-09 13:21:57,904 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch. |
| 440 | 2026-01-09 13:21:57,904 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-12-15T00:00:00Z', 'endDate': |
| 441 | '2025-12-16T00:00:00Z', 'direction': 'any'} |
| 442 | 2026-01-09 13:21:58,292 - sdk - INFO - Received 0 predictions for symbols: [] |
| 443 | 2026-01-09 13:21:58,292 - sdk - INFO - Returning 0 predictions after filtering by direction. |
| 444 | 2026-01-09 13:21:58,293 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-12-16 00:00:00+00:00 to 2025-12-17 00:00:00+00:00, direction='any' |
| 445 | 2026-01-09 13:21:58,294 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch. |
| 446 | 2026-01-09 13:21:58,294 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-12-16T00:00:00Z', 'endDate': |
| 447 | '2025-12-17T00:00:00Z', 'direction': 'any'} |
| 448 | 2026-01-09 13:21:58,681 - sdk - INFO - Received 0 predictions for symbols: [] |
| 449 | 2026-01-09 13:21:58,681 - sdk - INFO - Returning 0 predictions after filtering by direction. |
| 450 | 2026-01-09 13:21:58,682 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-12-17 00:00:00+00:00 to 2025-12-18 00:00:00+00:00, direction='any' |
| 451 | 2026-01-09 13:21:58,682 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch. |
| 452 | 2026-01-09 13:21:58,682 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-12-17T00:00:00Z', 'endDate': |
| 453 | '2025-12-18T00:00:00Z', 'direction': 'any'} |
| 454 | 2026-01-09 13:21:59,071 - sdk - INFO - Received 0 predictions for symbols: [] |
| 455 | 2026-01-09 13:21:59,071 - sdk - INFO - Returning 0 predictions after filtering by direction. |
| 456 | 2026-01-09 13:21:59,072 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-12-18 00:00:00+00:00 to 2025-12-19 00:00:00+00:00, direction='any' |
| 457 | 2026-01-09 13:21:59,073 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch. |
| 458 | 2026-01-09 13:21:59,073 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-12-18T00:00:00Z', 'endDate': |
| 459 | '2025-12-19T00:00:00Z', 'direction': 'any'} |
| 460 | 2026-01-09 13:21:59,461 - sdk - INFO - Received 0 predictions for symbols: [] |
| 461 | 2026-01-09 13:21:59,461 - sdk - INFO - Returning 0 predictions after filtering by direction. |
| 462 | 2026-01-09 13:21:59,462 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-12-19 00:00:00+00:00 to 2025-12-20 00:00:00+00:00, direction='any' |
| 463 | 2026-01-09 13:21:59,462 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch. |
| 464 | 2026-01-09 13:21:59,462 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-12-19T00:00:00Z', 'endDate': |
| 465 | '2025-12-20T00:00:00Z', 'direction': 'any'} |
| 466 | 2026-01-09 13:21:59,841 - sdk - INFO - Received 0 predictions for symbols: [] |
| 467 | 2026-01-09 13:21:59,841 - sdk - INFO - Returning 0 predictions after filtering by direction. |
| 468 | 2026-01-09 13:21:59,842 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-12-20 00:00:00+00:00 to 2025-12-21 00:00:00+00:00, direction='any' |
| 469 | 2026-01-09 13:21:59,843 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch. |
| 470 | 2026-01-09 13:21:59,843 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-12-20T00:00:00Z', 'endDate': |
| 471 | '2025-12-21T00:00:00Z', 'direction': 'any'} |
| 472 | 2026-01-09 13:22:00,221 - sdk - INFO - Received 0 predictions for symbols: [] |
| 473 | 2026-01-09 13:22:00,221 - sdk - INFO - Returning 0 predictions after filtering by direction. |
| 474 | 2026-01-09 13:22:00,222 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-12-21 00:00:00+00:00 to 2025-12-22 00:00:00+00:00, direction='any' |
| 475 | 2026-01-09 13:22:00,222 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch. |
| 476 | 2026-01-09 13:22:00,222 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-12-21T00:00:00Z', 'endDate': |
| 477 | '2025-12-22T00:00:00Z', 'direction': 'any'} |
| 478 | 2026-01-09 13:22:00,601 - sdk - INFO - Received 0 predictions for symbols: [] |
| 479 | 2026-01-09 13:22:00,601 - sdk - INFO - Returning 0 predictions after filtering by direction. |
| 480 | 2026-01-09 13:22:00,602 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-12-22 00:00:00+00:00 to 2025-12-23 00:00:00+00:00, direction='any' |
| 481 | 2026-01-09 13:22:00,602 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch. |
| 482 | 2026-01-09 13:22:00,603 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-12-22T00:00:00Z', 'endDate': |
| 483 | '2025-12-23T00:00:00Z', 'direction': 'any'} |
| 484 | 2026-01-09 13:22:00,981 - sdk - INFO - Received 3 predictions for symbols: ['ETH/USDT', 'BTC/USDT', 'BTC/USDT'] |
| 485 | 2026-01-09 13:22:00,981 - sdk - INFO - Returning 3 predictions after filtering by direction. |
| 486 | 2026-01-09 13:22:00,982 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-12-23 00:00:00+00:00 to 2025-12-24 00:00:00+00:00, direction='any' |
| 487 | 2026-01-09 13:22:00,982 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch. |
| 488 | 2026-01-09 13:22:00,983 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-12-23T00:00:00Z', 'endDate': |
| 489 | '2025-12-24T00:00:00Z', 'direction': 'any'} |
| 490 | 2026-01-09 13:22:01,372 - sdk - INFO - Received 0 predictions for symbols: [] |
| 491 | 2026-01-09 13:22:01,372 - sdk - INFO - Returning 0 predictions after filtering by direction. |
| 492 | 2026-01-09 13:22:01,373 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-12-24 00:00:00+00:00 to 2025-12-25 00:00:00+00:00, direction='any' |
| 493 | 2026-01-09 13:22:01,374 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch. |
| 494 | 2026-01-09 13:22:01,374 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-12-24T00:00:00Z', 'endDate': |
| 495 | '2025-12-25T00:00:00Z', 'direction': 'any'} |
| 496 | 2026-01-09 13:22:01,751 - sdk - INFO - Received 1 predictions for symbols: ['ETH/USDT'] |
| 497 | 2026-01-09 13:22:01,751 - sdk - INFO - Returning 1 predictions after filtering by direction. |
| 498 | 2026-01-09 13:22:01,752 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-12-25 00:00:00+00:00 to 2025-12-26 00:00:00+00:00, direction='any' |
| 499 | 2026-01-09 13:22:01,752 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch. |
| 500 | 2026-01-09 13:22:01,753 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-12-25T00:00:00Z', 'endDate': |
| 501 | '2025-12-26T00:00:00Z', 'direction': 'any'} |
| 502 | 2026-01-09 13:22:02,311 - sdk - INFO - Received 0 predictions for symbols: [] |
| 503 | 2026-01-09 13:22:02,311 - sdk - INFO - Returning 0 predictions after filtering by direction. |
| 504 | 2026-01-09 13:22:02,312 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-12-26 00:00:00+00:00 to 2025-12-27 00:00:00+00:00, direction='any' |
| 505 | 2026-01-09 13:22:02,313 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch. |
| 506 | 2026-01-09 13:22:02,313 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-12-26T00:00:00Z', 'endDate': |
| 507 | '2025-12-27T00:00:00Z', 'direction': 'any'} |
| 508 | 2026-01-09 13:22:02,701 - sdk - INFO - Received 0 predictions for symbols: [] |
| 509 | 2026-01-09 13:22:02,701 - sdk - INFO - Returning 0 predictions after filtering by direction. |
| 510 | 2026-01-09 13:22:02,702 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-12-27 00:00:00+00:00 to 2025-12-28 00:00:00+00:00, direction='any' |
| 511 | 2026-01-09 13:22:02,702 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch. |
| 512 | 2026-01-09 13:22:02,703 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-12-27T00:00:00Z', 'endDate': |
| 513 | '2025-12-28T00:00:00Z', 'direction': 'any'} |
| 514 | 2026-01-09 13:22:03,091 - sdk - INFO - Received 0 predictions for symbols: [] |
| 515 | 2026-01-09 13:22:03,092 - sdk - INFO - Returning 0 predictions after filtering by direction. |
| 516 | 2026-01-09 13:22:03,093 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-12-28 00:00:00+00:00 to 2025-12-29 00:00:00+00:00, direction='any' |
| 517 | 2026-01-09 13:22:03,093 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch. |
| 518 | 2026-01-09 13:22:03,093 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-12-28T00:00:00Z', 'endDate': |
| 519 | '2025-12-29T00:00:00Z', 'direction': 'any'} |
| 520 | 2026-01-09 13:22:03,511 - sdk - INFO - Received 0 predictions for symbols: [] |
| 521 | 2026-01-09 13:22:03,511 - sdk - INFO - Returning 0 predictions after filtering by direction. |
| 522 | 2026-01-09 13:22:03,512 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-12-29 00:00:00+00:00 to 2025-12-30 00:00:00+00:00, direction='any' |
| 523 | 2026-01-09 13:22:03,512 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch. |
| 524 | 2026-01-09 13:22:03,513 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-12-29T00:00:00Z', 'endDate': |
| 525 | '2025-12-30T00:00:00Z', 'direction': 'any'} |
| 526 | 2026-01-09 13:22:03,891 - sdk - INFO - Received 0 predictions for symbols: [] |
| 527 | 2026-01-09 13:22:03,891 - sdk - INFO - Returning 0 predictions after filtering by direction. |
| 528 | 2026-01-09 13:22:03,892 - sdk - INFO - Fetching predictions for issuer='agent_phoenix', range=2025-12-30 00:00:00+00:00 to 2025-12-31 00:00:00+00:00, direction='any' |
| 529 | 2026-01-09 13:22:03,892 - sdk - INFO - TIMERANGE env var not set. Using direct API fetch. |
| 530 | 2026-01-09 13:22:03,893 - sdk - INFO - Sending request to https://sanr-proxy.uxna.me/predictions with params: {'issuerUsername': 'agent_phoenix', 'startDate': '2025-12-30T00:00:00Z', 'endDate': |
| 531 | '2025-12-31T00:00:00Z', 'direction': 'any'} |
| 532 | 2026-01-09 13:22:04,271 - sdk - INFO - Received 0 predictions for symbols: [] |
| 533 | 2026-01-09 13:22:04,271 - sdk - INFO - Returning 0 predictions after filtering by direction. |
| 534 | 2026-01-09 13:22:04,415 - freqtrade.misc - INFO - dumping json to \"/freqtrade/user_data/backtest_results/backtest-result-2026-01-09_13-22-04.meta.json\" |
| 535 | " |
| 536 | |
| 537 | ❯ src/mastra/super/skills/backtest-runner/skill.spec.ts:209:28 |
| 538 | 207| |
| 539 | 208| // 1. Проверки общей сводки стратегии |
| 540 | 209| expect(output.logTail).toMatch(/TOTAL\s+1\s+-1.82\s+-1.611\s+-0.16\s+7 days, 0:00:00\s+0\s+0\s+1\s+0/); |
| 541 | | ^ |
| 542 | 210| expect(output.logTail).toContain('Total/Daily Avg Trades │ 1 / 0.05'); |
| 543 | 211| expect(output.logTail).toContain('Total profit % │ -0.16%'); |
| 544 |