31 lines
1.7 KiB
MQL5
31 lines
1.7 KiB
MQL5
//+------------------------------------------------------------------+
|
|
//| MockTick.mqh |
|
|
//| Synthetic Test Harness for MetaTrader 5 |
|
|
//| Institutional Architecture in MQL5 - Part 1 Series |
|
|
//+------------------------------------------------------------------+
|
|
#ifndef SYNTHETIC_TEST_HARNESS_MOCKTICK_MQH
|
|
#define SYNTHETIC_TEST_HARNESS_MOCKTICK_MQH
|
|
|
|
//+------------------------------------------------------------------+
|
|
//| MockTick: the atomic unit of synthetic market data. |
|
|
//| |
|
|
//| Each field is independently controllable so test scenarios can |
|
|
//| vary one dimension at a time (spread spike, price gap, error |
|
|
//| injection) without coupling to the others. |
|
|
//| |
|
|
//| Design note: spread_points is separate from the bid/ask delta |
|
|
//| to allow scenarios where spread is the variable under test, |
|
|
//| independently of the price levels. |
|
|
//+------------------------------------------------------------------+
|
|
struct MockTick
|
|
{
|
|
datetime time; // Simulated server timestamp
|
|
double bid; // Simulated bid price
|
|
double ask; // Simulated ask price
|
|
double spread_points; // Spread in points (broker convention)
|
|
int injected_error; // MQL5 trade server error code (0 = none)
|
|
};
|
|
|
|
|
|
//+------------------------------------------------------------------+
|
|
#endif
|