1.log
· 22 KiB · Text
原始檔案
❯ vitest run src/mastra/super/skills/backtest-runner/skill.spec.ts:119
RUN v4.0.16 /home/dex/Документы/Work/santiment-ai/strategy-agent
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Failed Suites 1 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
FAIL src/mastra/super/skills/backtest-runner/skill.spec.ts [ src/mastra/super/skills/backtest-runner/skill.spec.ts ]
Error: No test found in src/mastra/super/skills/backtest-runner/skill.spec.ts in line 119
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯
Test Files 1 failed | 1 skipped (1)
Tests 2 skipped (2)
Start at 14:55:20
Duration 624ms (transform 148ms, setup 353ms, import 158ms, tests 0ms, environment 0ms)
~/Документы/Work/santiment-ai/strategy-agent master*
❯ vitest run src/mastra/super/skills/backtest-runner/skill.spec.ts:119
~/Документы/Work/santiment-ai/strategy-agent master*
❯ 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:304:3 > Backtest Runner: Copytrading Strategy Test (Real Docker) > should successfully prepare env, fetch data, and run freqtrade via docker
[Isolation] Environment prepared for run 861f6d55-71d7-4fb7-bec3-1852f3f713ed
stdout | src/mastra/super/skills/backtest-runner/skill.spec.ts:304: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:304: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:304: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:304: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:304: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:304: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/861f6d55-71d7-4fb7-bec3-1852f3f713ed:/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:304:3 > Backtest Runner: Copytrading Strategy Test (Real Docker) > should successfully prepare env, fetch data, and run freqtrade via docker
!!!!!!!!!!! {
success: true,
runId: '861f6d55-71d7-4fb7-bec3-1852f3f713ed',
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 │ 0 │ 0.0 │ 0.000 │ 0.0 │ 0:00 │ 0 0 0 0 │\n' +
'│ TOTAL │ 0 │ 0.0 │ 0.000 │ 0.0 │ 0:00 │ 0 0 0 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' +
'│ TOTAL │ 0 │ 0.0 │ 0.000 │ 0.0 │ 0:00 │ 0 0 0 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' +
'│ TOTAL │ 0 │ 0.0 │ 0.000 │ 0.0 │ 0:00 │ 0 0 0 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' +
'│ TOTAL │ 0 │ 0.0 │ 0.000 │ 0.0 │ 0:00 │ 0 0 0 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' +
'│ TOTAL │ │ 0 │ 0.0 │ 0.000 │ 0.0 │ 0:00 │ 0 0 0 0 │\n' +
'└───────────┴─────────────┴────────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┘\n' +
'No trades made. Your starting balance was 1000 USDT, and your stake was 100 USDT.\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 │ 0 │ 0.00 │ 0.000 │ 0.0 │ 0:00 │ 0 0 0 0 │ 0 USDT 0.00% │\n' +
'└──────────┴────────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┴───────────────┘\n' +
'2026-01-09 11:56:06,275 - freqtrade - INFO - freqtrade 2025.12\n' +
'2026-01-09 11:56:06,680 - numexpr.utils - INFO - NumExpr defaulting to 8 threads.\n' +
'2026-01-09 11:56:08,183 - freqtrade.configuration.load_config - INFO - Using config: /freqtrade/user_data/config.json ...\n' +
'2026-01-09 11:56:08,186 - freqtrade.loggers - INFO - Enabling colorized output.\n' +
'2026-01-09 11:56:08,187 - freqtrade.loggers - INFO - Logfile configured\n' +
'2026-01-09 11:56:08,187 - freqtrade.loggers - INFO - Verbosity set to 0\n' +
'2026-01-09 11:56:08,188 - freqtrade.configuration.configuration - INFO - Using max_open_trades: None ...\n' +
'2026-01-09 11:56:08,188 - freqtrade.configuration.configuration - INFO - Parameter --timerange detected: 20251201-20251230 ...\n' +
'2026-01-09 11:56:08,202 - freqtrade.configuration.configuration - INFO - Using user-data directory: /freqtrade/user_data ...\n' +
'2026-01-09 11:56:08,202 - freqtrade.configuration.configuration - INFO - Using data directory: /freqtrade/user_data/data/binance ...\n' +
'2026-01-09 11:56:08,203 - freqtrade.configuration.configuration - INFO - Parameter --export detected: trades ...\n' +
'2026-01-09 11:56:08,204 - freqtrade.configuration.configuration - INFO - Parameter --cache=day detected ...\n' +
'2026-01-09 11:56:08,204 - freqtrade.configuration.configuration - INFO - Using "json" to store OHLCV data.\n' +
'2026-01-09 11:56:08,204 - freqtrade.configuration.configuration - INFO - Filter trades by timerange: 20251201-20251230\n' +
'2026-01-09 11:56:08,206 - freqtrade.exchange.check_exchange - INFO - Checking exchange...\n' +
'2026-01-09 11:56:08,217 - freqtrade.exchange.check_exchange - INFO - Exchange "binance" is officially supported by the Freqtrade development team.\n' +
'2026-01-09 11:56:08,218 - freqtrade.configuration.configuration - INFO - Using pairlist from configuration.\n' +
'2026-01-09 11:56:08,218 - freqtrade.configuration.config_validation - INFO - Validating configuration ...\n' +
'2026-01-09 11:56:08,220 - freqtrade.commands.optimize_commands - INFO - Starting freqtrade in Backtesting mode\n' +
'2026-01-09 11:56:08,220 - freqtrade.exchange.exchange - INFO - Instance is running with dry_run enabled\n' +
'2026-01-09 11:56:08,221 - freqtrade.exchange.exchange - INFO - Using CCXT 4.5.29\n' +
"2026-01-09 11:56:08,221 - freqtrade.exchange.exchange - INFO - Applying additional ccxt config: {'options': {'defaultType': 'swap'}}\n" +
"2026-01-09 11:56:08,230 - freqtrade.exchange.exchange - INFO - Applying additional ccxt config: {'options': {'defaultType': 'swap'}}\n" +
'2026-01-09 11:56:08,245 - freqtrade.exchange.exchange - INFO - Using Exchange "Binance"\n' +
"2026-01-09 11:56:10,655 - freqtrade.resolvers.exchange_resolver - INFO - Using resolved exchange 'Binance'...\n" +
"2026-01-09 11:56:10,687 - freqtrade.resolvers.iresolver - INFO - Using resolved strategy Strategy from '/freqtrade/user_data/strategies/strategy.py'...\n" +
'2026-01-09 11:56:10,688 - freqtrade.strategy.hyper - INFO - Found no parameter file.\n' +
"2026-01-09 11:56:10,688 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'timeframe' with value from the configuration: 1d.\n" +
"2026-01-09 11:56:10,689 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'stake_currency' with value from the configuration: USDT.\n" +
"2026-01-09 11:56:10,689 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'stake_amount' with value from the configuration: 100.\n" +
"2026-01-09 11:56:10,689 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using minimal_roi: {'0': 0.03}\n" +
'2026-01-09 11:56:10,689 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using timeframe: 1d\n' +
'2026-01-09 11:56:10,689 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using stoploss: -0.05\n' +
'2026-01-09 11:56:10,690 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_stop: False\n' +
'2026-01-09 11:56:10,690 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_stop_positive_offset: 0.0\n' +
'2026-01-09 11:56:10,690 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_only_offset_is_reached: False\n' +
'2026-01-09 11:56:10,690 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using use_custom_stoploss: False\n' +
'2026-01-09 11:56:10,691 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using process_only_new_candles: True\n' +
"2026-01-09 11:56:10,691 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using order_types: {'entry': 'limit', 'exit': 'limit', 'stoploss': 'limit', 'stoploss_on_exchange': False, \n" +
"'stoploss_on_exchange_interval': 60}\n" +
"2026-01-09 11:56:10,691 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using order_time_in_force: {'entry': 'GTC', 'exit': 'GTC'}\n" +
'2026-01-09 11:56:10,691 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using stake_currency: USDT\n' +
'2026-01-09 11:56:10,691 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using stake_amount: 100\n' +
'2026-01-09 11:56:10,692 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using startup_candle_count: 10\n' +
'2026-01-09 11:56:10,692 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using use_exit_signal: True\n' +
'2026-01-09 11:56:10,692 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using exit_profit_only: False\n' +
'2026-01-09 11:56:10,692 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using ignore_roi_if_entry_signal: False\n' +
'2026-01-09 11:56:10,693 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using exit_profit_offset: 0.0\n' +
'2026-01-09 11:56:10,693 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using disable_dataframe_checks: False\n' +
'2026-01-09 11:56:1'... 23187 more characters
}
[Test Success] Run ID: 861f6d55-71d7-4fb7-bec3-1852f3f713ed
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-1767959762677
✓ src/mastra/super/skills/backtest-runner/skill.spec.ts (2 tests | 1 skipped) 18216ms
↓ 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 18215ms
Test Files 1 passed (1)
Tests 1 passed | 1 skipped (2)
Start at 14:56:02
Duration 18.73s (transform 102ms, setup 291ms, import 96ms, tests 18.22s, environment 0ms)
~/Документы/Work/santiment-ai/strategy-agent master* 19s
❯
| 1 | ❯ vitest run src/mastra/super/skills/backtest-runner/skill.spec.ts:119 |
| 2 | |
| 3 | RUN v4.0.16 /home/dex/Документы/Work/santiment-ai/strategy-agent |
| 4 | |
| 5 | |
| 6 | ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Failed Suites 1 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ |
| 7 | |
| 8 | FAIL src/mastra/super/skills/backtest-runner/skill.spec.ts [ src/mastra/super/skills/backtest-runner/skill.spec.ts ] |
| 9 | Error: No test found in src/mastra/super/skills/backtest-runner/skill.spec.ts in line 119 |
| 10 | ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯ |
| 11 | |
| 12 | |
| 13 | Test Files 1 failed | 1 skipped (1) |
| 14 | Tests 2 skipped (2) |
| 15 | Start at 14:55:20 |
| 16 | Duration 624ms (transform 148ms, setup 353ms, import 158ms, tests 0ms, environment 0ms) |
| 17 | |
| 18 | |
| 19 | ~/Документы/Work/santiment-ai/strategy-agent master* |
| 20 | ❯ vitest run src/mastra/super/skills/backtest-runner/skill.spec.ts:119 |
| 21 | ~/Документы/Work/santiment-ai/strategy-agent master* |
| 22 | ❯ vitest run src/mastra/super/skills/backtest-runner/skill.spec.ts:119 |
| 23 | |
| 24 | RUN v4.0.16 /home/dex/Документы/Work/santiment-ai/strategy-agent |
| 25 | |
| 26 | stdout | src/mastra/super/skills/backtest-runner/skill.spec.ts:304:3 > Backtest Runner: Copytrading Strategy Test (Real Docker) > should successfully prepare env, fetch data, and run freqtrade via docker |
| 27 | [Isolation] Environment prepared for run 861f6d55-71d7-4fb7-bec3-1852f3f713ed |
| 28 | |
| 29 | stdout | src/mastra/super/skills/backtest-runner/skill.spec.ts:304:3 > Backtest Runner: Copytrading Strategy Test (Real Docker) > should successfully prepare env, fetch data, and run freqtrade via docker |
| 30 | [RunBacktest] Enforcing config overrides: { |
| 31 | trading_mode: 'futures', |
| 32 | margin_mode: 'isolated', |
| 33 | dataformat_ohlcv: 'json', |
| 34 | dataformat_trades: 'json' |
| 35 | } |
| 36 | |
| 37 | stdout | src/mastra/super/skills/backtest-runner/skill.spec.ts:304:3 > Backtest Runner: Copytrading Strategy Test (Real Docker) > should successfully prepare env, fetch data, and run freqtrade via docker |
| 38 | [DataFetcher] Downloading 1 pairs... |
| 39 | |
| 40 | stdout | src/mastra/super/skills/backtest-runner/skill.spec.ts:304:3 > Backtest Runner: Copytrading Strategy Test (Real Docker) > should successfully prepare env, fetch data, and run freqtrade via docker |
| 41 | [DataFetcher] Completed. Processed: 1 |
| 42 | |
| 43 | stdout | src/mastra/super/skills/backtest-runner/skill.spec.ts:304:3 > Backtest Runner: Copytrading Strategy Test (Real Docker) > should successfully prepare env, fetch data, and run freqtrade via docker |
| 44 | Checking/Rebuilding Docker image "mastra-freqtrade:latest"... |
| 45 | Docker command: cd /home/dex/Документы/Work/santiment-ai/strategy-agent/docker/freqtrade && docker build -t mastra-freqtrade:latest . |
| 46 | |
| 47 | stdout | src/mastra/super/skills/backtest-runner/skill.spec.ts:304:3 > Backtest Runner: Copytrading Strategy Test (Real Docker) > should successfully prepare env, fetch data, and run freqtrade via docker |
| 48 | Sending build context to Docker daemon 221.2kB |
| 49 | Step 1/7 : FROM freqtradeorg/freqtrade:stable |
| 50 | ---> dfd23153a7f2 |
| 51 | Step 2/7 : COPY requirements.txt /freqtrade/ |
| 52 | ---> Using cache |
| 53 | ---> 2d950a4622c1 |
| 54 | Step 3/7 : RUN pip install --no-cache-dir -r /freqtrade/requirements.txt |
| 55 | ---> Using cache |
| 56 | ---> 298f67123821 |
| 57 | Step 4/7 : COPY add_pair.py /freqtrade/add_pair.py |
| 58 | ---> Using cache |
| 59 | ---> e3274112fd45 |
| 60 | Step 5/7 : COPY pairs.json /freqtrade/pairs.json |
| 61 | ---> Using cache |
| 62 | ---> d4fc1270df5a |
| 63 | Step 6/7 : COPY exchange.py /freqtrade/freqtrade/exchange/exchange.py |
| 64 | ---> Using cache |
| 65 | ---> 04e7579357c7 |
| 66 | Step 7/7 : RUN python /freqtrade/add_pair.py |
| 67 | ---> Using cache |
| 68 | ---> 2d26f279b9b1 |
| 69 | Successfully built 2d26f279b9b1 |
| 70 | Successfully tagged mastra-freqtrade:latest |
| 71 | |
| 72 | Docker image "mastra-freqtrade:latest" is ready ✅ |
| 73 | |
| 74 | stdout | src/mastra/super/skills/backtest-runner/skill.spec.ts:304:3 > Backtest Runner: Copytrading Strategy Test (Real Docker) > should successfully prepare env, fetch data, and run freqtrade via docker |
| 75 | [DOCKER CMD] docker run --rm --memory 1g -v "/home/dex/Документы/Work/santiment-ai/strategy-agent/data/freqtrade_runs/861f6d55-71d7-4fb7-bec3-1852f3f713ed:/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 |
| 76 | |
| 77 | stdout | src/mastra/super/skills/backtest-runner/skill.spec.ts:304:3 > Backtest Runner: Copytrading Strategy Test (Real Docker) > should successfully prepare env, fetch data, and run freqtrade via docker |
| 78 | !!!!!!!!!!! { |
| 79 | success: true, |
| 80 | runId: '861f6d55-71d7-4fb7-bec3-1852f3f713ed', |
| 81 | logTail: 'Result for strategy Strategy\n' + |
| 82 | ' BACKTESTING REPORT \n' + |
| 83 | '┏━━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓\n' + |
| 84 | '┃ Pair ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃\n' + |
| 85 | '┡━━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩\n' + |
| 86 | '│ BTC/USDT:USDT │ 0 │ 0.0 │ 0.000 │ 0.0 │ 0:00 │ 0 0 0 0 │\n' + |
| 87 | '│ TOTAL │ 0 │ 0.0 │ 0.000 │ 0.0 │ 0:00 │ 0 0 0 0 │\n' + |
| 88 | '└───────────────┴────────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┘\n' + |
| 89 | ' LEFT OPEN TRADES REPORT \n' + |
| 90 | '┏━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓\n' + |
| 91 | '┃ Pair ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃\n' + |
| 92 | '┡━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩\n' + |
| 93 | '│ TOTAL │ 0 │ 0.0 │ 0.000 │ 0.0 │ 0:00 │ 0 0 0 0 │\n' + |
| 94 | '└───────┴────────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┘\n' + |
| 95 | ' ENTER TAG STATS \n' + |
| 96 | '┏━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓\n' + |
| 97 | '┃ Enter Tag ┃ Entries ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃\n' + |
| 98 | '┡━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩\n' + |
| 99 | '│ TOTAL │ 0 │ 0.0 │ 0.000 │ 0.0 │ 0:00 │ 0 0 0 0 │\n' + |
| 100 | '└───────────┴─────────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┘\n' + |
| 101 | ' EXIT REASON STATS \n' + |
| 102 | '┏━━━━━━━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓\n' + |
| 103 | '┃ Exit Reason ┃ Exits ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃\n' + |
| 104 | '┡━━━━━━━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩\n' + |
| 105 | '│ TOTAL │ 0 │ 0.0 │ 0.000 │ 0.0 │ 0:00 │ 0 0 0 0 │\n' + |
| 106 | '└─────────────┴───────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┘\n' + |
| 107 | ' MIXED TAG STATS \n' + |
| 108 | '┏━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓\n' + |
| 109 | '┃ Enter Tag ┃ Exit Reason ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃\n' + |
| 110 | '┡━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩\n' + |
| 111 | '│ TOTAL │ │ 0 │ 0.0 │ 0.000 │ 0.0 │ 0:00 │ 0 0 0 0 │\n' + |
| 112 | '└───────────┴─────────────┴────────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┘\n' + |
| 113 | 'No trades made. Your starting balance was 1000 USDT, and your stake was 100 USDT.\n' + |
| 114 | '\n' + |
| 115 | 'Backtested 2025-12-09 00:00:00 -> 2025-12-30 00:00:00 | Max open trades : 1\n' + |
| 116 | ' STRATEGY SUMMARY \n' + |
| 117 | '┏━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n' + |
| 118 | '┃ Strategy ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃ Drawdown ┃\n' + |
| 119 | '┡━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n' + |
| 120 | '│ Strategy │ 0 │ 0.00 │ 0.000 │ 0.0 │ 0:00 │ 0 0 0 0 │ 0 USDT 0.00% │\n' + |
| 121 | '└──────────┴────────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┴───────────────┘\n' + |
| 122 | '2026-01-09 11:56:06,275 - freqtrade - INFO - freqtrade 2025.12\n' + |
| 123 | '2026-01-09 11:56:06,680 - numexpr.utils - INFO - NumExpr defaulting to 8 threads.\n' + |
| 124 | '2026-01-09 11:56:08,183 - freqtrade.configuration.load_config - INFO - Using config: /freqtrade/user_data/config.json ...\n' + |
| 125 | '2026-01-09 11:56:08,186 - freqtrade.loggers - INFO - Enabling colorized output.\n' + |
| 126 | '2026-01-09 11:56:08,187 - freqtrade.loggers - INFO - Logfile configured\n' + |
| 127 | '2026-01-09 11:56:08,187 - freqtrade.loggers - INFO - Verbosity set to 0\n' + |
| 128 | '2026-01-09 11:56:08,188 - freqtrade.configuration.configuration - INFO - Using max_open_trades: None ...\n' + |
| 129 | '2026-01-09 11:56:08,188 - freqtrade.configuration.configuration - INFO - Parameter --timerange detected: 20251201-20251230 ...\n' + |
| 130 | '2026-01-09 11:56:08,202 - freqtrade.configuration.configuration - INFO - Using user-data directory: /freqtrade/user_data ...\n' + |
| 131 | '2026-01-09 11:56:08,202 - freqtrade.configuration.configuration - INFO - Using data directory: /freqtrade/user_data/data/binance ...\n' + |
| 132 | '2026-01-09 11:56:08,203 - freqtrade.configuration.configuration - INFO - Parameter --export detected: trades ...\n' + |
| 133 | '2026-01-09 11:56:08,204 - freqtrade.configuration.configuration - INFO - Parameter --cache=day detected ...\n' + |
| 134 | '2026-01-09 11:56:08,204 - freqtrade.configuration.configuration - INFO - Using "json" to store OHLCV data.\n' + |
| 135 | '2026-01-09 11:56:08,204 - freqtrade.configuration.configuration - INFO - Filter trades by timerange: 20251201-20251230\n' + |
| 136 | '2026-01-09 11:56:08,206 - freqtrade.exchange.check_exchange - INFO - Checking exchange...\n' + |
| 137 | '2026-01-09 11:56:08,217 - freqtrade.exchange.check_exchange - INFO - Exchange "binance" is officially supported by the Freqtrade development team.\n' + |
| 138 | '2026-01-09 11:56:08,218 - freqtrade.configuration.configuration - INFO - Using pairlist from configuration.\n' + |
| 139 | '2026-01-09 11:56:08,218 - freqtrade.configuration.config_validation - INFO - Validating configuration ...\n' + |
| 140 | '2026-01-09 11:56:08,220 - freqtrade.commands.optimize_commands - INFO - Starting freqtrade in Backtesting mode\n' + |
| 141 | '2026-01-09 11:56:08,220 - freqtrade.exchange.exchange - INFO - Instance is running with dry_run enabled\n' + |
| 142 | '2026-01-09 11:56:08,221 - freqtrade.exchange.exchange - INFO - Using CCXT 4.5.29\n' + |
| 143 | "2026-01-09 11:56:08,221 - freqtrade.exchange.exchange - INFO - Applying additional ccxt config: {'options': {'defaultType': 'swap'}}\n" + |
| 144 | "2026-01-09 11:56:08,230 - freqtrade.exchange.exchange - INFO - Applying additional ccxt config: {'options': {'defaultType': 'swap'}}\n" + |
| 145 | '2026-01-09 11:56:08,245 - freqtrade.exchange.exchange - INFO - Using Exchange "Binance"\n' + |
| 146 | "2026-01-09 11:56:10,655 - freqtrade.resolvers.exchange_resolver - INFO - Using resolved exchange 'Binance'...\n" + |
| 147 | "2026-01-09 11:56:10,687 - freqtrade.resolvers.iresolver - INFO - Using resolved strategy Strategy from '/freqtrade/user_data/strategies/strategy.py'...\n" + |
| 148 | '2026-01-09 11:56:10,688 - freqtrade.strategy.hyper - INFO - Found no parameter file.\n' + |
| 149 | "2026-01-09 11:56:10,688 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'timeframe' with value from the configuration: 1d.\n" + |
| 150 | "2026-01-09 11:56:10,689 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'stake_currency' with value from the configuration: USDT.\n" + |
| 151 | "2026-01-09 11:56:10,689 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'stake_amount' with value from the configuration: 100.\n" + |
| 152 | "2026-01-09 11:56:10,689 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using minimal_roi: {'0': 0.03}\n" + |
| 153 | '2026-01-09 11:56:10,689 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using timeframe: 1d\n' + |
| 154 | '2026-01-09 11:56:10,689 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using stoploss: -0.05\n' + |
| 155 | '2026-01-09 11:56:10,690 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_stop: False\n' + |
| 156 | '2026-01-09 11:56:10,690 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_stop_positive_offset: 0.0\n' + |
| 157 | '2026-01-09 11:56:10,690 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_only_offset_is_reached: False\n' + |
| 158 | '2026-01-09 11:56:10,690 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using use_custom_stoploss: False\n' + |
| 159 | '2026-01-09 11:56:10,691 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using process_only_new_candles: True\n' + |
| 160 | "2026-01-09 11:56:10,691 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using order_types: {'entry': 'limit', 'exit': 'limit', 'stoploss': 'limit', 'stoploss_on_exchange': False, \n" + |
| 161 | "'stoploss_on_exchange_interval': 60}\n" + |
| 162 | "2026-01-09 11:56:10,691 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using order_time_in_force: {'entry': 'GTC', 'exit': 'GTC'}\n" + |
| 163 | '2026-01-09 11:56:10,691 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using stake_currency: USDT\n' + |
| 164 | '2026-01-09 11:56:10,691 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using stake_amount: 100\n' + |
| 165 | '2026-01-09 11:56:10,692 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using startup_candle_count: 10\n' + |
| 166 | '2026-01-09 11:56:10,692 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using use_exit_signal: True\n' + |
| 167 | '2026-01-09 11:56:10,692 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using exit_profit_only: False\n' + |
| 168 | '2026-01-09 11:56:10,692 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using ignore_roi_if_entry_signal: False\n' + |
| 169 | '2026-01-09 11:56:10,693 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using exit_profit_offset: 0.0\n' + |
| 170 | '2026-01-09 11:56:10,693 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using disable_dataframe_checks: False\n' + |
| 171 | '2026-01-09 11:56:1'... 23187 more characters |
| 172 | } |
| 173 | [Test Success] Run ID: 861f6d55-71d7-4fb7-bec3-1852f3f713ed |
| 174 | |
| 175 | stdout | src/mastra/super/skills/backtest-runner/skill.spec.ts:119:1 > Backtest Runner: Copytrading Strategy Test (Real Docker) |
| 176 | [Test Info] Artifacts preserved for threadId: copytrading-test-1767959762677 |
| 177 | |
| 178 | ✓ src/mastra/super/skills/backtest-runner/skill.spec.ts (2 tests | 1 skipped) 18216ms |
| 179 | ↓ Backtest Runner: Full Integration Test (Real Docker) (1) |
| 180 | ↓ should successfully prepare env, fetch data, and run freqtrade via docker |
| 181 | ✓ Backtest Runner: Copytrading Strategy Test (Real Docker) (1) |
| 182 | ✓ should successfully prepare env, fetch data, and run freqtrade via docker 18215ms |
| 183 | |
| 184 | Test Files 1 passed (1) |
| 185 | Tests 1 passed | 1 skipped (2) |
| 186 | Start at 14:56:02 |
| 187 | Duration 18.73s (transform 102ms, setup 291ms, import 96ms, tests 18.22s, environment 0ms) |
| 188 | |
| 189 | |
| 190 | ~/Документы/Work/santiment-ai/strategy-agent master* 19s |
| 191 | ❯ |