Última actividad 2 days ago

uxname's Avatar uxname revisó este gist 2 days ago. Ir a la revisión

3 files changed, 489 insertions, 497 deletions

1.log

@@ -1,32 +1,11 @@
1 - ❯ vitest run src/mastra/super/skills/backtest-runner/skill.spec.ts:119
1 + ❯ vitest run src/mastra/super/skills/backtest-runner/skill.spec.ts
2 2
3 3 RUN v4.0.16 /home/dex/Документы/Work/santiment-ai/strategy-agent
4 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
5 7
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
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
30 9 [RunBacktest] Enforcing config overrides: {
31 10 trading_mode: 'futures',
32 11 margin_mode: 'isolated',
@@ -34,18 +13,18 @@ stdout | src/mastra/super/skills/backtest-runner/skill.spec.ts:304:3 > Backtest
34 13 dataformat_trades: 'json'
35 14 }
36 15
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
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
38 17 [DataFetcher] Downloading 1 pairs...
39 18
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
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
41 20 [DataFetcher] Completed. Processed: 1
42 21
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
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
44 23 Checking/Rebuilding Docker image "mastra-freqtrade:latest"...
45 24 Docker command: cd /home/dex/Документы/Work/santiment-ai/strategy-agent/docker/freqtrade && docker build -t mastra-freqtrade:latest .
46 25
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
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
49 28 Step 1/7 : FROM freqtradeorg/freqtrade:stable
50 29 ---> dfd23153a7f2
51 30 Step 2/7 : COPY requirements.txt /freqtrade/
@@ -71,121 +50,494 @@ Successfully tagged mastra-freqtrade:latest
71 50
72 51 Docker image "mastra-freqtrade:latest" is ready ✅
73 52
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
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
76 55
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 - !!!!!!!!!!! {
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: {
79 58 success: true,
80 - runId: '861f6d55-71d7-4fb7-bec3-1852f3f713ed',
59 + runId: '9c19c475-6cf9-4474-a93c-7d45338d033b',
81 60 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' +
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' +
114 145 '\n' +
115 146 '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
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
172 169 }
173 - [Test Success] Run ID: 861f6d55-71d7-4fb7-bec3-1852f3f713ed
174 170
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
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+…/
177 182
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 + - 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/
183 185
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)
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 + └───────────────────────────────┴────────────────────────────────┘
188 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 + "
189 536
190 - ~/Документы/Work/santiment-ai/strategy-agent master* 19s
191 -
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%');

2.log (archivo eliminado)

