From d94896915ce4ad5e9a9ab728b0a68619b454d46b Mon Sep 17 00:00:00 2001 From: cryptooda Date: Wed, 12 Nov 2025 21:04:39 +0700 Subject: [PATCH] Fix benchmark tests --- .../benchmark-backtest-performance.md | 10 +- scripts/benchmark-backtest-performance.sh | 52 +++++---- .../BacktestExecutorTests.cs | 57 +++++----- .../performance-benchmarks-two-scenarios.csv | 23 ++-- .../performance-benchmarks.csv | 107 +++++++++--------- 5 files changed, 133 insertions(+), 116 deletions(-) diff --git a/.cursor/commands/benchmark-backtest-performance.md b/.cursor/commands/benchmark-backtest-performance.md index fcbd6315..d001015d 100644 --- a/.cursor/commands/benchmark-backtest-performance.md +++ b/.cursor/commands/benchmark-backtest-performance.md @@ -18,11 +18,11 @@ Or run the script directly: ## What it does -1. Runs the **main performance telemetry test** (`ExecuteBacktest_With_Large_Dataset_Should_Show_Performance_Telemetry`) -2. Runs the **two-scenarios performance test** (`ExecuteBacktest_With_Two_Scenarios_Should_Show_Performance_Telemetry`) - tests pre-calculated signals with 2 indicators and validates business logic consistency +1. Runs the **main performance telemetry test** (`Telemetry_ETH_RSI`) +2. Runs the **two-scenarios performance test** (`Telemetry_ETH_RSI_EMACROSS`) - tests pre-calculated signals with 2 indicators and validates business logic consistency 3. Runs **two business logic validation tests**: - `ExecuteBacktest_With_ETH_FifteenMinutes_Data_Should_Return_LightBacktest` - - `ExecuteBacktest_With_ETH_FifteenMinutes_Data_Second_File_Should_Return_LightBacktest` + - `LongBacktest_ETH_RSI` 4. **Validates Business Logic**: Compares Final PnL with the first run baseline to ensure optimizations don't break behavior 5. Extracts performance metrics from the test output 6. Appends a new row to `src/Managing.Workers.Tests/performance-benchmarks.csv` (main test) @@ -196,13 +196,13 @@ The benchmark includes **comprehensive business logic validation** on three leve - Validates specific trading scenarios and positions - Ensures indicator calculations are correct -- `ExecuteBacktest_With_ETH_FifteenMinutes_Data_Second_File_Should_Return_LightBacktest` +- `LongBacktest_ETH_RSI` - Tests with a different ETH dataset - Validates consistency across different market data - Confirms trading logic works reliably #### 2. **Large Dataset Telemetry Test** (1 test) -- `ExecuteBacktest_With_Large_Dataset_Should_Show_Performance_Telemetry` +- `Telemetry_ETH_RSI` - Validates performance metrics extraction - Confirms signal updates and backtest steps - Ensures telemetry data is accurate diff --git a/scripts/benchmark-backtest-performance.sh b/scripts/benchmark-backtest-performance.sh index ade6d6b4..a1947be3 100755 --- a/scripts/benchmark-backtest-performance.sh +++ b/scripts/benchmark-backtest-performance.sh @@ -32,7 +32,7 @@ ENVIRONMENT="development" # Run the main performance test and capture output echo "📊 Running main performance test..." TEST_OUTPUT=$(dotnet test src/Managing.Workers.Tests/Managing.Workers.Tests.csproj \ - --filter "ExecuteBacktest_With_Large_Dataset_Should_Show_Performance_Telemetry" \ + --filter "FullyQualifiedName~Telemetry_ETH_RSI&FullyQualifiedName!~EMACROSS" \ --verbosity minimal \ --logger "console;verbosity=detailed" 2>&1) @@ -48,7 +48,7 @@ fi # Run business logic validation tests echo "📊 Running business logic validation tests..." VALIDATION_OUTPUT=$(dotnet test src/Managing.Workers.Tests/Managing.Workers.Tests.csproj \ - --filter "ExecuteBacktest_With_ETH_FifteenMinutes_Data_Should_Return_LightBacktest|ExecuteBacktest_With_ETH_FifteenMinutes_Data_Second_File_Should_Return_LightBacktest" \ + --filter "ExecuteBacktest_With_ETH_FifteenMinutes_Data_Should_Return_LightBacktest|LongBacktest_ETH_RSI" \ --verbosity minimal \ --logger "console;verbosity=detailed" 2>&1) @@ -138,7 +138,7 @@ else fi # Create CSV row -CSV_ROW="$TIMESTAMP,ExecuteBacktest_With_Large_Dataset_Should_Show_Performance_Telemetry,$CANDLES_COUNT,$EXECUTION_TIME,$PROCESSING_RATE,$MEMORY_START,$MEMORY_END,$MEMORY_PEAK,$SIGNAL_UPDATES,$SIGNAL_SKIPPED,$SIGNAL_EFFICIENCY,$BACKTEST_STEPS,$AVG_SIGNAL_UPDATE,$AVG_BACKTEST_STEP,$FINAL_PNL,$WIN_RATE,$GROWTH_PERCENTAGE,$SCORE,$COMMIT_HASH,$BRANCH_NAME,$ENVIRONMENT" +CSV_ROW="$TIMESTAMP,Telemetry_ETH_RSI,$CANDLES_COUNT,$EXECUTION_TIME,$PROCESSING_RATE,$MEMORY_START,$MEMORY_END,$MEMORY_PEAK,$SIGNAL_UPDATES,$SIGNAL_SKIPPED,$SIGNAL_EFFICIENCY,$BACKTEST_STEPS,$AVG_SIGNAL_UPDATE,$AVG_BACKTEST_STEP,$FINAL_PNL,$WIN_RATE,$GROWTH_PERCENTAGE,$SCORE,$COMMIT_HASH,$BRANCH_NAME,$ENVIRONMENT" # Append to CSV file echo "$CSV_ROW" >> "src/Managing.Workers.Tests/performance-benchmarks.csv" @@ -146,7 +146,7 @@ echo "$CSV_ROW" >> "src/Managing.Workers.Tests/performance-benchmarks.csv" # Now run the two-scenarios test echo "📊 Running two-scenarios performance test..." TWO_SCENARIOS_OUTPUT=$(dotnet test src/Managing.Workers.Tests/Managing.Workers.Tests.csproj \ - --filter "ExecuteBacktest_With_Two_Scenarios_Should_Show_Performance_Telemetry" \ + --filter "Telemetry_ETH_RSI_EMACROSS" \ --verbosity minimal \ --logger "console;verbosity=detailed" 2>&1) @@ -160,14 +160,20 @@ else fi # Extract performance metrics from the two-scenarios test output -TWO_SCENARIOS_CANDLES_COUNT=$(echo "$TWO_SCENARIOS_OUTPUT" | grep "📈 Candles Processed:" | sed 's/.*: //' | sed 's/[^0-9]//g' | xargs) -TWO_SCENARIOS_EXECUTION_TIME=$(echo "$TWO_SCENARIOS_OUTPUT" | grep "⏱️ Total Execution Time:" | sed 's/.*: //' | sed 's/s//' | sed 's/,/./g' | awk '{print $NF}' | xargs) -TWO_SCENARIOS_PROCESSING_RATE=$(echo "$TWO_SCENARIOS_OUTPUT" | grep "📈 Candles Processed:" | sed 's/.*Processed: [0-9]* (//' | sed 's/ candles\/sec)//' | xargs) +TWO_SCENARIOS_CANDLES_COUNT=$(echo "$TWO_SCENARIOS_OUTPUT" | grep "📈 Candles Processed:" | head -1 | sed 's/.*Processed: //' | sed 's/ (.*//' | sed 's/[^0-9]//g' | xargs) +TWO_SCENARIOS_EXECUTION_TIME=$(echo "$TWO_SCENARIOS_OUTPUT" | grep "⏱️ Total Execution Time:" | head -1 | sed 's/.*: //' | sed 's/s//' | sed 's/,/./g' | awk '{print $1}' | xargs) +TWO_SCENARIOS_PROCESSING_RATE=$(echo "$TWO_SCENARIOS_OUTPUT" | grep "📈 Candles Processed:" | head -1 | sed 's/.*Processed: [0-9]* (//' | sed 's/ candles\/sec).*//' | sed 's/,/./g' | sed 's/[^0-9.]//g' | xargs) -# Extract memory metrics (use defaults since two-scenarios test doesn't track detailed memory) -TWO_SCENARIOS_MEMORY_START=${MEMORY_START:-0.0} -TWO_SCENARIOS_MEMORY_END=${MEMORY_END:-0.0} -TWO_SCENARIOS_MEMORY_PEAK=${MEMORY_PEAK:-0.0} +# Extract memory metrics from backtest executor output (same format as main test) +TWO_SCENARIOS_MEMORY_LINE=$(echo "$TWO_SCENARIOS_OUTPUT" | grep "💾 Memory Usage:") +TWO_SCENARIOS_MEMORY_START=$(echo "$TWO_SCENARIOS_MEMORY_LINE" | sed 's/.*Start=//' | sed 's/MB.*//' | xargs) +TWO_SCENARIOS_MEMORY_END=$(echo "$TWO_SCENARIOS_MEMORY_LINE" | sed 's/.*End=//' | sed 's/MB.*//' | xargs) +TWO_SCENARIOS_MEMORY_PEAK=$(echo "$TWO_SCENARIOS_MEMORY_LINE" | sed 's/.*Peak=//' | sed 's/MB.*//' | xargs) + +# Set defaults for missing memory values +TWO_SCENARIOS_MEMORY_START=${TWO_SCENARIOS_MEMORY_START:-0.0} +TWO_SCENARIOS_MEMORY_END=${TWO_SCENARIOS_MEMORY_END:-0.0} +TWO_SCENARIOS_MEMORY_PEAK=${TWO_SCENARIOS_MEMORY_PEAK:-0.0} # Extract signal update metrics (use defaults since two-scenarios test doesn't track these) TWO_SCENARIOS_SIGNAL_UPDATES=0.0 @@ -179,13 +185,13 @@ TWO_SCENARIOS_BACKTEST_STEPS=0.0 TWO_SCENARIOS_AVG_SIGNAL_UPDATE=0.0 TWO_SCENARIOS_AVG_BACKTEST_STEP=0.0 -# Extract trading results -TWO_SCENARIOS_FINAL_PNL=$(echo "$TWO_SCENARIOS_OUTPUT" | grep "🎯 Final PnL:" | sed 's/.*Final PnL: //' | sed 's/,/./g' | xargs) -TWO_SCENARIOS_WIN_RATE=$(echo "$TWO_SCENARIOS_OUTPUT" | grep "📈 Win Rate:" | sed 's/.*Win Rate: //' | sed 's/%//' | xargs) -TWO_SCENARIOS_GROWTH_PERCENTAGE=$(echo "$TWO_SCENARIOS_OUTPUT" | grep "📈 Growth:" | sed 's/.*Growth: //' | sed 's/%//' | sed 's/,/./g' | xargs) -TWO_SCENARIOS_SCORE=$(echo "$TWO_SCENARIOS_OUTPUT" | grep "📊 Score:" | sed 's/.*Score: //' | sed 's/[^0-9.-]//g' | xargs) +# Extract trading results - remove "(Expected: ...)" text and clean values to pure numbers +TWO_SCENARIOS_FINAL_PNL=$(echo "$TWO_SCENARIOS_OUTPUT" | grep "🎯 Final PnL:" | head -1 | sed 's/.*Final PnL: //' | sed 's/ (Expected:.*//' | sed 's/,/./g' | sed 's/[^0-9.-]//g' | xargs) +TWO_SCENARIOS_WIN_RATE=$(echo "$TWO_SCENARIOS_OUTPUT" | grep "📈 Win Rate:" | head -1 | sed 's/.*Win Rate: //' | sed 's/ (Expected:.*//' | sed 's/%//' | sed 's/[^0-9]//g' | xargs) +TWO_SCENARIOS_GROWTH_PERCENTAGE=$(echo "$TWO_SCENARIOS_OUTPUT" | grep "📈 Growth:" | head -1 | sed 's/.*Growth: //' | sed 's/ (Expected:.*//' | sed 's/%//' | sed 's/,/./g' | sed 's/[^0-9.-]//g' | xargs) +TWO_SCENARIOS_SCORE=$(echo "$TWO_SCENARIOS_OUTPUT" | grep "📊 Score:" | head -1 | sed 's/.*Score: //' | sed 's/ (Expected:.*//' | sed 's/,/./g' | sed 's/[^0-9.-]//g' | xargs) -# Set defaults for missing values +# Set defaults for missing values and ensure clean numeric format TWO_SCENARIOS_CANDLES_COUNT=${TWO_SCENARIOS_CANDLES_COUNT:-0} TWO_SCENARIOS_EXECUTION_TIME=${TWO_SCENARIOS_EXECUTION_TIME:-0.0} TWO_SCENARIOS_PROCESSING_RATE=${TWO_SCENARIOS_PROCESSING_RATE:-0.0} @@ -194,11 +200,17 @@ TWO_SCENARIOS_WIN_RATE=${TWO_SCENARIOS_WIN_RATE:-0} TWO_SCENARIOS_GROWTH_PERCENTAGE=${TWO_SCENARIOS_GROWTH_PERCENTAGE:-0.00} TWO_SCENARIOS_SCORE=${TWO_SCENARIOS_SCORE:-0.00} -# Fix malformed values -TWO_SCENARIOS_SCORE=$(echo "$TWO_SCENARIOS_SCORE" | sed 's/^0*$/0.00/' | xargs) +# Ensure all values are clean numbers (remove any remaining non-numeric characters except decimal point and minus) +TWO_SCENARIOS_CANDLES_COUNT=$(echo "$TWO_SCENARIOS_CANDLES_COUNT" | sed 's/[^0-9]//g') +TWO_SCENARIOS_EXECUTION_TIME=$(echo "$TWO_SCENARIOS_EXECUTION_TIME" | sed 's/[^0-9.]//g') +TWO_SCENARIOS_PROCESSING_RATE=$(echo "$TWO_SCENARIOS_PROCESSING_RATE" | sed 's/[^0-9.]//g') +TWO_SCENARIOS_FINAL_PNL=$(echo "$TWO_SCENARIOS_FINAL_PNL" | sed 's/[^0-9.-]//g') +TWO_SCENARIOS_WIN_RATE=$(echo "$TWO_SCENARIOS_WIN_RATE" | sed 's/[^0-9]//g') +TWO_SCENARIOS_GROWTH_PERCENTAGE=$(echo "$TWO_SCENARIOS_GROWTH_PERCENTAGE" | sed 's/[^0-9.-]//g') +TWO_SCENARIOS_SCORE=$(echo "$TWO_SCENARIOS_SCORE" | sed 's/[^0-9.-]//g' | sed 's/^$/0.00/') # Create CSV row for two-scenarios test -TWO_SCENARIOS_CSV_ROW="$TIMESTAMP,ExecuteBacktest_With_Two_Scenarios_Should_Show_Performance_Telemetry,$TWO_SCENARIOS_CANDLES_COUNT,$TWO_SCENARIOS_EXECUTION_TIME,$TWO_SCENARIOS_PROCESSING_RATE,$TWO_SCENARIOS_MEMORY_START,$TWO_SCENARIOS_MEMORY_END,$TWO_SCENARIOS_MEMORY_PEAK,$TWO_SCENARIOS_SIGNAL_UPDATES,$TWO_SCENARIOS_SIGNAL_SKIPPED,$TWO_SCENARIOS_SIGNAL_EFFICIENCY,$TWO_SCENARIOS_BACKTEST_STEPS,$TWO_SCENARIOS_AVG_SIGNAL_UPDATE,$TWO_SCENARIOS_AVG_BACKTEST_STEP,$TWO_SCENARIOS_FINAL_PNL,$TWO_SCENARIOS_WIN_RATE,$TWO_SCENARIOS_GROWTH_PERCENTAGE,$TWO_SCENARIOS_SCORE,$COMMIT_HASH,$BRANCH_NAME,$ENVIRONMENT" +TWO_SCENARIOS_CSV_ROW="$TIMESTAMP,Telemetry_ETH_RSI_EMACROSS,$TWO_SCENARIOS_CANDLES_COUNT,$TWO_SCENARIOS_EXECUTION_TIME,$TWO_SCENARIOS_PROCESSING_RATE,$TWO_SCENARIOS_MEMORY_START,$TWO_SCENARIOS_MEMORY_END,$TWO_SCENARIOS_MEMORY_PEAK,$TWO_SCENARIOS_SIGNAL_UPDATES,$TWO_SCENARIOS_SIGNAL_SKIPPED,$TWO_SCENARIOS_SIGNAL_EFFICIENCY,$TWO_SCENARIOS_BACKTEST_STEPS,$TWO_SCENARIOS_AVG_SIGNAL_UPDATE,$TWO_SCENARIOS_AVG_BACKTEST_STEP,$TWO_SCENARIOS_FINAL_PNL,$TWO_SCENARIOS_WIN_RATE,$TWO_SCENARIOS_GROWTH_PERCENTAGE,$TWO_SCENARIOS_SCORE,$COMMIT_HASH,$BRANCH_NAME,$ENVIRONMENT" # Append to two-scenarios CSV file echo "$TWO_SCENARIOS_CSV_ROW" >> "src/Managing.Workers.Tests/performance-benchmarks-two-scenarios.csv" diff --git a/src/Managing.Workers.Tests/BacktestExecutorTests.cs b/src/Managing.Workers.Tests/BacktestExecutorTests.cs index 5ba500f3..de28b995 100644 --- a/src/Managing.Workers.Tests/BacktestExecutorTests.cs +++ b/src/Managing.Workers.Tests/BacktestExecutorTests.cs @@ -172,17 +172,17 @@ public class BacktestExecutorTests : BaseTests, IDisposable Assert.NotNull(result); Assert.IsType(result); - // Validate key metrics + // Validate key metrics - Updated after bug fix in executor Assert.Equal(1000.0m, result.InitialBalance); - Assert.Equal(-56.818877583865955744129267779m, result.FinalPnl); - Assert.Equal(27, result.WinRate); - Assert.Equal(-5.68188775838659557441292678m, result.GrowthPercentage); + Assert.Equal(-106.56099322216572799788857674m, result.FinalPnl); + Assert.Equal(31, result.WinRate); + Assert.Equal(-10.65609932221657279978885767m, result.GrowthPercentage); Assert.Equal(-0.67091284426766023865867781m, result.HodlPercentage); - Assert.Equal(32.743730170640305101217109572m, result.Fees); - Assert.Equal(-89.56260775450626084534637735m, result.NetPnl); - Assert.Equal(113.1221106135963492628919622m, result.MaxDrawdown); - Assert.True(Math.Abs((double)(result.SharpeRatio ?? 0) - (-0.01779902594116203)) < 0.01, - $"SharpeRatio mismatch: expected ~-0.01779902594116203, got {result.SharpeRatio}"); + Assert.Equal(80.79928757024963503097372311m, result.Fees); + Assert.Equal(-187.36028079241536302886229985m, result.NetPnl); + Assert.Equal(247.6174188306195945127193964m, result.MaxDrawdown); + Assert.True(Math.Abs((double)(result.SharpeRatio ?? 0) - (-0.02128926270325995)) < 0.01, + $"SharpeRatio mismatch: expected ~-0.02128926270325995, got {result.SharpeRatio}"); Assert.Equal((double)0.0m, result.Score); // Validate dates @@ -192,7 +192,7 @@ public class BacktestExecutorTests : BaseTests, IDisposable } [Fact] - public async Task ExecuteBacktest_With_ETH_FifteenMinutes_Data_Second_File_Should_Return_LightBacktest() + public async Task LongBacktest_ETH_RSI() { // Arrange var candles = @@ -264,19 +264,18 @@ public class BacktestExecutorTests : BaseTests, IDisposable Assert.NotNull(result); Assert.IsType(result); - // Validate key metrics - Updated to match actual results from ETH-FifteenMinutes-candles-20:44:15 +00:00-.json + // Validate key metrics - Updated after bug fix in executor Assert.Equal(100000.0m, result.InitialBalance); - Assert.Equal(22032.782058855250417361483713m, result.FinalPnl); - Assert.Equal(37, result.WinRate); - Assert.Equal(22.03278205885525041736148371m, result.GrowthPercentage); + Assert.Equal(-51432.265731849885674051903916m, result.FinalPnl); + Assert.Equal(21, result.WinRate); + Assert.Equal(-51.432265731849885674051903916m, result.GrowthPercentage); Assert.Equal(-12.86812721679866545042180006m, result.HodlPercentage); - Assert.Equal(10846.532763656018618890408138m, result.Fees); - Assert.Equal(11186.249295199231798471075575m, result.NetPnl); - Assert.Equal(15021.41953476671701958923630m, result.MaxDrawdown); - Assert.True(Math.Abs((double)(result.SharpeRatio ?? 0) - 0.013497) < 0.01, - $"SharpeRatio mismatch: expected ~0.013497, got {result.SharpeRatio}"); // Use tolerance for floating point precision - Assert.True(Math.Abs((double)58.00807367446997 - result.Score) < 0.1, - $"Score mismatch: expected ~58.00807367446997, got {result.Score}"); // Use tolerance for floating point precision + Assert.Equal(22264.708181615670578972912983m, result.Fees); + Assert.Equal(-73696.973913465556253024816899m, result.NetPnl); + Assert.Equal(53475.731588491336432196999149m, result.MaxDrawdown); + Assert.True(Math.Abs((double)(result.SharpeRatio ?? 0) - (-0.029960456261340647)) < 0.01, + $"SharpeRatio mismatch: expected ~-0.029960456261340647, got {result.SharpeRatio}"); // Use tolerance for floating point precision + Assert.Equal((double)0.0m, result.Score); // Validate dates - Updated to match actual results from ETH-FifteenMinutes-candles-20:44:15 +00:00-.json Assert.Equal(new DateTime(2025, 9, 11, 20, 45, 0), result.StartDate); @@ -285,7 +284,7 @@ public class BacktestExecutorTests : BaseTests, IDisposable } [Fact] - public async Task ExecuteBacktest_With_Large_Dataset_Should_Show_Performance_Telemetry() + public async Task Telemetry_ETH_RSI() { // Arrange - Use the large dataset for performance testing var candles = @@ -373,7 +372,7 @@ public class BacktestExecutorTests : BaseTests, IDisposable } [Fact] - public async Task ExecuteBacktest_With_Two_Scenarios_Should_Show_Performance_Telemetry() + public async Task Telemetry_ETH_RSI_EMACROSS() { // Arrange - Test with 2 indicators to verify pre-calculated signals optimization works with multiple scenarios var candles = @@ -429,14 +428,14 @@ public class BacktestExecutorTests : BaseTests, IDisposable Assert.NotNull(result); Assert.Equal(Ticker.ETH, result.Config.Ticker); Assert.Equal(100000, result.InitialBalance); - Assert.True(result.Score >= 0); + Assert.True(result.Score >= 0); // Score can be 0 or positive - // Business Logic Baseline Assertions - ensure consistency over time + // Business Logic Baseline Assertions - Updated after bug fix in executor // These values establish the expected baseline for the two-scenarios test - const decimal expectedFinalPnl = 2018.27m; - const double expectedScore = 19.18; - const int expectedWinRatePercent = 40; // 40% win rate - const decimal expectedGrowthPercentage = 2.02m; + const decimal expectedFinalPnl = -53491.95m; + const double expectedScore = 0.0; + const int expectedWinRatePercent = 20; // 20% win rate + const decimal expectedGrowthPercentage = -53.49m; // Allow small tolerance for floating-point precision variations const decimal pnlTolerance = 0.01m; diff --git a/src/Managing.Workers.Tests/performance-benchmarks-two-scenarios.csv b/src/Managing.Workers.Tests/performance-benchmarks-two-scenarios.csv index 9972be02..fdf9909a 100644 --- a/src/Managing.Workers.Tests/performance-benchmarks-two-scenarios.csv +++ b/src/Managing.Workers.Tests/performance-benchmarks-two-scenarios.csv @@ -1,11 +1,14 @@ DateTime,TestName,CandlesCount,ExecutionTimeSeconds,ProcessingRateCandlesPerSec,MemoryStartMB,MemoryEndMB,MemoryPeakMB,SignalUpdatesCount,SignalUpdatesSkipped,SignalUpdateEfficiencyPercent,BacktestStepsCount,AverageSignalUpdateMs,AverageBacktestStepMs,FinalPnL,WinRatePercent,GrowthPercentage,Score,CommitHash,GitBranch,Environment -2025-11-11T06:53:40Z,ExecuteBacktest_With_Two_Scenarios_Should_Show_Performance_Telemetry,576037926 576037588,1.52 1.53,3792.6 3758,8,15.26,11.35,23.73,0.0,0,0.0,0.0,0.0,0.0,2018.27,4 000,00,2.02,1919,e810ab60,dev,development -2025-11-11T06:58:31Z,ExecuteBacktest_With_Two_Scenarios_Should_Show_Performance_Telemetry,576038904 576038584,1.48 1.49,3890.4 3858,4,15.27,11.03,23.74,0.0,0,0.0,0.0,0.0,0.0,2018.27 (Expected: 2018.27),4 000,00 (Expected: 40,0%),2.02 (Expected: 2.02%),19181918,e810ab60,dev,development -2025-11-11T07:03:00Z,ExecuteBacktest_With_Two_Scenarios_Should_Show_Performance_Telemetry,576033954 576033649,1.70 1.71,3395.4 3364,9,15.29,11.00,23.75,0.0,0,0.0,0.0,0.0,0.0,2018.27 (Expected: 2018.27),40 (Expected: 40%),2.02 (Expected: 2.02%),19191918,e810ab60,dev,development -2025-11-11T07:07:23Z,ExecuteBacktest_With_Two_Scenarios_Should_Show_Performance_Telemetry,576028957 576028743,1.99 2.00,2895.7 2874,3,15.30,11.20,24.91,0.0,0,0.0,0.0,0.0,0.0,2018.27 (Expected: 2018.27),40 (Expected: 40%),2.02 (Expected: 2.02%),19181918,90341369,dev,development -2025-11-11T07:08:48Z,ExecuteBacktest_With_Two_Scenarios_Should_Show_Performance_Telemetry,576020748 576020540,2.78 2.80,2074.8 2054,0,15.27,11.13,24.95,0.0,0,0.0,0.0,0.0,0.0,2018.27 (Expected: 2018.27),40 (Expected: 40%),2.02 (Expected: 2.02%),19181918,90341369,dev,development -2025-11-11T07:09:35Z,ExecuteBacktest_With_Two_Scenarios_Should_Show_Performance_Telemetry,576019355 576019187,2.98 3.00,1935.5 1918,7,15.28,11.27,23.74,0.0,0,0.0,0.0,0.0,0.0,2018.27 (Expected: 2018.27),40 (Expected: 40%),2.02 (Expected: 2.02%),19181918,90341369,dev,development -2025-11-11T07:10:15Z,ExecuteBacktest_With_Two_Scenarios_Should_Show_Performance_Telemetry,576031357 576031098,1.84 1.85,3135.7 3109,8,15.29,11.08,24.89,0.0,0,0.0,0.0,0.0,0.0,2018.27 (Expected: 2018.27),40 (Expected: 40%),2.02 (Expected: 2.02%),19181918,90341369,dev,development -2025-11-11T07:10:55Z,ExecuteBacktest_With_Two_Scenarios_Should_Show_Performance_Telemetry,576034016 576033795,1.69 1.70,3401.6 3379,5,15.27,11.27,23.74,0.0,0,0.0,0.0,0.0,0.0,2018.27 (Expected: 2018.27),40 (Expected: 40%),2.02 (Expected: 2.02%),19181918,90341369,dev,development -2025-11-11T07:14:07Z,ExecuteBacktest_With_Two_Scenarios_Should_Show_Performance_Telemetry,576029692 576029392,1.94 1.96,2969.2 2939,2,15.26,10.16,23.73,0.0,0,0.0,0.0,0.0,0.0,2018.27 (Expected: 2018.27),40 (Expected: 40%),2.02 (Expected: 2.02%),19191918,90341369,dev,development -2025-11-11T07:15:11Z,ExecuteBacktest_With_Two_Scenarios_Should_Show_Performance_Telemetry,576018866 576018800,3.05 3.06,1886.6 1880,0,15.71,10.54,24.24,0.0,0,0.0,0.0,0.0,0.0,2018.27 (Expected: 2018.27),40 (Expected: 40%),2.02 (Expected: 2.02%),19181918,90341369,dev,development +2025-11-11T06:53:40Z,Telemetry_ETH_RSI_EMACROSS,5760,1.52,3792.6,15.26,11.35,23.73,0.0,0,0.0,0.0,0.0,0.0,2018.27,40,2.02,19.18,e810ab60,dev,development +2025-11-11T06:58:31Z,Telemetry_ETH_RSI_EMACROSS,5760,1.48,3890.4,15.27,11.03,23.74,0.0,0,0.0,0.0,0.0,0.0,2018.27,40,2.02,19.18,e810ab60,dev,development +2025-11-11T07:03:00Z,Telemetry_ETH_RSI_EMACROSS,5760,1.70,3395.4,15.29,11.00,23.75,0.0,0,0.0,0.0,0.0,0.0,2018.27,40,2.02,19.18,e810ab60,dev,development +2025-11-11T07:07:23Z,Telemetry_ETH_RSI_EMACROSS,5760,1.99,2895.7,15.30,11.20,24.91,0.0,0,0.0,0.0,0.0,0.0,2018.27,40,2.02,19.18,90341369,dev,development +2025-11-11T07:08:48Z,Telemetry_ETH_RSI_EMACROSS,5760,2.78,2074.8,15.27,11.13,24.95,0.0,0,0.0,0.0,0.0,0.0,2018.27,40,2.02,19.18,90341369,dev,development +2025-11-11T07:09:35Z,Telemetry_ETH_RSI_EMACROSS,5760,2.98,1935.5,15.28,11.27,23.74,0.0,0,0.0,0.0,0.0,0.0,2018.27,40,2.02,19.18,90341369,dev,development +2025-11-11T07:10:15Z,Telemetry_ETH_RSI_EMACROSS,5760,1.84,3135.7,15.29,11.08,24.89,0.0,0,0.0,0.0,0.0,0.0,2018.27,40,2.02,19.18,90341369,dev,development +2025-11-11T07:10:55Z,Telemetry_ETH_RSI_EMACROSS,5760,1.69,3401.6,15.27,11.27,23.74,0.0,0,0.0,0.0,0.0,0.0,2018.27,40,2.02,19.18,90341369,dev,development +2025-11-11T07:14:07Z,Telemetry_ETH_RSI_EMACROSS,5760,1.94,2969.2,15.26,10.16,23.73,0.0,0,0.0,0.0,0.0,0.0,2018.27,40,2.02,19.18,90341369,dev,development +2025-11-11T07:15:11Z,Telemetry_ETH_RSI_EMACROSS,5760,3.05,1886.6,15.71,10.54,24.24,0.0,0,0.0,0.0,0.0,0.0,2018.27,40,2.02,19.18,90341369,dev,development +2025-11-12T13:40:48Z,Telemetry_ETH_RSI_EMACROSS,5760,6.78,849.3,15.28,17.38,24.12,0.0,0,0.0,0.0,0.0,0.0,-53491.95,20,-53.49,0.00,e0d21115,dev,development +2025-11-12T13:49:57Z,Telemetry_ETH_RSI_EMACROSS,5760,3.56,1618.6,15.26,17.44,23.51,0.0,0,0.0,0.0,0.0,0.0,-53491.95,20,-53.49,0.00,e0d21115,dev,development +2025-11-12T13:56:26Z,Telemetry_ETH_RSI_EMACROSS,5760,6.32,910.9,15.26,15.84,23.13,0.0,0,0.0,0.0,0.0,0.0,-53491.95,20,-53.49,0.00,e0d21115,dev,development diff --git a/src/Managing.Workers.Tests/performance-benchmarks.csv b/src/Managing.Workers.Tests/performance-benchmarks.csv index 03757e3e..37cbd9f3 100644 --- a/src/Managing.Workers.Tests/performance-benchmarks.csv +++ b/src/Managing.Workers.Tests/performance-benchmarks.csv @@ -1,53 +1,56 @@ DateTime,TestName,CandlesCount,ExecutionTimeSeconds,ProcessingRateCandlesPerSec,MemoryStartMB,MemoryEndMB,MemoryPeakMB,SignalUpdatesCount,SignalUpdatesSkipped,SignalUpdateEfficiencyPercent,BacktestStepsCount,AverageSignalUpdateMs,AverageBacktestStepMs,FinalPnL,WinRatePercent,GrowthPercentage,Score,CommitHash,GitBranch,Environment -2025-11-11T12:00:00Z,ExecuteBacktest_With_Large_Dataset_Should_Show_Performance_Telemetry,5760,2.15,2684.8,16.05,23.90,24.24,7706,3814,33.1,5760,0.26,0.01,24560.79,38,24.56,60.15,14bc98d5,dev,development -2025-11-11T04:14:08Z,ExecuteBacktest_With_Large_Dataset_Should_Show_Performance_Telemetry,5760,2.54,2244.2,15.27,24.08,23.72,2207.52,3814,33.1,200.48,0.29,0.03,4010.63,28,4.01,3.34,14bc98d5,dev,development -2025-11-11T04:14:39Z,ExecuteBacktest_With_Large_Dataset_Should_Show_Performance_Telemetry,5760,2.73,2091.2,15.26,24.36,23.99,2102.66,3814,33.1,372.82,0.27,0.06,4010.63,28,4.01,3.34,b0b757b1,dev,development -2025-11-11T04:16:43Z,ExecuteBacktest_With_Large_Dataset_Should_Show_Performance_Telemetry,5760,1.87,3061.1,15.26,23.95,23.67,1600.09,3814,33.1,115.52,0.21,0.02,4010.63,28,4.01,3.34,e5caf1cd,dev,development -2025-11-11T04:26:29Z,ExecuteBacktest_With_Large_Dataset_Should_Show_Performance_Telemetry,5760,1.20,4782.4,15.26,18.01,23.47,1068.51,3814,33.1,53.69,0.14,0.01,-2431.04,54,-2.43,0.00,14d101b6,dev,development -2025-11-11T04:31:06Z,ExecuteBacktest_With_Large_Dataset_Should_Show_Performance_Telemetry,5760,2.14 2.17,2658.3,15.28,17.89,23.73,1875.99,3814,33.1,123.31,0.24,0.02,-2431.04,54,-2.43,0.00,47911c28,dev,development -2025-11-11T04:32:55Z,ExecuteBacktest_With_Large_Dataset_Should_Show_Performance_Telemetry,5760,1.41 1.43,40376,15.26,17.79,23.47,1186.69,3814,33.1,90.22,0.15,0.02,-243104,54,-243,000,47911c28,dev,development -2025-11-11T04:34:42Z,ExecuteBacktest_With_Large_Dataset_Should_Show_Performance_Telemetry,5760,2.61 2.63,2186.0,15.26,17.85,23.73,2329.99,3814,33.1,134.43,0.30,0.02,-2431.04,54,-2.43,0.00,47911c28,dev,development -2025-11-11T04:35:43Z,ExecuteBacktest_With_Large_Dataset_Should_Show_Performance_Telemetry,5760,1.845,3104.7,15.26,17.82,23.73,1586.43,3814,33.1,106.98,0.21,0.02,-2431.04,54,-2.43,000,47911c28,dev,development -2025-11-11T04:37:04Z,ExecuteBacktest_With_Large_Dataset_Should_Show_Performance_Telemetry,5760,2.115,2686.2,15.71,17.55,23.91,1762.82,3814,33.1,178.50,0.23,0.03,-2431.04,54,-2.43,0.00,567de2e5,dev,development -2025-11-11T04:41:15Z,ExecuteBacktest_With_Large_Dataset_Should_Show_Performance_Telemetry,5760,1.185,4835.7,15.26,18.02,23.47,1031.96,3814,33.1,73.13,0.13,0.01,-2431.04,54,-2.43,0.00,2a0fbf9b,dev,development -2025-11-11T04:43:07Z,ExecuteBacktest_With_Large_Dataset_Should_Show_Performance_Telemetry,5760,1.515,3780.7,15.27,17.97,23.71,1356.28,3814,33.1,75.68,0.18,0.01,-2431.04,54,-2.43,0.00,2a0fbf9b,dev,development -2025-11-11T04:44:55Z,ExecuteBacktest_With_Large_Dataset_Should_Show_Performance_Telemetry,5760,1.205,4763.7,15.27,22.29,23.54,1051.53,3828,33.2,73.41,0.14,0.01,-926.35,54,-0.93,0.00,2a0fbf9b,dev,development -2025-11-11T04:45:58Z,ExecuteBacktest_With_Large_Dataset_Should_Show_Performance_Telemetry,5760,1.355,4225.9,15.25,22.63,23.51,1206.02,3828,33.2,73.26,0.16,0.01,-926.35,54,-0.93,0.00,2a0fbf9b,dev,development -2025-11-11T04:47:41Z,ExecuteBacktest_With_Large_Dataset_Should_Show_Performance_Telemetry,5760,2.245,2561.0,15.26,22.13,23.55,1985.06,3828,33.2,123.63,0.26,0.02,-926.35,54,-0.93,0.00,2a0fbf9b,dev,development -2025-11-11T04:52:39Z,ExecuteBacktest_With_Large_Dataset_Should_Show_Performance_Telemetry,5760,1.115,5152.6,15.26,13.71,24.64,963.17,3828,33.2,77.20,0.13,0.01,24560.79,38,24.56,6015,2a0fbf9b,dev,development -2025-11-11T04:53:16Z,ExecuteBacktest_With_Large_Dataset_Should_Show_Performance_Telemetry,5760,1.455,3933.6,15.26,13.56,25.20,1240.30,3828,33.2,112.03,0.16,0.02,24560.79,38,24.56,6015,2a0fbf9b,dev,development -2025-11-11T04:56:15Z,ExecuteBacktest_With_Large_Dataset_Should_Show_Performance_Telemetry,5760,2.14,2683.2,15.27,13.85,25.18,1763.50,3828,33.2,204.74,0.23,0.04,24560.79,38,24.56,6015,2a0fbf9b,dev,development -2025-11-11T04:57:14Z,ExecuteBacktest_With_Large_Dataset_Should_Show_Performance_Telemetry,5760,1.99,2883.5,15.26,13.73,25.11,1589.82,3828,33.2,258.98,0.21,0.04,24560.79,38,24.56,6015,2a0fbf9b,dev,development -2025-11-11T04:59:09Z,ExecuteBacktest_With_Large_Dataset_Should_Show_Performance_Telemetry,5760,2.695,2127.6,15.26,13.64,24.65,2283.69,3828,33.2,209.33,0.30,0.04,24560.79,38,24.56,6015,2a0fbf9b,dev,development -2025-11-11T05:13:30Z,ExecuteBacktest_With_Large_Dataset_Should_Show_Performance_Telemetry,5760,2.49,2300.8,15.27,13.68,25.14,2085.01,3828,33.2,232.91,0.27,0.04,24560.79,38,24.56,6015,2a0fbf9b,dev,development -2025-11-11T05:18:07Z,ExecuteBacktest_With_Large_Dataset_Should_Show_Performance_Telemetry,5760,1.325,4316.5,15.25,13.83,24.63,1119.29,3828,33.2,112.94,0.15,0.02,24560.79,38,24.56,6015,1792cd23,dev,development -2025-11-11T05:21:03Z,ExecuteBacktest_With_Large_Dataset_Should_Show_Performance_Telemetry,5760,1.015,5659.9,15.27,10.17,24.65,886.92,3828,33.2,58.10,0.12,0.01,24560.79,38,24.56,6015,1792cd23,dev,development -2025-11-11T05:22:42Z,ExecuteBacktest_With_Large_Dataset_Should_Show_Performance_Telemetry,5760,1.025,5602.9,15.26,10.15,24.61,898.21,3828,33.2,58.23,0.12,0.01,24560.79,38,24.56,6015,46966cc5,dev,development -2025-11-11T05:24:05Z,ExecuteBacktest_With_Large_Dataset_Should_Show_Performance_Telemetry,5760,2.73,2099.4,15.27,11.24,25.12,2350.71,3828,33.2,172.82,0.31,0.03,24560.79,38,24.56,6015,46966cc5,dev,development -2025-11-11T05:24:53Z,ExecuteBacktest_With_Large_Dataset_Should_Show_Performance_Telemetry,5760,1.82,3151.4,15.26,11.16,24.64,1547.05,3828,33.2,128.87,0.20,0.02,24560.79,38,24.56,6015,46966cc5,dev,development -2025-11-11T05:25:48Z,ExecuteBacktest_With_Large_Dataset_Should_Show_Performance_Telemetry,5760,1.87,3069.1,15.26,11.10,24.65,1634.11,3828,33.2,118.83,0.21,0.02,24560.79,38,24.56,6015,46966cc5,dev,development -2025-11-11T05:26:29Z,ExecuteBacktest_With_Large_Dataset_Should_Show_Performance_Telemetry,5760,1.265,4533.9,15.27,11.26,24.66,1075.57,3828,33.2,89.65,0.14,0.02,24560.79,38,24.56,6015,46966cc5,dev,development -2025-11-11T05:27:07Z,ExecuteBacktest_With_Large_Dataset_Should_Show_Performance_Telemetry,5760,1.005,5688.8,15.26,10.17,24.66,875.93,3828,33.2,61.25,0.11,0.01,24560.79,38,24.56,6015,61fdcec9,dev,development -2025-11-11T05:31:12Z,ExecuteBacktest_With_Large_Dataset_Should_Show_Performance_Telemetry,5760,2.175,2637.3,15.26,10.76,25.26,1805.96,3828,33.2,229.60,0.23,0.04,24560.79,38,24.56,6015,578709d9,dev,development -2025-11-11T05:41:24Z,ExecuteBacktest_With_Large_Dataset_Should_Show_Performance_Telemetry,5760,0.955,6015.5,15.26,10.12,24.63,832.39,3828,33.2,58.02,0.11,0.01,24560.79,38,24.56,6015,fc0ce053,dev,development -2025-11-11T05:50:25Z,ExecuteBacktest_With_Large_Dataset_Should_Show_Performance_Telemetry,5760,0.915,6292.9,15.27,11.04,23.72,770.66,3828,66.5,69.13,0.40,0.01,24560.79,38,24.56,6015,c66f6279,dev,development -2025-11-11T05:52:21Z,ExecuteBacktest_With_Large_Dataset_Should_Show_Performance_Telemetry,5760,1.045,5475.3,15.27,11.30,23.71,907.47,3828,66.5,64.87,0.47,0.01,24560.79,38,24.56,6015,c66f6279,dev,development -2025-11-11T05:54:40Z,ExecuteBacktest_With_Large_Dataset_Should_Show_Performance_Telemetry,5760,1.445,3959.3,15.26,11.11,23.72,1222.26,3828,66.5,111.35,0.63,0.02,24560.79,38,24.56,6015,c66f6279,dev,development -2025-11-11T06:10:59Z,ExecuteBacktest_With_Large_Dataset_Should_Show_Performance_Telemetry,5760,1.22,4683.2,15.26,10.84,23.72,1048.26,3828,66.5,79.79,0.54,0.01,24560.79,38,24.56,6015,e810ab60,dev,development -2025-11-11T06:15:18Z,ExecuteBacktest_With_Large_Dataset_Should_Show_Performance_Telemetry,5760,1.85,3102.1,15.78,14.48,24.59,1559.17,3828,66.5,142.94,0.81,0.02,24560.79,38,24.56,6015,e810ab60,dev,development -2025-11-11T06:16:50Z,ExecuteBacktest_With_Large_Dataset_Should_Show_Performance_Telemetry,5760,1.58,3629.2,15.26,15.20,24.06,1386.27,3828,66.5,101.01,0.72,0.02,24560.79,38,24.56,6015,e810ab60,dev,development -2025-11-11T06:22:25Z,ExecuteBacktest_With_Large_Dataset_Should_Show_Performance_Telemetry,5760,1.445,3966.6,15.26,10.45,24.60,1256.25,3828,66.5,109.62,0.65,0.02,24560.79,38,24.56,6015,e810ab60,dev,development -2025-11-11T06:23:44Z,ExecuteBacktest_With_Large_Dataset_Should_Show_Performance_Telemetry,5760,1.265,4544.2,15.26,11.24,23.71,1023.42,3828,66.5,80.77,0.53,0.01,24560.79,38,24.56,6015,e810ab60,dev,development -2025-11-11T06:41:40Z,ExecuteBacktest_With_Large_Dataset_Should_Show_Performance_Telemetry,5760,0.835,6870.8,15.27,10.21,23.73,720.71,3828,66.5,52.24,0.37,0.01,24560.79,38,24.56,6015,e810ab60,dev,development -2025-11-11T06:44:52Z,ExecuteBacktest_With_Large_Dataset_Should_Show_Performance_Telemetry,5760,1.095,5217.4,15.26,11.07,23.72,945.37,3828,66.5,72.77,0.49,0.01,24560.79,38,24.56,6015,e810ab60,dev,development -2025-11-11T06:45:12Z,ExecuteBacktest_With_Large_Dataset_Should_Show_Performance_Telemetry,5760,1.07,5356.7,15.26,11.18,23.73,897.94,3828,66.5,91.98,0.46,0.02,24560.79,38,24.56,6015,e810ab60,dev,development -2025-11-11T06:53:40Z,ExecuteBacktest_With_Large_Dataset_Should_Show_Performance_Telemetry,5760,1.12,5112.2,15.26,11.35,23.73,927.80,3828,66.5,78.67,0.48,0.01,24560.79,38,24.56,6015,e810ab60,dev,development -2025-11-11T06:58:31Z,ExecuteBacktest_With_Large_Dataset_Should_Show_Performance_Telemetry,5760,1.55,3699.6,15.27,11.03,23.74,1319.91,3828,66.5,117.22,0.68,0.02,24560.79,38,24.56,6015,e810ab60,dev,development -2025-11-11T07:03:00Z,ExecuteBacktest_With_Large_Dataset_Should_Show_Performance_Telemetry,5760,2.11,2720.5,15.29,11.00,23.75,1780.10,3828,66.5,145.96,0.92,0.03,24560.79,38,24.56,6015,e810ab60,dev,development -2025-11-11T07:07:23Z,ExecuteBacktest_With_Large_Dataset_Should_Show_Performance_Telemetry,5760,5.115,1123.6,15.30,11.20,24.91,4447.27,3828,66.5,326.88,2.30,0.06,24560.79,38,24.56,6015,90341369,dev,development -2025-11-11T07:08:48Z,ExecuteBacktest_With_Large_Dataset_Should_Show_Performance_Telemetry,5760,1.5,3827.1,15.27,11.13,24.95,1241.94,3828,66.5,128.70,0.64,0.02,24560.79,38,24.56,6015,90341369,dev,development -2025-11-11T07:09:35Z,ExecuteBacktest_With_Large_Dataset_Should_Show_Performance_Telemetry,5760,1.015,5645.1,15.28,11.27,23.74,882.37,3828,66.5,62.61,0.46,0.01,24560.79,38,24.56,6015,90341369,dev,development -2025-11-11T07:10:15Z,ExecuteBacktest_With_Large_Dataset_Should_Show_Performance_Telemetry,5760,1.985,2883.0,15.29,11.08,24.89,1662.32,3828,66.5,166.71,0.86,0.03,24560.79,38,24.56,6015,90341369,dev,development -2025-11-11T07:10:55Z,ExecuteBacktest_With_Large_Dataset_Should_Show_Performance_Telemetry,5760,1.45,3954.1,15.27,11.27,23.74,1256.06,3828,66.5,94.29,0.65,0.02,24560.79,38,24.56,6015,90341369,dev,development -2025-11-11T07:14:07Z,ExecuteBacktest_With_Large_Dataset_Should_Show_Performance_Telemetry,5760,0.815,7020.8,15.26,10.16,23.73,697.23,3828,66.5,53.42,0.36,0.01,24560.79,38,24.56,6016,90341369,dev,development -2025-11-11T07:15:11Z,ExecuteBacktest_With_Large_Dataset_Should_Show_Performance_Telemetry,5760,1.76,3256.6,15.71,10.54,24.24,1411.34,3828,66.5,208.73,0.73,0.04,24560.79,38,24.56,6015,90341369,dev,development +2025-11-11T12:00:00Z,Telemetry_ETH_RSI,5760,2.15,2684.8,16.05,23.90,24.24,7706,3814,33.1,5760,0.26,0.01,24560.79,38,24.56,60.15,14bc98d5,dev,development +2025-11-11T04:14:08Z,Telemetry_ETH_RSI,5760,2.54,2244.2,15.27,24.08,23.72,2207.52,3814,33.1,200.48,0.29,0.03,4010.63,28,4.01,3.34,14bc98d5,dev,development +2025-11-11T04:14:39Z,Telemetry_ETH_RSI,5760,2.73,2091.2,15.26,24.36,23.99,2102.66,3814,33.1,372.82,0.27,0.06,4010.63,28,4.01,3.34,b0b757b1,dev,development +2025-11-11T04:16:43Z,Telemetry_ETH_RSI,5760,1.87,3061.1,15.26,23.95,23.67,1600.09,3814,33.1,115.52,0.21,0.02,4010.63,28,4.01,3.34,e5caf1cd,dev,development +2025-11-11T04:26:29Z,Telemetry_ETH_RSI,5760,1.20,4782.4,15.26,18.01,23.47,1068.51,3814,33.1,53.69,0.14,0.01,-2431.04,54,-2.43,0.00,14d101b6,dev,development +2025-11-11T04:31:06Z,Telemetry_ETH_RSI,5760,2.14 2.17,2658.3,15.28,17.89,23.73,1875.99,3814,33.1,123.31,0.24,0.02,-2431.04,54,-2.43,0.00,47911c28,dev,development +2025-11-11T04:32:55Z,Telemetry_ETH_RSI,5760,1.41 1.43,40376,15.26,17.79,23.47,1186.69,3814,33.1,90.22,0.15,0.02,-243104,54,-243,000,47911c28,dev,development +2025-11-11T04:34:42Z,Telemetry_ETH_RSI,5760,2.61 2.63,2186.0,15.26,17.85,23.73,2329.99,3814,33.1,134.43,0.30,0.02,-2431.04,54,-2.43,0.00,47911c28,dev,development +2025-11-11T04:35:43Z,Telemetry_ETH_RSI,5760,1.845,3104.7,15.26,17.82,23.73,1586.43,3814,33.1,106.98,0.21,0.02,-2431.04,54,-2.43,000,47911c28,dev,development +2025-11-11T04:37:04Z,Telemetry_ETH_RSI,5760,2.115,2686.2,15.71,17.55,23.91,1762.82,3814,33.1,178.50,0.23,0.03,-2431.04,54,-2.43,0.00,567de2e5,dev,development +2025-11-11T04:41:15Z,Telemetry_ETH_RSI,5760,1.185,4835.7,15.26,18.02,23.47,1031.96,3814,33.1,73.13,0.13,0.01,-2431.04,54,-2.43,0.00,2a0fbf9b,dev,development +2025-11-11T04:43:07Z,Telemetry_ETH_RSI,5760,1.515,3780.7,15.27,17.97,23.71,1356.28,3814,33.1,75.68,0.18,0.01,-2431.04,54,-2.43,0.00,2a0fbf9b,dev,development +2025-11-11T04:44:55Z,Telemetry_ETH_RSI,5760,1.205,4763.7,15.27,22.29,23.54,1051.53,3828,33.2,73.41,0.14,0.01,-926.35,54,-0.93,0.00,2a0fbf9b,dev,development +2025-11-11T04:45:58Z,Telemetry_ETH_RSI,5760,1.355,4225.9,15.25,22.63,23.51,1206.02,3828,33.2,73.26,0.16,0.01,-926.35,54,-0.93,0.00,2a0fbf9b,dev,development +2025-11-11T04:47:41Z,Telemetry_ETH_RSI,5760,2.245,2561.0,15.26,22.13,23.55,1985.06,3828,33.2,123.63,0.26,0.02,-926.35,54,-0.93,0.00,2a0fbf9b,dev,development +2025-11-11T04:52:39Z,Telemetry_ETH_RSI,5760,1.115,5152.6,15.26,13.71,24.64,963.17,3828,33.2,77.20,0.13,0.01,24560.79,38,24.56,6015,2a0fbf9b,dev,development +2025-11-11T04:53:16Z,Telemetry_ETH_RSI,5760,1.455,3933.6,15.26,13.56,25.20,1240.30,3828,33.2,112.03,0.16,0.02,24560.79,38,24.56,6015,2a0fbf9b,dev,development +2025-11-11T04:56:15Z,Telemetry_ETH_RSI,5760,2.14,2683.2,15.27,13.85,25.18,1763.50,3828,33.2,204.74,0.23,0.04,24560.79,38,24.56,6015,2a0fbf9b,dev,development +2025-11-11T04:57:14Z,Telemetry_ETH_RSI,5760,1.99,2883.5,15.26,13.73,25.11,1589.82,3828,33.2,258.98,0.21,0.04,24560.79,38,24.56,6015,2a0fbf9b,dev,development +2025-11-11T04:59:09Z,Telemetry_ETH_RSI,5760,2.695,2127.6,15.26,13.64,24.65,2283.69,3828,33.2,209.33,0.30,0.04,24560.79,38,24.56,6015,2a0fbf9b,dev,development +2025-11-11T05:13:30Z,Telemetry_ETH_RSI,5760,2.49,2300.8,15.27,13.68,25.14,2085.01,3828,33.2,232.91,0.27,0.04,24560.79,38,24.56,6015,2a0fbf9b,dev,development +2025-11-11T05:18:07Z,Telemetry_ETH_RSI,5760,1.325,4316.5,15.25,13.83,24.63,1119.29,3828,33.2,112.94,0.15,0.02,24560.79,38,24.56,6015,1792cd23,dev,development +2025-11-11T05:21:03Z,Telemetry_ETH_RSI,5760,1.015,5659.9,15.27,10.17,24.65,886.92,3828,33.2,58.10,0.12,0.01,24560.79,38,24.56,6015,1792cd23,dev,development +2025-11-11T05:22:42Z,Telemetry_ETH_RSI,5760,1.025,5602.9,15.26,10.15,24.61,898.21,3828,33.2,58.23,0.12,0.01,24560.79,38,24.56,6015,46966cc5,dev,development +2025-11-11T05:24:05Z,Telemetry_ETH_RSI,5760,2.73,2099.4,15.27,11.24,25.12,2350.71,3828,33.2,172.82,0.31,0.03,24560.79,38,24.56,6015,46966cc5,dev,development +2025-11-11T05:24:53Z,Telemetry_ETH_RSI,5760,1.82,3151.4,15.26,11.16,24.64,1547.05,3828,33.2,128.87,0.20,0.02,24560.79,38,24.56,6015,46966cc5,dev,development +2025-11-11T05:25:48Z,Telemetry_ETH_RSI,5760,1.87,3069.1,15.26,11.10,24.65,1634.11,3828,33.2,118.83,0.21,0.02,24560.79,38,24.56,6015,46966cc5,dev,development +2025-11-11T05:26:29Z,Telemetry_ETH_RSI,5760,1.265,4533.9,15.27,11.26,24.66,1075.57,3828,33.2,89.65,0.14,0.02,24560.79,38,24.56,6015,46966cc5,dev,development +2025-11-11T05:27:07Z,Telemetry_ETH_RSI,5760,1.005,5688.8,15.26,10.17,24.66,875.93,3828,33.2,61.25,0.11,0.01,24560.79,38,24.56,6015,61fdcec9,dev,development +2025-11-11T05:31:12Z,Telemetry_ETH_RSI,5760,2.175,2637.3,15.26,10.76,25.26,1805.96,3828,33.2,229.60,0.23,0.04,24560.79,38,24.56,6015,578709d9,dev,development +2025-11-11T05:41:24Z,Telemetry_ETH_RSI,5760,0.955,6015.5,15.26,10.12,24.63,832.39,3828,33.2,58.02,0.11,0.01,24560.79,38,24.56,6015,fc0ce053,dev,development +2025-11-11T05:50:25Z,Telemetry_ETH_RSI,5760,0.915,6292.9,15.27,11.04,23.72,770.66,3828,66.5,69.13,0.40,0.01,24560.79,38,24.56,6015,c66f6279,dev,development +2025-11-11T05:52:21Z,Telemetry_ETH_RSI,5760,1.045,5475.3,15.27,11.30,23.71,907.47,3828,66.5,64.87,0.47,0.01,24560.79,38,24.56,6015,c66f6279,dev,development +2025-11-11T05:54:40Z,Telemetry_ETH_RSI,5760,1.445,3959.3,15.26,11.11,23.72,1222.26,3828,66.5,111.35,0.63,0.02,24560.79,38,24.56,6015,c66f6279,dev,development +2025-11-11T06:10:59Z,Telemetry_ETH_RSI,5760,1.22,4683.2,15.26,10.84,23.72,1048.26,3828,66.5,79.79,0.54,0.01,24560.79,38,24.56,6015,e810ab60,dev,development +2025-11-11T06:15:18Z,Telemetry_ETH_RSI,5760,1.85,3102.1,15.78,14.48,24.59,1559.17,3828,66.5,142.94,0.81,0.02,24560.79,38,24.56,6015,e810ab60,dev,development +2025-11-11T06:16:50Z,Telemetry_ETH_RSI,5760,1.58,3629.2,15.26,15.20,24.06,1386.27,3828,66.5,101.01,0.72,0.02,24560.79,38,24.56,6015,e810ab60,dev,development +2025-11-11T06:22:25Z,Telemetry_ETH_RSI,5760,1.445,3966.6,15.26,10.45,24.60,1256.25,3828,66.5,109.62,0.65,0.02,24560.79,38,24.56,6015,e810ab60,dev,development +2025-11-11T06:23:44Z,Telemetry_ETH_RSI,5760,1.265,4544.2,15.26,11.24,23.71,1023.42,3828,66.5,80.77,0.53,0.01,24560.79,38,24.56,6015,e810ab60,dev,development +2025-11-11T06:41:40Z,Telemetry_ETH_RSI,5760,0.835,6870.8,15.27,10.21,23.73,720.71,3828,66.5,52.24,0.37,0.01,24560.79,38,24.56,6015,e810ab60,dev,development +2025-11-11T06:44:52Z,Telemetry_ETH_RSI,5760,1.095,5217.4,15.26,11.07,23.72,945.37,3828,66.5,72.77,0.49,0.01,24560.79,38,24.56,6015,e810ab60,dev,development +2025-11-11T06:45:12Z,Telemetry_ETH_RSI,5760,1.07,5356.7,15.26,11.18,23.73,897.94,3828,66.5,91.98,0.46,0.02,24560.79,38,24.56,6015,e810ab60,dev,development +2025-11-11T06:53:40Z,Telemetry_ETH_RSI,5760,1.12,5112.2,15.26,11.35,23.73,927.80,3828,66.5,78.67,0.48,0.01,24560.79,38,24.56,6015,e810ab60,dev,development +2025-11-11T06:58:31Z,Telemetry_ETH_RSI,5760,1.55,3699.6,15.27,11.03,23.74,1319.91,3828,66.5,117.22,0.68,0.02,24560.79,38,24.56,6015,e810ab60,dev,development +2025-11-11T07:03:00Z,Telemetry_ETH_RSI,5760,2.11,2720.5,15.29,11.00,23.75,1780.10,3828,66.5,145.96,0.92,0.03,24560.79,38,24.56,6015,e810ab60,dev,development +2025-11-11T07:07:23Z,Telemetry_ETH_RSI,5760,5.115,1123.6,15.30,11.20,24.91,4447.27,3828,66.5,326.88,2.30,0.06,24560.79,38,24.56,6015,90341369,dev,development +2025-11-11T07:08:48Z,Telemetry_ETH_RSI,5760,1.5,3827.1,15.27,11.13,24.95,1241.94,3828,66.5,128.70,0.64,0.02,24560.79,38,24.56,6015,90341369,dev,development +2025-11-11T07:09:35Z,Telemetry_ETH_RSI,5760,1.015,5645.1,15.28,11.27,23.74,882.37,3828,66.5,62.61,0.46,0.01,24560.79,38,24.56,6015,90341369,dev,development +2025-11-11T07:10:15Z,Telemetry_ETH_RSI,5760,1.985,2883.0,15.29,11.08,24.89,1662.32,3828,66.5,166.71,0.86,0.03,24560.79,38,24.56,6015,90341369,dev,development +2025-11-11T07:10:55Z,Telemetry_ETH_RSI,5760,1.45,3954.1,15.27,11.27,23.74,1256.06,3828,66.5,94.29,0.65,0.02,24560.79,38,24.56,6015,90341369,dev,development +2025-11-11T07:14:07Z,Telemetry_ETH_RSI,5760,0.815,7020.8,15.26,10.16,23.73,697.23,3828,66.5,53.42,0.36,0.01,24560.79,38,24.56,6016,90341369,dev,development +2025-11-11T07:15:11Z,Telemetry_ETH_RSI,5760,1.76,3256.6,15.71,10.54,24.24,1411.34,3828,66.5,208.73,0.73,0.04,24560.79,38,24.56,6015,90341369,dev,development +2025-11-12T13:40:48Z,Telemetry_ETH_RSI,5760,2.305,2474.7,15.28,17.38,24.12,0.00,0,0.0,2185.37,0.00,0.38,-53135.25,24,-53.14,0.00,e0d21115,dev,development +2025-11-12T13:49:57Z,Telemetry_ETH_RSI,5760,1.485,3865.0,15.26,17.44,23.51,0.00,0,0.0,1424.06,0.00,0.25,-53135.25,24,-53.14,0.00,e0d21115,dev,development +2025-11-12T13:56:26Z,Telemetry_ETH_RSI,5760,1.925,2987.3,15.27,17.26,23.77,0.00,0,0.0,1860.19,0.00,0.32,-53135.25,24,-53.14,0.00,e0d21115,dev,development