❯ vitest run src/mastra/super/skills/backtest-runner/skill.spec.ts:119 RUN v4.0.16 /home/dex/Документы/Work/santiment-ai/strategy-agent stdout | src/mastra/super/skills/backtest-runner/skill.spec.ts:296:3 > Backtest Runner: Copytrading Strategy Test (Real Docker) > should successfully prepare env, fetch data, and run freqtrade via docker [Isolation] Environment prepared for run f08195dc-6440-4e72-a906-75e5894b36bf stdout | src/mastra/super/skills/backtest-runner/skill.spec.ts:296:3 > 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:296:3 > 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:296:3 > 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:296:3 > 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:296:3 > 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:296:3 > 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/f08195dc-6440-4e72-a906-75e5894b36bf:/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:296:3 > Backtest Runner: Copytrading Strategy Test (Real Docker) > should successfully prepare env, fetch data, and run freqtrade via docker { success: true, runId: 'f08195dc-6440-4e72-a906-75e5894b36bf', 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:04:17,356 - freqtrade - INFO - freqtrade 2025.12\n' + '2026-01-09 13:04:17,801 - numexpr.utils - INFO - NumExpr defaulting to 8 threads.\n' + '2026-01-09 13:04:19,631 - freqtrade.configuration.load_config - INFO - Using config: /freqtrade/user_data/config.json ...\n' + '2026-01-09 13:04:19,634 - freqtrade.loggers - INFO - Enabling colorized output.\n' + '2026-01-09 13:04:19,635 - freqtrade.loggers - INFO - Logfile configured\n' + '2026-01-09 13:04:19,635 - freqtrade.loggers - INFO - Verbosity set to 0\n' + '2026-01-09 13:04:19,636 - freqtrade.configuration.configuration - INFO - Using max_open_trades: None ...\n' + '2026-01-09 13:04:19,636 - freqtrade.configuration.configuration - INFO - Parameter --timerange detected: 20251201-20251230 ...\n' + '2026-01-09 13:04:19,651 - freqtrade.configuration.configuration - INFO - Using user-data directory: /freqtrade/user_data ...\n' + '2026-01-09 13:04:19,651 - freqtrade.configuration.configuration - INFO - Using data directory: /freqtrade/user_data/data/binance ...\n' + '2026-01-09 13:04:19,652 - freqtrade.configuration.configuration - INFO - Parameter --export detected: trades ...\n' + '2026-01-09 13:04:19,652 - freqtrade.configuration.configuration - INFO - Parameter --cache=day detected ...\n' + '2026-01-09 13:04:19,653 - freqtrade.configuration.configuration - INFO - Using "json" to store OHLCV data.\n' + '2026-01-09 13:04:19,653 - freqtrade.configuration.configuration - INFO - Filter trades by timerange: 20251201-20251230\n' + '2026-01-09 13:04:19,654 - freqtrade.exchange.check_exchange - INFO - Checking exchange...\n' + '2026-01-09 13:04:19,670 - freqtrade.exchange.check_exchange - INFO - Exchange "binance" is officially supported by the Freqtrade developm'... 27101 more characters } [Test Success] Run ID: f08195dc-6440-4e72-a906-75e5894b36bf stdout | src/mastra/super/skills/backtest-runner/skill.spec.ts:119:1 > Backtest Runner: Copytrading Strategy Test (Real Docker) [Test Info] Artifacts preserved for threadId: copytrading-test-1767963852908 ✓ src/mastra/super/skills/backtest-runner/skill.spec.ts (2 tests | 1 skipped) 23326ms ↓ Backtest Runner: Full Integration Test (Real Docker) (1) ↓ should successfully prepare env, fetch data, and run freqtrade via docker ✓ Backtest Runner: Copytrading Strategy Test (Real Docker) (1) ✓ should successfully prepare env, fetch data, and run freqtrade via docker 23325ms Test Files 1 passed (1) Tests 1 passed | 1 skipped (2) Start at 16:04:12 Duration 23.83s (transform 101ms, setup 298ms, import 100ms, tests 23.33s, environment 0ms) ~/Документы/Work/santiment-ai/strategy-agent master* 24s ❯