@@ -1,171 +0,0 @@
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 - stdout | src/mastra/super/skills/backtest-runner/skill.spec.ts:303:3 > Backtest Runner: Copytrading Strategy Test (Real Docker) > should successfully prepare env, fetch data, and run freqtrade via docker
6 - [Isolation] Environment prepared for run 193121d8-f574-4840-bb61-534aa28b4bda
7 -
8 - stdout | src/mastra/super/skills/backtest-runner/skill.spec.ts:303:3 > 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:303:3 > 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:303:3 > 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:303:3 > 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:303:3 > 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:303:3 > 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/193121d8-f574-4840-bb61-534aa28b4bda:/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:303:3 > Backtest Runner: Copytrading Strategy Test (Real Docker) > should successfully prepare env, fetch data, and run freqtrade via docker
57 - !!!!!!!!!!! {
58 - success: true,
59 - runId: '193121d8-f574-4840-bb61-534aa28b4bda',
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 │ 0 │ 0.0 │ 0.000 │ 0.0 │ 0:00 │ 0 0 0 0 │\n' +
66 - '│ TOTAL │ 0 │ 0.0 │ 0.000 │ 0.0 │ 0:00 │ 0 0 0 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 - '│ TOTAL │ 0 │ 0.0 │ 0.000 │ 0.0 │ 0:00 │ 0 0 0 0 │\n' +
73 - '└───────┴────────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┘\n' +
74 - ' ENTER TAG STATS \n' +
75 - '┏━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓\n' +
76 - '┃ Enter Tag ┃ Entries ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃\n' +
77 - '┡━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩\n' +
78 - '│ TOTAL │ 0 │ 0.0 │ 0.000 │ 0.0 │ 0:00 │ 0 0 0 0 │\n' +
79 - '└───────────┴─────────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┘\n' +
80 - ' EXIT REASON STATS \n' +
81 - '┏━━━━━━━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓\n' +
82 - '┃ Exit Reason ┃ Exits ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃\n' +
83 - '┡━━━━━━━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩\n' +
84 - '│ TOTAL │ 0 │ 0.0 │ 0.000 │ 0.0 │ 0:00 │ 0 0 0 0 │\n' +
85 - '└─────────────┴───────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┘\n' +
86 - ' MIXED TAG STATS \n' +
87 - '┏━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓\n' +
88 - '┃ Enter Tag ┃ Exit Reason ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃\n' +
89 - '┡━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩\n' +
90 - '│ TOTAL │ │ 0 │ 0.0 │ 0.000 │ 0.0 │ 0:00 │ 0 0 0 0 │\n' +
91 - '└───────────┴─────────────┴────────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┘\n' +
92 - 'No trades made. Your starting balance was 1000 USDT, and your stake was 100 USDT.\n' +
93 - '\n' +
94 - 'Backtested 2025-12-09 00:00:00 -> 2025-12-30 00:00:00 | Max open trades : 1\n' +
95 - ' STRATEGY SUMMARY \n' +
96 - '┏━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n' +
97 - '┃ Strategy ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃ Drawdown ┃\n' +
98 - '┡━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n' +
99 - '│ Strategy │ 0 │ 0.00 │ 0.000 │ 0.0 │ 0:00 │ 0 0 0 0 │ 0 USDT 0.00% │\n' +
100 - '└──────────┴────────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┴───────────────┘\n' +
101 - '2026-01-09 12:05:18,201 - freqtrade - INFO - freqtrade 2025.12\n' +
102 - '2026-01-09 12:05:18,559 - numexpr.utils - INFO - NumExpr defaulting to 8 threads.\n' +
103 - '2026-01-09 12:05:19,950 - freqtrade.configuration.load_config - INFO - Using config: /freqtrade/user_data/config.json ...\n' +
104 - '2026-01-09 12:05:19,952 - freqtrade.loggers - INFO - Enabling colorized output.\n' +
105 - '2026-01-09 12:05:19,953 - freqtrade.loggers - INFO - Logfile configured\n' +
106 - '2026-01-09 12:05:19,953 - freqtrade.loggers - INFO - Verbosity set to 0\n' +
107 - '2026-01-09 12:05:19,953 - freqtrade.configuration.configuration - INFO - Using max_open_trades: None ...\n' +
108 - '2026-01-09 12:05:19,954 - freqtrade.configuration.configuration - INFO - Parameter --timerange detected: 20251201-20251230 ...\n' +
109 - '2026-01-09 12:05:19,966 - freqtrade.configuration.configuration - INFO - Using user-data directory: /freqtrade/user_data ...\n' +
110 - '2026-01-09 12:05:19,966 - freqtrade.configuration.configuration - INFO - Using data directory: /freqtrade/user_data/data/binance ...\n' +
111 - '2026-01-09 12:05:19,967 - freqtrade.configuration.configuration - INFO - Parameter --export detected: trades ...\n' +
112 - '2026-01-09 12:05:19,967 - freqtrade.configuration.configuration - INFO - Parameter --cache=day detected ...\n' +
113 - '2026-01-09 12:05:19,967 - freqtrade.configuration.configuration - INFO - Using "json" to store OHLCV data.\n' +
114 - '2026-01-09 12:05:19,968 - freqtrade.configuration.configuration - INFO - Filter trades by timerange: 20251201-20251230\n' +
115 - '2026-01-09 12:05:19,968 - freqtrade.exchange.check_exchange - INFO - Checking exchange...\n' +
116 - '2026-01-09 12:05:19,978 - freqtrade.exchange.check_exchange - INFO - Exchange "binance" is officially supported by the Freqtrade development team.\n' +
117 - '2026-01-09 12:05:19,979 - freqtrade.configuration.configuration - INFO - Using pairlist from configuration.\n' +
118 - '2026-01-09 12:05:19,979 - freqtrade.configuration.config_validation - INFO - Validating configuration ...\n' +
119 - '2026-01-09 12:05:19,981 - freqtrade.commands.optimize_commands - INFO - Starting freqtrade in Backtesting mode\n' +
120 - '2026-01-09 12:05:19,981 - freqtrade.exchange.exchange - INFO - Instance is running with dry_run enabled\n' +
121 - '2026-01-09 12:05:19,982 - freqtrade.exchange.exchange - INFO - Using CCXT 4.5.29\n' +
122 - "2026-01-09 12:05:19,982 - freqtrade.exchange.exchange - INFO - Applying additional ccxt config: {'options': {'defaultType': 'swap'}}\n" +
123 - "2026-01-09 12:05:19,990 - freqtrade.exchange.exchange - INFO - Applying additional ccxt config: {'options': {'defaultType': 'swap'}}\n" +
124 - '2026-01-09 12:05:20,001 - freqtrade.exchange.exchange - INFO - Using Exchange "Binance"\n' +
125 - "2026-01-09 12:05:22,145 - freqtrade.resolvers.exchange_resolver - INFO - Using resolved exchange 'Binance'...\n" +
126 - "2026-01-09 12:05:22,180 - freqtrade.resolvers.iresolver - INFO - Using resolved strategy Strategy from '/freqtrade/user_data/strategies/strategy.py'...\n" +
127 - '2026-01-09 12:05:22,180 - freqtrade.strategy.hyper - INFO - Found no parameter file.\n' +
128 - "2026-01-09 12:05:22,181 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'timeframe' with value from the configuration: 1d.\n" +
129 - "2026-01-09 12:05:22,181 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'stake_currency' with value from the configuration: USDT.\n" +
130 - "2026-01-09 12:05:22,181 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'stake_amount' with value from the configuration: 100.\n" +
131 - "2026-01-09 12:05:22,182 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using minimal_roi: {'0': 0.03}\n" +
132 - '2026-01-09 12:05:22,182 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using timeframe: 1d\n' +
133 - '2026-01-09 12:05:22,182 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using stoploss: -0.05\n' +
134 - '2026-01-09 12:05:22,183 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_stop: False\n' +
135 - '2026-01-09 12:05:22,183 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_stop_positive_offset: 0.0\n' +
136 - '2026-01-09 12:05:22,183 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_only_offset_is_reached: False\n' +
137 - '2026-01-09 12:05:22,183 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using use_custom_stoploss: False\n' +
138 - '2026-01-09 12:05:22,183 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using process_only_new_candles: True\n' +
139 - "2026-01-09 12:05:22,184 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using order_types: {'entry': 'limit', 'exit': 'limit', 'stoploss': 'limit', 'stoploss_on_exchange': False, \n" +
140 - "'stoploss_on_exchange_interval': 60}\n" +
141 - "2026-01-09 12:05:22,184 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using order_time_in_force: {'entry': 'GTC', 'exit': 'GTC'}\n" +
142 - '2026-01-09 12:05:22,184 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using stake_currency: USDT\n' +
143 - '2026-01-09 12:05:22,185 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using stake_amount: 100\n' +
144 - '2026-01-09 12:05:22,185 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using startup_candle_count: 10\n' +
145 - '2026-01-09 12:05:22,185 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using use_exit_signal: True\n' +
146 - '2026-01-09 12:05:22,185 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using exit_profit_only: False\n' +
147 - '2026-01-09 12:05:22,185 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using ignore_roi_if_entry_signal: False\n' +
148 - '2026-01-09 12:05:22,186 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using exit_profit_offset: 0.0\n' +
149 - '2026-01-09 12:05:22,186 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using disable_dataframe_checks: False\n' +
150 - '2026-01-09 12:05:2'... 23241 more characters
151 - }
152 - [Test Success] Run ID: 193121d8-f574-4840-bb61-534aa28b4bda
153 -
154 - stdout | src/mastra/super/skills/backtest-runner/skill.spec.ts:119:1 > Backtest Runner: Copytrading Strategy Test (Real Docker)
155 - [Test Info] Artifacts preserved for threadId: copytrading-test-1767960313204
156 -
157 - ✓ src/mastra/super/skills/backtest-runner/skill.spec.ts (2 tests | 1 skipped) 28901ms
158 - ↓ Backtest Runner: Full Integration Test (Real Docker) (1)
159 - ↓ should successfully prepare env, fetch data, and run freqtrade via docker
160 - ✓ Backtest Runner: Copytrading Strategy Test (Real Docker) (1)
161 - ✓ should successfully prepare env, fetch data, and run freqtrade via docker 28900ms
162 -
163 - Test Files 1 passed (1)
164 - Tests 1 passed | 1 skipped (2)
165 - Start at 15:05:10
166 - Duration 32.01s (transform 109ms, setup 2.60s, import 88ms, tests 28.90s, environment 0ms)
167 -
168 -
169 - ~/Документы/Work/santiment-ai/strategy-agent master* 32s
170 -
171 - ~/Документы/Work/santiment-ai/strategy-agent master* 32s

