mirror of
https://github.com/softwaredevelop/mql5.git
synced 2026-07-27 20:47:44 +00:00
77 lines
3.5 KiB
Plaintext
77 lines
3.5 KiB
Plaintext
//+------------------------------------------------------------------+
|
|
//| Hardware_Diagnostic_Pro.mq5 |
|
|
//| Copyright 2026, xxxxxxxx|
|
|
//+------------------------------------------------------------------+
|
|
#property copyright "Copyright 2026, xxxxxxxx"
|
|
#property version "1.20" // Benchmark and diagnostic utility
|
|
#property description "QuantScan Hardware Diagnostic & Math Performance Script"
|
|
#property script_show_inputs
|
|
|
|
//--- Input parameters
|
|
input int InpStressIterations = 10000000; // Math Stress Test Iterations (e.g. 10M)
|
|
|
|
//+------------------------------------------------------------------+
|
|
//| OnStart |
|
|
//+------------------------------------------------------------------+
|
|
void OnStart()
|
|
{
|
|
Print("====================================================================");
|
|
Print(" QUANTSCAN HARDWARE DIAGNOSTIC REPORT ");
|
|
Print("====================================================================");
|
|
|
|
//--- Gather and print Terminal Information
|
|
string terminal_company = TerminalInfoString(TERMINAL_COMPANY);
|
|
string terminal_name = TerminalInfoString(TERMINAL_NAME);
|
|
string terminal_path = TerminalInfoString(TERMINAL_PATH);
|
|
int terminal_build = (int)TerminalInfoInteger(TERMINAL_BUILD);
|
|
bool is_connected = (bool)TerminalInfoInteger(TERMINAL_CONNECTED);
|
|
|
|
PrintFormat("Terminal: %s | %s (Build %d)", terminal_company, terminal_name, terminal_build);
|
|
PrintFormat("Data Path: %s", terminal_path);
|
|
PrintFormat("Network Connection Status: %s", is_connected ? "CONNECTED" : "DISCONNECTED");
|
|
|
|
//--- Gather and print Environment Information
|
|
string symbol = _Symbol;
|
|
string timeframe = EnumToString(_Period);
|
|
int digits = _Digits;
|
|
double point = _Point;
|
|
|
|
PrintFormat("Active Chart: %s (%s) | Digits: %d | Point Size: %s",
|
|
symbol, timeframe, digits, DoubleToString(point, digits));
|
|
|
|
Print("--------------------------------------------------------------------");
|
|
Print(" MATH PERFORMANCE BENCHMARK (SIMD SPEED TEST) ");
|
|
Print("--------------------------------------------------------------------");
|
|
PrintFormat("Executing %d iterations of floating-point math operations...", InpStressIterations);
|
|
|
|
//--- Start high-precision microsecond timer
|
|
ulong start_time = GetMicrosecondCount();
|
|
|
|
double accumulator = 1.23456789;
|
|
|
|
//--- Heavy mathematical loop to stress CPU vector registers
|
|
for(int i = 0; i < InpStressIterations; i++)
|
|
{
|
|
accumulator = MathSin(accumulator) + MathCos(accumulator);
|
|
accumulator = MathLog(MathAbs(accumulator) + 1.0001);
|
|
|
|
//--- Prevents loop optimizer from completely bypassing the calculation
|
|
if(accumulator > 1000.0)
|
|
accumulator = 1.23456789;
|
|
}
|
|
|
|
ulong elapsed_time_us = GetMicrosecondCount() - start_time;
|
|
double elapsed_time_ms = (double)elapsed_time_us / 1000.0;
|
|
|
|
PrintFormat("Benchmark Result: SUCCESS");
|
|
PrintFormat("Accumulator Final Hash Value: %.8f", accumulator);
|
|
PrintFormat("Total Execution Time: %.3f ms", elapsed_time_ms);
|
|
Print("====================================================================");
|
|
|
|
//--- Visual Alert Summary
|
|
string msg = StringFormat("Diagnostic Complete!\nExecution Time: %.2f ms\nHash: %.4f", elapsed_time_ms, accumulator);
|
|
Alert(msg);
|
|
}
|
|
//+------------------------------------------------------------------+
|
|
//+------------------------------------------------------------------+
|