Files
Bell-PriceActionWithEma-EA/Experts/EA_ICT_CL/State.mqh
T
2026-03-10 13:47:42 +07:00

90 lines
1.7 KiB
Plaintext

#ifndef EA_ICT_CL__STATE_MQH
#define EA_ICT_CL__STATE_MQH
// Module: State
// Core EA types: enums + structs used across all modules.
// Extracted from EA_ICT_CL.mq5 (enums + structs sections).
//====================================================
// ENUMS
//====================================================
enum EAState
{
EA_IDLE,
EA_WAIT_TOUCH,
EA_WAIT_TRIGGER,
EA_IN_TRADE
};
enum HTFBias { BIAS_NONE=0, BIAS_UP=1, BIAS_DOWN=-1, BIAS_SIDEWAY=2 };
enum MarketDir { DIR_NONE=0, DIR_UP=1, DIR_DOWN=-1 };
enum BlockReason
{
BLOCK_NONE, BLOCK_SESSION, BLOCK_DAILY_LOSS,
BLOCK_BIAS_MISMATCH, BLOCK_NO_BIAS
};
enum FVGStatus
{
FVG_PENDING,
FVG_TOUCHED,
FVG_USED
};
//====================================================
// STRUCTS
//====================================================
struct BiasContext
{
HTFBias bias;
double rangeHigh, rangeLow;
datetime lastBarTime;
};
struct TFTrendContext
{
MarketDir trend;
double h0, h1, l0, l1;
int idxH0, idxH1, idxL0, idxL1;
double keyLevel;
datetime lastBarTime;
datetime lastMssTime;
double lastMssLevel;
MarketDir lastMssBreak;
double mssSLSwing;
};
struct FVGRecord
{
int id;
FVGStatus status;
int usedCase;
MarketDir direction;
double high, low, mid;
datetime createdTime;
datetime touchTime;
datetime usedTime;
MarketDir triggerTrendAtTouch;
datetime mssTime;
double mssEntry;
double mssSL;
};
struct OrderPlan
{
bool valid;
int direction;
double entry, stopLoss, takeProfit, lot;
int parentFVGId;
};
struct DailyRiskContext
{
double startBalance, currentBalance;
datetime dayStartTime;
bool limitHit;
};
#endif // EA_ICT_CL__STATE_MQH