3.log (archivo eliminado)

@@ -1,189 +0,0 @@
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 - 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
6 - [Isolation] Environment prepared for run f08195dc-6440-4e72-a906-75e5894b36bf
7 -
8 - 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
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:296:3 > 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:296:3 > 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:296:3 > 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:296:3 > 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:296:3 > 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/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
55 -
56 - 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
57 - {
58 - success: true,
59 - runId: 'f08195dc-6440-4e72-a906-75e5894b36bf',
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:04:17,356 - freqtrade - INFO - freqtrade 2025.12\n' +
154 - '2026-01-09 13:04:17,801 - numexpr.utils - INFO - NumExpr defaulting to 8 threads.\n' +
155 - '2026-01-09 13:04:19,631 - freqtrade.configuration.load_config - INFO - Using config: /freqtrade/user_data/config.json ...\n' +
156 - '2026-01-09 13:04:19,634 - freqtrade.loggers - INFO - Enabling colorized output.\n' +
157 - '2026-01-09 13:04:19,635 - freqtrade.loggers - INFO - Logfile configured\n' +
158 - '2026-01-09 13:04:19,635 - freqtrade.loggers - INFO - Verbosity set to 0\n' +
159 - '2026-01-09 13:04:19,636 - freqtrade.configuration.configuration - INFO - Using max_open_trades: None ...\n' +
160 - '2026-01-09 13:04:19,636 - freqtrade.configuration.configuration - INFO - Parameter --timerange detected: 20251201-20251230 ...\n' +
161 - '2026-01-09 13:04:19,651 - freqtrade.configuration.configuration - INFO - Using user-data directory: /freqtrade/user_data ...\n' +
162 - '2026-01-09 13:04:19,651 - freqtrade.configuration.configuration - INFO - Using data directory: /freqtrade/user_data/data/binance ...\n' +
163 - '2026-01-09 13:04:19,652 - freqtrade.configuration.configuration - INFO - Parameter --export detected: trades ...\n' +
164 - '2026-01-09 13:04:19,652 - freqtrade.configuration.configuration - INFO - Parameter --cache=day detected ...\n' +
165 - '2026-01-09 13:04:19,653 - freqtrade.configuration.configuration - INFO - Using "json" to store OHLCV data.\n' +
166 - '2026-01-09 13:04:19,653 - freqtrade.configuration.configuration - INFO - Filter trades by timerange: 20251201-20251230\n' +
167 - '2026-01-09 13:04:19,654 - freqtrade.exchange.check_exchange - INFO - Checking exchange...\n' +
168 - '2026-01-09 13:04:19,670 - freqtrade.exchange.check_exchange - INFO - Exchange "binance" is officially supported by the Freqtrade developm'... 27101 more characters
169 - }
170 - [Test Success] Run ID: f08195dc-6440-4e72-a906-75e5894b36bf
171 -
172 - stdout | src/mastra/super/skills/backtest-runner/skill.spec.ts:119:1 > Backtest Runner: Copytrading Strategy Test (Real Docker)
173 - [Test Info] Artifacts preserved for threadId: copytrading-test-1767963852908
174 -
175 - ✓ src/mastra/super/skills/backtest-runner/skill.spec.ts (2 tests | 1 skipped) 23326ms
176 - ↓ Backtest Runner: Full Integration Test (Real Docker) (1)
177 - ↓ should successfully prepare env, fetch data, and run freqtrade via docker
178 - ✓ Backtest Runner: Copytrading Strategy Test (Real Docker) (1)
179 - ✓ should successfully prepare env, fetch data, and run freqtrade via docker 23325ms
180 -
181 - Test Files 1 passed (1)
182 - Tests 1 passed | 1 skipped (2)
183 - Start at 16:04:12
184 - Duration 23.83s (transform 101ms, setup 298ms, import 100ms, tests 23.33s, environment 0ms)
185 -
186 -
187 - ~/Документы/Work/santiment-ai/strategy-agent master* 24s
188 -
189 -

