Files
Bell-PriceActionWithEma-EA/Experts/SimpleFVG/Config.mqh
T

104 lines
3.5 KiB
Plaintext
Raw Normal View History

2026-03-11 16:06:24 +07:00
//+------------------------------------------------------------------+
//| Config.mqh Step 0: Inputs, Enums, Constants |
//| Cho phép cấu hình symbol, timeframe, EMA, FVG, drawing |
//+------------------------------------------------------------------+
#ifndef __SIMPLE_FVG_CONFIG_MQH__
#define __SIMPLE_FVG_CONFIG_MQH__
//--- Step 0: Asset & Timeframe ---
2026-03-11 18:13:27 +07:00
input string InpSymbol = "";
input ENUM_TIMEFRAMES InpTimeframe = PERIOD_H1;
2026-03-11 16:06:24 +07:00
//--- Step 1: Trend (EMA) ---
2026-03-11 18:13:27 +07:00
input int InpEMAFastPeriod = 34;
input int InpEMASlowPeriod = 89;
2026-03-11 16:06:24 +07:00
//--- Step 2: FVG Detection ---
2026-03-11 18:13:27 +07:00
input int InpFVGLookbackBars = 100;
input int InpFVGMaxAgeBars = 50;
input double InpFVGMinBodyPct = 50.0;
input double InpFVGMinSizePoints = 0;
input double InpFVGTouchedPercent = 40.0;
//--- Step 3: Trading ---
input bool InpTradeEnabled = true;
input double InpRiskPercentPerR = 1.0;
input double InpRRRatio = 2.2;
input int InpMaxLimitOrders = 3;
input int InpLimitMaxAgeBars = 24;
input long InpEAMagic = 123456;
2026-03-11 16:06:24 +07:00
//--- Step 4: Drawing ---
2026-03-11 18:13:27 +07:00
input color InpColorBullFVG = C'30,80,140';
input color InpColorBearFVG = C'140,30,20';
input color InpColorMitigatedFVG = C'60,60,60';
input color InpColorEMAFast = clrDodgerBlue;
input color InpColorEMASlow = clrOrangeRed;
input bool InpShowPanel = true;
input bool InpShowFVGLabels = true;
2026-03-11 16:06:24 +07:00
//--- Debug ---
2026-03-11 18:13:27 +07:00
input bool InpDebugLog = true;
2026-03-11 16:06:24 +07:00
//+------------------------------------------------------------------+
//| Enums |
//+------------------------------------------------------------------+
enum ENUM_TREND_DIRECTION
{
TREND_BULLISH = 1,
TREND_BEARISH = -1,
TREND_NEUTRAL = 0
};
enum ENUM_FVG_TYPE
{
FVG_BULLISH = 1,
FVG_BEARISH = -1
};
2026-03-11 18:13:27 +07:00
enum ENUM_FVG_STATUS
{
ACTIVE = 0, // Giá chưa quay lại test
TOUCHED = 1, // Giá đã retest >= threshold %
MITIGATED = 2, // Giá đâm xuyên qua vùng
EXPIRED = 3 // Hết hạn, không còn vẽ/đếm
};
2026-03-11 16:06:24 +07:00
//+------------------------------------------------------------------+
//| Constants |
//+------------------------------------------------------------------+
const string EA_PREFIX = "SFVG_";
const int MAX_FVG_SLOTS = 50;
//+------------------------------------------------------------------+
//| Resolved symbol (cached) |
//+------------------------------------------------------------------+
string g_ResolvedSymbol = "";
string GetTradeSymbol()
{
if(g_ResolvedSymbol != "")
return g_ResolvedSymbol;
g_ResolvedSymbol = (InpSymbol == "" || InpSymbol == "current")
? _Symbol
: InpSymbol;
return g_ResolvedSymbol;
}
//+------------------------------------------------------------------+
//| New-bar detector |
//+------------------------------------------------------------------+
datetime g_PreviousBarTime = 0;
bool IsNewBar()
{
datetime currentBarTime = iTime(GetTradeSymbol(), InpTimeframe, 0);
if(currentBarTime == g_PreviousBarTime)
return false;
g_PreviousBarTime = currentBarTime;
return true;
}
#endif