LiquiditySweepEA/MQL5/Include/LiquiditySweepEA/Definitions.mqh
2026-09-12 12:31:28 +00:00

104 lines
3 KiB
MQL5

//+------------------------------------------------------------------+
//| Definitions.mqh |
//| Shared enums, structs and constants for LiquiditySweepEA |
//+------------------------------------------------------------------+
#ifndef __LSEA_DEFINITIONS_MQH__
#define __LSEA_DEFINITIONS_MQH__
//--- Trading mode -----------------------------------------------------
enum ENUM_TRADING_MODE
{
MODE_DEMO, // Demo / paper trading (default, recommended)
MODE_LIVE, // Live trading - requires explicit confirmations
MODE_RESEARCH, // Signals + journal only, never sends orders
MODE_DISABLED // EA fully inactive
};
//--- Strategy state machine -------------------------------------------
enum ENUM_EA_STATE
{
STATE_IDLE,
STATE_FRACTAL_FOUND,
STATE_SWEEP_DETECTED,
STATE_M5_ARMED,
STATE_CONFIRMATION_WAIT,
STATE_ENGULFING_CONFIRMED,
STATE_SETUP_VALIDATED,
STATE_PENDING_ORDER_PLACED,
STATE_POSITION_OPEN,
STATE_TRADE_MANAGEMENT,
STATE_TP_REACHED,
STATE_SL_REACHED,
STATE_SETUP_EXPIRED,
STATE_RISK_LOCKED,
STATE_ERROR_RECOVERY
};
//--- Risk model ---------------------------------------------------------
enum ENUM_RISK_MODEL
{
RISK_FIXED_LOT,
RISK_FIXED_USD,
RISK_PERCENT_BALANCE,
RISK_PERCENT_EQUITY
};
//--- Per-symbol runtime state --------------------------------------------
struct SymbolState
{
string symbol;
ENUM_EA_STATE state;
//--- structure (H1)
double fractalHigh;
datetime fractalHighTime;
bool fractalHighConsumed;
double fractalLow;
datetime fractalLowTime;
bool fractalLowConsumed;
//--- sweep
bool sweepActive;
bool sweepIsBuySide; // true = sweep of a low (bullish setup)
double sweepLevel;
datetime sweepTime;
datetime sweepStructureTime; // time of the fractal that was swept (dup-prevention key)
//--- M5 engulfing setup
double engulfingOpen, engulfingClose, engulfingHigh, engulfingLow;
datetime engulfingTime;
//--- pending / open trade tracking
ulong pendingTicket;
ulong positionTicket;
datetime setupExpiryTime;
//--- account protection (per symbol bookkeeping, some fields mirror account-wide guard)
int dailyTrades;
int consecutiveLosses;
//--- score / diagnostics for dashboard
int lastScore;
string lastGrade;
string lastReasons;
};
//--- Trade record for the CSV journal ------------------------------------
struct TradeJournalRecord
{
datetime timestamp;
string symbol;
string direction;
string session;
int setupScore;
double entry, sl, tp;
double riskUsd;
double lot;
string reason;
};
//--- misc constants -------------------------------------------------------
#define LSEA_MAGIC_DEFAULT 260901
#define LSEA_MAX_SYMBOLS 16
#endif // __LSEA_DEFINITIONS_MQH__