uxname's Avatar uxname revisó este gist 2 days ago. Ir a la revisión

1 file changed, 189 insertions

3.log(archivo creado)

@@ -0,0 +1,189 @@
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 + 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
6 + [Isolation] Environment prepared for run f08195dc-6440-4e72-a906-75e5894b36bf
7 +
8 + 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
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:296:3 > 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:296:3 > 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:296:3 > 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:296:3 > 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:296:3 > 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/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
55 +
56 + 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
57 + {
58 + success: true,
59 + runId: 'f08195dc-6440-4e72-a906-75e5894b36bf',
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:04:17,356 - freqtrade - INFO - freqtrade 2025.12\n' +
154 + '2026-01-09 13:04:17,801 - numexpr.utils - INFO - NumExpr defaulting to 8 threads.\n' +
155 + '2026-01-09 13:04:19,631 - freqtrade.configuration.load_config - INFO - Using config: /freqtrade/user_data/config.json ...\n' +
156 + '2026-01-09 13:04:19,634 - freqtrade.loggers - INFO - Enabling colorized output.\n' +
157 + '2026-01-09 13:04:19,635 - freqtrade.loggers - INFO - Logfile configured\n' +
158 + '2026-01-09 13:04:19,635 - freqtrade.loggers - INFO - Verbosity set to 0\n' +
159 + '2026-01-09 13:04:19,636 - freqtrade.configuration.configuration - INFO - Using max_open_trades: None ...\n' +
160 + '2026-01-09 13:04:19,636 - freqtrade.configuration.configuration - INFO - Parameter --timerange detected: 20251201-20251230 ...\n' +
161 + '2026-01-09 13:04:19,651 - freqtrade.configuration.configuration - INFO - Using user-data directory: /freqtrade/user_data ...\n' +
162 + '2026-01-09 13:04:19,651 - freqtrade.configuration.configuration - INFO - Using data directory: /freqtrade/user_data/data/binance ...\n' +
163 + '2026-01-09 13:04:19,652 - freqtrade.configuration.configuration - INFO - Parameter --export detected: trades ...\n' +
164 + '2026-01-09 13:04:19,652 - freqtrade.configuration.configuration - INFO - Parameter --cache=day detected ...\n' +
165 + '2026-01-09 13:04:19,653 - freqtrade.configuration.configuration - INFO - Using "json" to store OHLCV data.\n' +
166 + '2026-01-09 13:04:19,653 - freqtrade.configuration.configuration - INFO - Filter trades by timerange: 20251201-20251230\n' +
167 + '2026-01-09 13:04:19,654 - freqtrade.exchange.check_exchange - INFO - Checking exchange...\n' +
168 + '2026-01-09 13:04:19,670 - freqtrade.exchange.check_exchange - INFO - Exchange "binance" is officially supported by the Freqtrade developm'... 27101 more characters
169 + }
170 + [Test Success] Run ID: f08195dc-6440-4e72-a906-75e5894b36bf
171 +
172 + stdout | src/mastra/super/skills/backtest-runner/skill.spec.ts:119:1 > Backtest Runner: Copytrading Strategy Test (Real Docker)
173 + [Test Info] Artifacts preserved for threadId: copytrading-test-1767963852908
174 +
175 + ✓ src/mastra/super/skills/backtest-runner/skill.spec.ts (2 tests | 1 skipped) 23326ms
176 + ↓ Backtest Runner: Full Integration Test (Real Docker) (1)
177 + ↓ should successfully prepare env, fetch data, and run freqtrade via docker
178 + ✓ Backtest Runner: Copytrading Strategy Test (Real Docker) (1)
179 + ✓ should successfully prepare env, fetch data, and run freqtrade via docker 23325ms
180 +
181 + Test Files 1 passed (1)
182 + Tests 1 passed | 1 skipped (2)
183 + Start at 16:04:12
184 + Duration 23.83s (transform 101ms, setup 298ms, import 100ms, tests 23.33s, environment 0ms)
185 +
186 +
187 + ~/Документы/Work/santiment-ai/strategy-agent master* 24s
188 +
189 +

uxname's Avatar uxname revisó este gist 2 days ago. Ir a la revisión

1 file changed, 171 insertions

2.log(archivo creado)

@@ -0,0 +1,171 @@
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 + stdout | src/mastra/super/skills/backtest-runner/skill.spec.ts:303:3 > Backtest Runner: Copytrading Strategy Test (Real Docker) > should successfully prepare env, fetch data, and run freqtrade via docker
6 + [Isolation] Environment prepared for run 193121d8-f574-4840-bb61-534aa28b4bda
7 +
8 + stdout | src/mastra/super/skills/backtest-runner/skill.spec.ts:303:3 > 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:303:3 > 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:303:3 > 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:303:3 > 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:303:3 > 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:303:3 > 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/193121d8-f574-4840-bb61-534aa28b4bda:/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:303:3 > Backtest Runner: Copytrading Strategy Test (Real Docker) > should successfully prepare env, fetch data, and run freqtrade via docker
57 + !!!!!!!!!!! {
58 + success: true,
59 + runId: '193121d8-f574-4840-bb61-534aa28b4bda',
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 │ 0 │ 0.0 │ 0.000 │ 0.0 │ 0:00 │ 0 0 0 0 │\n' +
66 + '│ TOTAL │ 0 │ 0.0 │ 0.000 │ 0.0 │ 0:00 │ 0 0 0 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 + '│ TOTAL │ 0 │ 0.0 │ 0.000 │ 0.0 │ 0:00 │ 0 0 0 0 │\n' +
73 + '└───────┴────────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┘\n' +
74 + ' ENTER TAG STATS \n' +
75 + '┏━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓\n' +
76 + '┃ Enter Tag ┃ Entries ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃\n' +
77 + '┡━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩\n' +
78 + '│ TOTAL │ 0 │ 0.0 │ 0.000 │ 0.0 │ 0:00 │ 0 0 0 0 │\n' +
79 + '└───────────┴─────────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┘\n' +
80 + ' EXIT REASON STATS \n' +
81 + '┏━━━━━━━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓\n' +
82 + '┃ Exit Reason ┃ Exits ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃\n' +
83 + '┡━━━━━━━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩\n' +
84 + '│ TOTAL │ 0 │ 0.0 │ 0.000 │ 0.0 │ 0:00 │ 0 0 0 0 │\n' +
85 + '└─────────────┴───────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┘\n' +
86 + ' MIXED TAG STATS \n' +
87 + '┏━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓\n' +
88 + '┃ Enter Tag ┃ Exit Reason ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃\n' +
89 + '┡━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩\n' +
90 + '│ TOTAL │ │ 0 │ 0.0 │ 0.000 │ 0.0 │ 0:00 │ 0 0 0 0 │\n' +
91 + '└───────────┴─────────────┴────────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┘\n' +
92 + 'No trades made. Your starting balance was 1000 USDT, and your stake was 100 USDT.\n' +
93 + '\n' +
94 + 'Backtested 2025-12-09 00:00:00 -> 2025-12-30 00:00:00 | Max open trades : 1\n' +
95 + ' STRATEGY SUMMARY \n' +
96 + '┏━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n' +
97 + '┃ Strategy ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃ Drawdown ┃\n' +
98 + '┡━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n' +
99 + '│ Strategy │ 0 │ 0.00 │ 0.000 │ 0.0 │ 0:00 │ 0 0 0 0 │ 0 USDT 0.00% │\n' +
100 + '└──────────┴────────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┴───────────────┘\n' +
101 + '2026-01-09 12:05:18,201 - freqtrade - INFO - freqtrade 2025.12\n' +
102 + '2026-01-09 12:05:18,559 - numexpr.utils - INFO - NumExpr defaulting to 8 threads.\n' +
103 + '2026-01-09 12:05:19,950 - freqtrade.configuration.load_config - INFO - Using config: /freqtrade/user_data/config.json ...\n' +
104 + '2026-01-09 12:05:19,952 - freqtrade.loggers - INFO - Enabling colorized output.\n' +
105 + '2026-01-09 12:05:19,953 - freqtrade.loggers - INFO - Logfile configured\n' +
106 + '2026-01-09 12:05:19,953 - freqtrade.loggers - INFO - Verbosity set to 0\n' +
107 + '2026-01-09 12:05:19,953 - freqtrade.configuration.configuration - INFO - Using max_open_trades: None ...\n' +
108 + '2026-01-09 12:05:19,954 - freqtrade.configuration.configuration - INFO - Parameter --timerange detected: 20251201-20251230 ...\n' +
109 + '2026-01-09 12:05:19,966 - freqtrade.configuration.configuration - INFO - Using user-data directory: /freqtrade/user_data ...\n' +
110 + '2026-01-09 12:05:19,966 - freqtrade.configuration.configuration - INFO - Using data directory: /freqtrade/user_data/data/binance ...\n' +
111 + '2026-01-09 12:05:19,967 - freqtrade.configuration.configuration - INFO - Parameter --export detected: trades ...\n' +
112 + '2026-01-09 12:05:19,967 - freqtrade.configuration.configuration - INFO - Parameter --cache=day detected ...\n' +
113 + '2026-01-09 12:05:19,967 - freqtrade.configuration.configuration - INFO - Using "json" to store OHLCV data.\n' +
114 + '2026-01-09 12:05:19,968 - freqtrade.configuration.configuration - INFO - Filter trades by timerange: 20251201-20251230\n' +
115 + '2026-01-09 12:05:19,968 - freqtrade.exchange.check_exchange - INFO - Checking exchange...\n' +
116 + '2026-01-09 12:05:19,978 - freqtrade.exchange.check_exchange - INFO - Exchange "binance" is officially supported by the Freqtrade development team.\n' +
117 + '2026-01-09 12:05:19,979 - freqtrade.configuration.configuration - INFO - Using pairlist from configuration.\n' +
118 + '2026-01-09 12:05:19,979 - freqtrade.configuration.config_validation - INFO - Validating configuration ...\n' +
119 + '2026-01-09 12:05:19,981 - freqtrade.commands.optimize_commands - INFO - Starting freqtrade in Backtesting mode\n' +
120 + '2026-01-09 12:05:19,981 - freqtrade.exchange.exchange - INFO - Instance is running with dry_run enabled\n' +
121 + '2026-01-09 12:05:19,982 - freqtrade.exchange.exchange - INFO - Using CCXT 4.5.29\n' +
122 + "2026-01-09 12:05:19,982 - freqtrade.exchange.exchange - INFO - Applying additional ccxt config: {'options': {'defaultType': 'swap'}}\n" +
123 + "2026-01-09 12:05:19,990 - freqtrade.exchange.exchange - INFO - Applying additional ccxt config: {'options': {'defaultType': 'swap'}}\n" +
124 + '2026-01-09 12:05:20,001 - freqtrade.exchange.exchange - INFO - Using Exchange "Binance"\n' +
125 + "2026-01-09 12:05:22,145 - freqtrade.resolvers.exchange_resolver - INFO - Using resolved exchange 'Binance'...\n" +
126 + "2026-01-09 12:05:22,180 - freqtrade.resolvers.iresolver - INFO - Using resolved strategy Strategy from '/freqtrade/user_data/strategies/strategy.py'...\n" +
127 + '2026-01-09 12:05:22,180 - freqtrade.strategy.hyper - INFO - Found no parameter file.\n' +
128 + "2026-01-09 12:05:22,181 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'timeframe' with value from the configuration: 1d.\n" +
129 + "2026-01-09 12:05:22,181 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'stake_currency' with value from the configuration: USDT.\n" +
130 + "2026-01-09 12:05:22,181 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'stake_amount' with value from the configuration: 100.\n" +
131 + "2026-01-09 12:05:22,182 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using minimal_roi: {'0': 0.03}\n" +
132 + '2026-01-09 12:05:22,182 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using timeframe: 1d\n' +
133 + '2026-01-09 12:05:22,182 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using stoploss: -0.05\n' +
134 + '2026-01-09 12:05:22,183 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_stop: False\n' +
135 + '2026-01-09 12:05:22,183 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_stop_positive_offset: 0.0\n' +
136 + '2026-01-09 12:05:22,183 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_only_offset_is_reached: False\n' +
137 + '2026-01-09 12:05:22,183 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using use_custom_stoploss: False\n' +
138 + '2026-01-09 12:05:22,183 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using process_only_new_candles: True\n' +
139 + "2026-01-09 12:05:22,184 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using order_types: {'entry': 'limit', 'exit': 'limit', 'stoploss': 'limit', 'stoploss_on_exchange': False, \n" +
140 + "'stoploss_on_exchange_interval': 60}\n" +
141 + "2026-01-09 12:05:22,184 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using order_time_in_force: {'entry': 'GTC', 'exit': 'GTC'}\n" +
142 + '2026-01-09 12:05:22,184 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using stake_currency: USDT\n' +
143 + '2026-01-09 12:05:22,185 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using stake_amount: 100\n' +
144 + '2026-01-09 12:05:22,185 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using startup_candle_count: 10\n' +
145 + '2026-01-09 12:05:22,185 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using use_exit_signal: True\n' +
146 + '2026-01-09 12:05:22,185 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using exit_profit_only: False\n' +
147 + '2026-01-09 12:05:22,185 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using ignore_roi_if_entry_signal: False\n' +
148 + '2026-01-09 12:05:22,186 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using exit_profit_offset: 0.0\n' +
149 + '2026-01-09 12:05:22,186 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using disable_dataframe_checks: False\n' +
150 + '2026-01-09 12:05:2'... 23241 more characters
151 + }
152 + [Test Success] Run ID: 193121d8-f574-4840-bb61-534aa28b4bda
153 +
154 + stdout | src/mastra/super/skills/backtest-runner/skill.spec.ts:119:1 > Backtest Runner: Copytrading Strategy Test (Real Docker)
155 + [Test Info] Artifacts preserved for threadId: copytrading-test-1767960313204
156 +
157 + ✓ src/mastra/super/skills/backtest-runner/skill.spec.ts (2 tests | 1 skipped) 28901ms
158 + ↓ Backtest Runner: Full Integration Test (Real Docker) (1)
159 + ↓ should successfully prepare env, fetch data, and run freqtrade via docker
160 + ✓ Backtest Runner: Copytrading Strategy Test (Real Docker) (1)
161 + ✓ should successfully prepare env, fetch data, and run freqtrade via docker 28900ms
162 +
163 + Test Files 1 passed (1)
164 + Tests 1 passed | 1 skipped (2)
165 + Start at 15:05:10
166 + Duration 32.01s (transform 109ms, setup 2.60s, import 88ms, tests 28.90s, environment 0ms)
167 +
168 +
169 + ~/Документы/Work/santiment-ai/strategy-agent master* 32s
170 +
171 + ~/Документы/Work/santiment-ai/strategy-agent master* 32s

uxname's Avatar uxname revisó este gist 2 days ago. Ir a la revisión

1 file changed, 191 insertions

1.log(archivo creado)

@@ -0,0 +1,191 @@
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 +
Siguiente Anterior