From b50b430d1a91faf34c480290e2a96905cb4e1e40 Mon Sep 17 00:00:00 2001 From: zhutoutoutousan Date: Thu, 9 Apr 2026 11:47:56 +0200 Subject: [PATCH] Update --- ai/xauusd_h1/README.md | 46 ++ ai/xauusd_h1/XAUUSD_H1_ActionEA.mq5 | 372 +++++++++ ai/xauusd_h1/XAUUSD_H1_ActionEA_optimize.set | 24 + ai/xauusd_h1/XAUUSD_H1_action.onnx | Bin 0 -> 321858 bytes .../__pycache__/features.cpython-312.pyc | Bin 0 -> 7636 bytes .../__pycache__/labeling.cpython-312.pyc | Bin 0 -> 5744 bytes ai/xauusd_h1/features.py | 167 ++++ ai/xauusd_h1/labeling.py | 128 +++ ai/xauusd_h1/main.py | 209 +++++ ai/xauusd_h1/models/XAUUSD_H1_action.onnx | Bin 0 -> 321858 bytes .../models/XAUUSD_H1_action_meta.json | 121 +++ .../models/XAUUSD_H1_action_scaler.pkl | Bin 0 -> 962 bytes ai/xauusd_h1/requirements.txt | 8 + ai/xauusd_h1/risk_controls.py | 21 + ai/xauusd_m15/FRONTLINE_RSI_INTEGRATION.md | 43 + ai/xauusd_m15/README.md | 49 ++ ai/xauusd_m15/XAUUSD_M15_ActionEA.mq5 | 375 +++++++++ .../XAUUSD_M15_ActionEA_optimize.set | 27 + .../__pycache__/features.cpython-312.pyc | Bin 0 -> 7986 bytes .../__pycache__/labeling.cpython-312.pyc | Bin 0 -> 5904 bytes ai/xauusd_m15/features.py | 173 ++++ ai/xauusd_m15/labeling.py | 130 ++++ ai/xauusd_m15/main.py | 210 +++++ ai/xauusd_m15/models/XAUUSD_M15_action.onnx | Bin 0 -> 321792 bytes .../models/XAUUSD_M15_action_meta.json | 119 +++ .../models/XAUUSD_M15_action_scaler.pkl | Bin 0 -> 964 bytes ai/xauusd_m15/requirements.txt | 8 + ai/xauusd_m15/risk_controls.py | 25 + .../archive}/RSIScalpingMSFT/main.mq5 | 0 .../archive}/RSIScalpingMSFT/report.html | Bin .../archive}/RSIScalpingMSFT/report.png | Bin .../MQL5/RSI_secret_sauce_XAUUSD/main.mq5 | 508 ++++++++++++ .../Strategies/RSIReversalAsianStrategy.mqh | 2 +- .../_united_dynamic/MagicNumberHelpers.mqh | 159 ++++ .../_united_dynamic/PEPPERSTONE_US_SETUP.md | 75 ++ .../_united_dynamic/PerformanceEvaluator.mqh | 607 +++++++++++++++ .../_united_dynamic/STRATEGY_CONFIGURATION.md | 76 ++ .../Strategies/DarvasBoxStrategy.mqh | 300 +++++++ .../Strategies/EMASlopeDistanceStrategy.mqh | 496 ++++++++++++ .../RSICrossOverReversalStrategy.mqh | 240 ++++++ .../Strategies/RSIMidPointHijackStrategy.mqh | 471 +++++++++++ .../Strategies/RSIReversalAsianStrategy.mqh | 493 ++++++++++++ .../Strategies/RSIScalpingStrategy.mqh | 451 +++++++++++ frontline/MQL5/_united_dynamic/main.mq5 | 675 ++++++++++++++++ frontline/MQL5/_united_dynamic/report.png | Bin 0 -> 29959 bytes .../MQL5/_united_dynamic/self-evaluate.mq5 | 641 +++++++++++++++ .../MagicNumberHelpers.mqh | 159 ++++ .../PEPPERSTONE_US_SETUP.md | 75 ++ .../PerformanceEvaluator.mqh | 607 +++++++++++++++ .../STRATEGY_CONFIGURATION.md | 76 ++ .../Strategies/DarvasBoxStrategy.mqh | 300 +++++++ .../Strategies/EMASlopeDistanceStrategy.mqh | 496 ++++++++++++ .../RSICrossOverReversalStrategy.mqh | 240 ++++++ .../Strategies/RSIMidPointHijackStrategy.mqh | 471 +++++++++++ .../Strategies/RSIReversalAsianStrategy.mqh | 493 ++++++++++++ .../Strategies/RSIScalpingStrategy.mqh | 451 +++++++++++ frontline/MQL5/_united_dynamic_cent/main.mq5 | 736 ++++++++++++++++++ .../MQL5/_united_dynamic_cent/report.png | Bin 0 -> 29959 bytes .../_united_dynamic_cent/self-evaluate.mq5 | 641 +++++++++++++++ .../RSIMidPointHijackBTCUSD_optimize.set | 45 ++ lab/EAs/RSIMidPointHijackBTCUSD/main.mq5 | 604 ++++++++++++++ lab/EAs/RSIMidPointHijackBTCUSD/report.html | Bin 0 -> 5214578 bytes lab/EAs/RSIMidPointHijackBTCUSD/report.png | Bin 0 -> 29812 bytes 63 files changed, 12842 insertions(+), 1 deletion(-) create mode 100644 ai/xauusd_h1/README.md create mode 100644 ai/xauusd_h1/XAUUSD_H1_ActionEA.mq5 create mode 100644 ai/xauusd_h1/XAUUSD_H1_ActionEA_optimize.set create mode 100644 ai/xauusd_h1/XAUUSD_H1_action.onnx create mode 100644 ai/xauusd_h1/__pycache__/features.cpython-312.pyc create mode 100644 ai/xauusd_h1/__pycache__/labeling.cpython-312.pyc create mode 100644 ai/xauusd_h1/features.py create mode 100644 ai/xauusd_h1/labeling.py create mode 100644 ai/xauusd_h1/main.py create mode 100644 ai/xauusd_h1/models/XAUUSD_H1_action.onnx create mode 100644 ai/xauusd_h1/models/XAUUSD_H1_action_meta.json create mode 100644 ai/xauusd_h1/models/XAUUSD_H1_action_scaler.pkl create mode 100644 ai/xauusd_h1/requirements.txt create mode 100644 ai/xauusd_h1/risk_controls.py create mode 100644 ai/xauusd_m15/FRONTLINE_RSI_INTEGRATION.md create mode 100644 ai/xauusd_m15/README.md create mode 100644 ai/xauusd_m15/XAUUSD_M15_ActionEA.mq5 create mode 100644 ai/xauusd_m15/XAUUSD_M15_ActionEA_optimize.set create mode 100644 ai/xauusd_m15/__pycache__/features.cpython-312.pyc create mode 100644 ai/xauusd_m15/__pycache__/labeling.cpython-312.pyc create mode 100644 ai/xauusd_m15/features.py create mode 100644 ai/xauusd_m15/labeling.py create mode 100644 ai/xauusd_m15/main.py create mode 100644 ai/xauusd_m15/models/XAUUSD_M15_action.onnx create mode 100644 ai/xauusd_m15/models/XAUUSD_M15_action_meta.json create mode 100644 ai/xauusd_m15/models/XAUUSD_M15_action_scaler.pkl create mode 100644 ai/xauusd_m15/requirements.txt create mode 100644 ai/xauusd_m15/risk_controls.py rename {frontline/MQL5 => back-pedal/archive}/RSIScalpingMSFT/main.mq5 (100%) rename {frontline/MQL5 => back-pedal/archive}/RSIScalpingMSFT/report.html (100%) rename {frontline/MQL5 => back-pedal/archive}/RSIScalpingMSFT/report.png (100%) create mode 100644 frontline/MQL5/RSI_secret_sauce_XAUUSD/main.mq5 create mode 100644 frontline/MQL5/_united_dynamic/MagicNumberHelpers.mqh create mode 100644 frontline/MQL5/_united_dynamic/PEPPERSTONE_US_SETUP.md create mode 100644 frontline/MQL5/_united_dynamic/PerformanceEvaluator.mqh create mode 100644 frontline/MQL5/_united_dynamic/STRATEGY_CONFIGURATION.md create mode 100644 frontline/MQL5/_united_dynamic/Strategies/DarvasBoxStrategy.mqh create mode 100644 frontline/MQL5/_united_dynamic/Strategies/EMASlopeDistanceStrategy.mqh create mode 100644 frontline/MQL5/_united_dynamic/Strategies/RSICrossOverReversalStrategy.mqh create mode 100644 frontline/MQL5/_united_dynamic/Strategies/RSIMidPointHijackStrategy.mqh create mode 100644 frontline/MQL5/_united_dynamic/Strategies/RSIReversalAsianStrategy.mqh create mode 100644 frontline/MQL5/_united_dynamic/Strategies/RSIScalpingStrategy.mqh create mode 100644 frontline/MQL5/_united_dynamic/main.mq5 create mode 100644 frontline/MQL5/_united_dynamic/report.png create mode 100644 frontline/MQL5/_united_dynamic/self-evaluate.mq5 create mode 100644 frontline/MQL5/_united_dynamic_cent/MagicNumberHelpers.mqh create mode 100644 frontline/MQL5/_united_dynamic_cent/PEPPERSTONE_US_SETUP.md create mode 100644 frontline/MQL5/_united_dynamic_cent/PerformanceEvaluator.mqh create mode 100644 frontline/MQL5/_united_dynamic_cent/STRATEGY_CONFIGURATION.md create mode 100644 frontline/MQL5/_united_dynamic_cent/Strategies/DarvasBoxStrategy.mqh create mode 100644 frontline/MQL5/_united_dynamic_cent/Strategies/EMASlopeDistanceStrategy.mqh create mode 100644 frontline/MQL5/_united_dynamic_cent/Strategies/RSICrossOverReversalStrategy.mqh create mode 100644 frontline/MQL5/_united_dynamic_cent/Strategies/RSIMidPointHijackStrategy.mqh create mode 100644 frontline/MQL5/_united_dynamic_cent/Strategies/RSIReversalAsianStrategy.mqh create mode 100644 frontline/MQL5/_united_dynamic_cent/Strategies/RSIScalpingStrategy.mqh create mode 100644 frontline/MQL5/_united_dynamic_cent/main.mq5 create mode 100644 frontline/MQL5/_united_dynamic_cent/report.png create mode 100644 frontline/MQL5/_united_dynamic_cent/self-evaluate.mq5 create mode 100644 lab/EAs/RSIMidPointHijackBTCUSD/RSIMidPointHijackBTCUSD_optimize.set create mode 100644 lab/EAs/RSIMidPointHijackBTCUSD/main.mq5 create mode 100644 lab/EAs/RSIMidPointHijackBTCUSD/report.html create mode 100644 lab/EAs/RSIMidPointHijackBTCUSD/report.png diff --git a/ai/xauusd_h1/README.md b/ai/xauusd_h1/README.md new file mode 100644 index 0000000..ba1da78 --- /dev/null +++ b/ai/xauusd_h1/README.md @@ -0,0 +1,46 @@ +# XAUUSD H1 — ONNX action model + +Same pipeline as **`../xauusd_m15`**, but **H1** bars, **H1-scaled label windows** (~wall-clock parity with M15 defaults), and **`XAUUSD_H1_ActionEA.mq5`**. + +## Label scaling (vs M15) + +| M15 (bars) | Wall time | H1 (bars) | +|------------|-----------|-----------| +| horizon 32 | ~8 h | 8 | +| local 24 | ~6 h | 6 | +| pullback 20| ~5 h | 5 | + +## Setup + +1. MT5: **XAUUSD** visible; download **H1** history. +2. Python: + +```bash +cd ai/xauusd_h1 +pip install -r requirements.txt +python main.py +``` + +Env: `XAU_SYMBOL`, **`XAU_H1_LOOKBACK`** (default **48**, must match EA **InpLookback**), `XAU_EPOCHS`, `XAU_BATCH`, `SESSION_HOUR_OFFSET`. + +3. Copy **`models/XAUUSD_H1_action.onnx`** next to **`XAUUSD_H1_ActionEA.mq5`** (for `#resource` embed) or adjust include path per your workflow. +4. Compile EA on **H1** chart; paste **24** floats into **InpFeatMinStr** / **InpFeatMaxStr** from training stdout. + +## Files + +| File | Role | +|------|------| +| `main.py` | MT5 H1 fetch, train, `XAUUSD_H1_action.onnx` + meta | +| `labeling.py` | `compute_action_labels` (H1 default horizons) | +| `features.py` | 24-dim features (same order as M15 EA) | +| `XAUUSD_H1_ActionEA.mq5` | Inference + trading | +| `XAUUSD_H1_ActionEA_optimize.set` | Tester optimization skeleton | + +Feature semantics: **`../xauusd_m15/FRONTLINE_RSI_INTEGRATION.md`**. + +## ONNX + +- Input: `[1, lookback, 24]` float32, row **0** = newest bar. +- Output: `[1, 5]` softmax. + +Research tooling — not investment advice. diff --git a/ai/xauusd_h1/XAUUSD_H1_ActionEA.mq5 b/ai/xauusd_h1/XAUUSD_H1_ActionEA.mq5 new file mode 100644 index 0000000..851c578 --- /dev/null +++ b/ai/xauusd_h1/XAUUSD_H1_ActionEA.mq5 @@ -0,0 +1,372 @@ +//+------------------------------------------------------------------+ +//| XAUUSD_H1_ActionEA.mq5 | +//| ONNX softmax [5]: HOLD, BUY, SELL_SHORT, CLOSE_LONG, CLOSE_SHORT | +//| 24 features: base 13 + RSI/frontline (see ../xauusd_m15 doc) | +//| Train: ai/xauusd_h1/main.py → XAUUSD_H1_action.onnx | +//| Exits: model CLOSE_* + optional InpTakeProfitATR; adverse ATR | +//+------------------------------------------------------------------+ +#property copyright "Profitable EA Project" +#property version "1.00" + +#include + +#resource "XAUUSD_H1_action.onnx" as uchar ExtModel[] + +#define FEAT_COUNT 24 + +input group "Model" +input int InpLookback = 48; +// 0 = legacy: p(BUY)>=InpProbBuy etc.; 1 = directional beats HOLD (5-class softmax) +input int InpEntryMode = 1; +input double InpProbBuy = 0.18; +input double InpProbSell = 0.18; +input double InpMinBeatHold = 0.0; +input int InpExitMode = 2; +input double InpProbCloseL = 0.18; +input double InpProbCloseS = 0.18; +input double InpMinCloseBeatHold = 0.0; + +input group "Session (match Python SESSION_HOUR_OFFSET)" +input int InpSessionHourOffset = 0; + +input group "Scaler: paste 24 floats each from python main.py" +input string InpFeatMinStr = ""; +input string InpFeatMaxStr = ""; + +input group "Risk" +input double InpLotSize = 0.01; +input int InpMagic = 902016; +input int InpSlippage = 30; +input double InpMaxAdverseATR = 2.0; +input double InpTakeProfitATR = 0.0; + +double g_feat_min[FEAT_COUNT]; +double g_feat_max[FEAT_COUNT]; + +CTrade trade; +long g_onnx = INVALID_HANDLE; +datetime g_last_bar = 0; + +void InitDefaultScalerBounds() +{ + double def_min[FEAT_COUNT] = { + 0,0,0,0,0,0,-0.05,-0.05,0,-0.02,1.0,0,0.1, + 0,0,-1,-0.2,-0.2,0,0,0,0,0,0 + }; + double def_max[FEAT_COUNT] = { + 5000,5000,5000,5000,1,1,0.05,0.05,0.05,0.02,1.02,1,5.0, + 1,1,1,0.2,0.2,1,1,1,1,1,1 + }; + for(int i = 0; i < FEAT_COUNT; i++) + { + g_feat_min[i] = def_min[i]; + g_feat_max[i] = def_max[i]; + } +} + +bool ParseFeatCsv(const string s, double &arr[]) +{ + if(StringLen(s) < 3) return false; + string parts[]; + int n = StringSplit(s, ',', parts); + if(n != FEAT_COUNT) return false; + for(int i = 0; i < FEAT_COUNT; i++) + arr[i] = StringToDouble(parts[i]); + return true; +} + +int OnInit() +{ + InitDefaultScalerBounds(); + trade.SetExpertMagicNumber(InpMagic); + trade.SetDeviationInPoints(InpSlippage); + trade.SetTypeFilling(ORDER_FILLING_IOC); + + if(StringLen(InpFeatMinStr) > 0 && ParseFeatCsv(InpFeatMinStr, g_feat_min)) + Print("Loaded InpFeatMinStr (24)"); + if(StringLen(InpFeatMaxStr) > 0 && ParseFeatCsv(InpFeatMaxStr, g_feat_max)) + Print("Loaded InpFeatMaxStr (24)"); + + g_onnx = OnnxCreateFromBuffer(ExtModel, ONNX_DEBUG_LOGS); + if(g_onnx == INVALID_HANDLE) + { + Print("OnnxCreateFromBuffer failed ", GetLastError()); + return INIT_FAILED; + } + + const long inShape[] = {1, InpLookback, FEAT_COUNT}; + if(!OnnxSetInputShape(g_onnx, 0, inShape)) + { + Print("OnnxSetInputShape failed ", GetLastError()); + OnnxRelease(g_onnx); + return INIT_FAILED; + } + const long outShape[] = {1, 5}; + if(!OnnxSetOutputShape(g_onnx, 0, outShape)) + { + Print("OnnxSetOutputShape failed ", GetLastError()); + OnnxRelease(g_onnx); + return INIT_FAILED; + } + return INIT_SUCCEEDED; +} + +void OnDeinit(const int r) +{ + if(g_onnx != INVALID_HANDLE) OnnxRelease(g_onnx); +} + +double AtrNow() +{ + double b[]; + ArraySetAsSeries(b, true); + int h = iATR(_Symbol, PERIOD_CURRENT, 14); + if(h == INVALID_HANDLE) return 0; + if(CopyBuffer(h, 0, 0, 2, b) < 1) { IndicatorRelease(h); return 0; } + double v = b[0]; + IndicatorRelease(h); + return v; +} + +bool AdverseExit(const long type, const double open_price) +{ + double atr = AtrNow(); + if(atr <= 0) return false; + double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID); + double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); + if(type == POSITION_TYPE_BUY) + { + double adv = (open_price - bid) / atr; + return adv >= InpMaxAdverseATR; + } + double adv = (ask - open_price) / atr; + return adv >= InpMaxAdverseATR; +} + +bool ProfitExit(const long type, const double open_price) +{ + if(InpTakeProfitATR <= 0.0) return false; + double atr = AtrNow(); + if(atr <= 0.0) return false; + double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID); + double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); + if(type == POSITION_TYPE_BUY) + return (bid - open_price) >= InpTakeProfitATR * atr; + return (open_price - ask) >= InpTakeProfitATR * atr; +} + +bool ModelCloseLong(const double p0, const double p1, const double p3) +{ + if(InpExitMode == 0) + return (p3 >= InpProbCloseL); + if(InpExitMode == 1) + return (p3 > p0 + InpMinCloseBeatHold && p3 > p1); + return (p3 > p0 + InpMinCloseBeatHold); +} + +bool ModelCloseShort(const double p0, const double p2, const double p4) +{ + if(InpExitMode == 0) + return (p4 >= InpProbCloseS); + if(InpExitMode == 1) + return (p4 > p0 + InpMinCloseBeatHold && p4 > p2); + return (p4 > p0 + InpMinCloseBeatHold); +} + +void ScaleFeatures(const float &raw[], float &out[]) +{ + for(int f = 0; f < FEAT_COUNT; f++) + { + double den = g_feat_max[f] - g_feat_min[f]; + if(den < 1e-12) den = 1e-12; + double x = (double)raw[f] - g_feat_min[f]; + out[f] = (float)MathMax(0.0, MathMin(1.0, x / den)); + } +} + +bool PrepareMatrix(matrixf &M) +{ + int L = InpLookback; + double open[], high[], low[], close[]; + long vol[]; + datetime bt[]; + ArraySetAsSeries(open, true); + ArraySetAsSeries(high, true); + ArraySetAsSeries(low, true); + ArraySetAsSeries(close, true); + ArraySetAsSeries(vol, true); + ArraySetAsSeries(bt, true); + + int need = L + 55; + if(CopyOpen(_Symbol, PERIOD_CURRENT, 0, need, open) < L) return false; + if(CopyHigh(_Symbol, PERIOD_CURRENT, 0, need, high) < L) return false; + if(CopyLow(_Symbol, PERIOD_CURRENT, 0, need, low) < L) return false; + if(CopyClose(_Symbol, PERIOD_CURRENT, 0, need, close) < L) return false; + if(CopyTickVolume(_Symbol, PERIOD_CURRENT, 0, need, vol) < L) return false; + if(CopyTime(_Symbol, PERIOD_CURRENT, 0, need, bt) < L) return false; + + double rsi7[], rsi14[], rsi21[], ema20[], ema50[], atr[]; + ArraySetAsSeries(rsi7, true); + ArraySetAsSeries(rsi14, true); + ArraySetAsSeries(rsi21, true); + ArraySetAsSeries(ema20, true); + ArraySetAsSeries(ema50, true); + ArraySetAsSeries(atr, true); + + int h7 = iRSI(_Symbol, PERIOD_CURRENT, 7, PRICE_CLOSE); + int h14 = iRSI(_Symbol, PERIOD_CURRENT, 14, PRICE_CLOSE); + int h21 = iRSI(_Symbol, PERIOD_CURRENT, 21, PRICE_CLOSE); + int hE20 = iMA(_Symbol, PERIOD_CURRENT, 20, 0, MODE_EMA, PRICE_CLOSE); + int hE50 = iMA(_Symbol, PERIOD_CURRENT, 50, 0, MODE_EMA, PRICE_CLOSE); + int hA = iATR(_Symbol, PERIOD_CURRENT, 14); + if(h7 == INVALID_HANDLE || h14 == INVALID_HANDLE || h21 == INVALID_HANDLE || + hE20 == INVALID_HANDLE || hE50 == INVALID_HANDLE || hA == INVALID_HANDLE) + return false; + + if(CopyBuffer(h7, 0, 0, need, rsi7) < L || + CopyBuffer(h14, 0, 0, need, rsi14) < L || + CopyBuffer(h21, 0, 0, need, rsi21) < L || + CopyBuffer(hE20, 0, 0, need, ema20) < L || + CopyBuffer(hE50, 0, 0, need, ema50) < L || + CopyBuffer(hA, 0, 0, need, atr) < L) + { + IndicatorRelease(h7); IndicatorRelease(h14); IndicatorRelease(h21); + IndicatorRelease(hE20); IndicatorRelease(hE50); IndicatorRelease(hA); + return false; + } + IndicatorRelease(h7); IndicatorRelease(h14); IndicatorRelease(h21); + IndicatorRelease(hE20); IndicatorRelease(hE50); IndicatorRelease(hA); + + M.Resize(L, FEAT_COUNT); + const double RSI_OB = 70.0; + const double RSI_OS = 30.0; + + for(int i = 0; i < L; i++) + { + double vma = 0; + int cnt = 0; + for(int k = i; k < i + 20 && k < ArraySize(vol); k++) { vma += (double)vol[k]; cnt++; } + if(cnt < 1) cnt = 1; + vma /= cnt; + + double r0 = rsi14[i]; + double r1 = (i + 1 < ArraySize(rsi14)) ? rsi14[i + 1] : r0; + double r2 = (i + 2 < ArraySize(rsi14)) ? rsi14[i + 2] : r1; + double rv7 = rsi7[i]; + double rv21 = rsi21[i]; + + double spread = (r0 - rv7) / 50.0; + if(spread > 1.0) spread = 1.0; + if(spread < -1.0) spread = -1.0; + double vel = (r0 - r1) / 25.0; + double acc = ((r0 - r1) - (r1 - r2)) / 25.0; + double dist_mid = MathAbs(r0 - 50.0) / 50.0; + double c_ob = (r1 < RSI_OB && r0 >= RSI_OB) ? 1.0 : 0.0; + double c_os = (r1 > RSI_OS && r0 <= RSI_OS) ? 1.0 : 0.0; + double c50u = (r1 < 50.0 && r0 >= 50.0) ? 1.0 : 0.0; + double c50d = (r1 > 50.0 && r0 <= 50.0) ? 1.0 : 0.0; + + MqlDateTime st; + TimeToStruct(bt[i], st); + int hr = (st.hour + InpSessionHourOffset) % 24; + if(hr < 0) hr += 24; + double asian = (hr >= 0 && hr < 8) ? 1.0 : 0.0; + + float raw[FEAT_COUNT]; + raw[0] = (float)open[i]; + raw[1] = (float)high[i]; + raw[2] = (float)low[i]; + raw[3] = (float)close[i]; + raw[4] = (float)((double)vol[i] / 1000000.0); + raw[5] = (float)(r0 / 100.0); + raw[6] = (float)((ema20[i] - close[i]) / close[i]); + raw[7] = (float)((ema50[i] - close[i]) / close[i]); + raw[8] = (float)(atr[i] / close[i]); + double pc = (i < L - 1) ? (close[i] - close[i + 1]) / close[i + 1] : 0.0; + raw[9] = (float)pc; + raw[10] = (float)(high[i] / low[i]); + raw[11] = (float)(vma / 1000000.0); + raw[12] = (float)(vma > 0 ? (double)vol[i] / vma : 1.0); + raw[13] = (float)(rv7 / 100.0); + raw[14] = (float)(rv21 / 100.0); + raw[15] = (float)spread; + raw[16] = (float)vel; + raw[17] = (float)acc; + raw[18] = (float)dist_mid; + raw[19] = (float)c_ob; + raw[20] = (float)c_os; + raw[21] = (float)c50u; + raw[22] = (float)c50d; + raw[23] = (float)asian; + + float sc[FEAT_COUNT]; + ScaleFeatures(raw, sc); + for(int j = 0; j < FEAT_COUNT; j++) + M[i][j] = sc[j]; + } + return true; +} + +void OnTick() +{ + datetime t = iTime(_Symbol, PERIOD_CURRENT, 0); + if(t == g_last_bar) return; + g_last_bar = t; + + matrixf Min; + if(!PrepareMatrix(Min)) + { + Print("PrepareMatrix failed"); + return; + } + + vectorf out; + out.Resize(5); + if(!OnnxRun(g_onnx, ONNX_NO_CONVERSION, Min, out)) + { + Print("OnnxRun failed ", GetLastError()); + return; + } + + double p0 = out[0], p1 = out[1], p2 = out[2], p3 = out[3], p4 = out[4]; + Print("ONNX H1 HOLD=", p0, " BUY=", p1, " SELL=", p2, " CL=", p3, " CS=", p4); + + if(!PositionSelect(_Symbol)) + { + if(InpEntryMode == 1) + { + double dir = MathMax(p1, p2); + if(dir <= p0 + InpMinBeatHold) + return; + if(p1 >= p2 && p1 > p0 + InpMinBeatHold) + trade.Buy(InpLotSize, _Symbol, 0, 0, 0, "AI H1 BUY"); + else if(p2 > p1 && p2 > p0 + InpMinBeatHold) + trade.Sell(InpLotSize, _Symbol, 0, 0, 0, "AI H1 SELL"); + } + else + { + if(p1 >= InpProbBuy && p1 >= p2) + trade.Buy(InpLotSize, _Symbol, 0, 0, 0, "AI H1 BUY"); + else if(p2 >= InpProbSell && p2 > p1) + trade.Sell(InpLotSize, _Symbol, 0, 0, 0, "AI H1 SELL"); + } + return; + } + + long typ = (long)PositionGetInteger(POSITION_TYPE); + double opn = PositionGetDouble(POSITION_PRICE_OPEN); + if(AdverseExit(typ, opn)) + { + trade.PositionClose(_Symbol); + return; + } + if(ProfitExit(typ, opn)) + { + trade.PositionClose(_Symbol); + return; + } + if(typ == POSITION_TYPE_BUY && ModelCloseLong(p0, p1, p3)) + trade.PositionClose(_Symbol); + else if(typ == POSITION_TYPE_SELL && ModelCloseShort(p0, p2, p4)) + trade.PositionClose(_Symbol); +} diff --git a/ai/xauusd_h1/XAUUSD_H1_ActionEA_optimize.set b/ai/xauusd_h1/XAUUSD_H1_ActionEA_optimize.set new file mode 100644 index 0000000..95fbd4f --- /dev/null +++ b/ai/xauusd_h1/XAUUSD_H1_ActionEA_optimize.set @@ -0,0 +1,24 @@ +; XAUUSD_H1_ActionEA — optimization preset (match trained InpLookback to ONNX) +; Copy to MetaQuotes\Terminal\\MQL5\Profiles\Tester\ +; +; Model +InpLookback=48||32||8||96||Y +InpEntryMode=1||0||1||1||Y +InpProbBuy=0.18||0.14||0.02||0.26||Y +InpProbSell=0.18||0.14||0.02||0.26||Y +InpMinBeatHold=0.0||0.0||0.01||0.05||Y +InpExitMode=2||0||1||2||Y +InpProbCloseL=0.18||0.14||0.02||0.26||Y +InpProbCloseS=0.18||0.14||0.02||0.26||Y +InpMinCloseBeatHold=0.0||0.0||0.01||0.04||Y +; Session +InpSessionHourOffset=0||-3||1||3||N +; Scaler +InpFeatMinStr= +InpFeatMaxStr= +; Risk +InpLotSize=0.01||0.01||0.001000||0.100000||N +InpMagic=902016||902016||1||9020160||N +InpSlippage=30||30||1||300||N +InpMaxAdverseATR=2.0||1.0||0.25||3.5||Y +InpTakeProfitATR=0.0||0.0||0.25||3.0||Y diff --git a/ai/xauusd_h1/XAUUSD_H1_action.onnx b/ai/xauusd_h1/XAUUSD_H1_action.onnx new file mode 100644 index 0000000000000000000000000000000000000000..a18858fd9f2ede81abcf2dfd5add40354394c7a3 GIT binary patch literal 321858 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�)IXAqM=w5wPpuyjGo)$7m1!{Ojfh;? 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

K*B!7w$)XUKbzIE(_Lu|g#yFCrf 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

nU{NqjeRbRF^z>WIckc*H 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

uGDm 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
;nrt3>AeCb9q`2G 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 literal 0 HcmV?d00001 diff --git a/ai/xauusd_h1/__pycache__/features.cpython-312.pyc b/ai/xauusd_h1/__pycache__/features.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8f0d873035491ba0c2c010fb8ac47f6e4cc0d69c GIT binary patch literal 7636 zcmb_BYitwgb~7G7$K%A0B!q;7Aqfye5^zESH+R|MBo2>-AV}ED=0e@UGfBqy#mt0+ zbX>X8{;-#oVwWr7Y*(teU1`ID)coj=?bWJxD^ccRSq%{k{g@9%Z|dz+2K;Q2o>&o8<#>}&L)Jw&O4Kc9ilU5v%1F&1Za zAv~;`*5Rm6gotTEZS~UzwKYzgSpBq_HB4JLGiO9TI58Lk4EU3(qOTVBqy0LNB1A0Sw1Y%j7VShUb-|nMxXNx(mpTU zEpi;)*LP@&iK(-vCwzY3=|4R&S7_mN1@JjkJc z!G~B*pv7=BD$VhcS-P8B2-8d`Hpd+I9Ex!QA7$ON6a^4J8=)6?X^uWOHAwTop^toq z-0H>^D-(%CB`_r#5htG60Qk%buUUk~5*JRCI@sGM0y-5`dKsXBz~Ik+gQK9xSPxL3v!9kabq<2dVTj5k#`LJS-vOOQ5!lv-*dI2W447(-t!L ztmtHr^*<3Oqim3kLCdSMSfiw-HNpg`SMd+Z9z~kRO)UB&WD`nO1X+TyakFd=*1tNE zHEVtgI$p)rNOiu7eQ43fPGW9yskfX)D6P7~j1-uI)H=sW%#^^O^g`J}2SQPi3*B<} z{g=iMGRF{#E^tB_viT?DZbC7r*{4{;e8gW$Kv6L=Y;azb1Y~TP_`MV5&gm2Pfe$O) zig9jI(X;%_jG_;O_?SXKE-U&l$3zs9z{NsLfKzl4fJXpgoZ&;E2&0&#s6R3vj@?pB zGodIW4IOb?6oaa)Vl2rA?p#P>6#Xp2M-)BSA%d1SXZ^FKCZy;DQ6U787f}Rh?fHIi zZ1_q{h|cg51CzX$TLgYmFT>vC#i($F;jffu?40LHWwL`Jv zN?=bZ$MTufncHU*zM|E>Je(TNjwXi-Ryr|Ov^kUG%g0m4vtsgi!P*HB%D#Lmbt*fM zYg&10?cFbZ$x{XD%m#HnPn|DN7l6eN5?Jcejd$BJZP^>2bbPw+-oApvowv9XBSo@4 zJ(wNMb*!AqyY}YEeTmVcwGQc%W((HV4Qp54+V!yi?}qOWuUoqc)}eL%&~vZ=tro8G z0_UHL&I|tN%#6rM0d4A|whjK(h2a1sJS+@&!YyfdOsXs)K|Nyl^0VD^Wpyl}O%p9` z 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 Q!eG%hI$u~2RMq4E0cl{kZ~y=R literal 0 HcmV?d00001 diff --git a/ai/xauusd_h1/__pycache__/labeling.cpython-312.pyc b/ai/xauusd_h1/__pycache__/labeling.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b7fd32305229754ae4dca9b557acdbaff5ce2653 GIT binary patch literal 5744 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 literal 0 HcmV?d00001 diff --git a/ai/xauusd_h1/features.py b/ai/xauusd_h1/features.py new file mode 100644 index 0000000..9762037 --- /dev/null +++ b/ai/xauusd_h1/features.py @@ -0,0 +1,167 @@ +""" +Feature pipeline: base 13 (EA-compatible) + 11 RSI / session features. + +Same 24 dims as XAUUSD M15 EA (see ../xauusd_m15/FRONTLINE_RSI_INTEGRATION.md). +RSI uses Wilder smoothing (ewm alpha=1/period) to align with MT5 iRSI. +""" + +from __future__ import annotations + +import os + +import numpy as np +import pandas as pd + +NUM_BASE_FEATURES = 13 +NUM_RSI_EXTRA = 11 +NUM_FEATURES = NUM_BASE_FEATURES + NUM_RSI_EXTRA # 24 + +RSI_OVERBOUGHT = 70.0 +RSI_OVERSOLD = 30.0 + + +def wilder_rsi(close: pd.Series, period: int) -> np.ndarray: + """Wilder RSI (matches MetaTrader iRSI closely).""" + delta = close.diff() + gain = delta.clip(lower=0.0) + loss = (-delta).clip(lower=0.0) + avg_g = gain.ewm(alpha=1.0 / period, min_periods=period, adjust=False).mean() + avg_l = loss.ewm(alpha=1.0 / period, min_periods=period, adjust=False).mean() + rs = avg_g / avg_l.replace(0, np.nan) + rsi = 100.0 - (100.0 / (1.0 + rs)) + return rsi.fillna(50.0).to_numpy(dtype=np.float64) + + +def prepare_features_full( + df: pd.DataFrame, + *, + session_hour_offset: int | None = None, +) -> pd.DataFrame: + """ + Build (N, 24) feature table, chronological index matching df. + Drops first ~50 rows (warmup). + """ + if session_hour_offset is None: + session_hour_offset = int(os.environ.get("SESSION_HOUR_OFFSET", "0")) + + o = df["open"].to_numpy(dtype=np.float64) + h = df["high"].to_numpy(dtype=np.float64) + l = df["low"].to_numpy(dtype=np.float64) + c = df["close"].astype(float) + vol = df["tick_volume"].to_numpy(dtype=np.float64) + n = len(df) + idx = df.index + + rsi7 = wilder_rsi(c, 7) + rsi14 = wilder_rsi(c, 14) + rsi21 = wilder_rsi(c, 21) + + ema20 = c.ewm(span=20, adjust=False).mean().to_numpy() + ema50 = c.ewm(span=50, adjust=False).mean().to_numpy() + + tr = np.maximum( + h - l, + np.maximum(np.abs(h - np.roll(c.to_numpy(), 1)), np.abs(l - np.roll(c.to_numpy(), 1))), + ) + tr[0] = h[0] - l[0] + atr = pd.Series(tr).rolling(14).mean().to_numpy() + + vol_ma = np.zeros(n) + for j in range(n): + s = 0.0 + cnt = 0 + for k in range(j, min(j + 20, n)): + s += vol[k] + cnt += 1 + vol_ma[j] = s / cnt if cnt else vol[j] + + pc_ea = np.zeros(n) + cvals = c.to_numpy() + for j in range(1, n): + den = cvals[j - 1] + pc_ea[j] = (cvals[j] - den) / den if den else 0.0 + + hours = np.zeros(n, dtype=np.int32) + for j in range(n): + ts = idx[j] + try: + hts = int(ts.hour) + except Exception: + hts = 0 + hours[j] = (hts + session_hour_offset) % 24 + + rows = [] + for j in range(n): + r0 = rsi14[j] + r1 = rsi14[j - 1] if j > 0 else r0 + r2 = rsi14[j - 2] if j > 1 else r1 + + spread = np.clip((r0 - rsi7[j]) / 50.0, -1.0, 1.0) + vel = (r0 - r1) / 25.0 + acc = ((r0 - r1) - (r1 - r2)) / 25.0 + dist_mid = abs(r0 - 50.0) / 50.0 + + cross_ob = 1.0 if (r1 < RSI_OVERBOUGHT and r0 >= RSI_OVERBOUGHT) else 0.0 + cross_os = 1.0 if (r1 > RSI_OVERSOLD and r0 <= RSI_OVERSOLD) else 0.0 + cross_50_up = 1.0 if (r1 < 50.0 and r0 >= 50.0) else 0.0 + cross_50_dn = 1.0 if (r1 > 50.0 and r0 <= 50.0) else 0.0 + asian = 1.0 if (0 <= hours[j] < 8) else 0.0 + + rows.append( + [ + float(o[j]), + float(h[j]), + float(l[j]), + float(cvals[j]), + float(vol[j] / 1_000_000.0), + float(rsi14[j] / 100.0), + float((ema20[j] - cvals[j]) / cvals[j]) if cvals[j] else 0.0, + float((ema50[j] - cvals[j]) / cvals[j]) if cvals[j] else 0.0, + float(atr[j] / cvals[j]) if cvals[j] else 0.0, + float(pc_ea[j]), + float(h[j] / l[j]) if l[j] else 1.0, + float(vol_ma[j] / 1_000_000.0), + float(vol[j] / vol_ma[j]) if vol_ma[j] > 0 else 1.0, + float(rsi7[j] / 100.0), + float(rsi21[j] / 100.0), + float(spread), + float(vel), + float(acc), + float(dist_mid), + float(cross_ob), + float(cross_os), + float(cross_50_up), + float(cross_50_dn), + float(asian), + ] + ) + + cols = [ + "open", + "high", + "low", + "close", + "tick_volume", + "rsi", + "ema20_n", + "ema50_n", + "atr_n", + "price_change", + "high_low_ratio", + "volume_ma", + "volume_ratio", + "rsi7_n", + "rsi21_n", + "rsi_fast_slow_spread", + "rsi_velocity", + "rsi_accel", + "rsi_dist_mid_50", + "rsi_cross_overbought", + "rsi_cross_oversold", + "rsi_cross_50_up", + "rsi_cross_50_down", + "session_asian_utc", + ] + + out = pd.DataFrame(rows, index=idx, columns=cols) + return out.iloc[50:].copy() diff --git a/ai/xauusd_h1/labeling.py b/ai/xauusd_h1/labeling.py new file mode 100644 index 0000000..8bfeba4 --- /dev/null +++ b/ai/xauusd_h1/labeling.py @@ -0,0 +1,128 @@ +""" +Buy-low / sell-high style labels for OHLCV bars (no fixed SL/TP in labels). + +H1 defaults scale M15 bar counts to ~similar wall-clock horizons: + M15 horizon=32 -> 8h -> H1 horizon=8 + M15 local=24 -> 6h -> H1 local=6 + M15 pullback=20 -> 5h -> H1 pullback=5 + +Classes (integer, matches EA): + 0 HOLD + 1 BUY — forward upside vs ATR + local swing low + 2 SELL_SHORT — forward downside vs ATR + local swing high + 3 CLOSE_LONG — past-only: pullback from recent range high + 4 CLOSE_SHORT — past-only: bounce from recent range low +""" + +from __future__ import annotations + +import numpy as np +import pandas as pd + + +def atr_series(df: pd.DataFrame, period: int = 14) -> pd.Series: + high, low, close = df["high"], df["low"], df["close"] + tr = pd.concat( + [ + high - low, + (high - close.shift()).abs(), + (low - close.shift()).abs(), + ], + axis=1, + ).max(axis=1) + return tr.rolling(period).mean() + + +def compute_action_labels( + df: pd.DataFrame, + *, + horizon: int = 8, + local_window: int = 6, + pullback_window: int = 5, + k_forward_atr: float = 0.75, + local_pct: float = 0.28, + pullback_mult: float = 0.55, + trend_mult: float = 1.05, +) -> pd.Series: + """ + Return a Series of int labels 0..4 aligned to df index. + Last `horizon` rows → HOLD (no forward path for buy/sell scoring). + """ + close = df["close"].values + high = df["high"].values + low = df["low"].values + n = len(df) + atr = atr_series(df, 14).values + labels = np.zeros(n, dtype=np.int64) + + lw = local_window + pw = pullback_window + need = max(lw, pw) + 2 + + for t in range(n): + if t < need or t >= n - horizon: + labels[t] = 0 + continue + + a = atr[t] + if not np.isfinite(a) or a <= 0: + a = close[t] * 1e-4 + + sl = low[t + 1 : t + horizon + 1] + sh = high[t + 1 : t + horizon + 1] + fwd_max = float(np.max(sh)) + fwd_min = float(np.min(sl)) + up_move = (fwd_max - close[t]) / a + down_move = (close[t] - fwd_min) / a + + loc_low = float(np.min(low[t - lw : t + 1])) + loc_high = float(np.max(high[t - lw : t + 1])) + rng = max(loc_high - loc_low, a * 0.15) + near_low = (close[t] - loc_low) / rng <= local_pct + near_high = (loc_high - close[t]) / rng <= local_pct + + buy_sig = near_low and (up_move >= k_forward_atr) and (up_move >= down_move * 0.85) + sell_sig = near_high and (down_move >= k_forward_atr) and (down_move > up_move * 1.05) + + seg_h = high[t - pw : t + 1] + seg_l = low[t - pw : t + 1] + rh = float(np.max(seg_h)) + rl = float(np.min(seg_l)) + range_atr = (rh - rl) / a + pull_from_high = (rh - close[t]) / a + bounce_from_low = (close[t] - rl) / a + + exit_long = ( + range_atr >= trend_mult + and pull_from_high >= pullback_mult + and close[t] < close[t - 1] + ) + exit_short = ( + range_atr >= trend_mult + and bounce_from_low >= pullback_mult + and close[t] > close[t - 1] + ) + + if exit_long and not buy_sig: + labels[t] = 3 + elif exit_short and not sell_sig: + labels[t] = 4 + elif buy_sig and not sell_sig: + labels[t] = 1 + elif sell_sig and not buy_sig: + labels[t] = 2 + elif buy_sig and sell_sig: + labels[t] = 1 if up_move >= down_move else 2 + else: + labels[t] = 0 + + return pd.Series(labels, index=df.index, name="action_label") + + +def class_weights(y: np.ndarray, n_classes: int = 5) -> dict[int, float]: + from sklearn.utils.class_weight import compute_class_weight + + y_int = y.astype(int) + classes = np.arange(n_classes) + cw = compute_class_weight("balanced", classes=classes, y=y_int) + return {i: float(cw[i]) for i in range(n_classes)} diff --git a/ai/xauusd_h1/main.py b/ai/xauusd_h1/main.py new file mode 100644 index 0000000..b531629 --- /dev/null +++ b/ai/xauusd_h1/main.py @@ -0,0 +1,209 @@ +""" +XAUUSD H1 — ONNX action model (buy / sell short / close long / close short / hold). + +Same 24 features as M15 stack; labels use H1-scaled horizons (~wall-clock parity with M15). +Row order matches XAUUSD_H1_ActionEA.mq5 (row 0 = newest bar). +Data: MT5, 2008–2026 (limited by downloaded history). +""" + +from __future__ import annotations + +import json +import os +import pickle +import sys +from datetime import datetime, timedelta + +import MetaTrader5 as mt5 +import numpy as np +import pandas as pd +import tensorflow as tf +from sklearn.model_selection import train_test_split +from sklearn.preprocessing import MinMaxScaler +from tensorflow import keras +from tensorflow.keras import layers +from tqdm import tqdm +import tf2onnx +import onnx + +from labeling import class_weights, compute_action_labels +from features import NUM_FEATURES, prepare_features_full + +NUM_CLASSES = 5 +CLASS_NAMES = ["HOLD", "BUY", "SELL_SHORT", "CLOSE_LONG", "CLOSE_SHORT"] + + +def fetch_mt5_range( + symbol: str, + timeframe: int, + start_date: datetime, + end_date: datetime, +) -> pd.DataFrame: + if not mt5.initialize(): + raise RuntimeError(f"MT5 init failed: {mt5.last_error()}") + + info = mt5.symbol_info(symbol) + if info is None: + mt5.shutdown() + raise ValueError(f"Symbol {symbol} not found") + if not info.visible and not mt5.symbol_select(symbol, True): + mt5.shutdown() + raise ValueError(f"Cannot select {symbol}") + + all_rows: list[dict] = [] + chunk_days = 120 + cur = start_date + while cur < end_date: + chunk_end = min(cur + timedelta(days=chunk_days), end_date) + rates = mt5.copy_rates_range(symbol, timeframe, cur, chunk_end) + if rates is not None and len(rates) > 1: + for row in rates: + all_rows.append({n: row[n] for n in rates.dtype.names}) + cur = chunk_end + + if not all_rows: + mt5.shutdown() + raise ValueError("No rates returned — download XAUUSD H1 in MT5 History Center") + + df = pd.DataFrame(all_rows) + df["time"] = pd.to_datetime(df["time"], unit="s") + df = df.set_index("time").sort_index() + df = df[~df.index.duplicated(keep="first")] + return df + + +def create_sequences( + X: np.ndarray, y: np.ndarray, lookback: int +) -> tuple[np.ndarray, np.ndarray]: + xs, ys = [], [] + for i in tqdm(range(lookback - 1, len(X)), desc="sequences"): + window = X[i - lookback + 1 : i + 1].copy() + window = window[::-1] + xs.append(window) + ys.append(y[i]) + return np.asarray(xs, dtype=np.float32), np.asarray(ys, dtype=np.int64) + + +def build_model(lookback: int, n_feat: int) -> keras.Model: + inp = layers.Input(shape=(lookback, n_feat)) + x = layers.LSTM(96, return_sequences=True)(inp) + x = layers.Dropout(0.25)(x) + x = layers.LSTM(48)(x) + x = layers.Dropout(0.25)(x) + x = layers.Dense(32, activation="relu")(x) + out = layers.Dense(NUM_CLASSES, activation="softmax", name="action_probs")(x) + model = keras.Model(inp, out) + model.compile( + optimizer=keras.optimizers.Adam(1e-3), + loss="sparse_categorical_crossentropy", + metrics=["accuracy"], + ) + return model + + +def main() -> int: + symbol = os.environ.get("XAU_SYMBOL", "XAUUSD") + lookback = int(os.environ.get("XAU_H1_LOOKBACK", os.environ.get("XAU_LOOKBACK", "48"))) + epochs = int(os.environ.get("XAU_EPOCHS", "40")) + batch_size = int(os.environ.get("XAU_BATCH", "64")) + + start_date = datetime(2008, 1, 1) + end_date = datetime(2026, 12, 31) + + out_dir = os.path.join(os.path.dirname(__file__), "models") + os.makedirs(out_dir, exist_ok=True) + onnx_path = os.path.join(out_dir, f"{symbol}_H1_action.onnx") + meta_path = os.path.join(out_dir, f"{symbol}_H1_action_meta.json") + + print("Fetching MT5 H1 data …") + try: + raw = fetch_mt5_range(symbol, mt5.TIMEFRAME_H1, start_date, end_date) + finally: + mt5.shutdown() + print(f"Bars: {len(raw)} range: {raw.index[0]} → {raw.index[-1]}") + + feat = prepare_features_full(raw) + labels_full = compute_action_labels(raw) + labels = labels_full.loc[feat.index] + + y = labels.loc[feat.index].values.astype(np.int64) + X_raw = feat.values.astype(np.float32) + + valid = np.isfinite(X_raw).all(axis=1) & (y >= 0) & (y < NUM_CLASSES) + X_raw = X_raw[valid] + y = y[valid] + + print("Label counts:", {CLASS_NAMES[i]: int((y == i).sum()) for i in range(NUM_CLASSES)}) + + scaler = MinMaxScaler() + Xn = scaler.fit_transform(X_raw).astype(np.float32) + + X_seq, y_seq = create_sequences(Xn, y, lookback) + if len(X_seq) < 500: + print("ERROR: Too few sequences — need more H1 history in MT5.") + return 1 + + X_train, X_val, y_train, y_val = train_test_split( + X_seq, y_seq, test_size=0.15, shuffle=False + ) + + cw = class_weights(y_train, NUM_CLASSES) + sample_w = np.array([cw[int(c)] for c in y_train], dtype=np.float32) + + model = build_model(lookback, NUM_FEATURES) + model.summary() + + model.fit( + X_train, + y_train, + sample_weight=sample_w, + validation_data=(X_val, y_val), + epochs=epochs, + batch_size=batch_size, + verbose=1, + callbacks=[ + keras.callbacks.EarlyStopping( + monitor="val_loss", patience=8, restore_best_weights=True + ), + keras.callbacks.ReduceLROnPlateau( + monitor="val_loss", factor=0.5, patience=4, min_lr=1e-6 + ), + ], + ) + + spec = (tf.TensorSpec((None, lookback, NUM_FEATURES), tf.float32, name="input"),) + onnx_m, _ = tf2onnx.convert.from_keras(model, input_signature=spec, opset=13) + onnx.save_model(onnx_m, onnx_path) + + with open(onnx_path.replace(".onnx", "_scaler.pkl"), "wb") as f: + pickle.dump(scaler, f) + + meta = { + "symbol": symbol, + "timeframe": "H1", + "lookback": lookback, + "num_features": int(NUM_FEATURES), + "feature_columns": feat.columns.tolist(), + "num_classes": NUM_CLASSES, + "class_names": CLASS_NAMES, + "label_horizon_bars": 8, + "label_note": "H1 labeling defaults: horizon=8, local=6, pullback=5 (~M15 wall-clock parity)", + "scaler_feature_min": scaler.data_min_.tolist(), + "scaler_feature_max": scaler.data_max_.tolist(), + "scaler_scale": scaler.scale_.tolist() if hasattr(scaler, "scale_") else None, + "notes": "MinMax in EA; row0=newest. Match EA InpLookback to lookback here.", + } + with open(meta_path, "w", encoding="utf-8") as f: + json.dump(meta, f, indent=2) + + print(f"Saved: {onnx_path}") + print(f"Meta: {meta_path}") + print("\n--- Paste into EA InpFeatMinStr / InpFeatMaxStr (comma-separated, %d floats each) ---" % NUM_FEATURES) + print(",".join(f"{x:.8g}" for x in scaler.data_min_)) + print(",".join(f"{x:.8g}" for x in scaler.data_max_)) + print(f"\nSet EA InpLookback = {lookback} (must match ONNX input dim).") + return 0 + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/ai/xauusd_h1/models/XAUUSD_H1_action.onnx b/ai/xauusd_h1/models/XAUUSD_H1_action.onnx new file mode 100644 index 0000000000000000000000000000000000000000..a18858fd9f2ede81abcf2dfd5add40354394c7a3 GIT binary patch literal 321858 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�)IXAqM=w5wPpuyjGo)$7m1!{Ojfh;? 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

K*B!7w$)XUKbzIE(_Lu|g#yFCrf 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

nU{NqjeRbRF^z>WIckc*H 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

uGDm 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
;nrt3>AeCb9q`2G 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 literal 0 HcmV?d00001 diff --git a/ai/xauusd_h1/models/XAUUSD_H1_action_meta.json b/ai/xauusd_h1/models/XAUUSD_H1_action_meta.json new file mode 100644 index 0000000..0246dbd --- /dev/null +++ b/ai/xauusd_h1/models/XAUUSD_H1_action_meta.json @@ -0,0 +1,121 @@ +{ + "symbol": "XAUUSD", + "timeframe": "H1", + "lookback": 48, + "num_features": 24, + "feature_columns": [ + "open", + "high", + "low", + "close", + "tick_volume", + "rsi", + "ema20_n", + "ema50_n", + "atr_n", + "price_change", + "high_low_ratio", + "volume_ma", + "volume_ratio", + "rsi7_n", + "rsi21_n", + "rsi_fast_slow_spread", + "rsi_velocity", + "rsi_accel", + "rsi_dist_mid_50", + "rsi_cross_overbought", + "rsi_cross_oversold", + "rsi_cross_50_up", + "rsi_cross_50_down", + "session_asian_utc" + ], + "num_classes": 5, + "class_names": [ + "HOLD", + "BUY", + "SELL_SHORT", + "CLOSE_LONG", + "CLOSE_SHORT" + ], + "label_horizon_bars": 8, + "label_note": "H1 labeling defaults: horizon=8, local=6, pullback=5 (~M15 wall-clock parity)", + "scaler_feature_min": [ + 679.5499877929688, + 735.0499877929688, + 679.5499877929688, + 711.2999877929688, + 0.0, + 0.0778568685054779, + -0.08346110582351685, + -0.13061486184597015, + 0.0006287021678872406, + -0.09134025126695633, + 1.0, + 0.0018113000551238656, + 0.0, + 0.020070146769285202, + 0.1127406507730484, + -0.45013511180877686, + -1.6049232482910156, + -2.0694637298583984, + 1.0986201232299209e-05, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0 + ], + "scaler_feature_max": [ + 5562.419921875, + 5598.06005859375, + 5554.68994140625, + 5562.43994140625, + 0.15629400312900543, + 0.9388294816017151, + 0.1516682505607605, + 0.17963257431983948, + 0.07575831562280655, + 0.10734681040048599, + 1.138908863067627, + 0.11270634829998016, + 11.032988548278809, + 0.9843139052391052, + 0.8853746056556702, + 0.44974473118782043, + 1.5471272468566895, + 2.1628992557525635, + 0.8776589632034302, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0 + ], + "scaler_scale": [ + 0.00020479758677538484, + 0.00020563394355122, + 0.00020512231276370585, + 0.00020613710512407124, + 6.398198127746582, + 1.1614770889282227, + 4.2529778480529785, + 3.223233938217163, + 13.310330390930176, + 5.033040523529053, + 7.198964595794678, + 9.017535209655762, + 0.09063727408647537, + 1.0370821952819824, + 1.2942739725112915, + 1.1112594604492188, + 0.31725379824638367, + 0.23627464473247528, + 1.1394089460372925, + 1.0, + 1.0, + 1.0, + 1.0, + 1.0 + ], + "notes": "MinMax in EA; row0=newest. Match EA InpLookback to lookback here." +} \ No newline at end of file diff --git a/ai/xauusd_h1/models/XAUUSD_H1_action_scaler.pkl b/ai/xauusd_h1/models/XAUUSD_H1_action_scaler.pkl new file mode 100644 index 0000000000000000000000000000000000000000..f93fcd13449077af04dc7afb586355a55eae1265 GIT binary patch literal 962 zcmZo*nYx{s0StPii?ef56N~cn3W`z-it>|Fi;FY!()Hp~5=#=N^zis*=J_U81Scov zq!vw?JVmo{O6?Sl9^SOn#FEmY)cB&ry!6y5-VEN1ZBu$!lJg5Hr*r`6oXmnLojrVc z@lbWe@tJw?Q@ka5`19h66LSl4Qj6n@Q&WLrzM&s`*or~M$4}`I%PY+-sML#3&M!*U z%Pq|*$xJLNN~{DrBfcm#IX|zsq^LBx1n7(&RvpfCIQIl3ytV^6;=sYPt$RT7pPE+f ziO3e+XU@l9e>H;1-X!vuT>*2@c90x806T&c6vOcZTw?rK)5Z9(xeJ)SZ0G_qDW`b8 z?TWXn_CDXwy07-Uiq%Yk-Frb^Rn2^B1(H|GT4FQl$unD-if8*2^3Lv;C}KH~5NKfz zl0yf`E=jDw7bY>6*Sc1JSm)Y0b**bFklo3xV5b;fVE@KX+HTfIb30x2*|tk>+_pV( ze4_odOV4cO+YKE5|E{)wxjf1Kqsucp7mj20A9J`IoYo~^L<-3DV3%-%!vvhD@ww&O zv>C3VKc>6NN6v7SpE(`umMs}E_6Lp@*d4er&#v$8OxyV--gXLhe0CpY9)sPo?naq? x_-R-BwzxEVqurhkE&1&ZU2E~UMIauUGvmuri;6Sz^MI+|P|r-ya7t;C9sq(-YWx5I literal 0 HcmV?d00001 diff --git a/ai/xauusd_h1/requirements.txt b/ai/xauusd_h1/requirements.txt new file mode 100644 index 0000000..5f73675 --- /dev/null +++ b/ai/xauusd_h1/requirements.txt @@ -0,0 +1,8 @@ +numpy>=1.23 +pandas>=2.0 +MetaTrader5>=5.0.45 +tensorflow>=2.14 +tf2onnx>=1.16 +onnx>=1.15 +scikit-learn>=1.3 +tqdm>=4.66 diff --git a/ai/xauusd_h1/risk_controls.py b/ai/xauusd_h1/risk_controls.py new file mode 100644 index 0000000..1a29d77 --- /dev/null +++ b/ai/xauusd_h1/risk_controls.py @@ -0,0 +1,21 @@ +""" +Dynamic adverse risk (conceptual mirror of EA InpMaxAdverseATR). +""" + +from __future__ import annotations + +import numpy as np + + +def adverse_hit_long( + entry: float, + low_path: np.ndarray, + atr_path: np.ndarray, + max_adverse_atr: float, +) -> int | None: + for i in range(len(low_path)): + atr = max(atr_path[i], entry * 1e-6) + adv = (entry - low_path[i]) / atr + if adv >= max_adverse_atr: + return i + return None diff --git a/ai/xauusd_m15/FRONTLINE_RSI_INTEGRATION.md b/ai/xauusd_m15/FRONTLINE_RSI_INTEGRATION.md new file mode 100644 index 0000000..c0ade91 --- /dev/null +++ b/ai/xauusd_m15/FRONTLINE_RSI_INTEGRATION.md @@ -0,0 +1,43 @@ +# Frontline RSI 经验 → `ai/xauusd_m15` 特征映射 + +本文把 `frontline/MQL5/_united/Strategies` 里与 RSI 相关的**可量化**逻辑,映射到训练用的 **24 维特征**(前 13 维与原版 EA 一致,后 11 维为 RSI/时段扩展)。 + +## 策略来源与特征对应 + +| Frontline 模块 | 经验要点 | 模型中的体现 | +|----------------|----------|----------------| +| **RSIReversalAsianStrategy** | 上穿超买 / 下穿超卖的**交叉**;亚洲时段(UTC 0–8)语境 | `rsi_cross_overbought` / `rsi_cross_oversold`(默认 70/30);`session_asian_utc` | +| **RSICrossOverReversalStrategy** | 超买/超卖区附近的**反转入场**、RSI 退出位 | 交叉特征 + `rsi_velocity` / `rsi_accel` 描述短期摆动 | +| **RSIScalpingStrategy** | 极值区外的**回升/回落**(多根 RSI 结构) | `rsi_velocity`、`rsi_accel`(3 根 RSI14 近似) | +| **RSIMidPointHijackStrategy** | 相对 **50** 中轴、快慢 RSI 状态 | `rsi_dist_mid_50`;`rsi_fast_slow_spread`(RSI14 vs RSI7) | +| **多品种 RSI Scalping** | 更短周期敏感 | `rsi7_n`(快周期)、`rsi21_n`(慢周期) | + +## 特征索引(与 Python / EA 顺序一致) + +| 索引 | 名称 | 说明 | +|------|------|------| +| 0–4 | OHLC + tick_volume | 与原版一致 | +| 5 | rsi | Wilder RSI(14)/100 | +| 6–12 | EMA/ATR/价量 | 与原版一致 | +| 13 | rsi7_n | RSI(7)/100 | +| 14 | rsi21_n | RSI(21)/100 | +| 15 | rsi_fast_slow_spread | clip((RSI14−RSI7)/50, −1, 1) | +| 16 | rsi_velocity | (RSI14₀−RSI14₁)/25 | +| 17 | rsi_accel | ((RSI14₀−RSI14₁)−(RSI14₁−RSI14₂))/25 | +| 18 | rsi_dist_mid_50 | \|RSI14−50\|/50 | +| 19–22 | cross_* | 0/1,与 frontline 交叉定义一致(上一根→当前根) | +| 23 | session_asian_utc | 小时经偏移后 ∈ [0,8) 则为 1 | + +## 时段偏移 + +MT5 K 线时间多为**服务器时区**。若要与 UTC 亚洲窗对齐,训练时设环境变量 `SESSION_HOUR_OFFSET`,EA 使用 `InpSessionHourOffset`,使 `(hour + offset) % 24` 与你在回测里认定的 UTC 一致。 + +## 未直接编码的规则(可后续扩展) + +- **点差、最大持仓时长、Magic 分策略**:可作为额外标量特征或单独过滤层。 +- **RSIMidPoint 的「先标记超买再下穿退出线」**:可用连续两 bar 的 cross 组合特征或 LSTM 隐式学习;当前用 cross + dist_mid 近似。 +- **Darvas / EMA 等非 RSI 策略**:未并入本 ONNX 特征;可在 `features.py` 中追加列并同步改 `NUM_FEATURES` 与 EA。 + +## 再训练提醒 + +修改 `NUM_FEATURES` 后必须:**重新导出 ONNX**、更新 EA 中 `#resource` 模型、`OnnxSetInputShape` 第三维、**24 个 scaler min/max**。 diff --git a/ai/xauusd_m15/README.md b/ai/xauusd_m15/README.md new file mode 100644 index 0000000..ff8fba9 --- /dev/null +++ b/ai/xauusd_m15/README.md @@ -0,0 +1,49 @@ +# XAUUSD M15 — ONNX action model (buy / sell / close) + +## What it does + +- Pulls **XAUUSD** (**M15**) from **MetaTrader 5** (2008–2026 requested; actual range depends on History Center). +- **24 features**: 13 legacy OHLC/EMA/ATR/volume + **11 RSI / session** features aligned with **frontline** strategies (crosses, velocity, RSI7/21, Asian window). See **`FRONTLINE_RSI_INTEGRATION.md`**. +- Labels: **buy-low / sell-high** (forward window) + **close-long / close-short** (past-only). RSI enters as **inputs**, not as hard-coded label rules. +- Trains **LSTM → softmax(5)**: `HOLD`, `BUY`, `SELL_SHORT`, `CLOSE_LONG`, `CLOSE_SHORT`. +- Exports **`models/XAUUSD_M15_action.onnx`** + scaler + **`XAUUSD_M15_action_meta.json`** (includes `feature_columns`). +- **EA**: **SL=0, TP=0**; **InpMaxAdverseATR**; **InpSessionHourOffset** should match training `SESSION_HOUR_OFFSET` for Asian flag. + +This is research tooling — not investment advice. Past labels do not guarantee live performance. + +## Setup + +1. MT5 installed, logged in, **XAUUSD** visible; download **M15** history (Tools → History Center or chart scroll). +2. Python 3.10+: + +```bash +cd ai/xauusd_m15 +pip install -r requirements.txt +python main.py +``` + +Optional env: `XAU_SYMBOL`, `XAU_LOOKBACK` (default 64), `XAU_EPOCHS`, `XAU_BATCH`, `SESSION_HOUR_OFFSET` (Asian session hour alignment vs server time). + +3. Copy `models/XAUUSD_M15_action.onnx` to **`MQL5/Files/`** (same path as `#resource` in the EA). +4. Open `XAUUSD_M15_ActionEA.mq5` in MetaEditor; compile. +5. Paste two lines from training stdout into **InpFeatMinStr** and **InpFeatMaxStr** (comma-separated **24** floats each). + +## ONNX I/O + +- Input: `[1, lookback, 24]` float32, **row 0 = newest bar**. +- Output: `[1, 5]` softmax probabilities. + +## Files + +| File | Role | +|------|------| +| `main.py` | Fetch, features, labels, train, ONNX + meta | +| `features.py` | 24-dim pipeline + Wilder RSI | +| `FRONTLINE_RSI_INTEGRATION.md` | frontline 策略 → 特征对照 | +| `labeling.py` | `compute_action_labels` | +| `risk_controls.py` | Adverse ATR helper for Python backtests | +| `XAUUSD_M15_ActionEA.mq5` | Live inference + trading skeleton | + +## Tuning labels + +Edit parameters in `labeling.compute_action_labels()` (`horizon`, `k_forward_atr`, `pullback_mult`, etc.) and retrain. diff --git a/ai/xauusd_m15/XAUUSD_M15_ActionEA.mq5 b/ai/xauusd_m15/XAUUSD_M15_ActionEA.mq5 new file mode 100644 index 0000000..e752c69 --- /dev/null +++ b/ai/xauusd_m15/XAUUSD_M15_ActionEA.mq5 @@ -0,0 +1,375 @@ +//+------------------------------------------------------------------+ +//| XAUUSD_M15_ActionEA.mq5 | +//| ONNX softmax [5]: HOLD, BUY, SELL_SHORT, CLOSE_LONG, CLOSE_SHORT | +//| 24 features: base 13 + RSI/frontline (see FRONTLINE_RSI_*.md) | +//| Exits: model CLOSE_* + optional InpTakeProfitATR; adverse ATR | +//+------------------------------------------------------------------+ +#property copyright "Profitable EA Project" +#property version "1.03" + +#include + +#resource "XAUUSD_M15_action.onnx" as uchar ExtModel[] + +#define FEAT_COUNT 24 + +input group "Model" +input int InpLookback = 64; +// 0 = legacy: require p(BUY)>=InpProbBuy and p(SELL)>=InpProbSell (use ~0.18 for 5-class softmax) +// 1 = default: open only when directional prob beats HOLD (typical 5-way outputs ~0.15–0.25 each) +input int InpEntryMode = 1; +input double InpProbBuy = 0.18; +input double InpProbSell = 0.18; +input double InpMinBeatHold = 0.0; // mode 1: require max(p1,p2)-p0 >= this (e.g. 0.02) +// Exit: 0 = p3/p4 >= thresholds (use ~0.18 for 5-class); 1 = CLOSE beats HOLD and beats add (p3>p1 / p4>p2) +// 2 = default: CLOSE beats HOLD only (lets winners exit when pullback signal > hold; still weak in trends) +input int InpExitMode = 2; +input double InpProbCloseL = 0.18; +input double InpProbCloseS = 0.18; +input double InpMinCloseBeatHold = 0.0; // exit modes 1–2: require p3/p4 > p0 + this + +input group "Session (match Python SESSION_HOUR_OFFSET)" +input int InpSessionHourOffset = 0; // add to bar hour so Asian 0–8 matches training + +input group "Scaler: paste 24 floats each from python main.py" +input string InpFeatMinStr = ""; +input string InpFeatMaxStr = ""; + +input group "Risk" +input double InpLotSize = 0.01; +input int InpMagic = 902015; +input int InpSlippage = 30; +input double InpMaxAdverseATR = 2.0; +input double InpTakeProfitATR = 0.0; // >0: close in profit when price move >= this * ATR(14) (banks winners) + +double g_feat_min[FEAT_COUNT]; +double g_feat_max[FEAT_COUNT]; + +CTrade trade; +long g_onnx = INVALID_HANDLE; +datetime g_last_bar = 0; + +void InitDefaultScalerBounds() +{ + double def_min[FEAT_COUNT] = { + 0,0,0,0,0,0,-0.05,-0.05,0,-0.02,1.0,0,0.1, + 0,0,-1,-0.2,-0.2,0,0,0,0,0,0 + }; + double def_max[FEAT_COUNT] = { + 5000,5000,5000,5000,1,1,0.05,0.05,0.05,0.02,1.02,1,5.0, + 1,1,1,0.2,0.2,1,1,1,1,1,1 + }; + for(int i = 0; i < FEAT_COUNT; i++) + { + g_feat_min[i] = def_min[i]; + g_feat_max[i] = def_max[i]; + } +} + +bool ParseFeatCsv(const string s, double &arr[]) +{ + if(StringLen(s) < 3) return false; + string parts[]; + int n = StringSplit(s, ',', parts); + if(n != FEAT_COUNT) return false; + for(int i = 0; i < FEAT_COUNT; i++) + arr[i] = StringToDouble(parts[i]); + return true; +} + +int OnInit() +{ + InitDefaultScalerBounds(); + trade.SetExpertMagicNumber(InpMagic); + trade.SetDeviationInPoints(InpSlippage); + trade.SetTypeFilling(ORDER_FILLING_IOC); + + if(StringLen(InpFeatMinStr) > 0 && ParseFeatCsv(InpFeatMinStr, g_feat_min)) + Print("Loaded InpFeatMinStr (24)"); + if(StringLen(InpFeatMaxStr) > 0 && ParseFeatCsv(InpFeatMaxStr, g_feat_max)) + Print("Loaded InpFeatMaxStr (24)"); + + g_onnx = OnnxCreateFromBuffer(ExtModel, ONNX_DEBUG_LOGS); + if(g_onnx == INVALID_HANDLE) + { + Print("OnnxCreateFromBuffer failed ", GetLastError()); + return INIT_FAILED; + } + + const long inShape[] = {1, InpLookback, FEAT_COUNT}; + if(!OnnxSetInputShape(g_onnx, 0, inShape)) + { + Print("OnnxSetInputShape failed ", GetLastError()); + OnnxRelease(g_onnx); + return INIT_FAILED; + } + const long outShape[] = {1, 5}; + if(!OnnxSetOutputShape(g_onnx, 0, outShape)) + { + Print("OnnxSetOutputShape failed ", GetLastError()); + OnnxRelease(g_onnx); + return INIT_FAILED; + } + return INIT_SUCCEEDED; +} + +void OnDeinit(const int r) +{ + if(g_onnx != INVALID_HANDLE) OnnxRelease(g_onnx); +} + +double AtrNow() +{ + double b[]; + ArraySetAsSeries(b, true); + int h = iATR(_Symbol, PERIOD_CURRENT, 14); + if(h == INVALID_HANDLE) return 0; + if(CopyBuffer(h, 0, 0, 2, b) < 1) { IndicatorRelease(h); return 0; } + double v = b[0]; + IndicatorRelease(h); + return v; +} + +bool AdverseExit(const long type, const double open_price) +{ + double atr = AtrNow(); + if(atr <= 0) return false; + double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID); + double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); + if(type == POSITION_TYPE_BUY) + { + double adv = (open_price - bid) / atr; + return adv >= InpMaxAdverseATR; + } + double adv = (ask - open_price) / atr; + return adv >= InpMaxAdverseATR; +} + +bool ProfitExit(const long type, const double open_price) +{ + if(InpTakeProfitATR <= 0.0) return false; + double atr = AtrNow(); + if(atr <= 0.0) return false; + double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID); + double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); + if(type == POSITION_TYPE_BUY) + return (bid - open_price) >= InpTakeProfitATR * atr; + return (open_price - ask) >= InpTakeProfitATR * atr; +} + +bool ModelCloseLong(const double p0, const double p1, const double p3) +{ + if(InpExitMode == 0) + return (p3 >= InpProbCloseL); + if(InpExitMode == 1) + return (p3 > p0 + InpMinCloseBeatHold && p3 > p1); + // mode 2: close-long probability beats hold (trends can still keep p1 high; use InpTakeProfitATR then) + return (p3 > p0 + InpMinCloseBeatHold); +} + +bool ModelCloseShort(const double p0, const double p2, const double p4) +{ + if(InpExitMode == 0) + return (p4 >= InpProbCloseS); + if(InpExitMode == 1) + return (p4 > p0 + InpMinCloseBeatHold && p4 > p2); + return (p4 > p0 + InpMinCloseBeatHold); +} + +void ScaleFeatures(const float &raw[], float &out[]) +{ + for(int f = 0; f < FEAT_COUNT; f++) + { + double den = g_feat_max[f] - g_feat_min[f]; + if(den < 1e-12) den = 1e-12; + double x = (double)raw[f] - g_feat_min[f]; + out[f] = (float)MathMax(0.0, MathMin(1.0, x / den)); + } +} + +bool PrepareMatrix(matrixf &M) +{ + int L = InpLookback; + double open[], high[], low[], close[]; + long vol[]; + datetime bt[]; + ArraySetAsSeries(open, true); + ArraySetAsSeries(high, true); + ArraySetAsSeries(low, true); + ArraySetAsSeries(close, true); + ArraySetAsSeries(vol, true); + ArraySetAsSeries(bt, true); + + int need = L + 55; + if(CopyOpen(_Symbol, PERIOD_CURRENT, 0, need, open) < L) return false; + if(CopyHigh(_Symbol, PERIOD_CURRENT, 0, need, high) < L) return false; + if(CopyLow(_Symbol, PERIOD_CURRENT, 0, need, low) < L) return false; + if(CopyClose(_Symbol, PERIOD_CURRENT, 0, need, close) < L) return false; + if(CopyTickVolume(_Symbol, PERIOD_CURRENT, 0, need, vol) < L) return false; + if(CopyTime(_Symbol, PERIOD_CURRENT, 0, need, bt) < L) return false; + + double rsi7[], rsi14[], rsi21[], ema20[], ema50[], atr[]; + ArraySetAsSeries(rsi7, true); + ArraySetAsSeries(rsi14, true); + ArraySetAsSeries(rsi21, true); + ArraySetAsSeries(ema20, true); + ArraySetAsSeries(ema50, true); + ArraySetAsSeries(atr, true); + + int h7 = iRSI(_Symbol, PERIOD_CURRENT, 7, PRICE_CLOSE); + int h14 = iRSI(_Symbol, PERIOD_CURRENT, 14, PRICE_CLOSE); + int h21 = iRSI(_Symbol, PERIOD_CURRENT, 21, PRICE_CLOSE); + int hE20 = iMA(_Symbol, PERIOD_CURRENT, 20, 0, MODE_EMA, PRICE_CLOSE); + int hE50 = iMA(_Symbol, PERIOD_CURRENT, 50, 0, MODE_EMA, PRICE_CLOSE); + int hA = iATR(_Symbol, PERIOD_CURRENT, 14); + if(h7 == INVALID_HANDLE || h14 == INVALID_HANDLE || h21 == INVALID_HANDLE || + hE20 == INVALID_HANDLE || hE50 == INVALID_HANDLE || hA == INVALID_HANDLE) + return false; + + if(CopyBuffer(h7, 0, 0, need, rsi7) < L || + CopyBuffer(h14, 0, 0, need, rsi14) < L || + CopyBuffer(h21, 0, 0, need, rsi21) < L || + CopyBuffer(hE20, 0, 0, need, ema20) < L || + CopyBuffer(hE50, 0, 0, need, ema50) < L || + CopyBuffer(hA, 0, 0, need, atr) < L) + { + IndicatorRelease(h7); IndicatorRelease(h14); IndicatorRelease(h21); + IndicatorRelease(hE20); IndicatorRelease(hE50); IndicatorRelease(hA); + return false; + } + IndicatorRelease(h7); IndicatorRelease(h14); IndicatorRelease(h21); + IndicatorRelease(hE20); IndicatorRelease(hE50); IndicatorRelease(hA); + + M.Resize(L, FEAT_COUNT); + const double RSI_OB = 70.0; + const double RSI_OS = 30.0; + + for(int i = 0; i < L; i++) + { + double vma = 0; + int cnt = 0; + for(int k = i; k < i + 20 && k < ArraySize(vol); k++) { vma += (double)vol[k]; cnt++; } + if(cnt < 1) cnt = 1; + vma /= cnt; + + double r0 = rsi14[i]; + double r1 = (i + 1 < ArraySize(rsi14)) ? rsi14[i + 1] : r0; + double r2 = (i + 2 < ArraySize(rsi14)) ? rsi14[i + 2] : r1; + double rv7 = rsi7[i]; + double rv21 = rsi21[i]; + + double spread = (r0 - rv7) / 50.0; + if(spread > 1.0) spread = 1.0; + if(spread < -1.0) spread = -1.0; + double vel = (r0 - r1) / 25.0; + double acc = ((r0 - r1) - (r1 - r2)) / 25.0; + double dist_mid = MathAbs(r0 - 50.0) / 50.0; + double c_ob = (r1 < RSI_OB && r0 >= RSI_OB) ? 1.0 : 0.0; + double c_os = (r1 > RSI_OS && r0 <= RSI_OS) ? 1.0 : 0.0; + double c50u = (r1 < 50.0 && r0 >= 50.0) ? 1.0 : 0.0; + double c50d = (r1 > 50.0 && r0 <= 50.0) ? 1.0 : 0.0; + + MqlDateTime st; + TimeToStruct(bt[i], st); + int hr = (st.hour + InpSessionHourOffset) % 24; + if(hr < 0) hr += 24; + double asian = (hr >= 0 && hr < 8) ? 1.0 : 0.0; + + float raw[FEAT_COUNT]; + raw[0] = (float)open[i]; + raw[1] = (float)high[i]; + raw[2] = (float)low[i]; + raw[3] = (float)close[i]; + raw[4] = (float)((double)vol[i] / 1000000.0); + raw[5] = (float)(r0 / 100.0); + raw[6] = (float)((ema20[i] - close[i]) / close[i]); + raw[7] = (float)((ema50[i] - close[i]) / close[i]); + raw[8] = (float)(atr[i] / close[i]); + double pc = (i < L - 1) ? (close[i] - close[i + 1]) / close[i + 1] : 0.0; + raw[9] = (float)pc; + raw[10] = (float)(high[i] / low[i]); + raw[11] = (float)(vma / 1000000.0); + raw[12] = (float)(vma > 0 ? (double)vol[i] / vma : 1.0); + raw[13] = (float)(rv7 / 100.0); + raw[14] = (float)(rv21 / 100.0); + raw[15] = (float)spread; + raw[16] = (float)vel; + raw[17] = (float)acc; + raw[18] = (float)dist_mid; + raw[19] = (float)c_ob; + raw[20] = (float)c_os; + raw[21] = (float)c50u; + raw[22] = (float)c50d; + raw[23] = (float)asian; + + float sc[FEAT_COUNT]; + ScaleFeatures(raw, sc); + for(int j = 0; j < FEAT_COUNT; j++) + M[i][j] = sc[j]; + } + return true; +} + +void OnTick() +{ + datetime t = iTime(_Symbol, PERIOD_CURRENT, 0); + if(t == g_last_bar) return; + g_last_bar = t; + + matrixf Min; + if(!PrepareMatrix(Min)) + { + Print("PrepareMatrix failed"); + return; + } + + vectorf out; + out.Resize(5); + if(!OnnxRun(g_onnx, ONNX_NO_CONVERSION, Min, out)) + { + Print("OnnxRun failed ", GetLastError()); + return; + } + + double p0 = out[0], p1 = out[1], p2 = out[2], p3 = out[3], p4 = out[4]; + Print("ONNX HOLD=", p0, " BUY=", p1, " SELL=", p2, " CL=", p3, " CS=", p4); + + if(!PositionSelect(_Symbol)) + { + if(InpEntryMode == 1) + { + double dir = MathMax(p1, p2); + if(dir <= p0 + InpMinBeatHold) + return; + if(p1 >= p2 && p1 > p0 + InpMinBeatHold) + trade.Buy(InpLotSize, _Symbol, 0, 0, 0, "AI BUY"); + else if(p2 > p1 && p2 > p0 + InpMinBeatHold) + trade.Sell(InpLotSize, _Symbol, 0, 0, 0, "AI SELL"); + } + else + { + if(p1 >= InpProbBuy && p1 >= p2) + trade.Buy(InpLotSize, _Symbol, 0, 0, 0, "AI BUY"); + else if(p2 >= InpProbSell && p2 > p1) + trade.Sell(InpLotSize, _Symbol, 0, 0, 0, "AI SELL"); + } + return; + } + + long typ = (long)PositionGetInteger(POSITION_TYPE); + double opn = PositionGetDouble(POSITION_PRICE_OPEN); + if(AdverseExit(typ, opn)) + { + trade.PositionClose(_Symbol); + return; + } + if(ProfitExit(typ, opn)) + { + trade.PositionClose(_Symbol); + return; + } + if(typ == POSITION_TYPE_BUY && ModelCloseLong(p0, p1, p3)) + trade.PositionClose(_Symbol); + else if(typ == POSITION_TYPE_SELL && ModelCloseShort(p0, p2, p4)) + trade.PositionClose(_Symbol); +} diff --git a/ai/xauusd_m15/XAUUSD_M15_ActionEA_optimize.set b/ai/xauusd_m15/XAUUSD_M15_ActionEA_optimize.set new file mode 100644 index 0000000..fc2dbbd --- /dev/null +++ b/ai/xauusd_m15/XAUUSD_M15_ActionEA_optimize.set @@ -0,0 +1,27 @@ +; XAUUSD_M15_ActionEA v1.03 — optimization preset +; Copy to: MetaQuotes\Terminal\\MQL5\Profiles\Tester\ +; Strategy Tester → Inputs → context menu → Load +; +; Format: Name=value||optimize_start||step||stop||Y|N (Y = optimize this parameter) +; +; Model +InpLookback=64||48||8||96||Y +InpEntryMode=1||0||1||1||Y +InpProbBuy=0.18||0.14||0.02||0.26||Y +InpProbSell=0.18||0.14||0.02||0.26||Y +InpMinBeatHold=0.0||0.0||0.01||0.05||Y +InpExitMode=2||0||1||2||Y +InpProbCloseL=0.18||0.14||0.02||0.26||Y +InpProbCloseS=0.18||0.14||0.02||0.26||Y +InpMinCloseBeatHold=0.0||0.0||0.01||0.04||Y +; Session (match Python SESSION_HOUR_OFFSET) +InpSessionHourOffset=0||-3||1||3||N +; Scaler: paste 24 floats from python main.py (not optimizable) +InpFeatMinStr= +InpFeatMaxStr= +; Risk +InpLotSize=0.01||0.01||0.001000||0.100000||N +InpMagic=902015||902015||1||9020150||N +InpSlippage=30||30||1||300||N +InpMaxAdverseATR=2.0||1.0||0.25||3.5||Y +InpTakeProfitATR=0.0||0.0||0.25||3.0||Y diff --git a/ai/xauusd_m15/__pycache__/features.cpython-312.pyc b/ai/xauusd_m15/__pycache__/features.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4744cd33a8c4766fa7855798e4a00213e4a1536b GIT binary patch literal 7986 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 HRZad6`1UcB literal 0 HcmV?d00001 diff --git a/ai/xauusd_m15/__pycache__/labeling.cpython-312.pyc b/ai/xauusd_m15/__pycache__/labeling.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5100d937358841edfcd664c37a845bbe9ece519f GIT binary patch literal 5904 zcmbt2ZEPDycDwxM^7~64v?Pxt%N89=vK(8r9lL^T*=JvzxVGYtQ|$6q+!eJFwWMd4 zrleaQRP1UJ7obCM=FQCen0fQwyf^y~9uGr7S!k&Wf90pBUy_bd96CV1lmYmF;;2cAqd8NG zo;OXJXabv4=1GgzS|@FskMnbupI9gDoRzb2cFw^$Ifip_?hoxw>UaIP0O$FMZPLL7 zxe(_CF3v@BES&v26Gbr>vWo+$bPf$6iBF{lW`yJnlH|n{k5cRupOVmY8l&r1u3fy1 zrdTYYeld-vg$15N6W4~``2!?~4aC?W!(7kELRw@~D3KOrenCEqrZGS%LFCcRiL1aE zvofC)c;GW839N`P|B%NLn>vQ11e?kTV)7W87r22_$72kOdBlr}GzY?12_2p0SviY& z=_nCubOtkvs6Tju3^ zInV&WIUqiPCN5pO7N59s{pLHsqM4XW=fvMmPR5l=mClL@ejjSGct)3e6lEnI z5qY}poI8(X-GH*>Ac@N7z-&NALu9KOwxJ(T1nd&ME59~;49Ty}q_MD+7Vo2eDVyQ( zLqP(gkXfAMWeHep6L*Tys*4rjxLIO_(%T8J@10@?$V^f6%ab&5I0am+9fqJaHCi)i z^On3hZ;}B=FSE@&8e@t{F)x8@Lu;9}8koE7Ck>F`%o4eKiZQR4|9|vJGiUkK`blGj zv(7zYpsUR{_L8?M)>+r9I12qq17p_n>a4NW2`XlLTeT3=P|a|}sx^^HOZ+w=1-)C? z1wo40Ra1sjZQ%R~R#vUjj4&;$W_C(a&GYPnYRBmmTm?zhGS9PO%%+;SY1Ia&DWo|} z^oVVwA{tXoGL}eB_nmJ>#?Ri%;PkX0vr{R4fL{PAd4T1>4$}A@E8JUPvssCY&kvuv zr`=m125ttGVPzbbKmsq}2(W8|zw|SxmZ@56d+G4%QsqR2e|lzZ>RIc@bA@c7cX@o% z>3Y(>(!S;P7hhlbe$5joUi#q8)i>XJtLo`~;XYh-AKq~H*F65>sSn;*edE3JRS$aM z?yI`{Hrz+*c8im#GnCi&wa3ob{@Y90nLkPt9xNyRc&_fFtoFK}a(kbgT{&Bv-f(rk zaP?GOJsYk=>y|?=VO7*NA{ANXb{MK8{Gt5kX!5^qeAe|RUsgwxe^w^t-$(!BpZ<}Q z`Y34K-tZ39t=%GV-FH-<;p4`DXD;4wuQ=#Mb?VregsggYQ0KELS!HC*i=a(_6NW30 zV<9G{Infpz*RB)Il11(*d57Uz`_4LHR&%(0XBio!=tZFn^US;C9cKe-%Z}k2s7-C& zE$=wqY$Mh-O;d_XCf22uS#Z<6W!J6p9>tXRD(1XT-f<7btN0A*oNWn+^M2W9@K9XF zipQy<>HcY$4JZM{KL?H~IRJ7gG`Sk)?h%XU?21PToCD&=t%_R-XqQm1Y4wmf>@7;r zkbtd9kh9N4fs;c4-h`TSEPMMQk=haE-Z%(c}=Tu8)Lhz z5;j(0wE4)sw8WD46eVQP7;U~qi5NT3F4y1^Tvqv3V@zpj8g2W|azF=)SEFp`BD!Nw zJCfV?<+k6BL2JL0TeQheqDs5IYK|diV%SXnz|OAp`2%FHij|yWzC(!`vl?ylT&L2p zKw}?GDXofy*bnp^TCa_B5eZ~0-=%amu-d+b)uyy^ZVhW3unrO%P<-FkO&$@ed1bWw zJ8K9TS~c2y&%U(#*+jQNW3>5RrAO)2HK1;w9*fw2VvCPH0oBm z8l%pp(N^VPgM+PUvR?DNif+{fIBq{ zwzju$zEAz1G;Ur9_<`(C0fQkS_$Chtn}}F6p~X^^o`xJ;Hl7H_2M13gHYFrQl9Z(p zM`k&GVNj#J21zISVIxHS5aD!ALSOvp&$Jv_&juSQF(lnH+H+$nyEsH%Bk(4Gv`Waryt zo7)zsR5zO-`C?ql8)7Eas;ynMi0nKc^QyLoY%0q`3X|eREr(D|Vn($t@$lv#xbnzJ zOje>=wd`4S2-3753No)+r&DRjgUs`Sh)Il5ZMybw3_7tG4nTtskg9`Jouuj_)j?7r zQgxGxM6%s&tF#C?6@+h_{yc|_=-9TI^!N$MN~&~rQtd749nH<32s)F5rf4yO~B1ehg9q(N4RPsV2; z;e!U`;u-j-RHvp7Ez|Il^de4P8aj8M{(8_yh+rqbAjlvIgfbc^fxSRx4?8C(|D6gZ zcZwQGq~|kPnU6Q0s)Q$Ct`GiF8V-J$s&`QyUm>^h<_mXM)!nsxspj$&rdQ6saCKB& z9n0f2#$C9z5_`c!t4wtH;-%f;c9t2K9c%k3-DE0+uOrZ4d1M=L)n4L|;IB~W4iqNV1K z6xmfr>Ex=fFt!DWXrOpwHBt(c?vxKy9+VHRdtwC>$y>Vtt*_KwN|s++qsv3CA?As9>&z+e_W6S4z2R`0!e9H8k+7y&5`O zaMU856>Eik>ZnHg*DhAWL(k4s!{-Xltzh(d@ZE}i?R*uT2I#Zg&tvPiC#&C|td35? z(nB53Lw{I_t>vpd=K%WaGe6I*|KR@L|G0Ybe!)?lux@&S@1OW!WOby}_ulypPdDiDm62McwbZkEr$Vp3RdCj# z9i?pLMtPw;04i%gR`AviAYga8GF3jmHdc)e6nr4w(^867-Mzo2OrHLlzpFA(^$-2p z44tjUIiG@KzwtCuK3Da_1A}q~>+U^72P@~R{^S2AQRpi-<&Ko^G)(N#)n9m8pE{a) z;qu+4UZk9C>V?Z~wa!Cp&gY%OW%}6zVxy0)Zt2GQ=xY4|4fgysJeuKYb7tjC@pk3J zU!Hz?`q|*;uCaB?7;XW_`_^NeT+HBy^viz+0KR^aFJII=orf=95Sbv4*;{tA^_|?n zEblyc_sigSpS5|537+a4Jhm0{rxqi=<*iM5+RhVroO)tQm;_kueYlk_o36 zZ}8Sht&4F&bcf8D5;>I?BobB{7ps1CdYUCln1y)-{t~%6m#KfVjBdF-Pp+(7d4J;3 zTg#U=z5XY{icoTHczc$=_X}rdY4+KX&u)G0ya?A`-_f-*8-1t##Whl)3uBM7aB0%3 zw;m}g*Ppva)-5Cd1C92+{~Kq^SdS$}<6aOFvuQE$8+V2q9A{c&b5KP}LwUvJw^P;Z=hW>1vP`Xf-H7#yF^A^fs|X zSQOFd5+h~?MUKUoUBveZj>eT>FZnqkA-@ayJ%+T9e?P{k_IR9wU>aAMczjy>+!c>w zuzAQ6#O!=#v2lJG7I;cpdY~m2TAk_!GS75du7(0z48g-Z}44ozR6YmRW; ztU+-9cms924m+q&OWmo%4As(Jcj>U33b)riI_#zVk-ATZ{bW3#!$B(0QrEfH!<5bU QGNO(DMl{*z-_v&Tzq@_G0{{R3 literal 0 HcmV?d00001 diff --git a/ai/xauusd_m15/features.py b/ai/xauusd_m15/features.py new file mode 100644 index 0000000..16bbc24 --- /dev/null +++ b/ai/xauusd_m15/features.py @@ -0,0 +1,173 @@ +""" +Feature pipeline: base 13 (EA-compatible) + 11 RSI / session features from frontline experience. + +Frontline mapping (see FRONTLINE_RSI_INTEGRATION.md): + - RSIReversalAsianStrategy / RSICrossOverReversal: cross OB/OS, cross 50 + - RSIScalpingStrategy: RSI velocity (bounce from extreme uses 3-bar structure → vel/acc) + - RSIMidPointHijack: distance from 50, RSI(7) vs RSI(14) spread + - Asian session gate → binary feature (hour window; offset for server vs UTC) + +RSI uses Wilder smoothing (ewm alpha=1/period) to align with MT5 iRSI. +""" + +from __future__ import annotations + +import os + +import numpy as np +import pandas as pd + +NUM_BASE_FEATURES = 13 +NUM_RSI_EXTRA = 11 +NUM_FEATURES = NUM_BASE_FEATURES + NUM_RSI_EXTRA # 24 + +# Default thresholds aligned with common frontline inputs (Asian / scalping) +RSI_OVERBOUGHT = 70.0 +RSI_OVERSOLD = 30.0 + + +def wilder_rsi(close: pd.Series, period: int) -> np.ndarray: + """Wilder RSI (matches MetaTrader iRSI closely).""" + delta = close.diff() + gain = delta.clip(lower=0.0) + loss = (-delta).clip(lower=0.0) + avg_g = gain.ewm(alpha=1.0 / period, min_periods=period, adjust=False).mean() + avg_l = loss.ewm(alpha=1.0 / period, min_periods=period, adjust=False).mean() + rs = avg_g / avg_l.replace(0, np.nan) + rsi = 100.0 - (100.0 / (1.0 + rs)) + return rsi.fillna(50.0).to_numpy(dtype=np.float64) + + +def prepare_features_full( + df: pd.DataFrame, + *, + session_hour_offset: int | None = None, +) -> pd.DataFrame: + """ + Build (N, 24) feature table, chronological index matching df. + Drops first ~50 rows (warmup) like the original pipeline. + """ + if session_hour_offset is None: + session_hour_offset = int(os.environ.get("SESSION_HOUR_OFFSET", "0")) + + o = df["open"].to_numpy(dtype=np.float64) + h = df["high"].to_numpy(dtype=np.float64) + l = df["low"].to_numpy(dtype=np.float64) + c = df["close"].astype(float) + vol = df["tick_volume"].to_numpy(dtype=np.float64) + n = len(df) + idx = df.index + + rsi7 = wilder_rsi(c, 7) + rsi14 = wilder_rsi(c, 14) + rsi21 = wilder_rsi(c, 21) + + ema20 = c.ewm(span=20, adjust=False).mean().to_numpy() + ema50 = c.ewm(span=50, adjust=False).mean().to_numpy() + + tr = np.maximum( + h - l, + np.maximum(np.abs(h - np.roll(c.to_numpy(), 1)), np.abs(l - np.roll(c.to_numpy(), 1))), + ) + tr[0] = h[0] - l[0] + atr = pd.Series(tr).rolling(14).mean().to_numpy() + + vol_ma = np.zeros(n) + for j in range(n): + s = 0.0 + cnt = 0 + for k in range(j, min(j + 20, n)): + s += vol[k] + cnt += 1 + vol_ma[j] = s / cnt if cnt else vol[j] + + pc_ea = np.zeros(n) + cvals = c.to_numpy() + for j in range(1, n): + den = cvals[j - 1] + pc_ea[j] = (cvals[j] - den) / den if den else 0.0 + + hours = np.zeros(n, dtype=np.int32) + for j in range(n): + ts = idx[j] + try: + hts = int(ts.hour) + except Exception: + hts = 0 + hours[j] = (hts + session_hour_offset) % 24 + + rows = [] + for j in range(n): + r0 = rsi14[j] + r1 = rsi14[j - 1] if j > 0 else r0 + r2 = rsi14[j - 2] if j > 1 else r1 + + spread = np.clip((r0 - rsi7[j]) / 50.0, -1.0, 1.0) + vel = (r0 - r1) / 25.0 + acc = ((r0 - r1) - (r1 - r2)) / 25.0 + dist_mid = abs(r0 - 50.0) / 50.0 + + cross_ob = 1.0 if (r1 < RSI_OVERBOUGHT and r0 >= RSI_OVERBOUGHT) else 0.0 + cross_os = 1.0 if (r1 > RSI_OVERSOLD and r0 <= RSI_OVERSOLD) else 0.0 + cross_50_up = 1.0 if (r1 < 50.0 and r0 >= 50.0) else 0.0 + cross_50_dn = 1.0 if (r1 > 50.0 and r0 <= 50.0) else 0.0 + asian = 1.0 if (0 <= hours[j] < 8) else 0.0 + + rows.append( + [ + float(o[j]), + float(h[j]), + float(l[j]), + float(cvals[j]), + float(vol[j] / 1_000_000.0), + float(rsi14[j] / 100.0), + float((ema20[j] - cvals[j]) / cvals[j]) if cvals[j] else 0.0, + float((ema50[j] - cvals[j]) / cvals[j]) if cvals[j] else 0.0, + float(atr[j] / cvals[j]) if cvals[j] else 0.0, + float(pc_ea[j]), + float(h[j] / l[j]) if l[j] else 1.0, + float(vol_ma[j] / 1_000_000.0), + float(vol[j] / vol_ma[j]) if vol_ma[j] > 0 else 1.0, + float(rsi7[j] / 100.0), + float(rsi21[j] / 100.0), + float(spread), + float(vel), + float(acc), + float(dist_mid), + float(cross_ob), + float(cross_os), + float(cross_50_up), + float(cross_50_dn), + float(asian), + ] + ) + + cols = [ + "open", + "high", + "low", + "close", + "tick_volume", + "rsi", + "ema20_n", + "ema50_n", + "atr_n", + "price_change", + "high_low_ratio", + "volume_ma", + "volume_ratio", + "rsi7_n", + "rsi21_n", + "rsi_fast_slow_spread", + "rsi_velocity", + "rsi_accel", + "rsi_dist_mid_50", + "rsi_cross_overbought", + "rsi_cross_oversold", + "rsi_cross_50_up", + "rsi_cross_50_down", + "session_asian_utc", + ] + + out = pd.DataFrame(rows, index=idx, columns=cols) + return out.iloc[50:].copy() diff --git a/ai/xauusd_m15/labeling.py b/ai/xauusd_m15/labeling.py new file mode 100644 index 0000000..c9a311e --- /dev/null +++ b/ai/xauusd_m15/labeling.py @@ -0,0 +1,130 @@ +""" +Buy-low / sell-high style labels for OHLCV bars (no fixed SL/TP in labels). + +Optional context: frontline RSI strategies (Asian reversal, scalping, mid-50) +are encoded as *features* in features.py (crosses, velocity, session), not as +hard rules here — the network learns joint patterns with price/volume. + +Classes (integer, matches EA): + 0 HOLD + 1 BUY — forward upside vs ATR + local swing low + 2 SELL_SHORT — forward downside vs ATR + local swing high + 3 CLOSE_LONG — past-only: pullback from recent range high + 4 CLOSE_SHORT — past-only: bounce from recent range low + +CLOSE_* use only bars <= t (no future leak). +BUY/SELL use forward window [t+1, t+horizon] (supervised targets). +""" +from __future__ import annotations + +import numpy as np +import pandas as pd + + +def atr_series(df: pd.DataFrame, period: int = 14) -> pd.Series: + high, low, close = df["high"], df["low"], df["close"] + tr = pd.concat( + [ + high - low, + (high - close.shift()).abs(), + (low - close.shift()).abs(), + ], + axis=1, + ).max(axis=1) + return tr.rolling(period).mean() + + +def compute_action_labels( + df: pd.DataFrame, + *, + horizon: int = 32, + local_window: int = 24, + pullback_window: int = 20, + k_forward_atr: float = 0.75, + local_pct: float = 0.28, + pullback_mult: float = 0.55, + trend_mult: float = 1.05, +) -> pd.Series: + """ + Return a Series of int labels 0..4 aligned to df index. + Last `horizon` rows → HOLD (no forward path for buy/sell scoring). + """ + close = df["close"].values + high = df["high"].values + low = df["low"].values + n = len(df) + atr = atr_series(df, 14).values + labels = np.zeros(n, dtype=np.int64) + + lw = local_window + pw = pullback_window + need = max(lw, pw) + 2 + + for t in range(n): + if t < need or t >= n - horizon: + labels[t] = 0 + continue + + a = atr[t] + if not np.isfinite(a) or a <= 0: + a = close[t] * 1e-4 + + sl = low[t + 1 : t + horizon + 1] + sh = high[t + 1 : t + horizon + 1] + fwd_max = float(np.max(sh)) + fwd_min = float(np.min(sl)) + up_move = (fwd_max - close[t]) / a + down_move = (close[t] - fwd_min) / a + + loc_low = float(np.min(low[t - lw : t + 1])) + loc_high = float(np.max(high[t - lw : t + 1])) + rng = max(loc_high - loc_low, a * 0.15) + near_low = (close[t] - loc_low) / rng <= local_pct + near_high = (loc_high - close[t]) / rng <= local_pct + + buy_sig = near_low and (up_move >= k_forward_atr) and (up_move >= down_move * 0.85) + sell_sig = near_high and (down_move >= k_forward_atr) and (down_move > up_move * 1.05) + + # Past window [t-pw, t] + seg_h = high[t - pw : t + 1] + seg_l = low[t - pw : t + 1] + rh = float(np.max(seg_h)) + rl = float(np.min(seg_l)) + range_atr = (rh - rl) / a + pull_from_high = (rh - close[t]) / a + bounce_from_low = (close[t] - rl) / a + + exit_long = ( + range_atr >= trend_mult + and pull_from_high >= pullback_mult + and close[t] < close[t - 1] + ) + exit_short = ( + range_atr >= trend_mult + and bounce_from_low >= pullback_mult + and close[t] > close[t - 1] + ) + + if exit_long and not buy_sig: + labels[t] = 3 + elif exit_short and not sell_sig: + labels[t] = 4 + elif buy_sig and not sell_sig: + labels[t] = 1 + elif sell_sig and not buy_sig: + labels[t] = 2 + elif buy_sig and sell_sig: + labels[t] = 1 if up_move >= down_move else 2 + else: + labels[t] = 0 + + return pd.Series(labels, index=df.index, name="action_label") + + +def class_weights(y: np.ndarray, n_classes: int = 5) -> dict[int, float]: + from sklearn.utils.class_weight import compute_class_weight + + y_int = y.astype(int) + classes = np.arange(n_classes) + cw = compute_class_weight("balanced", classes=classes, y=y_int) + return {i: float(cw[i]) for i in range(n_classes)} diff --git a/ai/xauusd_m15/main.py b/ai/xauusd_m15/main.py new file mode 100644 index 0000000..9e37504 --- /dev/null +++ b/ai/xauusd_m15/main.py @@ -0,0 +1,210 @@ +""" +XAUUSD M15 — ONNX action model (buy / sell short / close long / close short / hold). + +Features: 24 dims — base 13 + RSI/frontline stack (see features.py, FRONTLINE_RSI_INTEGRATION.md). +Row order matches XAUUSD_M15_ActionEA.mq5 (row 0 = newest bar). +Data: MT5, 2008–2026 (limited by downloaded history). +""" + +from __future__ import annotations + +import json +import os +import pickle +import sys +from datetime import datetime, timedelta + +import MetaTrader5 as mt5 +import numpy as np +import pandas as pd +import tensorflow as tf +from sklearn.model_selection import train_test_split +from sklearn.preprocessing import MinMaxScaler +from tensorflow import keras +from tensorflow.keras import layers +from tqdm import tqdm +import tf2onnx +import onnx + +from labeling import class_weights, compute_action_labels +from features import NUM_FEATURES, prepare_features_full + +NUM_CLASSES = 5 +CLASS_NAMES = ["HOLD", "BUY", "SELL_SHORT", "CLOSE_LONG", "CLOSE_SHORT"] + + +def fetch_mt5_range( + symbol: str, + timeframe: int, + start_date: datetime, + end_date: datetime, +) -> pd.DataFrame: + if not mt5.initialize(): + raise RuntimeError(f"MT5 init failed: {mt5.last_error()}") + + info = mt5.symbol_info(symbol) + if info is None: + mt5.shutdown() + raise ValueError(f"Symbol {symbol} not found") + if not info.visible and not mt5.symbol_select(symbol, True): + mt5.shutdown() + raise ValueError(f"Cannot select {symbol}") + + all_rows: list[dict] = [] + chunk_days = 30 + cur = start_date + while cur < end_date: + chunk_end = min(cur + timedelta(days=chunk_days), end_date) + rates = mt5.copy_rates_range(symbol, timeframe, cur, chunk_end) + if rates is not None and len(rates) > 1: + for row in rates: + all_rows.append({n: row[n] for n in rates.dtype.names}) + cur = chunk_end + + if not all_rows: + mt5.shutdown() + raise ValueError("No rates returned — download XAUUSD M15 in MT5 History Center") + + df = pd.DataFrame(all_rows) + df["time"] = pd.to_datetime(df["time"], unit="s") + df = df.set_index("time").sort_index() + df = df[~df.index.duplicated(keep="first")] + return df + + +def create_sequences( + X: np.ndarray, y: np.ndarray, lookback: int +) -> tuple[np.ndarray, np.ndarray]: + """ + Window ends at bar i (chronological). Rows: newest-first inside each window + (matches MT5 series arrays in EA). + """ + xs, ys = [], [] + for i in tqdm(range(lookback - 1, len(X)), desc="sequences"): + window = X[i - lookback + 1 : i + 1].copy() + window = window[::-1] # newest bar first → same as EA matrix row 0 + xs.append(window) + ys.append(y[i]) + return np.asarray(xs, dtype=np.float32), np.asarray(ys, dtype=np.int64) + + +def build_model(lookback: int, n_feat: int) -> keras.Model: + inp = layers.Input(shape=(lookback, n_feat)) + x = layers.LSTM(96, return_sequences=True)(inp) + x = layers.Dropout(0.25)(x) + x = layers.LSTM(48)(x) + x = layers.Dropout(0.25)(x) + x = layers.Dense(32, activation="relu")(x) + out = layers.Dense(NUM_CLASSES, activation="softmax", name="action_probs")(x) + model = keras.Model(inp, out) + model.compile( + optimizer=keras.optimizers.Adam(1e-3), + loss="sparse_categorical_crossentropy", + metrics=["accuracy"], + ) + return model + + +def main() -> int: + symbol = os.environ.get("XAU_SYMBOL", "XAUUSD") + lookback = int(os.environ.get("XAU_LOOKBACK", "64")) + epochs = int(os.environ.get("XAU_EPOCHS", "40")) + batch_size = int(os.environ.get("XAU_BATCH", "64")) + + start_date = datetime(2008, 1, 1) + end_date = datetime(2026, 12, 31) + + out_dir = os.path.join(os.path.dirname(__file__), "models") + os.makedirs(out_dir, exist_ok=True) + onnx_path = os.path.join(out_dir, f"{symbol}_M15_action.onnx") + meta_path = os.path.join(out_dir, f"{symbol}_M15_action_meta.json") + + print("Fetching MT5 data …") + try: + raw = fetch_mt5_range(symbol, mt5.TIMEFRAME_M15, start_date, end_date) + finally: + mt5.shutdown() + print(f"Bars: {len(raw)} range: {raw.index[0]} → {raw.index[-1]}") + + feat = prepare_features_full(raw) + labels_full = compute_action_labels(raw) + labels = labels_full.loc[feat.index] + + y = labels.loc[feat.index].values.astype(np.int64) + X_raw = feat.values.astype(np.float32) + + valid = np.isfinite(X_raw).all(axis=1) & (y >= 0) & (y < NUM_CLASSES) + X_raw = X_raw[valid] + y = y[valid] + + print("Label counts:", {CLASS_NAMES[i]: int((y == i).sum()) for i in range(NUM_CLASSES)}) + + scaler = MinMaxScaler() + Xn = scaler.fit_transform(X_raw).astype(np.float32) + + X_seq, y_seq = create_sequences(Xn, y, lookback) + if len(X_seq) < 500: + print("ERROR: Too few sequences — need more M15 history in MT5.") + return 1 + + X_train, X_val, y_train, y_val = train_test_split( + X_seq, y_seq, test_size=0.15, shuffle=False + ) + + cw = class_weights(y_train, NUM_CLASSES) + sample_w = np.array([cw[int(c)] for c in y_train], dtype=np.float32) + + model = build_model(lookback, NUM_FEATURES) + model.summary() + + model.fit( + X_train, + y_train, + sample_weight=sample_w, + validation_data=(X_val, y_val), + epochs=epochs, + batch_size=batch_size, + verbose=1, + callbacks=[ + keras.callbacks.EarlyStopping( + monitor="val_loss", patience=8, restore_best_weights=True + ), + keras.callbacks.ReduceLROnPlateau( + monitor="val_loss", factor=0.5, patience=4, min_lr=1e-6 + ), + ], + ) + + spec = (tf.TensorSpec((None, lookback, NUM_FEATURES), tf.float32, name="input"),) + onnx_m, _ = tf2onnx.convert.from_keras(model, input_signature=spec, opset=13) + onnx.save_model(onnx_m, onnx_path) + + with open(onnx_path.replace(".onnx", "_scaler.pkl"), "wb") as f: + pickle.dump(scaler, f) + + meta = { + "symbol": symbol, + "timeframe": "M15", + "lookback": lookback, + "num_features": int(NUM_FEATURES), + "feature_columns": feat.columns.tolist(), + "num_classes": NUM_CLASSES, + "class_names": CLASS_NAMES, + "scaler_feature_min": scaler.data_min_.tolist(), + "scaler_feature_max": scaler.data_max_.tolist(), + "scaler_scale": scaler.scale_.tolist() if hasattr(scaler, "scale_") else None, + "notes": "MinMax in EA; row0=newest. See FRONTLINE_RSI_INTEGRATION.md.", + } + with open(meta_path, "w", encoding="utf-8") as f: + json.dump(meta, f, indent=2) + + print(f"Saved: {onnx_path}") + print(f"Meta: {meta_path}") + print("\n--- Paste into EA InpFeatMinStr / InpFeatMaxStr (comma-separated, %d floats each) ---" % NUM_FEATURES) + print(",".join(f"{x:.8g}" for x in scaler.data_min_)) + print(",".join(f"{x:.8g}" for x in scaler.data_max_)) + return 0 + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/ai/xauusd_m15/models/XAUUSD_M15_action.onnx b/ai/xauusd_m15/models/XAUUSD_M15_action.onnx new file mode 100644 index 0000000000000000000000000000000000000000..288c913a78e5cf35039bb217f2a185a86b8c387c GIT binary patch literal 321792 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

j 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

-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.23 +pandas>=2.0 +MetaTrader5>=5.0.45 +tensorflow>=2.14 +tf2onnx>=1.16 +onnx>=1.15 +scikit-learn>=1.3 +tqdm>=4.66 diff --git a/ai/xauusd_m15/risk_controls.py b/ai/xauusd_m15/risk_controls.py new file mode 100644 index 0000000..c2041b7 --- /dev/null +++ b/ai/xauusd_m15/risk_controls.py @@ -0,0 +1,25 @@ +""" +Dynamic adverse risk (conceptual mirror of EA InpMaxAdverseATR). + +For backtests in Python: given entry price, ATR series, and bid/ask path, +exit when (entry - bid)/atr >= max_adv for long. +""" + +from __future__ import annotations + +import numpy as np + + +def adverse_hit_long( + entry: float, + low_path: np.ndarray, + atr_path: np.ndarray, + max_adverse_atr: float, +) -> int | None: + """Return first index where adverse >= threshold, else None.""" + for i in range(len(low_path)): + atr = max(atr_path[i], entry * 1e-6) + adv = (entry - low_path[i]) / atr + if adv >= max_adverse_atr: + return i + return None diff --git a/frontline/MQL5/RSIScalpingMSFT/main.mq5 b/back-pedal/archive/RSIScalpingMSFT/main.mq5 similarity index 100% rename from frontline/MQL5/RSIScalpingMSFT/main.mq5 rename to back-pedal/archive/RSIScalpingMSFT/main.mq5 diff --git a/frontline/MQL5/RSIScalpingMSFT/report.html b/back-pedal/archive/RSIScalpingMSFT/report.html similarity index 100% rename from frontline/MQL5/RSIScalpingMSFT/report.html rename to back-pedal/archive/RSIScalpingMSFT/report.html diff --git a/frontline/MQL5/RSIScalpingMSFT/report.png b/back-pedal/archive/RSIScalpingMSFT/report.png similarity index 100% rename from frontline/MQL5/RSIScalpingMSFT/report.png rename to back-pedal/archive/RSIScalpingMSFT/report.png diff --git a/frontline/MQL5/RSI_secret_sauce_XAUUSD/main.mq5 b/frontline/MQL5/RSI_secret_sauce_XAUUSD/main.mq5 new file mode 100644 index 0000000..1778a0f --- /dev/null +++ b/frontline/MQL5/RSI_secret_sauce_XAUUSD/main.mq5 @@ -0,0 +1,508 @@ +//+------------------------------------------------------------------+ +//| RSI_SecretSauce_XAUUSD.mq5 | +//| Copyright 2025, MetaQuotes Ltd. | +//| https://www.mql5.com | +//+------------------------------------------------------------------+ +#property copyright "Copyright 2025, MetaQuotes Ltd." +#property link "https://www.mql5.com" +#property version "1.01" +#property description "RSI Secret Sauce Strategy: Wait for RSI to leave 70/30 zone, then enter when it comes back in" +#property description "Based on momentum flip concept - not traditional overbought/oversold" + +#include +#include + +//--- Input Parameters +input group "=== Trading Settings ===" +input string InpSymbol = "XAUUSD"; // Trading Symbol (set was tuned on BTCUSD) +input double InpLotSize = 0.1; // Lot Size (Profiles/Tester/secret_sauce.set) +input int InpMagicNumber = 789012; // Magic Number +input int InpSlippage = 10; // Slippage in points +input ENUM_TIMEFRAMES InpTimeframe = PERIOD_M30; // Trading Timeframe (set value 30 = M30) + +input group "=== RSI Settings ===" +input int InpRSIPeriod = 16; // RSI Period +input double InpRSIOverbought = 72.5; // RSI Overbought Level +input double InpRSIOversold = 32.5; // RSI Oversold Level +input int InpRSILookback = 60; // RSI Lookback for Peak/Bottom Detection + +input group "=== Entry Logic ===" +input int InpPeakBars = 2; // Bars to confirm peak/bottom +input bool InpRequireDivergence = false; // Require divergence confirmation (optional) + +input group "=== Risk Management ===" +input double InpStopLossATR = 2.75; // Stop Loss (ATR multiples) +input double InpTakeProfitATR = 5.0; // Take Profit (ATR multiples) +input int InpATRPeriod = 14; // ATR Period +input bool InpUseSwingStopLoss = false; // Use previous swing high/low for stop loss +input int InpSwingLookback = 30; // Bars to look back for swing points + +input group "=== Position Management ===" +input int InpMaxPositions = 1; // Max Simultaneous Positions +input int InpMinBarsBetweenTrades = 7; // Min Bars Between Trades + +//--- Global Variables +CTrade trade; +CPositionInfo positionInfo; + +string actualSymbol; +int rsiHandle = INVALID_HANDLE; +int atrHandle = INVALID_HANDLE; + +double rsiBuffer[]; +double atrBuffer[]; +double highBuffer[]; +double lowBuffer[]; + +// RSI state tracking +bool rsiWasOverbought = false; // RSI was above 70 +bool rsiWasOversold = false; // RSI was below 30 +bool rsiBackInRange = false; // RSI came back into range +datetime lastRSIExitTime = 0; // When RSI left the range +datetime lastRSIReentryTime = 0; // When RSI came back in + +// Trade tracking +datetime lastTradeTime = 0; +int barsSinceLastTrade = 0; + +datetime lastBarTime = 0; + +//+------------------------------------------------------------------+ +//| Expert initialization function | +//+------------------------------------------------------------------+ +int OnInit() +{ + // Determine actual symbol + if(InpSymbol == "" || InpSymbol == NULL) + actualSymbol = _Symbol; + else + actualSymbol = InpSymbol; + + // Check if symbol exists + if(!SymbolInfoInteger(actualSymbol, SYMBOL_SELECT)) + { + Print("Error: Symbol ", actualSymbol, " not found. Using chart symbol."); + actualSymbol = _Symbol; + } + + // Initialize RSI indicator + rsiHandle = iRSI(actualSymbol, InpTimeframe, InpRSIPeriod, PRICE_CLOSE); + if(rsiHandle == INVALID_HANDLE) + { + Print("Error creating RSI indicator"); + return INIT_FAILED; + } + ArraySetAsSeries(rsiBuffer, true); + + // Initialize ATR indicator + atrHandle = iATR(actualSymbol, InpTimeframe, InpATRPeriod); + if(atrHandle == INVALID_HANDLE) + { + Print("Error creating ATR indicator"); + return INIT_FAILED; + } + ArraySetAsSeries(atrBuffer, true); + + // Initialize price buffers + ArraySetAsSeries(highBuffer, true); + ArraySetAsSeries(lowBuffer, true); + + // Set trade parameters + trade.SetExpertMagicNumber(InpMagicNumber); + trade.SetDeviationInPoints(InpSlippage); + trade.SetTypeFilling(ORDER_FILLING_FOK); + + Print("=== RSI Secret Sauce Strategy Initialized ==="); + Print("Symbol: ", actualSymbol); + Print("Timeframe: ", EnumToString(InpTimeframe)); + Print("RSI Period: ", InpRSIPeriod, " | Overbought: ", InpRSIOverbought, " | Oversold: ", InpRSIOversold); + Print("Stop Loss: ", InpStopLossATR, "x ATR | Take Profit: ", InpTakeProfitATR, "x ATR"); + + return INIT_SUCCEEDED; +} + +//+------------------------------------------------------------------+ +//| Expert deinitialization function | +//+------------------------------------------------------------------+ +void OnDeinit(const int reason) +{ + if(rsiHandle != INVALID_HANDLE) + IndicatorRelease(rsiHandle); + if(atrHandle != INVALID_HANDLE) + IndicatorRelease(atrHandle); + + Print("Expert Advisor deinitialized. Reason: ", reason); +} + +//+------------------------------------------------------------------+ +//| Expert tick function | +//+------------------------------------------------------------------+ +void OnTick() +{ + // Check if we have enough bars + int requiredBars = MathMax(InpRSILookback, InpSwingLookback) + 10; + if(Bars(actualSymbol, InpTimeframe) < requiredBars) + return; + + // Check if this is a new bar (wait for candle close) + datetime currentBarTime = iTime(actualSymbol, InpTimeframe, 0); + if(currentBarTime == lastBarTime) + return; // Still the same bar, don't process + + lastBarTime = currentBarTime; + + // Update indicators + if(!UpdateIndicators()) + return; + + // Update RSI state tracking + UpdateRSIState(); + + // Check existing positions + CheckExistingPositions(); + + // Check for entry signals + if(CanOpenNewPosition()) + { + CheckEntrySignals(); + } +} + +//+------------------------------------------------------------------+ +//| Update indicator values | +//+------------------------------------------------------------------+ +bool UpdateIndicators() +{ + // Update RSI (need enough bars for lookback) + int rsiBarsNeeded = InpRSILookback + 5; + if(CopyBuffer(rsiHandle, 0, 0, rsiBarsNeeded, rsiBuffer) < rsiBarsNeeded) + return false; + + // Update ATR + if(CopyBuffer(atrHandle, 0, 0, 2, atrBuffer) < 2) + return false; + + // Update price buffers for swing detection + if(CopyHigh(actualSymbol, InpTimeframe, 0, InpSwingLookback + 5, highBuffer) < InpSwingLookback + 5) + return false; + if(CopyLow(actualSymbol, InpTimeframe, 0, InpSwingLookback + 5, lowBuffer) < InpSwingLookback + 5) + return false; + + return true; +} + +//+------------------------------------------------------------------+ +//| Update RSI state tracking | +//+------------------------------------------------------------------+ +void UpdateRSIState() +{ + double rsiCurrent = rsiBuffer[0]; + double rsiPrev = rsiBuffer[1]; + + // Check if RSI left overbought zone (was above 70, now below 70) + if(rsiPrev >= InpRSIOverbought && rsiCurrent < InpRSIOverbought) + { + rsiWasOverbought = true; + rsiBackInRange = true; + lastRSIExitTime = TimeCurrent(); + lastRSIReentryTime = TimeCurrent(); + Print(TimeToString(TimeCurrent()), " - RSI left overbought zone (", rsiPrev, " -> ", rsiCurrent, ")"); + } + + // Check if RSI left oversold zone (was below 30, now above 30) + if(rsiPrev <= InpRSIOversold && rsiCurrent > InpRSIOversold) + { + rsiWasOversold = true; + rsiBackInRange = true; + lastRSIExitTime = TimeCurrent(); + lastRSIReentryTime = TimeCurrent(); + Print(TimeToString(TimeCurrent()), " - RSI left oversold zone (", rsiPrev, " -> ", rsiCurrent, ")"); + } + + // Reset flags if RSI goes back to extreme + if(rsiCurrent >= InpRSIOverbought) + { + rsiWasOverbought = false; + rsiBackInRange = false; + } + + if(rsiCurrent <= InpRSIOversold) + { + rsiWasOversold = false; + rsiBackInRange = false; + } +} + +//+------------------------------------------------------------------+ +//| Check if we can open a new position | +//+------------------------------------------------------------------+ +bool CanOpenNewPosition() +{ + // Check max positions + int positionCount = 0; + for(int i = PositionsTotal() - 1; i >= 0; i--) + { + if(positionInfo.SelectByIndex(i)) + { + if(positionInfo.Symbol() == actualSymbol && positionInfo.Magic() == InpMagicNumber) + positionCount++; + } + } + + if(positionCount >= InpMaxPositions) + return false; + + // Check minimum bars between trades + if(lastTradeTime > 0) + { + int barsSince = Bars(actualSymbol, InpTimeframe, lastTradeTime, TimeCurrent()); + if(barsSince < InpMinBarsBetweenTrades) + return false; + } + + return true; +} + +//+------------------------------------------------------------------+ +//| Check for entry signals | +//+------------------------------------------------------------------+ +void CheckEntrySignals() +{ + // LONG Entry: RSI was overbought (>70), came back in range, now look for peak + if(rsiWasOverbought && rsiBackInRange) + { + // Check if RSI is back in normal range (below 70) + if(rsiBuffer[0] < InpRSIOverbought) + { + // Look for a peak in RSI after re-entry + if(IsRSIPeak()) + { + Print(TimeToString(TimeCurrent()), " - LONG Signal: RSI peak detected after leaving overbought zone"); + OpenPosition(POSITION_TYPE_BUY); + } + } + } + + // SHORT Entry: RSI was oversold (<30), came back in range, now look for bottom + if(rsiWasOversold && rsiBackInRange) + { + // Check if RSI is back in normal range (above 30) + if(rsiBuffer[0] > InpRSIOversold) + { + // Look for a bottom in RSI after re-entry + if(IsRSIBottom()) + { + Print(TimeToString(TimeCurrent()), " - SHORT Signal: RSI bottom detected after leaving oversold zone"); + OpenPosition(POSITION_TYPE_SELL); + } + } + } +} + +//+------------------------------------------------------------------+ +//| Check if RSI is forming a peak (for LONG entry) | +//+------------------------------------------------------------------+ +bool IsRSIPeak() +{ + // We need at least InpPeakBars + 1 bars to confirm a peak + if(ArraySize(rsiBuffer) < InpPeakBars + 2) + return false; + + // Check if current RSI is higher than previous bars (forming a peak) + double currentRSI = rsiBuffer[0]; + bool isPeak = true; + + // Check if current is higher than the next few bars + for(int i = 1; i <= InpPeakBars; i++) + { + if(rsiBuffer[i] >= currentRSI) + { + isPeak = false; + break; + } + } + + // Also check if previous bar was lower (confirming upward movement before peak) + if(rsiBuffer[1] >= currentRSI) + isPeak = false; + + return isPeak; +} + +//+------------------------------------------------------------------+ +//| Check if RSI is forming a bottom (for SHORT entry) | +//+------------------------------------------------------------------+ +bool IsRSIBottom() +{ + // We need at least InpPeakBars + 1 bars to confirm a bottom + if(ArraySize(rsiBuffer) < InpPeakBars + 2) + return false; + + // Check if current RSI is lower than previous bars (forming a bottom) + double currentRSI = rsiBuffer[0]; + bool isBottom = true; + + // Check if current is lower than the next few bars + for(int i = 1; i <= InpPeakBars; i++) + { + if(rsiBuffer[i] <= currentRSI) + { + isBottom = false; + break; + } + } + + // Also check if previous bar was higher (confirming downward movement before bottom) + if(rsiBuffer[1] <= currentRSI) + isBottom = false; + + return isBottom; +} + +//+------------------------------------------------------------------+ +//| Open position | +//+------------------------------------------------------------------+ +void OpenPosition(ENUM_POSITION_TYPE type) +{ + double price = (type == POSITION_TYPE_BUY) ? + SymbolInfoDouble(actualSymbol, SYMBOL_ASK) : + SymbolInfoDouble(actualSymbol, SYMBOL_BID); + + if(price <= 0) + return; + + // Calculate stop loss and take profit + double sl = 0.0, tp = 0.0; + if(!CalculateStops(price, type, sl, tp)) + { + Print("Error: Failed to calculate stops"); + return; + } + + string comment = "RSI_Secret_" + (type == POSITION_TYPE_BUY ? "LONG" : "SHORT"); + + bool result = false; + if(type == POSITION_TYPE_BUY) + result = trade.Buy(InpLotSize, actualSymbol, 0, sl, tp, comment); + else + result = trade.Sell(InpLotSize, actualSymbol, 0, sl, tp, comment); + + if(result) + { + lastTradeTime = TimeCurrent(); + ulong ticket = trade.ResultOrder(); + Print(TimeToString(TimeCurrent()), " - Position opened: ", comment, " Ticket: ", ticket, + " Price: ", price, " SL: ", sl, " TP: ", tp); + + // Reset RSI state after opening position + if(type == POSITION_TYPE_BUY) + rsiWasOverbought = false; + else + rsiWasOversold = false; + rsiBackInRange = false; + } + else + { + Print("Failed to open position: ", comment, " Error: ", + trade.ResultRetcode(), " - ", trade.ResultRetcodeDescription()); + } +} + +//+------------------------------------------------------------------+ +//| Calculate stop loss and take profit | +//+------------------------------------------------------------------+ +bool CalculateStops(double price, ENUM_POSITION_TYPE type, double &sl, double &tp) +{ + double atrValue = atrBuffer[0]; + if(atrValue <= 0) + atrValue = price * 0.01; // Fallback: 1% of price + + double slDistance = atrValue * InpStopLossATR; + double tpDistance = atrValue * InpTakeProfitATR; + + int digits = (int)SymbolInfoInteger(actualSymbol, SYMBOL_DIGITS); + double point = SymbolInfoDouble(actualSymbol, SYMBOL_POINT); + int stopsLevel = (int)SymbolInfoInteger(actualSymbol, SYMBOL_TRADE_STOPS_LEVEL); + double minStopDistance = MathMax(stopsLevel * point, point * 10); + + // Use swing-based stop loss if enabled + if(InpUseSwingStopLoss) + { + double swingStop = GetSwingStopLoss(price, type); + if(swingStop > 0) + { + if(type == POSITION_TYPE_BUY) + { + if(swingStop < price && (price - swingStop) > minStopDistance) + slDistance = price - swingStop; + } + else + { + if(swingStop > price && (swingStop - price) > minStopDistance) + slDistance = swingStop - price; + } + } + } + + // Ensure minimum distance + if(slDistance < minStopDistance) + slDistance = minStopDistance; + if(tpDistance < minStopDistance) + tpDistance = minStopDistance; + + if(type == POSITION_TYPE_BUY) + { + sl = NormalizeDouble(price - slDistance, digits); + tp = NormalizeDouble(price + tpDistance, digits); + } + else + { + sl = NormalizeDouble(price + slDistance, digits); + tp = NormalizeDouble(price - tpDistance, digits); + } + + return true; +} + +//+------------------------------------------------------------------+ +//| Get swing-based stop loss (previous swing high/low) | +//+------------------------------------------------------------------+ +double GetSwingStopLoss(double currentPrice, ENUM_POSITION_TYPE type) +{ + // For LONG: find previous swing low + // For SHORT: find previous swing high + + if(type == POSITION_TYPE_BUY) + { + // Find the lowest low in the lookback period + double lowestLow = lowBuffer[0]; + for(int i = 1; i < InpSwingLookback && i < ArraySize(lowBuffer); i++) + { + if(lowBuffer[i] < lowestLow) + lowestLow = lowBuffer[i]; + } + return lowestLow; + } + else + { + // Find the highest high in the lookback period + double highestHigh = highBuffer[0]; + for(int i = 1; i < InpSwingLookback && i < ArraySize(highBuffer); i++) + { + if(highBuffer[i] > highestHigh) + highestHigh = highBuffer[i]; + } + return highestHigh; + } +} + +//+------------------------------------------------------------------+ +//| Check existing positions | +//+------------------------------------------------------------------+ +void CheckExistingPositions() +{ + // Position management can be added here if needed + // For now, positions are managed by TP/SL +} + +//+------------------------------------------------------------------+ diff --git a/frontline/MQL5/_united/Strategies/RSIReversalAsianStrategy.mqh b/frontline/MQL5/_united/Strategies/RSIReversalAsianStrategy.mqh index 46dc9d3..6762248 100644 --- a/frontline/MQL5/_united/Strategies/RSIReversalAsianStrategy.mqh +++ b/frontline/MQL5/_united/Strategies/RSIReversalAsianStrategy.mqh @@ -259,7 +259,7 @@ bool InitRSIReversalAsian(RSIReversalAsianData& data, string symbol, double rsi[]; ArraySetAsSeries(rsi, true); - int retryCount = 0; + retryCount = 0; bool rsiInitialized = false; while(retryCount < 10 && !rsiInitialized) diff --git a/frontline/MQL5/_united_dynamic/MagicNumberHelpers.mqh b/frontline/MQL5/_united_dynamic/MagicNumberHelpers.mqh new file mode 100644 index 0000000..dc1fa31 --- /dev/null +++ b/frontline/MQL5/_united_dynamic/MagicNumberHelpers.mqh @@ -0,0 +1,159 @@ +//+------------------------------------------------------------------+ +//| MagicNumberHelpers.mqh | +//| Copyright 2025, MetaQuotes Ltd. | +//| https://www.mql5.com | +//+------------------------------------------------------------------+ +#property copyright "Copyright 2025, MetaQuotes Ltd." +#property link "https://www.mql5.com" +#property version "1.00" + +//+------------------------------------------------------------------+ +//| Select position by symbol and magic number | +//+------------------------------------------------------------------+ +bool PositionSelectByMagic(string symbol, ulong magic_number) +{ + // First try to find position by symbol + if(!PositionSelect(symbol)) + return false; + + // Check if the selected position has the correct magic number + if(PositionGetInteger(POSITION_MAGIC) != magic_number) + { + // Position exists but wrong magic number, search all positions + for(int i = PositionsTotal() - 1; i >= 0; i--) + { + if(PositionGetTicket(i) > 0) + { + if(PositionGetString(POSITION_SYMBOL) == symbol && + PositionGetInteger(POSITION_MAGIC) == magic_number) + { + return true; + } + } + } + return false; + } + + return true; +} + +//+------------------------------------------------------------------+ +//| Select position by ticket and verify magic number and symbol | +//+------------------------------------------------------------------+ +bool PositionSelectByTicketAndMagic(ulong ticket, ulong magic_number) +{ + if(!PositionSelectByTicket(ticket)) + return false; + + return (PositionGetInteger(POSITION_MAGIC) == magic_number); +} + +//+------------------------------------------------------------------+ +//| Select position by ticket and verify symbol, magic number | +//+------------------------------------------------------------------+ +bool PositionSelectByTicketSymbolAndMagic(ulong ticket, string symbol, ulong magic_number) +{ + if(!PositionSelectByTicket(ticket)) + return false; + + return (PositionGetString(POSITION_SYMBOL) == symbol && + PositionGetInteger(POSITION_MAGIC) == magic_number); +} + +//+------------------------------------------------------------------+ +//| Check if position exists with correct magic number | +//+------------------------------------------------------------------+ +bool PositionExistsByMagic(string symbol, ulong magic_number) +{ + return PositionSelectByMagic(symbol, magic_number); +} + +//+------------------------------------------------------------------+ +//| Get position ticket by symbol and magic number | +//+------------------------------------------------------------------+ +ulong GetPositionTicketByMagic(string symbol, ulong magic_number) +{ + for(int i = PositionsTotal() - 1; i >= 0; i--) + { + ulong ticket = PositionGetTicket(i); + if(ticket > 0) + { + if(PositionGetString(POSITION_SYMBOL) == symbol && + PositionGetInteger(POSITION_MAGIC) == magic_number) + { + return ticket; + } + } + } + return 0; +} + +//+------------------------------------------------------------------+ +//| Close position by symbol and magic number | +//+------------------------------------------------------------------+ +bool ClosePositionByMagic(CTrade &trade_obj, string symbol, ulong magic_number) +{ + ulong ticket = GetPositionTicketByMagic(symbol, magic_number); + if(ticket == 0) + return false; + + return trade_obj.PositionClose(ticket); +} + +//+------------------------------------------------------------------+ +//| Modify position by symbol and magic number | +//+------------------------------------------------------------------+ +bool ModifyPositionByMagic(CTrade &trade_obj, string symbol, ulong magic_number, + double sl, double tp) +{ + ulong ticket = GetPositionTicketByMagic(symbol, magic_number); + if(ticket == 0) + return false; + + return trade_obj.PositionModify(ticket, sl, tp); +} + +//+------------------------------------------------------------------+ +//| Get position profit by symbol and magic number | +//+------------------------------------------------------------------+ +double GetPositionProfitByMagic(string symbol, ulong magic_number) +{ + if(!PositionSelectByMagic(symbol, magic_number)) + return 0.0; + + return PositionGetDouble(POSITION_PROFIT); +} + +//+------------------------------------------------------------------+ +//| Get position type by symbol and magic number | +//+------------------------------------------------------------------+ +ENUM_POSITION_TYPE GetPositionTypeByMagic(string symbol, ulong magic_number) +{ + if(!PositionSelectByMagic(symbol, magic_number)) + return WRONG_VALUE; + + return (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); +} + +//+------------------------------------------------------------------+ +//| Count positions by symbol and magic number | +//+------------------------------------------------------------------+ +int CountPositionsByMagic(string symbol, ulong magic_number) +{ + int count = 0; + for(int i = PositionsTotal() - 1; i >= 0; i--) + { + ulong ticket = PositionGetTicket(i); + if(ticket > 0) + { + if(PositionGetString(POSITION_SYMBOL) == symbol && + PositionGetInteger(POSITION_MAGIC) == magic_number) + { + count++; + } + } + } + return count; +} + +//+------------------------------------------------------------------+ diff --git a/frontline/MQL5/_united_dynamic/PEPPERSTONE_US_SETUP.md b/frontline/MQL5/_united_dynamic/PEPPERSTONE_US_SETUP.md new file mode 100644 index 0000000..82dc835 --- /dev/null +++ b/frontline/MQL5/_united_dynamic/PEPPERSTONE_US_SETUP.md @@ -0,0 +1,75 @@ +# Pepperstone US - Symbol Setup Guide + +## Finding Correct Symbol Names in MetaTrader 5 + +### Step-by-Step Instructions: + +1. **Open Market Watch Window** + - Press `Ctrl+M` or go to `View > Market Watch` + +2. **Show All Symbols** + - Right-click in the Market Watch window + - Select `Show All` or `Symbols` + - This shows all available symbols from your broker + +3. **Search for Your Symbols** + - Use the search box in the Market Watch window + - Search for: "AAPL", "MSFT", "NVDA", "TSLA", "BTCUSD", "XAUUSD" + +4. **Note the Exact Symbol Name** + - The symbol name shown in Market Watch is what you need to use + - Common formats for Pepperstone US: + - Stocks: `AAPL.US`, `MSFT.US`, `NVDA.US`, `TSLA.US` + - Or: `NASDAQ:AAPL`, `NASDAQ:MSFT`, etc. + - Or: Just `AAPL`, `MSFT`, etc. (if available) + +5. **Add to Market Watch** + - Double-click the symbol to add it to your Market Watch + - Or right-click and select `Show` + +6. **Update EA Inputs** + - Open the EA inputs in MetaTrader 5 + - Update each symbol parameter with the exact name from Market Watch + +## Common Pepperstone US Symbol Formats + +### US Stocks: +- **Apple**: `AAPL.US` or `NASDAQ:AAPL` or `AAPL` +- **Microsoft**: `MSFT.US` or `NASDAQ:MSFT` or `MSFT` +- **NVIDIA**: `NVDA.US` or `NASDAQ:NVDA` or `NVDA` +- **Tesla**: `TSLA.US` or `NASDAQ:TSLA` or `TSLA` + +### Cryptocurrencies: +- **Bitcoin**: `BTCUSD` or `BTC/USD` or `BTCUSD.c` + +### Precious Metals: +- **Gold**: `XAUUSD` or `GOLD` or `XAU/USD` + +## Important Notes: + +1. **Symbol Names are Case-Sensitive**: Use exact capitalization +2. **Add Symbols to Market Watch**: Symbols must be in Market Watch for the EA to access them +3. **Check Trading Hours**: US stocks trade during US market hours (9:30 AM - 4:00 PM ET) +4. **CFD vs Stock**: Pepperstone offers CFDs on stocks, not actual stocks +5. **Spread**: Check the spread for each symbol - some may have wider spreads + +## Troubleshooting: + +### If Symbol Not Found: +1. Check if you're connected to Pepperstone US server +2. Verify your account type supports the symbol +3. Contact Pepperstone support for symbol availability +4. Check if symbol requires special account permissions + +### If EA Shows "Symbol Not Available": +1. Make sure symbol is added to Market Watch +2. Verify symbol name matches exactly (including dots, colons, etc.) +3. Check broker connection status +4. Try different symbol format variations + +## Testing Symbols: + +You can test if a symbol works by: +1. Opening a chart with that symbol +2. If chart opens successfully, the symbol name is correct +3. Use that exact symbol name in the EA inputs diff --git a/frontline/MQL5/_united_dynamic/PerformanceEvaluator.mqh b/frontline/MQL5/_united_dynamic/PerformanceEvaluator.mqh new file mode 100644 index 0000000..1389540 --- /dev/null +++ b/frontline/MQL5/_united_dynamic/PerformanceEvaluator.mqh @@ -0,0 +1,607 @@ +//+------------------------------------------------------------------+ +//| PerformanceEvaluator.mqh | +//| Copyright 2025, MetaQuotes Ltd. | +//| https://www.mql5.com | +//+------------------------------------------------------------------+ +#property copyright "Copyright 2025, MetaQuotes Ltd." +#property link "https://www.mql5.com" +#property version "1.00" + +//+------------------------------------------------------------------+ +//| Performance Metrics Structure | +//+------------------------------------------------------------------+ +struct StrategyPerformance { + string strategyName; + string symbol; // Store symbol to determine if it's a stock + int magicNumber; + double initialLotSize; + double currentLotSize; + double quarterProfit; + double quarterTrades; + double quarterWins; + double quarterLosses; + double maxDrawdown; + double winRate; + datetime quarterStart; + datetime quarterEnd; + bool isActive; + bool inPenaltyMode; // True if strategy is in penalty (worst performer) + double lotSizeBeforePenalty; // Store lot size before penalty + datetime penaltyStartTime; // When penalty started +}; + +//+------------------------------------------------------------------+ +//| Global Performance Tracking | +//+------------------------------------------------------------------+ +StrategyPerformance strategyPerformances[]; +int totalStrategies = 0; +datetime lastMonthCheck = 0; +datetime currentMonthStart = 0; +datetime currentMonthEnd = 0; + +//+------------------------------------------------------------------+ +//| Performance Adjustment Parameters | +//+------------------------------------------------------------------+ +input group "=== Performance Evaluation Settings ===" +input bool PE_EnableAutoAdjustment = true; // Enable automatic lot size adjustment +input double PE_LotSizeIncreasePercent = 10.0; // % increase for top-ranked strategies +input double PE_LotSizeDecreasePercent = 10.0; // % decrease for bottom-ranked strategies +input double PE_MinLotSize = 0.01; // Minimum lot size for forex/crypto +input double PE_MinLotSizeStocks = 5.0; // Minimum lot size for stocks (5-10 range) +input double PE_MaxLotSize = 100.0; // Maximum lot size after adjustment +input int PE_TopPerformersCount = 3; // Number of top strategies to increase lot size +input int PE_BottomPerformersCount = 3; // Number of bottom strategies to decrease lot size +input bool PE_UseWinRateWeight = true; // Consider win rate in ranking (50% profit, 50% win rate) +input bool PE_EnableBlitzPlay = true; // Enable blitz play: worst performer gets minimum lot size penalty +input bool PE_EnableLogging = true; // Enable performance logging + +//+------------------------------------------------------------------+ +//| Initialize Performance Tracking | +//+------------------------------------------------------------------+ +void InitPerformanceTracking() +{ + // Calculate current month dates + MqlDateTime dt; + TimeToStruct(TimeCurrent(), dt); + + // Determine month start (first day of current month) + dt.day = 1; + dt.hour = 0; + dt.min = 0; + dt.sec = 0; + currentMonthStart = StructToTime(dt); + + // Calculate month end (first day of next month - 1 second) + dt.mon += 1; + if(dt.mon > 12) + { + dt.mon = 1; + dt.year++; + } + currentMonthEnd = StructToTime(dt) - 1; // End of last day of month + + lastMonthCheck = TimeCurrent(); + + if(PE_EnableLogging) + { + Print("Performance Evaluator: Initialized"); + Print("Current Month Start: ", TimeToString(currentMonthStart)); + Print("Current Month End: ", TimeToString(currentMonthEnd)); + } +} + +//+------------------------------------------------------------------+ +//| Check if Symbol is a Stock | +//+------------------------------------------------------------------+ +bool IsStockSymbol(string symbol) +{ + // Check if symbol contains common stock indicators + if(StringFind(symbol, ".US") >= 0) return true; + if(StringFind(symbol, "NASDAQ:") >= 0) return true; + if(StringFind(symbol, "NYSE:") >= 0) return true; + + // Note: Symbol category check removed to avoid enum conversion issues + // String-based checks (.US, NASDAQ:, NYSE:, common tickers) are sufficient + + // Common stock tickers (without .US suffix) + string commonStocks[] = {"AAPL", "NVDA", "TSLA", "GOOGL", "AMZN", "META", "AMD", "NFLX"}; + for(int i = 0; i < ArraySize(commonStocks); i++) + { + if(StringFind(symbol, commonStocks[i]) == 0) return true; + } + + return false; +} + +//+------------------------------------------------------------------+ +//| Get Minimum Lot Size for Symbol | +//+------------------------------------------------------------------+ +double GetMinLotSizeForSymbol(string symbol) +{ + if(IsStockSymbol(symbol)) + return PE_MinLotSizeStocks; + else + return PE_MinLotSize; +} + +//+------------------------------------------------------------------+ +//| Register Strategy for Performance Tracking | +//+------------------------------------------------------------------+ +void RegisterStrategy(string strategyName, int magicNumber, double initialLotSize, string symbol = "") +{ + // Check if strategy already registered + for(int i = 0; i < ArraySize(strategyPerformances); i++) + { + if(strategyPerformances[i].strategyName == strategyName && + strategyPerformances[i].magicNumber == magicNumber) + { + if(PE_EnableLogging) + Print("Performance Evaluator: Strategy '", strategyName, "' already registered"); + return; + } + } + + // Add new strategy + int newSize = ArraySize(strategyPerformances) + 1; + ArrayResize(strategyPerformances, newSize); + + strategyPerformances[newSize - 1].strategyName = strategyName; + strategyPerformances[newSize - 1].symbol = symbol; + strategyPerformances[newSize - 1].magicNumber = magicNumber; + strategyPerformances[newSize - 1].initialLotSize = initialLotSize; + // Start with minimum lot size for safety (symbol-specific minimum) + double minLot = GetMinLotSizeForSymbol(symbol); + strategyPerformances[newSize - 1].currentLotSize = minLot; + strategyPerformances[newSize - 1].quarterProfit = 0.0; + strategyPerformances[newSize - 1].quarterTrades = 0; + strategyPerformances[newSize - 1].quarterWins = 0; + strategyPerformances[newSize - 1].quarterLosses = 0; + strategyPerformances[newSize - 1].maxDrawdown = 0.0; + strategyPerformances[newSize - 1].winRate = 0.0; + strategyPerformances[newSize - 1].quarterStart = currentMonthStart; + strategyPerformances[newSize - 1].quarterEnd = currentMonthEnd; + strategyPerformances[newSize - 1].isActive = true; + strategyPerformances[newSize - 1].inPenaltyMode = false; + strategyPerformances[newSize - 1].lotSizeBeforePenalty = initialLotSize; + strategyPerformances[newSize - 1].penaltyStartTime = 0; + + totalStrategies = newSize; + + if(PE_EnableLogging) + Print("Performance Evaluator: Registered strategy '", strategyName, + "' (Magic: ", magicNumber, ", Initial Lot: ", initialLotSize, ")"); +} + +//+------------------------------------------------------------------+ +//| Update Strategy Performance Metrics | +//+------------------------------------------------------------------+ +void UpdateStrategyPerformance(string strategyName, int magicNumber) +{ + for(int i = 0; i < ArraySize(strategyPerformances); i++) + { + if(strategyPerformances[i].strategyName == strategyName && + strategyPerformances[i].magicNumber == magicNumber && + strategyPerformances[i].isActive) + { + // Calculate performance for current quarter + double totalProfit = 0.0; + int totalTrades = 0; + int wins = 0; + int losses = 0; + double maxDD = 0.0; + double peakBalance = 0.0; + + // Scan all closed deals in current quarter + datetime quarterStart = strategyPerformances[i].quarterStart; + datetime quarterEnd = strategyPerformances[i].quarterEnd; + + // Select history for the quarter + if(HistorySelect(quarterStart, quarterEnd)) + { + int totalDeals = HistoryDealsTotal(); + for(int j = 0; j < totalDeals; j++) + { + ulong ticket = HistoryDealGetTicket(j); + if(ticket > 0) + { + long dealMagic = HistoryDealGetInteger(ticket, DEAL_MAGIC); + if(dealMagic == magicNumber) + { + double profit = HistoryDealGetDouble(ticket, DEAL_PROFIT); + double swap = HistoryDealGetDouble(ticket, DEAL_SWAP); + double commission = HistoryDealGetDouble(ticket, DEAL_COMMISSION); + double totalDealProfit = profit + swap + commission; + + totalProfit += totalDealProfit; + totalTrades++; + + if(totalDealProfit > 0) + wins++; + else if(totalDealProfit < 0) + losses++; + } + } + } + } + + // Calculate win rate + double winRate = 0.0; + if(totalTrades > 0) + winRate = (double)wins / (double)totalTrades * 100.0; + + // Update metrics + strategyPerformances[i].quarterProfit = totalProfit; + strategyPerformances[i].quarterTrades = totalTrades; + strategyPerformances[i].quarterWins = wins; + strategyPerformances[i].quarterLosses = losses; + strategyPerformances[i].winRate = winRate; + + break; + } + } +} + +//+------------------------------------------------------------------+ +//| Strategy Ranking Structure | +//+------------------------------------------------------------------+ +struct StrategyRank { + int index; + double score; +}; + +//+------------------------------------------------------------------+ +//| Calculate Strategy Score for Ranking | +//+------------------------------------------------------------------+ +double CalculateStrategyScore(int strategyIndex) +{ + double profit = strategyPerformances[strategyIndex].quarterProfit; + double winRate = strategyPerformances[strategyIndex].winRate; + double trades = strategyPerformances[strategyIndex].quarterTrades; + + // Normalize profit (scale to 0-100 range, assuming max profit of $1000) + double normalizedProfit = MathMin(profit / 10.0, 100.0); + if(profit < 0) normalizedProfit = profit / 5.0; // Penalize losses more + + // Calculate score + double score = 0.0; + if(PE_UseWinRateWeight) + { + // 50% profit, 50% win rate (if enough trades) + if(trades >= 5) + score = (normalizedProfit * 0.5) + (winRate * 0.5); + else + score = normalizedProfit; // Not enough trades, use profit only + } + else + { + // Profit only + score = normalizedProfit; + } + + return score; +} + +//+------------------------------------------------------------------+ +//| Check if Month Ended and Evaluate Performance | +//+------------------------------------------------------------------+ +void CheckMonthEnd() +{ + datetime now = TimeCurrent(); + + // Check if we've entered a new month + if(now >= currentMonthEnd) + { + if(PE_EnableLogging) + Print("Performance Evaluator: Month ended. Evaluating and ranking strategies..."); + + // Update performance metrics for all strategies + for(int i = 0; i < ArraySize(strategyPerformances); i++) + { + if(strategyPerformances[i].isActive) + { + UpdateStrategyPerformance(strategyPerformances[i].strategyName, + strategyPerformances[i].magicNumber); + } + } + + // Rank strategies + int activeCount = 0; + for(int i = 0; i < ArraySize(strategyPerformances); i++) + { + if(strategyPerformances[i].isActive) + activeCount++; + } + + if(activeCount > 0) + { + // Create ranking array + StrategyRank ranks[]; + ArrayResize(ranks, activeCount); + int rankIndex = 0; + + for(int i = 0; i < ArraySize(strategyPerformances); i++) + { + if(strategyPerformances[i].isActive) + { + ranks[rankIndex].index = i; + ranks[rankIndex].score = CalculateStrategyScore(i); + rankIndex++; + } + } + + // Sort by score (descending - highest score first) + for(int i = 0; i < activeCount - 1; i++) + { + for(int j = i + 1; j < activeCount; j++) + { + if(ranks[j].score > ranks[i].score) + { + StrategyRank temp = ranks[i]; + ranks[i] = ranks[j]; + ranks[j] = temp; + } + } + } + + // Adjust lot sizes based on ranking + if(PE_EnableAutoAdjustment) + { + // Increase top performers (skip if in penalty mode) + int topCount = MathMin(PE_TopPerformersCount, activeCount); + for(int i = 0; i < topCount; i++) + { + int strategyIdx = ranks[i].index; + + // Skip if strategy is in penalty mode + if(strategyPerformances[strategyIdx].inPenaltyMode) + continue; + + double oldLotSize = strategyPerformances[strategyIdx].currentLotSize; + double newLotSize = oldLotSize * (1.0 + PE_LotSizeIncreasePercent / 100.0); + + if(newLotSize > PE_MaxLotSize) + newLotSize = PE_MaxLotSize; + + strategyPerformances[strategyIdx].currentLotSize = newLotSize; + + if(PE_EnableLogging) + Print("Performance Evaluator: Rank #", (i+1), " - Increasing '", + strategyPerformances[strategyIdx].strategyName, + "' lot size from ", oldLotSize, " to ", newLotSize, + " (Score: ", DoubleToString(ranks[i].score, 2), + ", Profit: $", DoubleToString(strategyPerformances[strategyIdx].quarterProfit, 2), + ", Win Rate: ", DoubleToString(strategyPerformances[strategyIdx].winRate, 2), "%)"); + } + + // Decrease bottom performers (skip worst one if blitz play is enabled) + int bottomCount = MathMin(PE_BottomPerformersCount, activeCount); + int startIdx = activeCount - bottomCount; + + // If blitz play is enabled, skip the worst performer (it will get minimum penalty) + if(PE_EnableBlitzPlay && activeCount > 0) + startIdx = activeCount - bottomCount + 1; + + for(int i = startIdx; i < activeCount; i++) + { + int strategyIdx = ranks[i].index; + + // Skip if strategy is in penalty mode + if(strategyPerformances[strategyIdx].inPenaltyMode) + continue; + + double oldLotSize = strategyPerformances[strategyIdx].currentLotSize; + double newLotSize = oldLotSize * (1.0 - PE_LotSizeDecreasePercent / 100.0); + + // Use symbol-specific minimum lot size + double minLot = GetMinLotSizeForSymbol(strategyPerformances[strategyIdx].symbol); + if(newLotSize < minLot) + newLotSize = minLot; + + strategyPerformances[strategyIdx].currentLotSize = newLotSize; + + if(PE_EnableLogging) + Print("Performance Evaluator: Rank #", (i+1), " - Decreasing '", + strategyPerformances[strategyIdx].strategyName, + "' lot size from ", oldLotSize, " to ", newLotSize, + " (Score: ", DoubleToString(ranks[i].score, 2), + ", Profit: $", DoubleToString(strategyPerformances[strategyIdx].quarterProfit, 2), + ", Win Rate: ", DoubleToString(strategyPerformances[strategyIdx].winRate, 2), "%)"); + } + } + + // Blitz Play: Apply penalty to worst performer + if(PE_EnableBlitzPlay && activeCount > 0) + { + // Find worst performer (last in ranking) + int worstIdx = ranks[activeCount - 1].index; + + // Remove penalty from previous worst performer (if any) + for(int i = 0; i < ArraySize(strategyPerformances); i++) + { + if(strategyPerformances[i].isActive && strategyPerformances[i].inPenaltyMode) + { + // Check if penalty period has passed (one month) + if(now - strategyPerformances[i].penaltyStartTime >= 2592000) // ~30 days + { + // Restore lot size to before penalty + strategyPerformances[i].currentLotSize = strategyPerformances[i].lotSizeBeforePenalty; + strategyPerformances[i].inPenaltyMode = false; + strategyPerformances[i].penaltyStartTime = 0; + + if(PE_EnableLogging) + Print("Blitz Play: Penalty removed from '", strategyPerformances[i].strategyName, + "'. Lot size restored to ", strategyPerformances[i].currentLotSize); + } + } + } + + // Apply penalty to new worst performer + if(!strategyPerformances[worstIdx].inPenaltyMode) + { + strategyPerformances[worstIdx].lotSizeBeforePenalty = strategyPerformances[worstIdx].currentLotSize; + // Use symbol-specific minimum lot size + double minLot = GetMinLotSizeForSymbol(strategyPerformances[worstIdx].symbol); + strategyPerformances[worstIdx].currentLotSize = minLot; + strategyPerformances[worstIdx].inPenaltyMode = true; + strategyPerformances[worstIdx].penaltyStartTime = now; + + if(PE_EnableLogging) + Print("Blitz Play: WORST PERFORMER - '", strategyPerformances[worstIdx].strategyName, + "' penalized! Lot size reduced from ", strategyPerformances[worstIdx].lotSizeBeforePenalty, + " to minimum ", minLot, " (Score: ", DoubleToString(ranks[activeCount - 1].score, 2), + ", Profit: $", DoubleToString(strategyPerformances[worstIdx].quarterProfit, 2), ")"); + } + } + + // Log performance report + if(PE_EnableLogging) + { + Print("=== Monthly Performance Ranking ==="); + for(int i = 0; i < activeCount; i++) + { + int strategyIdx = ranks[i].index; + Print("Rank #", (i+1), ": ", strategyPerformances[strategyIdx].strategyName, + " - Score: ", DoubleToString(ranks[i].score, 2), + ", Profit: $", DoubleToString(strategyPerformances[strategyIdx].quarterProfit, 2), + ", Win Rate: ", DoubleToString(strategyPerformances[strategyIdx].winRate, 2), "%", + ", Trades: ", (int)strategyPerformances[strategyIdx].quarterTrades, + ", Lot Size: ", DoubleToString(strategyPerformances[strategyIdx].currentLotSize, 2)); + } + Print("==================================="); + } + } + + // Reset month metrics for all strategies + for(int i = 0; i < ArraySize(strategyPerformances); i++) + { + if(strategyPerformances[i].isActive) + { + strategyPerformances[i].quarterProfit = 0.0; + strategyPerformances[i].quarterTrades = 0; + strategyPerformances[i].quarterWins = 0; + strategyPerformances[i].quarterLosses = 0; + strategyPerformances[i].maxDrawdown = 0.0; + strategyPerformances[i].winRate = 0.0; + } + } + + // Update month dates + MqlDateTime dt; + TimeToStruct(now, dt); + + // First day of current month + dt.day = 1; + dt.hour = 0; + dt.min = 0; + dt.sec = 0; + currentMonthStart = StructToTime(dt); + + // First day of next month - 1 second + dt.mon += 1; + if(dt.mon > 12) + { + dt.mon = 1; + dt.year++; + } + currentMonthEnd = StructToTime(dt) - 1; + + // Update month dates for all strategies + for(int i = 0; i < ArraySize(strategyPerformances); i++) + { + strategyPerformances[i].quarterStart = currentMonthStart; + strategyPerformances[i].quarterEnd = currentMonthEnd; + } + + lastMonthCheck = now; + } +} + +//+------------------------------------------------------------------+ +//| Get Current Lot Size for Strategy | +//+------------------------------------------------------------------+ +double GetStrategyLotSize(string strategyName, int magicNumber) +{ + for(int i = 0; i < ArraySize(strategyPerformances); i++) + { + if(strategyPerformances[i].strategyName == strategyName && + strategyPerformances[i].magicNumber == magicNumber && + strategyPerformances[i].isActive) + { + return strategyPerformances[i].currentLotSize; + } + } + return 0.0; +} + +//+------------------------------------------------------------------+ +//| Process Performance Evaluation (call from OnTick) | +//+------------------------------------------------------------------+ +void ProcessPerformanceEvaluation() +{ + // Check if month ended + CheckMonthEnd(); + + // Check for penalty expiration (blitz play) + if(PE_EnableBlitzPlay) + { + datetime now = TimeCurrent(); + for(int i = 0; i < ArraySize(strategyPerformances); i++) + { + if(strategyPerformances[i].isActive && strategyPerformances[i].inPenaltyMode) + { + // Check if penalty period has passed (one month = ~30 days) + if(now - strategyPerformances[i].penaltyStartTime >= 2592000) + { + // Restore lot size to before penalty + strategyPerformances[i].currentLotSize = strategyPerformances[i].lotSizeBeforePenalty; + strategyPerformances[i].inPenaltyMode = false; + strategyPerformances[i].penaltyStartTime = 0; + + if(PE_EnableLogging) + Print("Blitz Play: Penalty expired for '", strategyPerformances[i].strategyName, + "'. Lot size restored to ", strategyPerformances[i].currentLotSize); + } + } + } + } + + // Update performance metrics periodically (every hour) + static datetime lastUpdate = 0; + if(TimeCurrent() - lastUpdate >= 3600) + { + for(int i = 0; i < ArraySize(strategyPerformances); i++) + { + if(strategyPerformances[i].isActive) + { + UpdateStrategyPerformance(strategyPerformances[i].strategyName, + strategyPerformances[i].magicNumber); + } + } + lastUpdate = TimeCurrent(); + } +} + +//+------------------------------------------------------------------+ +//| Get Performance Summary | +//+------------------------------------------------------------------+ +string GetPerformanceSummary() +{ + string summary = "\n=== Performance Summary ===\n"; + summary += "Current Month: " + TimeToString(currentMonthStart) + " to " + TimeToString(currentMonthEnd) + "\n\n"; + + for(int i = 0; i < ArraySize(strategyPerformances); i++) + { + if(strategyPerformances[i].isActive) + { + summary += strategyPerformances[i].strategyName + ":\n"; + summary += " Profit: $" + DoubleToString(strategyPerformances[i].quarterProfit, 2) + "\n"; + summary += " Trades: " + IntegerToString((int)strategyPerformances[i].quarterTrades) + "\n"; + summary += " Win Rate: " + DoubleToString(strategyPerformances[i].winRate, 2) + "%\n"; + summary += " Lot Size: " + DoubleToString(strategyPerformances[i].currentLotSize, 2) + "\n\n"; + } + } + + return summary; +} + +//+------------------------------------------------------------------+ diff --git a/frontline/MQL5/_united_dynamic/STRATEGY_CONFIGURATION.md b/frontline/MQL5/_united_dynamic/STRATEGY_CONFIGURATION.md new file mode 100644 index 0000000..799c760 --- /dev/null +++ b/frontline/MQL5/_united_dynamic/STRATEGY_CONFIGURATION.md @@ -0,0 +1,76 @@ +# United EA Strategy Configuration Summary + +## Strategy Symbols and Magic Numbers + +### Strategy 1: DarvasBox +- **Symbol**: XAUUSD (Gold/USD) +- **Magic Number**: 135790 + +### Strategy 2: EMASlopeDistance +- **Symbol**: XAUUSD (Gold/USD) +- **Magic Number**: 12350 + +### Strategy 3: RSICrossOverReversal +- **Symbol**: XAUUSD (Gold/USD) +- **Magic Number**: 7 + +### Strategy 4: RSIMidPointHijack +- **Symbol**: XAUUSD (Gold/USD) +- **Magic Numbers**: + - RSIFollow: 1001 + - RSIReverse: 1002 + - EMACross: 1003 + +### Strategy 5: RSI Scalping APPL (Apple) +- **Symbol**: AAPL (Apple stock) +- **Magic Number**: 20001 +- **Note**: Changed from "APPL" to "AAPL" (correct ticker symbol) + +### Strategy 6: RSI Scalping BTCUSD +- **Symbol**: BTCUSD (Bitcoin/USD) +- **Magic Number**: 123459123 + +### Strategy 7: RSI Scalping MSFT +- **Symbol**: MSFT (Microsoft stock) +- **Magic Number**: 20002 + +### Strategy 8: RSI Scalping NVDA +- **Symbol**: NVDA (NVIDIA stock) +- **Magic Number**: 20003 + +### Strategy 9: RSI Scalping TSLA +- **Symbol**: TSLA (Tesla stock) +- **Magic Number**: 125421321 + +### Strategy 10: RSI Scalping XAUUSD +- **Symbol**: XAUUSD (Gold/USD) +- **Magic Number**: 129102315 + +## Important Notes + +1. **Stock Symbols**: Stock symbols (AAPL, MSFT, NVDA, TSLA) must be: + - Added to Market Watch in MetaTrader 5 + - Available from your broker + - Use the correct ticker symbol (e.g., "AAPL" not "APPL") + +2. **Magic Numbers**: All strategies have unique magic numbers to prevent interference: + - Each strategy can be identified by its magic number + - RSIMidPointHijack uses 3 magic numbers (one for each sub-strategy) + +3. **Symbol Configuration**: Each strategy trades on its own symbol: + - You can change symbols in the input parameters + - The EA will log warnings if a symbol is not available + - Strategies with unavailable symbols will be skipped (EA continues running) + +4. **RSI Scalping Strategies**: + - Each RSI Scalping variant trades on a different symbol + - They all use the same strategy logic but with different parameters + - Buy and sell signals are generated based on RSI levels for each symbol + +## Troubleshooting + +If stock symbols are not working: +1. Check if the symbol exists in your broker's symbol list +2. Add the symbol to Market Watch in MetaTrader 5 +3. Verify the symbol name matches your broker's naming convention +4. Some brokers use prefixes/suffixes (e.g., "NASDAQ:AAPL" or "AAPL.US") diff --git a/frontline/MQL5/_united_dynamic/Strategies/DarvasBoxStrategy.mqh b/frontline/MQL5/_united_dynamic/Strategies/DarvasBoxStrategy.mqh new file mode 100644 index 0000000..ff1d13b --- /dev/null +++ b/frontline/MQL5/_united_dynamic/Strategies/DarvasBoxStrategy.mqh @@ -0,0 +1,300 @@ +//+------------------------------------------------------------------+ +//| DarvasBoxStrategy.mqh | +//+------------------------------------------------------------------+ + +bool InitDarvasBox(string symbol) +{ + dbData.symbol = symbol; + dbData.boxHigh = 0; + dbData.boxLow = 0; + dbData.boxFormed = false; + dbData.lastBoxTime = 0; + dbData.boxName = "DarvasBox_" + IntegerToString(DB_MagicNumber) + "_"; + + // Check if symbol exists + if(!SymbolSelect(symbol, true)) + { + Print("DarvasBox: Symbol '", symbol, "' not available in Market Watch. Please add it to Market Watch or check symbol name."); + return false; + } + + Sleep(100); // Wait for symbol to be ready + + dbData.point = SymbolInfoDouble(symbol, SYMBOL_POINT); + dbData.minStopLevel = SymbolInfoInteger(symbol, SYMBOL_TRADE_STOPS_LEVEL) * dbData.point; + + dbData.maHandle = iMA(symbol, DB_TrendTimeframe, DB_MA_Period, 0, DB_MA_Method, DB_MA_Price); + dbData.volumeHandle = iVolumes(symbol, PERIOD_CURRENT, VOLUME_TICK); + + if(dbData.maHandle == INVALID_HANDLE || dbData.volumeHandle == INVALID_HANDLE) + { + Print("DarvasBox: Error creating indicators for '", symbol, "'"); + return false; + } + + dbData.trade.SetDeviationInPoints(10); + dbData.trade.SetTypeFilling(ORDER_FILLING_IOC); + dbData.trade.SetAsyncMode(false); + dbData.trade.SetExpertMagicNumber(DB_MagicNumber); + + ObjectsDeleteAll(0, dbData.boxName); + dbData.isInitialized = true; + Print("DarvasBox: Successfully initialized for symbol '", symbol, "'"); + return true; +} + +void DeinitDarvasBox() +{ + if(dbData.maHandle != INVALID_HANDLE) IndicatorRelease(dbData.maHandle); + if(dbData.volumeHandle != INVALID_HANDLE) IndicatorRelease(dbData.volumeHandle); + ObjectsDeleteAll(0, dbData.boxName); +} + +void DrawDarvasBox() +{ + if(!dbData.boxFormed) return; + + datetime time1 = iTime(dbData.symbol, PERIOD_H1, DB_BoxPeriod); + datetime time2 = iTime(dbData.symbol, PERIOD_H1, 0); + + ObjectsDeleteAll(0, dbData.boxName); + + ObjectCreate(0, dbData.boxName + "Top", OBJ_TREND, 0, time1, dbData.boxHigh, time2, dbData.boxHigh); + ObjectCreate(0, dbData.boxName + "Bottom", OBJ_TREND, 0, time1, dbData.boxLow, time2, dbData.boxLow); + + ObjectSetInteger(0, dbData.boxName + "Top", OBJPROP_COLOR, DB_BoxColor); + ObjectSetInteger(0, dbData.boxName + "Bottom", OBJPROP_COLOR, DB_BoxColor); + ObjectSetInteger(0, dbData.boxName + "Top", OBJPROP_WIDTH, DB_BoxWidth); + ObjectSetInteger(0, dbData.boxName + "Bottom", OBJPROP_WIDTH, DB_BoxWidth); + ObjectSetInteger(0, dbData.boxName + "Top", OBJPROP_RAY_RIGHT, true); + ObjectSetInteger(0, dbData.boxName + "Bottom", OBJPROP_RAY_RIGHT, true); +} + +void CalculateDarvasBox() +{ + double high = 0; + double low = DBL_MAX; + + // Find highest high and lowest low in the period - EXACTLY like original + for(int i = 0; i < DB_BoxPeriod; i++) + { + high = MathMax(high, iHigh(dbData.symbol, PERIOD_H1, i)); + low = MathMin(low, iLow(dbData.symbol, PERIOD_H1, i)); + } + + double range = high - low; + double allowedRange = DB_BoxDeviation * dbData.point; // Use dbData.point instead of _Point + + if(DB_EnableLogging) + { + Print("DarvasBox: Box Calculation - High: ", high, " Low: ", low, " Range: ", range, " Allowed Range: ", allowedRange); + } + + // Check if box is formed - EXACTLY like original + if(range <= allowedRange) + { + dbData.boxHigh = high; + dbData.boxLow = low; + dbData.boxFormed = true; + dbData.lastBoxTime = iTime(dbData.symbol, PERIOD_CURRENT, 0); + + // Draw the box + DrawDarvasBox(); + + if(DB_EnableLogging) + Print("DarvasBox: Box Formed - High: ", dbData.boxHigh, " Low: ", dbData.boxLow, " Time: ", dbData.lastBoxTime); + } + else + { + dbData.boxFormed = false; + // Delete box if it exists + ObjectsDeleteAll(0, dbData.boxName); + } +} + +bool ValidateStopLevels(double price, double &sl, double &tp, ENUM_ORDER_TYPE orderType) +{ + double minSlDistance = MathMax(dbData.minStopLevel, DB_StopLoss * dbData.point); + double minTpDistance = MathMax(dbData.minStopLevel, DB_TakeProfit * dbData.point); + + if(orderType == ORDER_TYPE_BUY) + { + sl = price - minSlDistance; + tp = price + minTpDistance; + } + else + { + sl = price + minSlDistance; + tp = price - minTpDistance; + } + + return true; +} + +bool IsTrendFavorable(ENUM_ORDER_TYPE orderType) +{ + double ma[]; + ArraySetAsSeries(ma, true); + + if(CopyBuffer(dbData.maHandle, 0, 0, 2, ma) <= 0) + return false; + + double currentPrice = SymbolInfoDouble(dbData.symbol, SYMBOL_ASK); + double trendStrength = MathAbs(currentPrice - ma[0]) / dbData.point; + + if(orderType == ORDER_TYPE_BUY) + return (currentPrice > ma[0] && trendStrength > DB_TrendThreshold); + else + return (currentPrice < ma[0] && trendStrength > DB_TrendThreshold); +} + +bool CheckVolumeConditions() +{ + double volumes[]; + ArraySetAsSeries(volumes, true); + + if(CopyBuffer(dbData.volumeHandle, 0, 0, DB_VolumeMA_Period + 1, volumes) <= 0) + return false; + + double volumeMA = 0; + for(int i = 1; i <= DB_VolumeMA_Period; i++) + volumeMA += volumes[i]; + volumeMA /= DB_VolumeMA_Period; + + double currentVolume = volumes[0]; + double volumeRatio = currentVolume / volumeMA; + + return (volumeRatio > DB_VolumeThresholdMultiplier); +} + +bool PlaceOrder(ENUM_ORDER_TYPE orderType, double price, double sl, double tp) +{ + if(!ValidateStopLevels(price, sl, tp, orderType)) + { + if(DB_EnableLogging) + Print("DarvasBox: Order rejected - Stop levels validation failed"); + return false; + } + + if(!IsTrendFavorable(orderType)) + { + if(DB_EnableLogging) + Print("DarvasBox: Order rejected - Trend not favorable for ", EnumToString(orderType)); + return false; + } + + if(!CheckVolumeConditions()) + { + if(DB_EnableLogging) + Print("DarvasBox: Order rejected - Volume conditions not met"); + return false; + } + + bool result = false; + + // Use market price (0) instead of explicit price - this ensures market order execution + // In backtesting, explicit price might fail if price has moved + if(orderType == ORDER_TYPE_BUY) + result = dbData.trade.Buy(g_DB_LotSize, dbData.symbol, 0, sl, tp, "Darvas Box Breakout"); + else + result = dbData.trade.Sell(g_DB_LotSize, dbData.symbol, 0, sl, tp, "Darvas Box Breakdown"); + + // Always log errors, success only if logging enabled + if(result) + { + if(DB_EnableLogging) + Print("DarvasBox: ", (orderType == ORDER_TYPE_BUY ? "Buy" : "Sell"), " Order Placed Successfully"); + } + else + { + // Always log failures with detailed info + uint retcode_uint = dbData.trade.ResultRetcode(); + int retcode = (int)retcode_uint; + string desc = dbData.trade.ResultRetcodeDescription(); + ulong deal = dbData.trade.ResultDeal(); + ulong order = dbData.trade.ResultOrder(); + Print("DarvasBox: ", (orderType == ORDER_TYPE_BUY ? "Buy" : "Sell"), + " Order Failed - Retcode: ", retcode, + ", Description: ", desc, + ", Deal: ", deal, + ", Order: ", order, + ", Symbol: ", dbData.symbol, + ", Requested Price: ", price, + ", SL: ", sl, + ", TP: ", tp); + } + + return result; +} + +void ProcessDarvasBox(string symbol) +{ + // Skip if not initialized (symbol not available) + if(!dbData.isInitialized) + return; + + dbData.symbol = symbol; // Update symbol in case it changed + + // Calculate new box levels - EXACTLY like original (called every tick) + CalculateDarvasBox(); + + // Check for trading signals - EXACTLY like original (checked every tick) + if(dbData.boxFormed) + { + double currentPrice = SymbolInfoDouble(dbData.symbol, SYMBOL_ASK); + long currentVolume_long = iVolume(dbData.symbol, PERIOD_CURRENT, 0); + double currentVolume = (double)currentVolume_long; + + if(DB_EnableLogging) + { + Print("DarvasBox: Current Price: ", currentPrice, " Box High: ", dbData.boxHigh, " Box Low: ", dbData.boxLow); + Print("DarvasBox: Current Volume: ", currentVolume, " Volume Threshold: ", DB_VolumeThreshold); + } + + // Check for breakout above box - EXACTLY like original + if(currentPrice > dbData.boxHigh && currentVolume > DB_VolumeThreshold) + { + if(DB_EnableLogging) + Print("DarvasBox: Breakout Signal Detected - Price above box high"); + + // Buy signal + if(!PositionExistsByMagic(dbData.symbol, (ulong)DB_MagicNumber)) // No existing positions with our magic number + { + double sl = currentPrice - DB_StopLoss * dbData.point; + double tp = currentPrice + DB_TakeProfit * dbData.point; + + if(DB_EnableLogging) + Print("DarvasBox: Preparing Buy Order - Price: ", currentPrice, " SL: ", sl, " TP: ", tp); + + PlaceOrder(ORDER_TYPE_BUY, currentPrice, sl, tp); + } + else if(DB_EnableLogging) + Print("DarvasBox: Skipping Buy Signal - Position already exists"); + } + + // Check for breakdown below box - EXACTLY like original + if(currentPrice < dbData.boxLow && currentVolume > DB_VolumeThreshold) + { + if(DB_EnableLogging) + Print("DarvasBox: Breakdown Signal Detected - Price below box low"); + + // Sell signal + if(!PositionExistsByMagic(dbData.symbol, (ulong)DB_MagicNumber)) // No existing positions with our magic number + { + double sl = currentPrice + DB_StopLoss * dbData.point; + double tp = currentPrice - DB_TakeProfit * dbData.point; + + if(DB_EnableLogging) + Print("DarvasBox: Preparing Sell Order - Price: ", currentPrice, " SL: ", sl, " TP: ", tp); + + PlaceOrder(ORDER_TYPE_SELL, currentPrice, sl, tp); + } + else if(DB_EnableLogging) + Print("DarvasBox: Skipping Sell Signal - Position already exists"); + } + } + else if(DB_EnableLogging) + Print("DarvasBox: No Box Formed - Waiting for consolidation"); +} + +//+------------------------------------------------------------------+ diff --git a/frontline/MQL5/_united_dynamic/Strategies/EMASlopeDistanceStrategy.mqh b/frontline/MQL5/_united_dynamic/Strategies/EMASlopeDistanceStrategy.mqh new file mode 100644 index 0000000..70e4502 --- /dev/null +++ b/frontline/MQL5/_united_dynamic/Strategies/EMASlopeDistanceStrategy.mqh @@ -0,0 +1,496 @@ +//+------------------------------------------------------------------+ +//| EMASlopeDistanceStrategy.mqh | +//+------------------------------------------------------------------+ + +bool InitEMASlopeDistance(string symbol) +{ + esData.symbol = symbol; + esData.letzte_überwachung_zeit = 0; + esData.überwachung_aktiv = false; + esData.preis_trigger_aktiv = false; + esData.steigung_trigger_aktiv = false; + esData.ticket = 0; + esData.trades_in_current_crossover = 0; + esData.crossover_detected = false; + esData.trade_open_time = 0; + esData.last_bar_time = 0; + + // Check if symbol exists + if(!SymbolSelect(symbol, true)) + { + Print("EMASlopeDistance: Symbol '", symbol, "' not available in Market Watch. Please add it to Market Watch or check symbol name."); + return false; + } + + Sleep(100); // Wait for symbol to be ready + + esData.trade.SetExpertMagicNumber(ES_MagicNumber); + esData.trade.SetDeviationInPoints(10); + esData.trade.SetTypeFilling(ORDER_FILLING_IOC); + + esData.ema_handle = iMA(symbol, ES_Timeframe, ES_EMA_Periode, 0, MODE_EMA, PRICE_CLOSE); + + if(esData.ema_handle == INVALID_HANDLE) + { + Print("EMASlopeDistance: Error creating EMA indicator for '", symbol, "'"); + return false; + } + + ArraySetAsSeries(esData.ema_array, true); + esData.isInitialized = true; + Print("EMASlopeDistance: Successfully initialized for symbol '", symbol, "'"); + return true; +} + +void DeinitEMASlopeDistance() +{ + if(esData.ema_handle != INVALID_HANDLE) + IndicatorRelease(esData.ema_handle); +} + +//+------------------------------------------------------------------+ +//| EMA Berechnung (EMA Calculation) | +//+------------------------------------------------------------------+ +void BerechneEMA() +{ + //--- EMA Werte vom Indicator kopieren (Copy EMA values from indicator) + int copied = CopyBuffer(esData.ema_handle, 0, 0, 3, esData.ema_array); + + if(copied <= 0) + { + Print("TRACE: Fehler beim Kopieren der EMA Werte - Copied: ", copied); + return; + } + + Print("TRACE: EMA Werte kopiert: ", copied, " Bars"); + Print("TRACE: EMA [0]: ", esData.ema_array[0], " [1]: ", esData.ema_array[1], " [2]: ", esData.ema_array[2]); +} + +//+------------------------------------------------------------------+ +//| Trigger-Bedingungen prüfen (Check trigger conditions) | +//+------------------------------------------------------------------+ +void PrüfeTrigger() +{ + if(ArraySize(esData.ema_array) < 2) + { + Print("TRACE: Array zu klein - Größe: ", ArraySize(esData.ema_array)); + return; + } + + //--- Aktuelle Werte (Current values) + double aktueller_preis = SymbolInfoDouble(esData.symbol, SYMBOL_BID); + double aktueller_ask = SymbolInfoDouble(esData.symbol, SYMBOL_ASK); + double aktueller_close = iClose(esData.symbol, ES_Timeframe, 0); + int digits = (int)SymbolInfoInteger(esData.symbol, SYMBOL_DIGITS); + double point = SymbolInfoDouble(esData.symbol, SYMBOL_POINT); + double pips_multiplier = (digits == 3 || digits == 5) ? 10.0 : 1.0; + + //--- EMA Werte in Variablen (EMA values in variables) + double ema_aktuell = esData.ema_array[0]; + double ema_vorher = esData.ema_array[1]; + + //--- EMA Crossover Erkennung (EMA Crossover Detection) + // Prüfe ob Preis die EMA kreuzt (Check if price crosses EMA) + static double last_close = 0; + static double last_ema = 0; + + if(last_close != 0 && last_ema != 0) + { + bool crossover_bullish = (last_close <= last_ema) && (aktueller_close > ema_aktuell); + bool crossover_bearish = (last_close >= last_ema) && (aktueller_close < ema_aktuell); + + //--- Neues Crossover-Ereignis erkannt (New crossover event detected) + if(crossover_bullish || crossover_bearish) + { + esData.trades_in_current_crossover = 0; // Reset trade counter + Print("TRACE: EMA Crossover erkannt - ", (crossover_bullish ? "BULLISH" : "BEARISH"), " - Trade-Counter zurückgesetzt"); + Print("TRACE: Vorher: Close=", last_close, " EMA=", last_ema, " Jetzt: Close=", aktueller_close, " EMA=", ema_aktuell); + } + } + + //--- Aktuelle Werte für nächsten Vergleich speichern (Save current values for next comparison) + last_close = aktueller_close; + last_ema = ema_aktuell; + + //--- Preisbewegung zur EMA prüfen (Check price action to EMA) + double preis_abstand = MathAbs(aktueller_close - ema_aktuell) / point / pips_multiplier; + + Print("TRACE: Preis-Abstand: ", preis_abstand, " Pips (Schwelle: ", ES_PreisSchwelle, ")"); + Print("TRACE: Close: ", aktueller_close, " EMA: ", ema_aktuell); + Print("TRACE: Trades im aktuellen Crossover: ", esData.trades_in_current_crossover, "/", ES_MaxTradesPerCrossover); + + if(preis_abstand > ES_PreisSchwelle && !esData.preis_trigger_aktiv) + { + esData.preis_trigger_aktiv = true; + Print("TRACE: Preis-Trigger aktiviert: ", preis_abstand, " Pips"); + } + + //--- EMA Steigung prüfen (Check EMA slope) + double steigung = (ema_aktuell - ema_vorher) / point / pips_multiplier; + + Print("TRACE: EMA Steigung: ", steigung, " Pips (Schwelle: ", ES_SteigungSchwelle, ")"); + + if(MathAbs(steigung) > ES_SteigungSchwelle && !esData.steigung_trigger_aktiv) + { + esData.steigung_trigger_aktiv = true; + Print("TRACE: Steigungs-Trigger aktiviert: ", steigung, " Pips"); + } + + //--- Überwachung starten wenn beide Trigger aktiv sind (Start monitoring when both triggers are active) + if(esData.preis_trigger_aktiv && esData.steigung_trigger_aktiv && !esData.überwachung_aktiv) + { + esData.überwachung_aktiv = true; + + if(ES_UseBarData) + { + esData.letzte_überwachung_zeit = iTime(esData.symbol, ES_Timeframe, 0); // Aktuelle Bar-Zeit + Print("TRACE: Überwachung gestartet - Beide Trigger aktiv (Bar: ", TimeToString(esData.letzte_überwachung_zeit), ")"); + } + else + { + esData.letzte_überwachung_zeit = TimeCurrent(); // Aktuelle Tick-Zeit + Print("TRACE: Überwachung gestartet - Beide Trigger aktiv (Tick)"); + } + } + + //--- Trade platzieren wenn Überwachung aktiv und Preis über/unter EMA (Place trade when monitoring active and price above/below EMA) + if(esData.überwachung_aktiv) + { + bool bullish_signal = aktueller_close > ema_aktuell; + bool bearish_signal = aktueller_close < ema_aktuell; + + Print("TRACE: Signal Check - Bullish: ", bullish_signal, " Bearish: ", bearish_signal); + Print("TRACE: Close: ", aktueller_close, " EMA: ", ema_aktuell); + Print("TRACE: Differenz: ", aktueller_close - ema_aktuell); + + //--- Trade-Limit prüfen (Check trade limit) + if(esData.trades_in_current_crossover >= ES_MaxTradesPerCrossover) + { + Print("TRACE: Trade-Limit erreicht (", ES_MaxTradesPerCrossover, ") - Kein neuer Trade"); + return; + } + + if(bullish_signal && !PositionExistsByMagic(esData.symbol, (ulong)ES_MagicNumber)) + { + Print("TRACE: Versuche KAUF-Trade zu platzieren (Trade #", esData.trades_in_current_crossover + 1, ")"); + if(PlatziereTrade(ORDER_TYPE_BUY)) + { + esData.trades_in_current_crossover++; + } + } + else if(bearish_signal && !PositionExistsByMagic(esData.symbol, (ulong)ES_MagicNumber)) + { + Print("TRACE: Versuche VERKAUF-Trade zu platzieren (Trade #", esData.trades_in_current_crossover + 1, ")"); + if(PlatziereTrade(ORDER_TYPE_SELL)) + { + esData.trades_in_current_crossover++; + } + } + else if(PositionExistsByMagic(esData.symbol, (ulong)ES_MagicNumber)) + { + Print("TRACE: Position bereits offen - kein neuer Trade"); + } + } +} + +//+------------------------------------------------------------------+ +//| Trade platzieren (Place trade) | +//+------------------------------------------------------------------+ +bool PlatziereTrade(ENUM_ORDER_TYPE order_type) +{ + Print("TRACE: Versuche Trade zu platzieren - Typ: ", (order_type == ORDER_TYPE_BUY) ? "KAUF" : "VERKAUF"); + Print("TRACE: Lot: ", g_ES_LotSize); + + bool success = false; + + if(order_type == ORDER_TYPE_BUY) + { + success = esData.trade.Buy(g_ES_LotSize, esData.symbol, 0, 0, 0, "EMA Crossover Trade"); + } + else + { + success = esData.trade.Sell(g_ES_LotSize, esData.symbol, 0, 0, 0, "EMA Crossover Trade"); + } + + if(success) + { + esData.ticket = (int)esData.trade.ResultOrder(); + Print("TRACE: Trade erfolgreich platziert: ", (order_type == ORDER_TYPE_BUY) ? "KAUF" : "VERKAUF", " Ticket: ", esData.ticket); + + //--- Trade-Öffnungszeit speichern (Save trade opening time) + esData.trade_open_time = iTime(esData.symbol, ES_Timeframe, 0); + Print("TRACE: Trade-Öffnungszeit: ", TimeToString(esData.trade_open_time)); + + //--- Überwachung zurücksetzen (Reset monitoring) + esData.überwachung_aktiv = false; + esData.preis_trigger_aktiv = false; + esData.steigung_trigger_aktiv = false; + + return true; + } + else + { + Print("TRACE: Fehler beim Platzieren des Trades - Retcode: ", esData.trade.ResultRetcode()); + Print("TRACE: Fehlerbeschreibung: ", esData.trade.ResultRetcodeDescription()); + + return false; + } +} + +//+------------------------------------------------------------------+ +//| Trades verwalten (Manage trades) | +//+------------------------------------------------------------------+ +void VerwalteTrades() +{ + if(!PositionSelectByMagic(esData.symbol, (ulong)ES_MagicNumber)) + return; + + double position_profit = PositionGetDouble(POSITION_PROFIT); + double position_open_price = PositionGetDouble(POSITION_PRICE_OPEN); + double current_price = PositionGetDouble(POSITION_PRICE_CURRENT); + ENUM_POSITION_TYPE position_type = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + + int digits = (int)SymbolInfoInteger(esData.symbol, SYMBOL_DIGITS); + double point = SymbolInfoDouble(esData.symbol, SYMBOL_POINT); + double pips_multiplier = (digits == 3 || digits == 5) ? 10.0 : 1.0; + double trailing_stop_pips = ES_TrailingStop; + + //--- Gleitender Stop (Trailing Stop) - nur wenn Position im Profit ist + if(position_profit > 0) // Only apply trailing stop when in profit + { + if(position_type == POSITION_TYPE_BUY) + { + double new_stop_loss = current_price - (trailing_stop_pips * point * pips_multiplier); + double current_stop_loss = PositionGetDouble(POSITION_SL); + + // Only move stop loss if new stop is higher than current stop + if(new_stop_loss > current_stop_loss) + { + ÄndereStopLoss(new_stop_loss); + } + } + else if(position_type == POSITION_TYPE_SELL) + { + double new_stop_loss = current_price + (trailing_stop_pips * point * pips_multiplier); + double current_stop_loss = PositionGetDouble(POSITION_SL); + + // Only move stop loss if new stop is lower than current stop + if(new_stop_loss < current_stop_loss || current_stop_loss == 0) + { + ÄndereStopLoss(new_stop_loss); + } + } + } + + //--- Ausstieg bei Preis unter/über EMA (Exit when price below/above EMA) + if(ArraySize(esData.ema_array) >= 1) + { + double aktueller_close = iClose(esData.symbol, ES_Timeframe, 0); + double ema_aktuell = esData.ema_array[0]; + bool exit_bullish = (position_type == POSITION_TYPE_SELL && aktueller_close > ema_aktuell); + bool exit_bearish = (position_type == POSITION_TYPE_BUY && aktueller_close < ema_aktuell); + + if(exit_bullish || exit_bearish) + { + Print("TRACE: Ausstiegssignal - Close: ", aktueller_close, " EMA: ", ema_aktuell); + SchließePosition("EMA Crossover Exit"); + + Print("TRACE: Position geschlossen - Trade-Counter bleibt bei ", esData.trades_in_current_crossover); + } + } + + //--- Profit-Prüfung nach X Bars (Profit check after X bars) + if(ES_CloseUnprofitableTrades && esData.trade_open_time != 0 && PositionExistsByMagic(esData.symbol, (ulong)ES_MagicNumber)) + { + Print("TRACE: Profit-Prüfung aktiviert - CloseUnprofitableTrades: ", ES_CloseUnprofitableTrades); + PrüfeProfitNachBars(); + } + else if(!ES_CloseUnprofitableTrades) + { + Print("TRACE: Profit-Prüfung deaktiviert - CloseUnprofitableTrades: ", ES_CloseUnprofitableTrades); + } +} + +//+------------------------------------------------------------------+ +//| Profit-Prüfung nach X Bars (Profit check after X bars) | +//+------------------------------------------------------------------+ +void PrüfeProfitNachBars() +{ + if(!PositionSelectByMagic(esData.symbol, (ulong)ES_MagicNumber)) + { + return; // Keine Position offen + } + + datetime current_bar_time = iTime(esData.symbol, ES_Timeframe, 0); + int bars_since_trade_open = iBarShift(esData.symbol, ES_Timeframe, esData.trade_open_time); + + Print("TRACE: Bars seit Trade-Öffnung: ", bars_since_trade_open, "/", ES_ProfitCheckBars); + + //--- Prüfe ob genügend Bars vergangen sind (Check if enough bars have passed) + if(bars_since_trade_open >= ES_ProfitCheckBars) + { + double position_profit = PositionGetDouble(POSITION_PROFIT); + double position_volume = PositionGetDouble(POSITION_VOLUME); + ENUM_POSITION_TYPE position_type = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + + Print("TRACE: Profit-Prüfung nach ", ES_ProfitCheckBars, " Bars"); + Print("TRACE: Position Profit: ", position_profit, " USD"); + + //--- Schließe Position wenn nicht im Profit (Close position if not in profit) + if(position_profit <= 0) + { + Print("TRACE: Position nicht im Profit - Schließe Position"); + SchließePosition("Profit Check - Unprofitable"); + + //--- Trade-Öffnungszeit zurücksetzen (Reset trade opening time) + esData.trade_open_time = 0; + Print("TRACE: Trade-Öffnungszeit zurückgesetzt"); + } + else + { + Print("TRACE: Position im Profit - Behalte Position"); + //--- Trade-Öffnungszeit zurücksetzen um weitere Prüfungen zu vermeiden (Reset to avoid further checks) + esData.trade_open_time = 0; + } + } +} + +//+------------------------------------------------------------------+ +//| Stop Loss ändern (Modify Stop Loss) | +//+------------------------------------------------------------------+ +void ÄndereStopLoss(double new_stop_loss) +{ + Print("TRACE: Versuche Stop Loss zu ändern auf: ", new_stop_loss); + + bool success = ModifyPositionByMagic(esData.trade, esData.symbol, (ulong)ES_MagicNumber, new_stop_loss, PositionGetDouble(POSITION_TP)); + + if(success) + { + Print("TRACE: Stop Loss erfolgreich geändert auf: ", new_stop_loss); + } + else + { + Print("TRACE: Fehler beim Ändern des Stop Loss - Retcode: ", esData.trade.ResultRetcode()); + Print("TRACE: Fehlerbeschreibung: ", esData.trade.ResultRetcodeDescription()); + } +} + +//+------------------------------------------------------------------+ +//| Position schließen (Close position) | +//+------------------------------------------------------------------+ +void SchließePosition(string reason = "Unbekannt") +{ + Print("TRACE: Versuche Position zu schließen - Grund: ", reason); + + bool success = ClosePositionByMagic(esData.trade, esData.symbol, (ulong)ES_MagicNumber); + + if(success) + { + Print("TRACE: Position erfolgreich geschlossen - Grund: ", reason); + } + else + { + Print("TRACE: Fehler beim Schließen der Position - Retcode: ", esData.trade.ResultRetcode()); + Print("TRACE: Fehlerbeschreibung: ", esData.trade.ResultRetcodeDescription()); + } +} + +//+------------------------------------------------------------------+ +//| Expert tick function | +//+------------------------------------------------------------------+ +void ProcessEMASlopeDistance(string symbol) +{ + // Skip if not initialized (symbol not available) + if(!esData.isInitialized) + return; + + esData.symbol = symbol; // Update symbol in case it changed + + //--- Bar-Daten oder Tick-Daten verwenden (Use bar data or tick data) + if(ES_UseBarData) + { + //--- Nur bei neuen Bars ausführen (Only execute on new bars) + datetime current_bar_time = iTime(esData.symbol, ES_Timeframe, 0); + + if(current_bar_time == esData.last_bar_time) + { + return; // Kein neuer Bar, nichts tun + } + + esData.last_bar_time = current_bar_time; + } + + //--- EMA Werte berechnen (Calculate EMA values) + BerechneEMA(); + + //--- Debug: Aktuelle Werte ausgeben (Debug: Output current values) + if(ArraySize(esData.ema_array) > 0) + { + double aktueller_close = iClose(esData.symbol, ES_Timeframe, 0); + double ema_aktuell = esData.ema_array[0]; + double ema_vorher = esData.ema_array[1]; + int digits = (int)SymbolInfoInteger(esData.symbol, SYMBOL_DIGITS); + double point = SymbolInfoDouble(esData.symbol, SYMBOL_POINT); + double preis_abstand = MathAbs(aktueller_close - ema_aktuell) / point; + double steigung = (ema_aktuell - ema_vorher) / point; + + if(ES_UseBarData) + { + Print("=== DEBUG INFO (Neuer Bar) ==="); + Print("Bar Zeit: ", TimeToString(iTime(esData.symbol, ES_Timeframe, 0))); + } + else + { + Print("=== DEBUG INFO (Tick) ==="); + } + + Print("Aktueller Close: ", aktueller_close); + Print("EMA: ", ema_aktuell); + Print("Preis-Abstand: ", preis_abstand, " Pips"); + Print("EMA Steigung: ", steigung, " Pips"); + Print("Differenz Close-EMA: ", aktueller_close - ema_aktuell); + Print("Preis-Trigger: ", esData.preis_trigger_aktiv, " Steigungs-Trigger: ", esData.steigung_trigger_aktiv); + Print("Überwachung aktiv: ", esData.überwachung_aktiv); + Print("Position offen: ", PositionExistsByMagic(esData.symbol, (ulong)ES_MagicNumber)); + Print("Trades im aktuellen Crossover: ", esData.trades_in_current_crossover, "/", ES_MaxTradesPerCrossover); + Print("=================="); + } + + //--- Überwachung prüfen (Check monitoring) + if(esData.überwachung_aktiv) + { + if(ES_UseBarData) + { + // Bar-basierte Überwachungszeit + int bars_since_monitoring = iBarShift(esData.symbol, ES_Timeframe, esData.letzte_überwachung_zeit); + int timeout_bars = (int)(ES_ÜberwachungTimeout / PeriodSeconds(ES_Timeframe)); + + if(bars_since_monitoring > timeout_bars) + { + esData.überwachung_aktiv = false; + esData.preis_trigger_aktiv = false; + esData.steigung_trigger_aktiv = false; + Print("Überwachung beendet - Bar-basierte Zeitüberschreitung (", bars_since_monitoring, " Bars)"); + } + } + else + { + // Tick-basierte Überwachungszeit + if(TimeCurrent() - esData.letzte_überwachung_zeit > ES_ÜberwachungTimeout) + { + esData.überwachung_aktiv = false; + esData.preis_trigger_aktiv = false; + esData.steigung_trigger_aktiv = false; + Print("Überwachung beendet - Tick-basierte Zeitüberschreitung"); + } + } + } + + //--- Trigger-Bedingungen prüfen (Check trigger conditions) + PrüfeTrigger(); + + //--- Trade Management (Trade management) + VerwalteTrades(); +} + +//+------------------------------------------------------------------+ diff --git a/frontline/MQL5/_united_dynamic/Strategies/RSICrossOverReversalStrategy.mqh b/frontline/MQL5/_united_dynamic/Strategies/RSICrossOverReversalStrategy.mqh new file mode 100644 index 0000000..f182476 --- /dev/null +++ b/frontline/MQL5/_united_dynamic/Strategies/RSICrossOverReversalStrategy.mqh @@ -0,0 +1,240 @@ +//+------------------------------------------------------------------+ +//| RSICrossOverReversalStrategy.mqh | +//+------------------------------------------------------------------+ + +void WeekDays_Init() +{ + rcData.WeekDays[0] = RC_Sunday; + rcData.WeekDays[1] = RC_Monday; + rcData.WeekDays[2] = RC_Tuesday; + rcData.WeekDays[3] = RC_Wednesday; + rcData.WeekDays[4] = RC_Thursday; + rcData.WeekDays[5] = RC_Friday; + rcData.WeekDays[6] = RC_Saturday; +} + +bool WeekDays_Check(datetime aTime) +{ + MqlDateTime stm; + TimeToStruct(aTime, stm); + return(rcData.WeekDays[stm.day_of_week]); +} + +int TimeHour(datetime when = 0) +{ + if(when == 0) when = TimeCurrent(); + MqlDateTime dt; + TimeToStruct(when, dt); + return dt.hour; +} + +bool InitRSICrossOverReversal(string symbol) +{ + WeekDays_Init(); + + rcData.symbol = symbol; + rcData.previousRSIDef = 0; + rcData.lastTradeTime = 0; + rcData.bartime = 0; + rcData.lastBarTime = 0; + + // Check if symbol exists + if(!SymbolSelect(symbol, true)) + { + Print("RSICrossOverReversal: Symbol '", symbol, "' not available in Market Watch. Please add it to Market Watch or check symbol name."); + return false; + } + + Sleep(100); // Wait for symbol to be ready + + rcData.rsiHandle = iRSI(symbol, RC_TimeFrame1, RC_rsiPeriod, PRICE_CLOSE); + if(rcData.rsiHandle == INVALID_HANDLE) + { + Print("RSICrossOverReversal: Error creating RSI handle for '", symbol, "'"); + return false; + } + + rcData.emaHandle = iMA(symbol, RC_TimeFrame2, RC_emaPeriod, 0, MODE_EMA, PRICE_CLOSE); + if(rcData.emaHandle == INVALID_HANDLE) + { + Print("RSICrossOverReversal: Error creating EMA handle for '", symbol, "'"); + return false; + } + + rcData.trade.SetExpertMagicNumber(RC_MagicNumber); + rcData.isInitialized = true; + Print("RSICrossOverReversal: Successfully initialized for symbol '", symbol, "'"); + return true; +} + +void DeinitRSICrossOverReversal() +{ + if(rcData.rsiHandle != INVALID_HANDLE) + IndicatorRelease(rcData.rsiHandle); + if(rcData.emaHandle != INVALID_HANDLE) + IndicatorRelease(rcData.emaHandle); +} + +void Close_Position_MN(ulong magicNumber) +{ + ClosePositionByMagic(rcData.trade, rcData.symbol, (int)magicNumber); +} + +void ApplyTrailingStop() +{ + if(!PositionSelectByMagic(rcData.symbol, RC_MagicNumber)) + return; + + ulong PositionTicket = PositionGetInteger(POSITION_TICKET); + ENUM_POSITION_TYPE trade_type = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + string symbol = rcData.symbol; + + double POINT = SymbolInfoDouble(symbol, SYMBOL_POINT); + int DIGIT = (int)SymbolInfoInteger(symbol, SYMBOL_DIGITS); + + if(trade_type == POSITION_TYPE_BUY) + { + double Bid = NormalizeDouble(SymbolInfoDouble(symbol, SYMBOL_BID), DIGIT); + + if(Bid - PositionGetDouble(POSITION_PRICE_OPEN) > NormalizeDouble(POINT * RC_TrailingStop, DIGIT)) + { + if(PositionGetDouble(POSITION_SL) < NormalizeDouble(Bid - POINT * RC_TrailingStop, DIGIT)) + { + ModifyPositionByMagic(rcData.trade, symbol, RC_MagicNumber, + NormalizeDouble(Bid - POINT * RC_TrailingStop, DIGIT), + PositionGetDouble(POSITION_TP)); + } + } + } + else if(trade_type == POSITION_TYPE_SELL) + { + double Ask = NormalizeDouble(SymbolInfoDouble(symbol, SYMBOL_ASK), DIGIT); + + if((PositionGetDouble(POSITION_PRICE_OPEN) - Ask) > NormalizeDouble(POINT * RC_TrailingStop, DIGIT)) + { + if((PositionGetDouble(POSITION_SL) > NormalizeDouble(Ask + POINT * RC_TrailingStop, DIGIT)) || + (PositionGetDouble(POSITION_SL) == 0)) + { + ModifyPositionByMagic(rcData.trade, symbol, RC_MagicNumber, + NormalizeDouble(Ask + POINT * RC_TrailingStop, DIGIT), + PositionGetDouble(POSITION_TP)); + } + } + } +} + +void ProcessRSICrossOverReversal(string symbol) +{ + // Skip if not initialized (symbol not available) + if(!rcData.isInitialized) + return; + + rcData.symbol = symbol; // Update symbol in case it changed + if(rcData.bartime == iTime(rcData.symbol, RC_BarTimeFrame, 0)) + return; + rcData.bartime = iTime(rcData.symbol, RC_BarTimeFrame, 0); + + double rsi[]; + if(CopyBuffer(rcData.rsiHandle, 0, 0, 2, rsi) <= 0) + return; + + double ema[]; + if(CopyBuffer(rcData.emaHandle, 0, 0, 2, ema) <= 0) + return; + + datetime currentTime = TimeCurrent(); + int currentHour = TimeHour(TimeCurrent()); + + if(!WeekDays_Check(TimeTradeServer())) + { + Close_Position_MN(RC_MagicNumber); + return; + } + + if(!((currentHour < RC_tradingHourOneEnd && currentHour > RC_tradingHourOneBegin) || + (currentHour < RC_tradingHourTwoEnd && currentHour > RC_tradingHourTwoBegin))) + { + Close_Position_MN(RC_MagicNumber); + return; + } + + bool hasPosition = PositionExistsByMagic(rcData.symbol, RC_MagicNumber); + + double currentRSI = rsi[0]; + double previousRSI = rsi[1]; + + if(rcData.previousRSIDef == 0) + { + rcData.previousRSIDef = currentRSI; + return; + } + + double currentEMA = ema[0]; + double previousEMA = ema[1]; + + double emaSlope = (currentEMA - previousEMA) * 100; + double closeCurr = iClose(Symbol(), Period(), 0); + double priceToEmaDistance = (closeCurr - currentEMA) * 10; + + bool isBuyPosition = false; + bool isSellPosition = false; + if(hasPosition) + { + if(PositionSelectByMagic(rcData.symbol, RC_MagicNumber)) + { + ENUM_POSITION_TYPE positionType = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + if(positionType == POSITION_TYPE_BUY) + isBuyPosition = true; + else if(positionType == POSITION_TYPE_SELL) + isSellPosition = true; + } + } + + ApplyTrailingStop(); + + bool cooldownPassed = (currentTime - rcData.lastTradeTime) >= RC_cooldownSeconds; + bool isTrendStrong = MathAbs(emaSlope) > RC_emaSlopeThreshold || MathAbs(priceToEmaDistance) > RC_emaDistanceThreshold; + + if(isBuyPosition && currentRSI > RC_exitBuyRSI) + { + Close_Position_MN(RC_MagicNumber); + rcData.lastTradeTime = currentTime; + } + + if(isSellPosition && currentRSI < RC_exitSellRSI) + { + Close_Position_MN(RC_MagicNumber); + rcData.lastTradeTime = currentTime; + } + + if(isTrendStrong) + { + Close_Position_MN(RC_MagicNumber); + rcData.lastTradeTime = currentTime; + return; + } + + if(currentRSI < RC_overboughtLevel - RC_entryRSISellSpread && rcData.previousRSIDef >= RC_overboughtLevel && + !isSellPosition && !hasPosition && cooldownPassed) + { + rcData.trade.SetExpertMagicNumber(RC_MagicNumber); + if(rcData.trade.Sell(g_RC_LotSize, rcData.symbol, 0.0, 0.0, 0.0, "Sell Order")) + { + rcData.lastTradeTime = currentTime; + } + } + + if(currentRSI > RC_oversoldLevel + RC_entryRSIBuySpread && rcData.previousRSIDef <= RC_oversoldLevel && + !isBuyPosition && !hasPosition && cooldownPassed) + { + rcData.trade.SetExpertMagicNumber(RC_MagicNumber); + if(rcData.trade.Buy(g_RC_LotSize, rcData.symbol, 0.0, 0.0, 0.0, "Buy Order")) + { + rcData.lastTradeTime = currentTime; + } + } + + rcData.previousRSIDef = currentRSI; +} + +//+------------------------------------------------------------------+ diff --git a/frontline/MQL5/_united_dynamic/Strategies/RSIMidPointHijackStrategy.mqh b/frontline/MQL5/_united_dynamic/Strategies/RSIMidPointHijackStrategy.mqh new file mode 100644 index 0000000..3db8db5 --- /dev/null +++ b/frontline/MQL5/_united_dynamic/Strategies/RSIMidPointHijackStrategy.mqh @@ -0,0 +1,471 @@ +//+------------------------------------------------------------------+ +//| RSIMidPointHijackStrategy.mqh | +//+------------------------------------------------------------------+ + +bool IsNewBar(string symbol) +{ + datetime time[]; + if(CopyTime(symbol, RM_InpTimeframe, 0, 1, time) > 0) + { + if(time[0] != rmData.lastBarTime) + { + rmData.lastBarTime = time[0]; + return true; + } + } + return false; +} + +bool IsWithinTradingHours(int startHour, int endHour) +{ + MqlDateTime currentTime; + TimeToStruct(TimeCurrent(), currentTime); + + if(startHour <= endHour) + return (currentTime.hour >= startHour && currentTime.hour < endHour); + else + return (currentTime.hour >= startHour || currentTime.hour < endHour); +} + +bool HasPosition(string symbol, int magic) +{ + return PositionExistsByMagic(symbol, magic); +} + +bool HasProfitablePosition(int excludeMagic) +{ + bool hasProfitable = false; + for(int i = PositionsTotal() - 1; i >= 0; i--) + { + if(rmData.positionInfo.SelectByIndex(i)) + { + if(rmData.positionInfo.Magic() != excludeMagic) + { + double profit = rmData.positionInfo.Profit(); + if(profit > RM_InpLockProfitThreshold * _Point) + { + hasProfitable = true; + if(RM_InpCloseOppositeTrades) + { + if((excludeMagic == RM_InpMagicNumberRSIFollow && rmData.positionInfo.Magic() == RM_InpMagicNumberRSIReverse) || + (excludeMagic == RM_InpMagicNumberRSIReverse && rmData.positionInfo.Magic() == RM_InpMagicNumberRSIFollow) || + (excludeMagic == RM_InpMagicNumberEMACross && (rmData.positionInfo.Magic() == RM_InpMagicNumberRSIReverse || rmData.positionInfo.Magic() == RM_InpMagicNumberRSIFollow)) || + ((excludeMagic == RM_InpMagicNumberRSIFollow || excludeMagic == RM_InpMagicNumberRSIReverse) && rmData.positionInfo.Magic() == RM_InpMagicNumberEMACross)) + { + ClosePosition(rmData.symbol, (int)rmData.positionInfo.Magic()); + } + } + } + } + } + } + return hasProfitable; +} + +bool IsRSIReverseInCooldown(string symbol) +{ + if(RM_InpRSIReverseCooldownBars <= 0) + return false; + + if(!rmData.rsiReverseInCooldown) + return false; + + datetime time[]; + if(CopyTime(symbol, RM_InpTimeframe, 0, 1, time) > 0) + { + datetime currentBarTime = time[0]; + datetime cooldownEndTime = rmData.rsiReverseLastCloseTime + RM_InpRSIReverseCooldownBars * PeriodSeconds(RM_InpTimeframe); + + if(currentBarTime >= cooldownEndTime) + { + rmData.rsiReverseInCooldown = false; + return false; + } + } + + return true; +} + +void CheckRSIFollowStrategy(string symbol) +{ + if(!IsWithinTradingHours(RM_InpRSIFollowStartHour, RM_InpRSIFollowEndHour)) + { + if(RM_InpRSIFollowCloseOutsideHours) + { + if(HasPosition(symbol, RM_InpMagicNumberRSIFollow)) + ClosePosition(symbol, RM_InpMagicNumberRSIFollow); + } + return; + } + + if(RM_InpEnableStrategyLock && HasProfitablePosition(RM_InpMagicNumberRSIFollow)) + return; + + if(rmData.lastBarRSI > RM_InpRSIOverbought) + rmData.rsiOverbought = true; + else if(rmData.lastBarRSI < RM_InpRSIOversold) + rmData.rsiOversold = true; + + if(rmData.rsiOverbought && rmData.lastBarRSI < RM_InpRSIExitLevel) + { + if(!HasPosition(symbol, RM_InpMagicNumberRSIFollow)) + { + rmData.trade.SetExpertMagicNumber(RM_InpMagicNumberRSIFollow); + rmData.trade.Sell(g_RM_LotSize, symbol, 0, 0, 0, "RSI Follow"); + } + rmData.rsiOverbought = false; + } + else if(rmData.rsiOversold && rmData.lastBarRSI > RM_InpRSIExitLevel) + { + if(!HasPosition(symbol, RM_InpMagicNumberRSIFollow)) + { + rmData.trade.SetExpertMagicNumber(RM_InpMagicNumberRSIFollow); + rmData.trade.Buy(g_RM_LotSize, symbol, 0, 0, 0, "RSI Follow"); + } + rmData.rsiOversold = false; + } +} + +void CheckRSIReverseStrategy(string symbol) +{ + if(!IsWithinTradingHours(RM_InpRSIReverseStartHour, RM_InpRSIReverseEndHour)) + { + if(RM_InpRSIReverseCloseOutsideHours) + { + if(HasPosition(symbol, RM_InpMagicNumberRSIReverse)) + ClosePosition(symbol, RM_InpMagicNumberRSIReverse); + } + return; + } + + if(RM_InpEnableStrategyLock && HasProfitablePosition(RM_InpMagicNumberRSIReverse)) + return; + + if(IsRSIReverseInCooldown(symbol)) + return; + + if(rmData.lastBarRSIReverse > RM_InpRSIReverseOverbought) + rmData.rsiReverseOverbought = true; + else if(rmData.lastBarRSIReverse < RM_InpRSIReverseOversold) + rmData.rsiReverseOversold = true; + + if(rmData.rsiReverseOverbought && rmData.lastBarRSIReverse < RM_InpRSIReverseCrossLevel) + { + if(!HasPosition(symbol, RM_InpMagicNumberRSIReverse)) + { + rmData.trade.SetExpertMagicNumber(RM_InpMagicNumberRSIReverse); + rmData.trade.Sell(g_RM_LotSize, symbol, 0, 0, 0, "RSI Reverse"); + } + rmData.rsiReverseOverbought = false; + } + else if(rmData.rsiReverseOversold && rmData.lastBarRSIReverse > RM_InpRSIReverseCrossLevel) + { + if(!HasPosition(symbol, RM_InpMagicNumberRSIReverse)) + { + rmData.trade.SetExpertMagicNumber(RM_InpMagicNumberRSIReverse); + rmData.trade.Buy(g_RM_LotSize, symbol, 0, 0, 0, "RSI Reverse"); + } + rmData.rsiReverseOversold = false; + } +} + +void CheckEMACrossStrategy(string symbol) +{ + if(!IsWithinTradingHours(RM_InpEMACrossStartHour, RM_InpEMACrossEndHour)) + { + if(RM_InpEMACrossCloseOutsideHours) + { + if(HasPosition(symbol, RM_InpMagicNumberEMACross)) + ClosePosition(symbol, RM_InpMagicNumberEMACross); + } + return; + } + + if(RM_InpEnableStrategyLock && HasProfitablePosition(RM_InpMagicNumberEMACross)) + return; + + if(rmData.lastBarEMAPrev < rmData.lastBarClosePrev && rmData.lastBarEMA > rmData.lastBarClose) + { + rmData.emaCrossBuySignal = true; + rmData.emaCrossSellSignal = false; + rmData.emaCrossSignalBar = 0; + } + else if(rmData.lastBarEMAPrev > rmData.lastBarClosePrev && rmData.lastBarEMA < rmData.lastBarClose) + { + rmData.emaCrossSellSignal = true; + rmData.emaCrossBuySignal = false; + rmData.emaCrossSignalBar = 0; + } + + if(RM_InpUseEMADistanceEntry) + { + if(rmData.emaCrossBuySignal) + { + bool distanceConditionMet = true; + double emaHistory[], closeHistory[]; + ArraySetAsSeries(emaHistory, true); + ArraySetAsSeries(closeHistory, true); + + if(CopyBuffer(rmData.emaHandle, 0, 0, RM_InpEMADistancePeriod, emaHistory) > 0 && + CopyClose(symbol, RM_InpTimeframe, 0, RM_InpEMADistancePeriod, closeHistory) > 0) + { + double point = SymbolInfoDouble(symbol, SYMBOL_POINT); + for(int i = 0; i < RM_InpEMADistancePeriod; i++) + { + double distance = (closeHistory[i] - emaHistory[i]) / point; + if(distance < RM_InpEMADistancePips) + { + distanceConditionMet = false; + break; + } + } + + if(distanceConditionMet && !HasPosition(symbol, RM_InpMagicNumberEMACross)) + { + rmData.trade.SetExpertMagicNumber(RM_InpMagicNumberEMACross); + rmData.trade.Buy(g_RM_LotSize, symbol, 0, 0, 0, "EMA Cross Distance"); + rmData.emaCrossBuySignal = false; + } + } + } + else if(rmData.emaCrossSellSignal) + { + bool distanceConditionMet = true; + double emaHistory[], closeHistory[]; + ArraySetAsSeries(emaHistory, true); + ArraySetAsSeries(closeHistory, true); + + if(CopyBuffer(rmData.emaHandle, 0, 0, RM_InpEMADistancePeriod, emaHistory) > 0 && + CopyClose(symbol, RM_InpTimeframe, 0, RM_InpEMADistancePeriod, closeHistory) > 0) + { + double point = SymbolInfoDouble(symbol, SYMBOL_POINT); + for(int i = 0; i < RM_InpEMADistancePeriod; i++) + { + double distance = (emaHistory[i] - closeHistory[i]) / point; + if(distance < RM_InpEMADistancePips) + { + distanceConditionMet = false; + break; + } + } + + if(distanceConditionMet && !HasPosition(symbol, RM_InpMagicNumberEMACross)) + { + rmData.trade.SetExpertMagicNumber(RM_InpMagicNumberEMACross); + rmData.trade.Sell(g_RM_LotSize, symbol, 0, 0, 0, "EMA Cross Distance"); + rmData.emaCrossSellSignal = false; + } + } + } + } + else + { + if(rmData.lastBarEMAPrev < rmData.lastBarClosePrev && rmData.lastBarEMA > rmData.lastBarClose) + { + if(!HasPosition(symbol, RM_InpMagicNumberEMACross)) + { + rmData.trade.SetExpertMagicNumber(RM_InpMagicNumberEMACross); + rmData.trade.Buy(g_RM_LotSize, symbol, 0, 0, 0, "EMA Cross"); + } + } + else if(rmData.lastBarEMAPrev > rmData.lastBarClosePrev && rmData.lastBarEMA < rmData.lastBarClose) + { + if(!HasPosition(symbol, RM_InpMagicNumberEMACross)) + { + rmData.trade.SetExpertMagicNumber(RM_InpMagicNumberEMACross); + rmData.trade.Sell(g_RM_LotSize, symbol, 0, 0, 0, "EMA Cross"); + } + } + } + + if(rmData.emaCrossBuySignal || rmData.emaCrossSellSignal) + { + rmData.emaCrossSignalBar++; + if(rmData.emaCrossSignalBar > RM_InpEMADistancePeriod * 2) + { + rmData.emaCrossBuySignal = false; + rmData.emaCrossSellSignal = false; + } + } +} + +void CheckExitConditions(string symbol) +{ + if(RM_InpEnableRSIFollow) + { + if(HasPosition(symbol, RM_InpMagicNumberRSIFollow)) + { + if(PositionSelectByMagic(symbol, RM_InpMagicNumberRSIFollow)) + { + ENUM_POSITION_TYPE posType = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + if((posType == POSITION_TYPE_BUY && rmData.lastBarRSI < RM_InpRSIExitLevel) || + (posType == POSITION_TYPE_SELL && rmData.lastBarRSI > RM_InpRSIExitLevel)) + { + ClosePosition(symbol, RM_InpMagicNumberRSIFollow); + } + } + } + } + + if(RM_InpEnableRSIReverse) + { + if(HasPosition(symbol, RM_InpMagicNumberRSIReverse)) + { + if(PositionSelectByMagic(symbol, RM_InpMagicNumberRSIReverse)) + { + ENUM_POSITION_TYPE posType = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + if((posType == POSITION_TYPE_BUY && rmData.lastBarRSIReverse < RM_InpRSIReverseExitLevel) || + (posType == POSITION_TYPE_SELL && rmData.lastBarRSIReverse > RM_InpRSIReverseExitLevel)) + { + ClosePosition(symbol, RM_InpMagicNumberRSIReverse); + } + } + } + } + + if(RM_InpEnableEMACross) + { + if(HasPosition(symbol, RM_InpMagicNumberEMACross)) + { + if(PositionSelectByMagic(symbol, RM_InpMagicNumberEMACross)) + { + ENUM_POSITION_TYPE posType = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + if((posType == POSITION_TYPE_BUY && rmData.lastBarEMA > rmData.lastBarClose) || + (posType == POSITION_TYPE_SELL && rmData.lastBarEMA < rmData.lastBarClose)) + { + ClosePosition(symbol, RM_InpMagicNumberEMACross); + } + } + } + } +} + +void ClosePosition(string symbol, int magic) +{ + if(!PositionExistsByMagic(symbol, magic)) + return; + + ulong ticket = GetPositionTicketByMagic(symbol, magic); + if(ticket == 0) + return; + + if(magic == RM_InpMagicNumberRSIReverse) + { + if(PositionSelectByTicketSymbolAndMagic(ticket, symbol, magic)) + { + datetime time[]; + if(CopyTime(symbol, RM_InpTimeframe, 0, 1, time) > 0) + { + rmData.rsiReverseLastCloseTime = time[0]; + double profit = PositionGetDouble(POSITION_PROFIT); + if(!RM_InpRSIReverseCooldownOnLoss || profit < 0) + { + rmData.rsiReverseInCooldown = true; + } + } + } + } + + ClosePositionByMagic(rmData.trade, symbol, magic); +} + +bool InitRSIMidPointHijack(string symbol) +{ + rmData.symbol = symbol; + rmData.rsiOverbought = false; + rmData.rsiOversold = false; + rmData.rsiReverseOverbought = false; + rmData.rsiReverseOversold = false; + rmData.emaCrossBuySignal = false; + rmData.emaCrossSellSignal = false; + rmData.emaCrossSignalBar = 0; + rmData.rsiReverseInCooldown = false; + rmData.lastBarRSI = 0; + rmData.lastBarRSIReverse = 0; + rmData.lastBarEMA = 0; + rmData.lastBarClose = 0; + rmData.lastBarEMAPrev = 0; + rmData.lastBarClosePrev = 0; + + // Check if symbol exists + if(!SymbolSelect(symbol, true)) + { + Print("RSIMidPointHijack: Symbol '", symbol, "' not available in Market Watch. Please add it to Market Watch or check symbol name."); + return false; + } + + Sleep(100); // Wait for symbol to be ready + + rmData.rsiHandle = iRSI(symbol, RM_InpTimeframe, RM_InpRSIPeriod, PRICE_CLOSE); + rmData.rsiReverseHandle = iRSI(symbol, RM_InpTimeframe, RM_InpRSIReversePeriod, PRICE_CLOSE); + rmData.emaHandle = iMA(symbol, RM_InpTimeframe, RM_InpEMAPeriod, 0, MODE_EMA, PRICE_CLOSE); + + if(rmData.rsiHandle == INVALID_HANDLE || rmData.rsiReverseHandle == INVALID_HANDLE || rmData.emaHandle == INVALID_HANDLE) + { + Print("RSIMidPointHijack: Error creating indicators for '", symbol, "'"); + return false; + } + + rmData.trade.SetExpertMagicNumber(RM_InpMagicNumberRSIFollow); + rmData.trade.SetMarginMode(); + rmData.trade.SetTypeFillingBySymbol(symbol); + rmData.trade.SetDeviationInPoints(10); + + datetime time[]; + if(CopyTime(symbol, RM_InpTimeframe, 0, 1, time) > 0) + rmData.lastBarTime = time[0]; + + rmData.isInitialized = true; + Print("RSIMidPointHijack: Successfully initialized for symbol '", symbol, "'"); + return true; +} + +void DeinitRSIMidPointHijack() +{ + if(rmData.rsiHandle != INVALID_HANDLE) IndicatorRelease(rmData.rsiHandle); + if(rmData.rsiReverseHandle != INVALID_HANDLE) IndicatorRelease(rmData.rsiReverseHandle); + if(rmData.emaHandle != INVALID_HANDLE) IndicatorRelease(rmData.emaHandle); +} + +void ProcessRSIMidPointHijack(string symbol) +{ + // Skip if not initialized (symbol not available) + if(!rmData.isInitialized) + return; + + rmData.symbol = symbol; // Update symbol in case it changed + if(!IsNewBar(rmData.symbol)) + return; + + double rsi[], rsiReverse[], ema[], close[]; + ArraySetAsSeries(rsi, true); + ArraySetAsSeries(rsiReverse, true); + ArraySetAsSeries(ema, true); + ArraySetAsSeries(close, true); + + rmData.lastBarEMAPrev = rmData.lastBarEMA; + rmData.lastBarClosePrev = rmData.lastBarClose; + + if(CopyBuffer(rmData.rsiHandle, 0, 0, 1, rsi) > 0) + rmData.lastBarRSI = rsi[0]; + + if(CopyBuffer(rmData.rsiReverseHandle, 0, 0, 1, rsiReverse) > 0) + rmData.lastBarRSIReverse = rsiReverse[0]; + + if(CopyBuffer(rmData.emaHandle, 0, 0, 1, ema) > 0) + rmData.lastBarEMA = ema[0]; + + if(CopyClose(rmData.symbol, RM_InpTimeframe, 0, 1, close) > 0) + rmData.lastBarClose = close[0]; + + if(RM_InpEnableRSIFollow) + CheckRSIFollowStrategy(rmData.symbol); + if(RM_InpEnableRSIReverse) + CheckRSIReverseStrategy(rmData.symbol); + if(RM_InpEnableEMACross) + CheckEMACrossStrategy(rmData.symbol); + + CheckExitConditions(rmData.symbol); +} + +//+------------------------------------------------------------------+ diff --git a/frontline/MQL5/_united_dynamic/Strategies/RSIReversalAsianStrategy.mqh b/frontline/MQL5/_united_dynamic/Strategies/RSIReversalAsianStrategy.mqh new file mode 100644 index 0000000..6762248 --- /dev/null +++ b/frontline/MQL5/_united_dynamic/Strategies/RSIReversalAsianStrategy.mqh @@ -0,0 +1,493 @@ +//+------------------------------------------------------------------+ +//| RSIReversalAsianStrategy.mqh | +//+------------------------------------------------------------------+ + +//+------------------------------------------------------------------+ +//| RSI Reversal Asian Strategy Data Structure | +//+------------------------------------------------------------------+ +struct RSIReversalAsianData { + string symbol; + bool isInitialized; + int rsiHandle; + CTrade trade; + bool isPositionOpen; + double positionOpenPrice; + datetime positionOpenTime; + ENUM_POSITION_TYPE lastPositionType; + bool sessionCloseAttempted; + + // RSI crossover variables + double rsiCurrent; + double rsiPrevious; + double rsiPrevious2; + bool rsiCrossedOverbought; + bool rsiCrossedOversold; + bool rsiCrossedExitLevel; + + // Strategy parameters + int RSIPeriod; + double OverboughtLevel; + double OversoldLevel; + int TakeProfitPips; + int StopLossPips; + double MaxLotSize; + int MaxSpread; + int MaxDuration; + bool UseStopLoss; + bool UseTakeProfit; + bool UseRSIExit; + double RSIExitLevel; + bool CloseOutsideSession; + ENUM_TIMEFRAMES TimeFrame; + int MagicNumber; + int Slippage; + double point; +}; + +// Session times (UTC) +const int AsianSessionStart = 0; // 00:00 UTC +const int AsianSessionEnd = 8; // 08:00 UTC + +//+------------------------------------------------------------------+ +//| Check if current time is in Asian session | +//+------------------------------------------------------------------+ +bool IsAsianSession() +{ + datetime currentTime = TimeCurrent(); + MqlDateTime timeStruct; + TimeToStruct(currentTime, timeStruct); + + return (timeStruct.hour >= AsianSessionStart && timeStruct.hour < AsianSessionEnd); +} + +//+------------------------------------------------------------------+ +//| Check if trading is allowed for symbol | +//+------------------------------------------------------------------+ +bool IsTradingAllowed(RSIReversalAsianData& data) +{ + // Check if market is open + long tradeMode = SymbolInfoInteger(data.symbol, SYMBOL_TRADE_MODE); + if(tradeMode != SYMBOL_TRADE_MODE_FULL) + { + return false; + } + + // Check if we have enough money + if(AccountInfoDouble(ACCOUNT_MARGIN_FREE) <= 0) + { + return false; + } + + return true; +} + +//+------------------------------------------------------------------+ +//| Check RSI crossover conditions | +//+------------------------------------------------------------------+ +void CheckRSICrossover(RSIReversalAsianData& data) +{ + // Reset crossover flags + data.rsiCrossedOverbought = false; + data.rsiCrossedOversold = false; + data.rsiCrossedExitLevel = false; + + // Check for overbought crossover (RSI crosses above overbought level) + if(data.rsiPrevious < data.OverboughtLevel && data.rsiCurrent >= data.OverboughtLevel) + { + data.rsiCrossedOverbought = true; + } + + // Check for oversold crossover (RSI crosses below oversold level) + if(data.rsiPrevious > data.OversoldLevel && data.rsiCurrent <= data.OversoldLevel) + { + data.rsiCrossedOversold = true; + } + + // Check for exit level crossover + if(data.rsiPrevious < data.RSIExitLevel && data.rsiCurrent >= data.RSIExitLevel) + { + data.rsiCrossedExitLevel = true; + } + else if(data.rsiPrevious > data.RSIExitLevel && data.rsiCurrent <= data.RSIExitLevel) + { + data.rsiCrossedExitLevel = true; + } +} + +//+------------------------------------------------------------------+ +//| Close all trades for the symbol | +//+------------------------------------------------------------------+ +bool CloseAllTrades(RSIReversalAsianData& data, string reason = "") +{ + bool allClosed = true; + int totalPositions = PositionsTotal(); + + if(totalPositions == 0) + return true; + + for(int i = totalPositions - 1; i >= 0; i--) + { + if(PositionGetSymbol(i) == data.symbol) + { + ulong ticket = PositionGetTicket(i); + if(ticket > 0 && PositionSelectByTicket(ticket)) + { + if(PositionGetInteger(POSITION_MAGIC) == (ulong)data.MagicNumber) + { + // Try to close position with retry logic + int retryCount = 0; + bool positionClosed = false; + + while(retryCount < 3 && !positionClosed) + { + if(data.trade.PositionClose(ticket)) + { + data.isPositionOpen = false; + positionClosed = true; + } + else + { + int error = GetLastError(); + + // If error is 4756 (Trade disabled), wait longer before retry + if(error == 4756) + { + Sleep(5000); // Wait 5 seconds before retry + retryCount++; + } + else + { + // For other errors, break the loop + break; + } + } + } + + if(!positionClosed) + { + allClosed = false; + } + } + } + } + } + + return allClosed; +} + +//+------------------------------------------------------------------+ +//| Initialize RSI Reversal Asian Strategy | +//+------------------------------------------------------------------+ +bool InitRSIReversalAsian(RSIReversalAsianData& data, string symbol, + int RSIPeriod, double OverboughtLevel, double OversoldLevel, + int TakeProfitPips, int StopLossPips, double MaxLotSize, + int MaxSpread, int MaxDuration, bool UseStopLoss, + bool UseTakeProfit, bool UseRSIExit, double RSIExitLevel, + bool CloseOutsideSession, ENUM_TIMEFRAMES TimeFrame, + int MagicNumber, int Slippage) +{ + data.symbol = symbol; + data.isInitialized = false; + + // Check if symbol exists + if(!SymbolSelect(symbol, true)) + { + Print("RSIReversalAsian: Symbol '", symbol, "' not available in Market Watch. Please add it to Market Watch or check symbol name."); + return false; + } + + // Wait a bit for symbol to be ready + Sleep(100); + + // Get symbol point + data.point = SymbolInfoDouble(symbol, SYMBOL_POINT); + + // Store parameters + data.RSIPeriod = RSIPeriod; + data.OverboughtLevel = OverboughtLevel; + data.OversoldLevel = OversoldLevel; + data.TakeProfitPips = TakeProfitPips; + data.StopLossPips = StopLossPips; + data.MaxLotSize = MaxLotSize; + data.MaxSpread = MaxSpread; + data.MaxDuration = MaxDuration; + data.UseStopLoss = UseStopLoss; + data.UseTakeProfit = UseTakeProfit; + data.UseRSIExit = UseRSIExit; + data.RSIExitLevel = RSIExitLevel; + data.CloseOutsideSession = CloseOutsideSession; + data.TimeFrame = TimeFrame; + data.MagicNumber = MagicNumber; + data.Slippage = Slippage; + + // Initialize RSI indicator with retry logic (for insufficient history in backtesting) + data.rsiHandle = INVALID_HANDLE; + int retryCount = 0; + int maxRetries = 5; + + while(retryCount < maxRetries && data.rsiHandle == INVALID_HANDLE) + { + data.rsiHandle = iRSI(symbol, TimeFrame, RSIPeriod, PRICE_CLOSE); + + if(data.rsiHandle == INVALID_HANDLE) + { + int error = GetLastError(); + + // Error 4805 = insufficient history - wait longer and retry + if(error == 4805 && retryCount < maxRetries - 1) + { + Sleep(1000); // Wait 1 second for history to load + retryCount++; + continue; + } + + Print("RSIReversalAsian: Error creating RSI indicator for '", symbol, "' - Error: ", error, " (", error == 4805 ? "Insufficient history data" : "Unknown", ")"); + return false; + } + } + + if(data.rsiHandle == INVALID_HANDLE) + { + Print("RSIReversalAsian: Failed to create RSI indicator for '", symbol, "' after ", maxRetries, " retries"); + return false; + } + + // Wait a bit for the indicator to be ready + Sleep(100); + + // Initialize RSI values with retry logic + double rsi[]; + ArraySetAsSeries(rsi, true); + + retryCount = 0; + bool rsiInitialized = false; + + while(retryCount < 10 && !rsiInitialized) + { + int copied = CopyBuffer(data.rsiHandle, 0, 0, 3, rsi); + if(copied >= 3) + { + data.rsiCurrent = rsi[0]; + data.rsiPrevious = rsi[1]; + data.rsiPrevious2 = rsi[2]; + rsiInitialized = true; + } + else + { + retryCount++; + Sleep(100); + } + } + + if(!rsiInitialized) + { + // Don't fail initialization, just set default values + data.rsiCurrent = 50.0; + data.rsiPrevious = 50.0; + data.rsiPrevious2 = 50.0; + } + + // Set trade parameters + data.trade.SetExpertMagicNumber(MagicNumber); + data.trade.SetDeviationInPoints(Slippage); + data.trade.SetTypeFilling(ORDER_FILLING_IOC); + + // Initialize state + data.isPositionOpen = false; + data.positionOpenPrice = 0; + data.positionOpenTime = 0; + data.lastPositionType = POSITION_TYPE_BUY; + data.sessionCloseAttempted = false; + data.rsiCrossedOverbought = false; + data.rsiCrossedOversold = false; + data.rsiCrossedExitLevel = false; + + data.isInitialized = true; + + Print("RSIReversalAsian: Successfully initialized for symbol '", symbol, "'"); + return true; +} + +//+------------------------------------------------------------------+ +//| Deinitialize RSI Reversal Asian Strategy | +//+------------------------------------------------------------------+ +void DeinitRSIReversalAsian(RSIReversalAsianData& data) +{ + if(data.rsiHandle != INVALID_HANDLE) + IndicatorRelease(data.rsiHandle); +} + +//+------------------------------------------------------------------+ +//| Process RSI Reversal Asian Strategy | +//+------------------------------------------------------------------+ +void ProcessRSIReversalAsian(RSIReversalAsianData& data, double lotSize) +{ + if(!data.isInitialized) + return; + + // Check if trading is allowed + if(!IsTradingAllowed(data)) + { + return; + } + + // Check if we're in Asian session + if(!IsAsianSession()) + { + // Close all positions if outside Asian session and CloseOutsideSession is true + if(data.CloseOutsideSession && !data.sessionCloseAttempted) + { + CloseAllTrades(data, "Outside Asian session"); + data.sessionCloseAttempted = true; + } + return; + } + else + { + // Reset the session close attempt flag when we enter Asian session + data.sessionCloseAttempted = false; + } + + // Get current spread + double spread = SymbolInfoDouble(data.symbol, SYMBOL_ASK) - SymbolInfoDouble(data.symbol, SYMBOL_BID); + int spreadInPips = (int)(spread / data.point); + + // Check if spread is too high + if(spreadInPips > data.MaxSpread) + { + return; + } + + // Get RSI values from bar data + double rsi[]; + ArraySetAsSeries(rsi, true); + + int copied = CopyBuffer(data.rsiHandle, 0, 0, 3, rsi); + if(copied < 3) + { + return; + } + + // Update RSI values + data.rsiPrevious2 = data.rsiPrevious; + data.rsiPrevious = data.rsiCurrent; + data.rsiCurrent = rsi[0]; + + // Validate RSI values + if(data.rsiCurrent == 0 || data.rsiPrevious == 0) + { + return; + } + + // Check for RSI crossovers + CheckRSICrossover(data); + + // Get current prices + double currentBid = SymbolInfoDouble(data.symbol, SYMBOL_BID); + double currentAsk = SymbolInfoDouble(data.symbol, SYMBOL_ASK); + + // Check for open position + bool hasOpenPosition = PositionExistsByMagic(data.symbol, (ulong)data.MagicNumber); + + if(hasOpenPosition) + { + // Get position details + ulong ticket = GetPositionTicketByMagic(data.symbol, (ulong)data.MagicNumber); + if(ticket > 0 && PositionSelectByTicket(ticket)) + { + ENUM_POSITION_TYPE posType = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + datetime openTime = (datetime)PositionGetInteger(POSITION_TIME); + + // Check for RSI exit if enabled + if(data.UseRSIExit && data.rsiCrossedExitLevel) + { + bool shouldExit = false; + + // For long positions, exit when RSI crosses above exit level + if(posType == POSITION_TYPE_BUY && data.rsiCurrent >= data.RSIExitLevel && data.rsiPrevious < data.RSIExitLevel) + { + shouldExit = true; + } + // For short positions, exit when RSI crosses below exit level + else if(posType == POSITION_TYPE_SELL && data.rsiCurrent <= data.RSIExitLevel && data.rsiPrevious > data.RSIExitLevel) + { + shouldExit = true; + } + + if(shouldExit) + { + CloseAllTrades(data, "RSI Exit Crossover"); + return; + } + } + + // Check for timeout + if(TimeCurrent() - openTime > data.MaxDuration * 3600) + { + CloseAllTrades(data, "Timeout"); + return; + } + } + } + + // If no position is open, look for entry signals based on RSI crossover + if(!hasOpenPosition) + { + // Place buy order if RSI crosses below oversold level (oversold crossover) + if(data.rsiCrossedOversold) + { + double sl = data.UseStopLoss ? currentBid - data.StopLossPips * data.point : 0; + double tp = data.UseTakeProfit ? currentBid + data.TakeProfitPips * data.point : 0; + + if(data.UseStopLoss && sl >= currentBid) + return; + if(data.UseTakeProfit && tp <= currentBid) + return; + + // Set trade parameters + data.trade.SetDeviationInPoints(data.Slippage); + data.trade.SetTypeFilling(ORDER_FILLING_IOC); + data.trade.SetExpertMagicNumber(data.MagicNumber); + + // Use dynamic lot size + double tradeLotSize = lotSize > 0 ? lotSize : data.MaxLotSize; + + // Place buy order using CTrade + if(data.trade.Buy(tradeLotSize, data.symbol, currentAsk, sl, tp, "RSI Oversold Crossover Buy")) + { + data.isPositionOpen = true; + data.positionOpenPrice = currentAsk; + data.positionOpenTime = TimeCurrent(); + data.lastPositionType = POSITION_TYPE_BUY; + } + } + // Place sell order if RSI crosses above overbought level (overbought crossover) + else if(data.rsiCrossedOverbought) + { + double sl = data.UseStopLoss ? currentAsk + data.StopLossPips * data.point : 0; + double tp = data.UseTakeProfit ? currentAsk - data.TakeProfitPips * data.point : 0; + + if(data.UseStopLoss && sl <= currentAsk) + return; + if(data.UseTakeProfit && tp >= currentAsk) + return; + + // Set trade parameters + data.trade.SetDeviationInPoints(data.Slippage); + data.trade.SetTypeFilling(ORDER_FILLING_IOC); + data.trade.SetExpertMagicNumber(data.MagicNumber); + + // Use dynamic lot size + double tradeLotSize = lotSize > 0 ? lotSize : data.MaxLotSize; + + // Place sell order using CTrade + if(data.trade.Sell(tradeLotSize, data.symbol, currentBid, sl, tp, "RSI Overbought Crossover Sell")) + { + data.isPositionOpen = true; + data.positionOpenPrice = currentBid; + data.positionOpenTime = TimeCurrent(); + data.lastPositionType = POSITION_TYPE_SELL; + } + } + } +} diff --git a/frontline/MQL5/_united_dynamic/Strategies/RSIScalpingStrategy.mqh b/frontline/MQL5/_united_dynamic/Strategies/RSIScalpingStrategy.mqh new file mode 100644 index 0000000..666dc1d --- /dev/null +++ b/frontline/MQL5/_united_dynamic/Strategies/RSIScalpingStrategy.mqh @@ -0,0 +1,451 @@ +//+------------------------------------------------------------------+ +//| RSIScalpingStrategy.mqh | +//+------------------------------------------------------------------+ + +//+------------------------------------------------------------------+ +//| RSI Scalping Strategy Data Structure | +//+------------------------------------------------------------------+ +struct RSIScalpingData { + string symbol; + bool isInitialized; + CTrade trade; + int rsi_handle; + double rsi_buffer[]; + double rsi_prev; + double rsi_current; + double rsi_two_bars_ago; + bool position_open; + ulong position_ticket; + ENUM_POSITION_TYPE current_position_type; + datetime last_bar_time; + bool rsi_against_position; + int bars_against_count; +}; + +string ErrorDescription(int errorCode) +{ + switch(errorCode) + { + case 4801: return "Symbol not found"; + case 4802: return "Symbol not selected"; + case 4803: return "Symbol not visible"; + case 4804: return "Symbol not available"; + case 4805: return "Cannot load indicator - insufficient history data"; + default: return "Unknown error " + IntegerToString(errorCode); + } +} + +bool InitRSIScalping(RSIScalpingData& data, string symbol, ENUM_TIMEFRAMES TimeFrame, int RSI_Period, + ENUM_APPLIED_PRICE RSI_Applied_Price, int MagicNumber, int Slippage) +{ + data.symbol = symbol; + data.isInitialized = false; + + // Check if symbol exists + if(!SymbolSelect(symbol, true)) + { + Print("RSIScalping: Symbol '", symbol, "' not available in Market Watch. Please add it to Market Watch or check symbol name."); + return false; // Return false but don't fail entire EA + } + + // Wait a bit for symbol to be ready + Sleep(100); + + // Try to create RSI indicator with retry logic (for insufficient history in backtesting) + data.rsi_handle = INVALID_HANDLE; + int retryCount = 0; + int maxRetries = 5; + + while(retryCount < maxRetries && data.rsi_handle == INVALID_HANDLE) + { + data.rsi_handle = iRSI(symbol, TimeFrame, RSI_Period, RSI_Applied_Price); + + if(data.rsi_handle == INVALID_HANDLE) + { + int error = GetLastError(); + + // Error 4805 = insufficient history - wait longer and retry + if(error == 4805 && retryCount < maxRetries - 1) + { + Sleep(1000); // Wait 1 second for history to load + retryCount++; + continue; + } + + Print("RSIScalping: Error creating RSI indicator for '", symbol, "' - Error: ", error, " (", ErrorDescription(error), ")"); + return false; // Return false but don't fail entire EA + } + } + + if(data.rsi_handle == INVALID_HANDLE) + { + Print("RSIScalping: Failed to create RSI indicator for '", symbol, "' after ", maxRetries, " retries"); + return false; + } + + data.trade.SetExpertMagicNumber(MagicNumber); + data.trade.SetDeviationInPoints(Slippage); + data.trade.SetTypeFilling(ORDER_FILLING_FOK); + + ArraySetAsSeries(data.rsi_buffer, true); + data.position_open = false; + data.position_ticket = 0; + data.rsi_against_position = false; + data.bars_against_count = 0; + data.isInitialized = true; + + Print("RSIScalping: Successfully initialized for symbol '", symbol, "'"); + return true; +} + +void DeinitRSIScalping(RSIScalpingData& data) +{ + if(data.rsi_handle != INVALID_HANDLE) + IndicatorRelease(data.rsi_handle); +} + +bool UpdateRSI(RSIScalpingData& data) +{ + if(CopyBuffer(data.rsi_handle, 0, 0, 3, data.rsi_buffer) < 3) + return false; + + data.rsi_current = data.rsi_buffer[0]; + data.rsi_prev = data.rsi_buffer[1]; + data.rsi_two_bars_ago = data.rsi_buffer[2]; + + return true; +} + +void CheckExistingPosition(RSIScalpingData& data, ENUM_TIMEFRAMES TimeFrame, int MagicNumber, + double RSI_Oversold, double RSI_Overbought, double RSI_Target_Buy, + double RSI_Target_Sell, int BarsToWait) +{ + // Always check if position exists, even if tracking says it doesn't + bool positionExists = PositionExistsByMagic(data.symbol, MagicNumber); + + if(!positionExists && data.position_open) + { + // Position was closed externally, reset tracking + data.position_open = false; + data.position_ticket = 0; + data.rsi_against_position = false; + data.bars_against_count = 0; + return; + } + + if(!positionExists) + return; + + // Update tracking if we have a position but tracking was lost + if(!data.position_open && positionExists) + { + ulong ticket = GetPositionTicketByMagic(data.symbol, MagicNumber); + if(ticket > 0 && PositionSelectByTicketSymbolAndMagic(ticket, data.symbol, MagicNumber)) + { + data.position_ticket = ticket; + data.position_open = true; + data.current_position_type = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + } + } + + // Verify our tracked position still exists + if(data.position_open && data.position_ticket > 0) + { + if(!PositionSelectByTicketSymbolAndMagic(data.position_ticket, data.symbol, MagicNumber)) + { + // Try to find the position again + ulong ticket = GetPositionTicketByMagic(data.symbol, MagicNumber); + if(ticket > 0 && PositionSelectByTicketSymbolAndMagic(ticket, data.symbol, MagicNumber)) + { + data.position_ticket = ticket; + data.current_position_type = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + } + else + { + // Position doesn't exist, reset tracking + data.position_open = false; + data.position_ticket = 0; + data.rsi_against_position = false; + data.bars_against_count = 0; + return; + } + } + else + { + // Update position type in case it changed (shouldn't happen, but be safe) + data.current_position_type = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + } + } + + if(data.current_position_type == POSITION_TYPE_BUY) + { + if(data.rsi_current < RSI_Oversold) + { + if(!data.rsi_against_position) + { + data.rsi_against_position = true; + data.bars_against_count = 1; + } + else + { + data.bars_against_count++; + } + + if(data.bars_against_count >= BarsToWait) + { + ClosePosition(data, MagicNumber); + return; + } + } + else + { + if(data.rsi_against_position) + { + data.rsi_against_position = false; + data.bars_against_count = 0; + } + + if(data.rsi_current >= RSI_Target_Buy) + { + ClosePosition(data, MagicNumber); + } + } + } + else if(data.current_position_type == POSITION_TYPE_SELL) + { + if(data.rsi_current > RSI_Overbought) + { + if(!data.rsi_against_position) + { + data.rsi_against_position = true; + data.bars_against_count = 1; + } + else + { + data.bars_against_count++; + } + + if(data.bars_against_count >= BarsToWait) + { + ClosePosition(data, MagicNumber); + return; + } + } + else + { + if(data.rsi_against_position) + { + data.rsi_against_position = false; + data.bars_against_count = 0; + } + + if(data.rsi_current <= RSI_Target_Sell) + { + ClosePosition(data, MagicNumber); + } + } + } +} + +void CheckEntrySignals(RSIScalpingData& data, ENUM_TIMEFRAMES TimeFrame, int MagicNumber, + double RSI_Oversold, double RSI_Overbought, double LotSize) +{ + if(data.rsi_two_bars_ago <= RSI_Oversold && data.rsi_prev > RSI_Oversold) + { + OpenBuyPosition(data, MagicNumber, LotSize); + } + + if(data.rsi_two_bars_ago >= RSI_Overbought && data.rsi_prev < RSI_Overbought) + { + OpenSellPosition(data, MagicNumber, LotSize); + } +} + +//+------------------------------------------------------------------+ +//| Normalize Lot Size According to Symbol Properties | +//+------------------------------------------------------------------+ +double NormalizeLotSize(string symbol, double lotSize) +{ + double minLot = SymbolInfoDouble(symbol, SYMBOL_VOLUME_MIN); + double maxLot = SymbolInfoDouble(symbol, SYMBOL_VOLUME_MAX); + double lotStep = SymbolInfoDouble(symbol, SYMBOL_VOLUME_STEP); + + // Round to lot step + if(lotStep > 0) + lotSize = MathFloor(lotSize / lotStep) * lotStep; + + // Apply min/max constraints + if(lotSize < minLot) + lotSize = minLot; + if(lotSize > maxLot) + lotSize = maxLot; + + return lotSize; +} + +void OpenBuyPosition(RSIScalpingData& data, int MagicNumber, double LotSize) +{ + if(PositionExistsByMagic(data.symbol, MagicNumber)) + return; + + // Normalize lot size according to symbol properties + double normalizedLot = NormalizeLotSize(data.symbol, LotSize); + + double ask = SymbolInfoDouble(data.symbol, SYMBOL_ASK); + + if(data.trade.Buy(normalizedLot, data.symbol, ask, 0, 0, "RSI Scalping Buy")) + { + ulong new_ticket = data.trade.ResultOrder(); + if(new_ticket > 0) + { + if(PositionSelectByTicketSymbolAndMagic(new_ticket, data.symbol, MagicNumber)) + { + data.position_ticket = new_ticket; + data.position_open = true; + data.current_position_type = POSITION_TYPE_BUY; + } + } + } +} + +void OpenSellPosition(RSIScalpingData& data, int MagicNumber, double LotSize) +{ + if(PositionExistsByMagic(data.symbol, MagicNumber)) + return; + + // Normalize lot size according to symbol properties + double normalizedLot = NormalizeLotSize(data.symbol, LotSize); + + double bid = SymbolInfoDouble(data.symbol, SYMBOL_BID); + + if(data.trade.Sell(normalizedLot, data.symbol, bid, 0, 0, "RSI Scalping Sell")) + { + ulong new_ticket = data.trade.ResultOrder(); + if(new_ticket > 0) + { + if(PositionSelectByTicketSymbolAndMagic(new_ticket, data.symbol, MagicNumber)) + { + data.position_ticket = new_ticket; + data.position_open = true; + data.current_position_type = POSITION_TYPE_SELL; + } + } + } +} + +void ClosePosition(RSIScalpingData& data, int MagicNumber) +{ + // First verify position still exists + if(!PositionExistsByMagic(data.symbol, MagicNumber)) + { + // Position doesn't exist, reset tracking + data.position_open = false; + data.position_ticket = 0; + data.rsi_against_position = false; + data.bars_against_count = 0; + return; + } + + // Try to close by ticket first (more reliable) + bool closed = false; + if(data.position_ticket > 0) + { + if(PositionSelectByTicket(data.position_ticket)) + { + // Verify it's our position + if(PositionGetString(POSITION_SYMBOL) == data.symbol && + PositionGetInteger(POSITION_MAGIC) == MagicNumber) + { + closed = data.trade.PositionClose(data.position_ticket); + if(!closed) + { + Print("RSIScalping: Failed to close position by ticket ", data.position_ticket, + " - Error: ", data.trade.ResultRetcode(), " (", data.trade.ResultRetcodeDescription(), ")"); + } + } + } + } + + // If ticket method failed, try magic number method + if(!closed) + { + closed = ClosePositionByMagic(data.trade, data.symbol, MagicNumber); + if(!closed) + { + Print("RSIScalping: Failed to close position by magic number for '", data.symbol, + "' - Error: ", data.trade.ResultRetcode(), " (", data.trade.ResultRetcodeDescription(), ")"); + } + } + + // Verify position is actually closed + if(closed) + { + // Wait a moment and verify + Sleep(50); + if(!PositionExistsByMagic(data.symbol, MagicNumber)) + { + data.position_open = false; + data.position_ticket = 0; + data.rsi_against_position = false; + data.bars_against_count = 0; + Print("RSIScalping: Position successfully closed for '", data.symbol, "'"); + } + else + { + Print("RSIScalping: Warning - Close returned success but position still exists for '", data.symbol, "'"); + // Try one more time + Sleep(100); + if(PositionExistsByMagic(data.symbol, MagicNumber)) + { + ClosePositionByMagic(data.trade, data.symbol, MagicNumber); + } + // Reset tracking anyway to prevent getting stuck + data.position_open = false; + data.position_ticket = 0; + data.rsi_against_position = false; + data.bars_against_count = 0; + } + } + else + { + // Close failed, but reset tracking to prevent getting stuck + // The position might have been closed externally + data.position_open = false; + data.position_ticket = 0; + data.rsi_against_position = false; + data.bars_against_count = 0; + } +} + +void ProcessRSIScalping(RSIScalpingData& data, string symbol, ENUM_TIMEFRAMES TimeFrame, int RSI_Period, + ENUM_APPLIED_PRICE RSI_Applied_Price, double RSI_Overbought, + double RSI_Oversold, double RSI_Target_Buy, double RSI_Target_Sell, + int BarsToWait, double LotSize, int MagicNumber) +{ + // Skip if not initialized (symbol not available) + if(!data.isInitialized) + return; + + data.symbol = symbol; // Update symbol in case it changed + if(Bars(data.symbol, TimeFrame) < RSI_Period + 2) + return; + + datetime current_bar_time = iTime(data.symbol, TimeFrame, 0); + if(current_bar_time == data.last_bar_time) + return; + + data.last_bar_time = current_bar_time; + + if(!UpdateRSI(data)) + return; + + CheckExistingPosition(data, TimeFrame, MagicNumber, RSI_Oversold, RSI_Overbought, + RSI_Target_Buy, RSI_Target_Sell, BarsToWait); + + if(!data.position_open && !PositionExistsByMagic(data.symbol, MagicNumber)) + { + CheckEntrySignals(data, TimeFrame, MagicNumber, RSI_Oversold, RSI_Overbought, LotSize); + } +} + +//+------------------------------------------------------------------+ diff --git a/frontline/MQL5/_united_dynamic/main.mq5 b/frontline/MQL5/_united_dynamic/main.mq5 new file mode 100644 index 0000000..90ad2e8 --- /dev/null +++ b/frontline/MQL5/_united_dynamic/main.mq5 @@ -0,0 +1,675 @@ +//+------------------------------------------------------------------+ +//| UnitedEA.mq5 | +//| Copyright 2025, MetaQuotes Ltd. | +//| https://www.mql5.com | +//+------------------------------------------------------------------+ +#property copyright "Copyright 2025, MetaQuotes Ltd." +#property link "https://www.mql5.com" +#property version "1.07" +#property strict + +#include +#include +#include +#include +#include "MagicNumberHelpers.mqh" + +// Lot globals must exist before strategy .mqh (Darvas uses g_DB_LotSize; EMA/RC/RM use g_ES/g_RC/g_RM) +double g_ES_LotSize; +double g_RC_LotSize; +double g_RM_LotSize; +double g_DB_LotSize; +double g_DynMultLast = 1.0; + +// Include strategy implementations early so structs are available +#include "Strategies/DarvasBoxStrategy.mqh" +#include "Strategies/EMASlopeDistanceStrategy.mqh" +#include "Strategies/RSICrossOverReversalStrategy.mqh" +#include "Strategies/RSIMidPointHijackStrategy.mqh" +#include "Strategies/RSIScalpingStrategy.mqh" +#include "Strategies/RSIReversalAsianStrategy.mqh" + +//+------------------------------------------------------------------+ +//| Strategy Enable/Disable Switches | +//+------------------------------------------------------------------+ +input group "=== Strategy Enable/Disable ===" +input bool EnableDarvasBox = true; +input bool EnableEMASlopeDistance = true; +input bool EnableRSICrossOverReversal = true; +input bool EnableRSIMidPointHijack = true; +input bool EnableRSIScalpingAPPL = true; +input bool EnableRSIScalpingBTCUSD = true; +input bool EnableRSIScalpingNVDA = true; +input bool EnableRSIScalpingTSLA = true; +input bool EnableRSIScalpingXAUUSD = true; +input bool EnableRSIReversalAsianEURUSD = true; +input bool EnableRSIReversalAsianAUDUSD = true; + +//+------------------------------------------------------------------+ +//| Dynamic lot sizing — scale base lots vs reference deposit | +//| mult=(equity/ref)^exp; maxMult<=0 上不封顶; minMult<=0 不锁下限 | +//+------------------------------------------------------------------+ +input group "=== Dynamic lot sizing (动态手数) ===" +input bool InpDynamicLotEnable = true; // Enable balance/equity-based scaling +input double InpDynamicRefDeposit = 3000.0; // Reference balance (match Tester initial deposit) +input double InpDynamicExponent = 1.15; // 1.0=linear; >1 faster growth; <1 conservative +input double InpDynamicMinMult = 0.0; // <=0 不锁下限; >0 例如0.25 为最低倍数 +input double InpDynamicMaxMult = 0.0; // <=0 动态倍数不封顶; >0 上限封顶 +input bool InpDynamicUseEquity = true; // true=ACCOUNT_EQUITY, false=ACCOUNT_BALANCE +input double InpDynamicStockLotCap = 0.0; // Extra cap for stock CFDs (0 = none) + +//+------------------------------------------------------------------+ +//| Strategy 1: DarvasBoxXAUUSD | +//+------------------------------------------------------------------+ +input group "=== DarvasBox Strategy ===" +input string DB_Symbol = "XAUUSD"; +input int DB_BoxPeriod = 165; +input double DB_BoxDeviation = 30000; // Increased to allow larger ranges (was 25140) +input int DB_VolumeThreshold = 0; // Set to 0 to disable volume threshold check. Volume data from indicator used instead. +input double DB_StopLoss = 1665; +input double DB_TakeProfit = 3685; +input bool DB_EnableLogging = false; +input color DB_BoxColor = clrBlue; +input int DB_BoxWidth = 1; +input ENUM_TIMEFRAMES DB_TrendTimeframe = PERIOD_H2; +input int DB_MA_Period = 125; +input ENUM_MA_METHOD DB_MA_Method = MODE_EMA; +input ENUM_APPLIED_PRICE DB_MA_Price = PRICE_WEIGHTED; +input double DB_TrendThreshold = 4.94; +input int DB_VolumeMA_Period = 110; +input double DB_VolumeThresholdMultiplier = 1.5; +input int DB_MagicNumber = 135790; +input double DB_BaseLotSize = 0.01; // Base lot at InpDynamicRefDeposit (Darvas) + +//+------------------------------------------------------------------+ +//| Strategy 2: EMASlopeDistanceCocktailXAUUSD | +//| PEPPERSTONE US: Gold symbol is typically "XAUUSD" or "GOLD" | +//+------------------------------------------------------------------+ +input group "=== EMA Slope Distance Strategy ===" +input string ES_Symbol = "XAUUSD"; +input int ES_EMA_Periode = 46; +input double ES_PreisSchwelle = 600.0; +input double ES_SteigungSchwelle = 80.0; +input int ES_ÜberwachungTimeout = 800; +input double ES_TrailingStop = 250.0; +input double ES_LotGröße = 0.03; +input int ES_MagicNumber = 12350; +input bool ES_UseSpreadAdjustment = true; +input ENUM_TIMEFRAMES ES_Timeframe = PERIOD_H1; +input bool ES_UseBarData = true; +input int ES_MaxTradesPerCrossover = 9; +input int ES_ProfitCheckBars = 18; +input bool ES_CloseUnprofitableTrades = true; + +//+------------------------------------------------------------------+ +//| Strategy 3: RSICrossOverReversalXAUUSD | +//| PEPPERSTONE US: Gold symbol is typically "XAUUSD" or "GOLD" | +//+------------------------------------------------------------------+ +input group "=== RSI CrossOver Reversal Strategy ===" +input string RC_Symbol = "XAUUSD"; +input int RC_MagicNumber = 7; +input int RC_rsiPeriod = 19; +input int RC_overboughtLevel = 93; +input int RC_oversoldLevel = 22; +input double RC_entryRSIBuySpread = 0; +input double RC_entryRSISellSpread = 0; +input double RC_lotSize = 0.01; +input int RC_slippage = 3; +input int RC_cooldownSeconds = 209; +input ENUM_TIMEFRAMES RC_TimeFrame1 = PERIOD_M1; +input ENUM_TIMEFRAMES RC_TimeFrame2 = PERIOD_M1; +input ENUM_TIMEFRAMES RC_BarTimeFrame = PERIOD_M12; +input int RC_emaPeriod = 140; +input double RC_emaSlopeThreshold = 105; +input double RC_exitBuyRSI = 86; +input double RC_exitSellRSI = 10; +input double RC_TrailingStop = 295; +input double RC_emaDistanceThreshold = 165; +input int RC_tradingHourOneBegin = 24; +input int RC_tradingHourOneEnd = 22; +input int RC_tradingHourTwoBegin = 6; +input int RC_tradingHourTwoEnd = 19; +input bool RC_Sunday = false; +input bool RC_Monday = false; +input bool RC_Tuesday = true; +input bool RC_Wednesday = true; +input bool RC_Thursday = true; +input bool RC_Friday = false; +input bool RC_Saturday = false; + +//+------------------------------------------------------------------+ +//| Strategy 4: RSIMidPointHijackXAUUSD | +//| PEPPERSTONE US: Gold symbol is typically "XAUUSD" or "GOLD" | +//+------------------------------------------------------------------+ +input group "=== RSI MidPoint Hijack Strategy ===" +input string RM_Symbol = "XAUUSD"; +input ENUM_TIMEFRAMES RM_InpTimeframe = PERIOD_H1; +input double RM_InpLotSize = 0.02; +input int RM_InpMagicNumberRSIFollow = 1001; +input int RM_InpMagicNumberRSIReverse = 1002; +input int RM_InpMagicNumberEMACross = 1003; +input bool RM_InpEnableRSIFollow = true; +input bool RM_InpEnableRSIReverse = true; +input bool RM_InpEnableEMACross = true; +input bool RM_InpEnableStrategyLock = false; +input double RM_InpLockProfitThreshold = 0.0; +input bool RM_InpCloseOppositeTrades = false; +input int RM_InpRSIPeriod = 32; +input int RM_InpRSIOverbought = 78; +input int RM_InpRSIOversold = 46; +input int RM_InpRSIExitLevel = 44; +input int RM_InpRSIFollowStartHour = 23; +input int RM_InpRSIFollowEndHour = 8; +input bool RM_InpRSIFollowCloseOutsideHours = false; +input int RM_InpRSIReversePeriod = 59; +input int RM_InpRSIReverseOverbought = 51; +input int RM_InpRSIReverseOversold = 49; +input int RM_InpRSIReverseCrossLevel = 53; +input int RM_InpRSIReverseExitLevel = 48; +input int RM_InpRSIReverseStartHour = 7; +input int RM_InpRSIReverseEndHour = 13; +input bool RM_InpRSIReverseCloseOutsideHours = false; +input int RM_InpRSIReverseCooldownBars = 15; +input bool RM_InpRSIReverseCooldownOnLoss = true; +input int RM_InpEMAPeriod = 120; +input int RM_InpEMACrossStartHour = 8; +input int RM_InpEMACrossEndHour = 14; +input bool RM_InpEMACrossCloseOutsideHours = true; +input bool RM_InpUseEMADistanceEntry = true; +input double RM_InpEMADistancePips = 160.0; +input int RM_InpEMADistancePeriod = 26; + +//+------------------------------------------------------------------+ +//| Strategy 5-10: RSI Scalping Strategies | +//| Each RSI Scalping strategy trades on its own symbol: | +//| - APPL: Apple stock (AAPL) | +//| - BTCUSD: Bitcoin/USD | +//| - NVDA: NVIDIA stock | +//| - TSLA: Tesla stock | +//| - XAUUSD: Gold/USD | +//| | +//| PEPPERSTONE US SYMBOL FORMATS: | +//| - Stocks may use: "AAPL.US", "NASDAQ:AAPL", or just "AAPL" | +//| - To find correct symbols: | +//| 1. Open Market Watch (Ctrl+M) | +//| 2. Right-click > Show All | +//| 3. Search for the stock name | +//| 4. Use the exact symbol name shown | +//+------------------------------------------------------------------+ +input group "=== RSI Scalping APPL (AAPL) - Pepperstone US ===" +input string RS_APPL_Symbol = "AAPL.US"; // Try: "AAPL.US", "NASDAQ:AAPL", or "AAPL" +input ENUM_TIMEFRAMES RS_APPL_TimeFrame = PERIOD_M10; +input int RS_APPL_RSI_Period = 14; +input ENUM_APPLIED_PRICE RS_APPL_RSI_Applied_Price = PRICE_CLOSE; +input double RS_APPL_RSI_Overbought = 80; +input double RS_APPL_RSI_Oversold = 78; +input double RS_APPL_RSI_Target_Buy = 94; +input double RS_APPL_RSI_Target_Sell = 44; +input int RS_APPL_BarsToWait = 7; +input double RS_APPL_LotSize = 25; +input int RS_APPL_MagicNumber = 20001; +input int RS_APPL_Slippage = 3; + +input group "=== RSI Scalping BTCUSD ===" +input string RS_BTCUSD_Symbol = "BTCUSD"; // Pepperstone may use: "BTCUSD", "BTC/USD", or "BTCUSD.c" +input ENUM_TIMEFRAMES RS_BTCUSD_TimeFrame = PERIOD_H1; +input int RS_BTCUSD_RSI_Period = 14; +input ENUM_APPLIED_PRICE RS_BTCUSD_RSI_Applied_Price = PRICE_CLOSE; +input double RS_BTCUSD_RSI_Overbought = 90; +input double RS_BTCUSD_RSI_Oversold = 73; +input double RS_BTCUSD_RSI_Target_Buy = 88; +input double RS_BTCUSD_RSI_Target_Sell = 48; +input int RS_BTCUSD_BarsToWait = 6; +input double RS_BTCUSD_LotSize = 0.1; +input int RS_BTCUSD_MagicNumber = 123459123; +input int RS_BTCUSD_Slippage = 3; + +input group "=== RSI Scalping NVDA - Pepperstone US ===" +input string RS_NVDA_Symbol = "NVDA.US"; // Try: "NVDA.US", "NASDAQ:NVDA", or "NVDA" +input ENUM_TIMEFRAMES RS_NVDA_TimeFrame = PERIOD_M15; +input int RS_NVDA_RSI_Period = 8; +input ENUM_APPLIED_PRICE RS_NVDA_RSI_Applied_Price = PRICE_CLOSE; +input double RS_NVDA_RSI_Overbought = 36; +input double RS_NVDA_RSI_Oversold = 38; +input double RS_NVDA_RSI_Target_Buy = 90; +input double RS_NVDA_RSI_Target_Sell = 70; +input int RS_NVDA_BarsToWait = 5; +input double RS_NVDA_LotSize = 50; +input int RS_NVDA_MagicNumber = 20003; +input int RS_NVDA_Slippage = 3; + +input group "=== RSI Scalping TSLA - Pepperstone US ===" +input string RS_TSLA_Symbol = "TSLA.US"; // Try: "TSLA.US", "NASDAQ:TSLA", or "TSLA" +input ENUM_TIMEFRAMES RS_TSLA_TimeFrame = PERIOD_H1; +input int RS_TSLA_RSI_Period = 14; +input ENUM_APPLIED_PRICE RS_TSLA_RSI_Applied_Price = PRICE_CLOSE; +input double RS_TSLA_RSI_Overbought = 54; +input double RS_TSLA_RSI_Oversold = 73; +input double RS_TSLA_RSI_Target_Buy = 87; +input double RS_TSLA_RSI_Target_Sell = 33; +input int RS_TSLA_BarsToWait = 1; +input double RS_TSLA_LotSize = 50; +input int RS_TSLA_MagicNumber = 125421321; +input int RS_TSLA_Slippage = 3; + +input group "=== RSI Scalping XAUUSD ===" +input string RS_XAUUSD_Symbol = "XAUUSD"; +input ENUM_TIMEFRAMES RS_XAUUSD_TimeFrame = PERIOD_H1; +input int RS_XAUUSD_RSI_Period = 14; +input ENUM_APPLIED_PRICE RS_XAUUSD_RSI_Applied_Price = PRICE_CLOSE; +input double RS_XAUUSD_RSI_Overbought = 71; +input double RS_XAUUSD_RSI_Oversold = 57; +input double RS_XAUUSD_RSI_Target_Buy = 80; +input double RS_XAUUSD_RSI_Target_Sell = 57; +input int RS_XAUUSD_BarsToWait = 4; +input double RS_XAUUSD_LotSize = 0.1; +input int RS_XAUUSD_MagicNumber = 129102315; +input int RS_XAUUSD_Slippage = 3; + +//+------------------------------------------------------------------+ +//| Strategy 11-12: RSI Reversal Asian Strategies | +//| Each RSI Reversal Asian strategy trades on its own symbol: | +//| - EURUSD: Euro/USD | +//| - AUDUSD: Australian Dollar/USD | +//+------------------------------------------------------------------+ +input group "=== RSI Reversal Asian EURUSD ===" +input string RRA_EURUSD_Symbol = "EURUSD"; +input int RRA_EURUSD_RSIPeriod = 28; +input double RRA_EURUSD_OverboughtLevel = 60; +input double RRA_EURUSD_OversoldLevel = 8; +input int RRA_EURUSD_TakeProfitPips = 175; +input int RRA_EURUSD_StopLossPips = 5; +input double RRA_EURUSD_MaxLotSize = 0.1; +input int RRA_EURUSD_MaxSpread = 1000; +input int RRA_EURUSD_MaxDuration = 270; +input bool RRA_EURUSD_UseStopLoss = false; +input bool RRA_EURUSD_UseTakeProfit = false; +input bool RRA_EURUSD_UseRSIExit = true; +input double RRA_EURUSD_RSIExitLevel = 55; +input bool RRA_EURUSD_CloseOutsideSession = false; +input ENUM_TIMEFRAMES RRA_EURUSD_TimeFrame = PERIOD_M15; +input int RRA_EURUSD_MagicNumber = 30001; +input int RRA_EURUSD_Slippage = 3; + +input group "=== RSI Reversal Asian AUDUSD ===" +input string RRA_AUDUSD_Symbol = "AUDUSD"; +input int RRA_AUDUSD_RSIPeriod = 28; +input double RRA_AUDUSD_OverboughtLevel = 68; +input double RRA_AUDUSD_OversoldLevel = 30; +input int RRA_AUDUSD_TakeProfitPips = 175; +input int RRA_AUDUSD_StopLossPips = 5; +input double RRA_AUDUSD_MaxLotSize = 0.2; +input int RRA_AUDUSD_MaxSpread = 1000; +input int RRA_AUDUSD_MaxDuration = 340; +input bool RRA_AUDUSD_UseStopLoss = false; +input bool RRA_AUDUSD_UseTakeProfit = false; +input bool RRA_AUDUSD_UseRSIExit = true; +input double RRA_AUDUSD_RSIExitLevel = 48; +input bool RRA_AUDUSD_CloseOutsideSession = true; +input ENUM_TIMEFRAMES RRA_AUDUSD_TimeFrame = PERIOD_M15; +input int RRA_AUDUSD_MagicNumber = 30002; +input int RRA_AUDUSD_Slippage = 3; + +//+------------------------------------------------------------------+ +//| Global Variables - DarvasBox | +//+------------------------------------------------------------------+ +struct DarvasBoxData { + string symbol; + bool isInitialized; + double boxHigh; + double boxLow; + bool boxFormed; + datetime lastBoxTime; + string boxName; + double minStopLevel; + double point; + CTrade trade; + int maHandle; + int volumeHandle; + datetime lastBarTime; +}; + +//+------------------------------------------------------------------+ +//| Global Variables - EMA Slope Distance | +//+------------------------------------------------------------------+ +struct EMASlopeData { + string symbol; + bool isInitialized; + int ema_handle; + double ema_array[]; + datetime letzte_überwachung_zeit; + bool überwachung_aktiv; + bool preis_trigger_aktiv; + bool steigung_trigger_aktiv; + int ticket; + CTrade trade; + int trades_in_current_crossover; + bool crossover_detected; + datetime trade_open_time; + datetime last_bar_time; +}; + +//+------------------------------------------------------------------+ +//| Global Variables - RSI CrossOver Reversal | +//+------------------------------------------------------------------+ +struct RSICrossOverData { + string symbol; + bool isInitialized; + int rsiHandle; + int emaHandle; + double previousRSIDef; + CTrade trade; + datetime lastTradeTime; + datetime bartime; + bool WeekDays[7]; + datetime lastBarTime; +}; + +//+------------------------------------------------------------------+ +//| Global Variables - RSI MidPoint Hijack | +//+------------------------------------------------------------------+ +struct RSIMidPointData { + string symbol; + bool isInitialized; + int rsiHandle; + int rsiReverseHandle; + int emaHandle; + bool rsiOverbought; + bool rsiOversold; + bool rsiReverseOverbought; + bool rsiReverseOversold; + CTrade trade; + CPositionInfo positionInfo; + bool emaCrossBuySignal; + bool emaCrossSellSignal; + int emaCrossSignalBar; + datetime lastBarTime; + datetime rsiReverseLastCloseTime; + bool rsiReverseInCooldown; + double lastBarRSI; + double lastBarRSIReverse; + double lastBarEMA; + double lastBarClose; + double lastBarEMAPrev; + double lastBarClosePrev; +}; + +//+------------------------------------------------------------------+ +//| Global Strategy Instances | +//+------------------------------------------------------------------+ +DarvasBoxData dbData; +EMASlopeData esData; +RSICrossOverData rcData; +RSIMidPointData rmData; +RSIScalpingData rsAPPLData; +RSIScalpingData rsBTCUSDData; +RSIScalpingData rsNVDAData; +RSIScalpingData rsTSLAData; +RSIScalpingData rsXAUUSDData; + +//+------------------------------------------------------------------+ +//| Global Variables - RSI Reversal Asian | +//+------------------------------------------------------------------+ +RSIReversalAsianData rraEURUSDData; +RSIReversalAsianData rraAUDUSDData; + +//+------------------------------------------------------------------+ +//| Dynamic lot helpers | +//+------------------------------------------------------------------+ +double DynClamp(const double v, const double lo, const double hi) +{ + return MathMax(lo, MathMin(hi, v)); +} + +// maxMult<=0: no ceiling. minMult<=0: no floor on raw (equity/ref)^exp. +double ApplyDynamicMultClamp(const double mult) +{ + double m = mult; + if(InpDynamicMinMult > 0.0) + m = MathMax(m, InpDynamicMinMult); + if(InpDynamicMaxMult > 0.0) + m = MathMin(m, InpDynamicMaxMult); + return m; +} + +double NormalizeVolumeForSymbol(const string symbol, double lots) +{ + double minL = SymbolInfoDouble(symbol, SYMBOL_VOLUME_MIN); + double maxL = SymbolInfoDouble(symbol, SYMBOL_VOLUME_MAX); + double step = SymbolInfoDouble(symbol, SYMBOL_VOLUME_STEP); + if(step > 0.0) + lots = MathFloor(lots / step + 1e-12) * step; + if(lots < minL) lots = minL; + if(lots > maxL) lots = maxL; + return lots; +} + +double GetDynamicMultiplier() +{ + if(!InpDynamicLotEnable) + return 1.0; + double cap = InpDynamicUseEquity ? AccountInfoDouble(ACCOUNT_EQUITY) : AccountInfoDouble(ACCOUNT_BALANCE); + if(cap <= 0.0) + cap = InpDynamicRefDeposit; + double refv = MathMax(InpDynamicRefDeposit, 1.0); + double ratio = cap / refv; + if(ratio <= 0.0) + ratio = 1.0; + double mult = MathPow(ratio, InpDynamicExponent); + return ApplyDynamicMultClamp(mult); +} + +// baseLot = size at reference deposit; optionalCap 0 = no extra ceiling (broker min/max still apply) +double DynamicLotForSymbol(const string symbol, const double baseLot, const double optionalCap = 0.0) +{ + double mult = GetDynamicMultiplier(); + g_DynMultLast = mult; + double v = baseLot * mult; + if(optionalCap > 0.0 && v > optionalCap) + v = optionalCap; + return NormalizeVolumeForSymbol(symbol, v); +} + +void RefreshDynamicStrategyLots() +{ + if(!InpDynamicLotEnable) + { + g_ES_LotSize = NormalizeVolumeForSymbol(ES_Symbol, ES_LotGröße); + g_RC_LotSize = NormalizeVolumeForSymbol(RC_Symbol, RC_lotSize); + g_RM_LotSize = NormalizeVolumeForSymbol(RM_Symbol, RM_InpLotSize); + g_DB_LotSize = NormalizeVolumeForSymbol(DB_Symbol, DB_BaseLotSize); + g_DynMultLast = 1.0; + return; + } + g_ES_LotSize = DynamicLotForSymbol(ES_Symbol, ES_LotGröße); + g_RC_LotSize = DynamicLotForSymbol(RC_Symbol, RC_lotSize); + g_RM_LotSize = DynamicLotForSymbol(RM_Symbol, RM_InpLotSize); + g_DB_LotSize = DynamicLotForSymbol(DB_Symbol, DB_BaseLotSize); +} + +//+------------------------------------------------------------------+ +//| Expert initialization function | +//+------------------------------------------------------------------+ +int OnInit() +{ + int initResult = INIT_SUCCEEDED; + + RefreshDynamicStrategyLots(); + + // Initialize strategies - log warnings but don't fail entire EA if symbol unavailable + if(EnableDarvasBox) + if(!InitDarvasBox(DB_Symbol)) + Print("Warning: DarvasBox strategy failed to initialize for symbol '", DB_Symbol, "'"); + + if(EnableEMASlopeDistance) + if(!InitEMASlopeDistance(ES_Symbol)) + Print("Warning: EMASlopeDistance strategy failed to initialize for symbol '", ES_Symbol, "'"); + + if(EnableRSICrossOverReversal) + if(!InitRSICrossOverReversal(RC_Symbol)) + Print("Warning: RSICrossOverReversal strategy failed to initialize for symbol '", RC_Symbol, "'"); + + if(EnableRSIMidPointHijack) + if(!InitRSIMidPointHijack(RM_Symbol)) + Print("Warning: RSIMidPointHijack strategy failed to initialize for symbol '", RM_Symbol, "'"); + + // Initialize RSI Scalping strategies - don't fail entire EA if symbol unavailable + if(EnableRSIScalpingAPPL) + InitRSIScalping(rsAPPLData, RS_APPL_Symbol, RS_APPL_TimeFrame, RS_APPL_RSI_Period, RS_APPL_RSI_Applied_Price, RS_APPL_MagicNumber, RS_APPL_Slippage); + + if(EnableRSIScalpingBTCUSD) + InitRSIScalping(rsBTCUSDData, RS_BTCUSD_Symbol, RS_BTCUSD_TimeFrame, RS_BTCUSD_RSI_Period, RS_BTCUSD_RSI_Applied_Price, RS_BTCUSD_MagicNumber, RS_BTCUSD_Slippage); + + if(EnableRSIScalpingNVDA) + InitRSIScalping(rsNVDAData, RS_NVDA_Symbol, RS_NVDA_TimeFrame, RS_NVDA_RSI_Period, RS_NVDA_RSI_Applied_Price, RS_NVDA_MagicNumber, RS_NVDA_Slippage); + + if(EnableRSIScalpingTSLA) + InitRSIScalping(rsTSLAData, RS_TSLA_Symbol, RS_TSLA_TimeFrame, RS_TSLA_RSI_Period, RS_TSLA_RSI_Applied_Price, RS_TSLA_MagicNumber, RS_TSLA_Slippage); + + if(EnableRSIScalpingXAUUSD) + InitRSIScalping(rsXAUUSDData, RS_XAUUSD_Symbol, RS_XAUUSD_TimeFrame, RS_XAUUSD_RSI_Period, RS_XAUUSD_RSI_Applied_Price, RS_XAUUSD_MagicNumber, RS_XAUUSD_Slippage); + + // Initialize RSI Reversal Asian strategies + if(EnableRSIReversalAsianEURUSD) + if(!InitRSIReversalAsian(rraEURUSDData, RRA_EURUSD_Symbol, RRA_EURUSD_RSIPeriod, RRA_EURUSD_OverboughtLevel, RRA_EURUSD_OversoldLevel, + RRA_EURUSD_TakeProfitPips, RRA_EURUSD_StopLossPips, RRA_EURUSD_MaxLotSize, + RRA_EURUSD_MaxSpread, RRA_EURUSD_MaxDuration, RRA_EURUSD_UseStopLoss, + RRA_EURUSD_UseTakeProfit, RRA_EURUSD_UseRSIExit, RRA_EURUSD_RSIExitLevel, + RRA_EURUSD_CloseOutsideSession, RRA_EURUSD_TimeFrame, RRA_EURUSD_MagicNumber, RRA_EURUSD_Slippage)) + Print("Warning: RSIReversalAsianEURUSD strategy failed to initialize for symbol '", RRA_EURUSD_Symbol, "'"); + + if(EnableRSIReversalAsianAUDUSD) + if(!InitRSIReversalAsian(rraAUDUSDData, RRA_AUDUSD_Symbol, RRA_AUDUSD_RSIPeriod, RRA_AUDUSD_OverboughtLevel, RRA_AUDUSD_OversoldLevel, + RRA_AUDUSD_TakeProfitPips, RRA_AUDUSD_StopLossPips, RRA_AUDUSD_MaxLotSize, + RRA_AUDUSD_MaxSpread, RRA_AUDUSD_MaxDuration, RRA_AUDUSD_UseStopLoss, + RRA_AUDUSD_UseTakeProfit, RRA_AUDUSD_UseRSIExit, RRA_AUDUSD_RSIExitLevel, + RRA_AUDUSD_CloseOutsideSession, RRA_AUDUSD_TimeFrame, RRA_AUDUSD_MagicNumber, RRA_AUDUSD_Slippage)) + Print("Warning: RSIReversalAsianAUDUSD strategy failed to initialize for symbol '", RRA_AUDUSD_Symbol, "'"); + + string acctCur = AccountInfoString(ACCOUNT_CURRENCY); + double eq0 = AccountInfoDouble(ACCOUNT_EQUITY); + double refvInit = MathMax(InpDynamicRefDeposit, 1.0); + double capInit = InpDynamicUseEquity ? eq0 : AccountInfoDouble(ACCOUNT_BALANCE); + if(capInit <= 0.0) + capInit = refvInit; + double ratioInit = capInit / refvInit; + double rawPowInit = MathPow(ratioInit, InpDynamicExponent); + Print("United EA v1.07 ", acctCur, " equity=", DoubleToString(eq0, 2), " equity/ref=", DoubleToString(ratioInit, 6), + " raw^exp=", DoubleToString(rawPowInit, 6), " multOut=", DoubleToString(g_DynMultLast, 6), + " minM=", InpDynamicMinMult, " maxM=", InpDynamicMaxMult, " ref=", InpDynamicRefDeposit, " exp=", InpDynamicExponent, + " lots ES=", g_ES_LotSize, " RC=", g_RC_LotSize, " RM=", g_RM_LotSize, " DB=", g_DB_LotSize); + Print("United EA initialized. Active strategies: ", + (EnableDarvasBox ? "DarvasBox " : ""), + (EnableEMASlopeDistance ? "EMASlope " : ""), + (EnableRSICrossOverReversal ? "RSICrossOver " : ""), + (EnableRSIMidPointHijack ? "RSIMidPoint " : ""), + (EnableRSIScalpingAPPL ? "RSIScalpingAPPL " : ""), + (EnableRSIScalpingBTCUSD ? "RSIScalpingBTCUSD " : ""), + (EnableRSIScalpingNVDA ? "RSIScalpingNVDA " : ""), + (EnableRSIScalpingTSLA ? "RSIScalpingTSLA " : ""), + (EnableRSIScalpingXAUUSD ? "RSIScalpingXAUUSD " : ""), + (EnableRSIReversalAsianEURUSD ? "RSIReversalAsianEURUSD " : ""), + (EnableRSIReversalAsianAUDUSD ? "RSIReversalAsianAUDUSD " : "")); + + return initResult; +} + +//+------------------------------------------------------------------+ +//| Expert deinitialization function | +//+------------------------------------------------------------------+ +void OnDeinit(const int reason) +{ + if(EnableDarvasBox) + DeinitDarvasBox(); + + if(EnableEMASlopeDistance) + DeinitEMASlopeDistance(); + + if(EnableRSICrossOverReversal) + DeinitRSICrossOverReversal(); + + if(EnableRSIMidPointHijack) + DeinitRSIMidPointHijack(); + + if(EnableRSIScalpingAPPL) + DeinitRSIScalping(rsAPPLData); + + if(EnableRSIScalpingBTCUSD) + DeinitRSIScalping(rsBTCUSDData); + + if(EnableRSIScalpingNVDA) + DeinitRSIScalping(rsNVDAData); + + if(EnableRSIScalpingTSLA) + DeinitRSIScalping(rsTSLAData); + + if(EnableRSIScalpingXAUUSD) + DeinitRSIScalping(rsXAUUSDData); + + if(EnableRSIReversalAsianEURUSD) + DeinitRSIReversalAsian(rraEURUSDData); + + if(EnableRSIReversalAsianAUDUSD) + DeinitRSIReversalAsian(rraAUDUSDData); + + Print("United EA deinitialized. Reason: ", reason); +} + +//+------------------------------------------------------------------+ +//| Expert tick function | +//+------------------------------------------------------------------+ +void OnTick() +{ + RefreshDynamicStrategyLots(); + + if(EnableDarvasBox) + ProcessDarvasBox(DB_Symbol); + + if(EnableEMASlopeDistance) + ProcessEMASlopeDistance(ES_Symbol); + + if(EnableRSICrossOverReversal) + ProcessRSICrossOverReversal(RC_Symbol); + + if(EnableRSIMidPointHijack) + ProcessRSIMidPointHijack(RM_Symbol); + + if(EnableRSIScalpingAPPL) + ProcessRSIScalping(rsAPPLData, RS_APPL_Symbol, RS_APPL_TimeFrame, RS_APPL_RSI_Period, RS_APPL_RSI_Applied_Price, + RS_APPL_RSI_Overbought, RS_APPL_RSI_Oversold, RS_APPL_RSI_Target_Buy, RS_APPL_RSI_Target_Sell, + RS_APPL_BarsToWait, + DynamicLotForSymbol(RS_APPL_Symbol, RS_APPL_LotSize, InpDynamicStockLotCap), + RS_APPL_MagicNumber); + + if(EnableRSIScalpingBTCUSD) + ProcessRSIScalping(rsBTCUSDData, RS_BTCUSD_Symbol, RS_BTCUSD_TimeFrame, RS_BTCUSD_RSI_Period, RS_BTCUSD_RSI_Applied_Price, + RS_BTCUSD_RSI_Overbought, RS_BTCUSD_RSI_Oversold, RS_BTCUSD_RSI_Target_Buy, RS_BTCUSD_RSI_Target_Sell, + RS_BTCUSD_BarsToWait, DynamicLotForSymbol(RS_BTCUSD_Symbol, RS_BTCUSD_LotSize), RS_BTCUSD_MagicNumber); + + if(EnableRSIScalpingNVDA) + ProcessRSIScalping(rsNVDAData, RS_NVDA_Symbol, RS_NVDA_TimeFrame, RS_NVDA_RSI_Period, RS_NVDA_RSI_Applied_Price, + RS_NVDA_RSI_Overbought, RS_NVDA_RSI_Oversold, RS_NVDA_RSI_Target_Buy, RS_NVDA_RSI_Target_Sell, + RS_NVDA_BarsToWait, + DynamicLotForSymbol(RS_NVDA_Symbol, RS_NVDA_LotSize, InpDynamicStockLotCap), + RS_NVDA_MagicNumber); + + if(EnableRSIScalpingTSLA) + ProcessRSIScalping(rsTSLAData, RS_TSLA_Symbol, RS_TSLA_TimeFrame, RS_TSLA_RSI_Period, RS_TSLA_RSI_Applied_Price, + RS_TSLA_RSI_Overbought, RS_TSLA_RSI_Oversold, RS_TSLA_RSI_Target_Buy, RS_TSLA_RSI_Target_Sell, + RS_TSLA_BarsToWait, + DynamicLotForSymbol(RS_TSLA_Symbol, RS_TSLA_LotSize, InpDynamicStockLotCap), + RS_TSLA_MagicNumber); + + if(EnableRSIScalpingXAUUSD) + ProcessRSIScalping(rsXAUUSDData, RS_XAUUSD_Symbol, RS_XAUUSD_TimeFrame, RS_XAUUSD_RSI_Period, RS_XAUUSD_RSI_Applied_Price, + RS_XAUUSD_RSI_Overbought, RS_XAUUSD_RSI_Oversold, RS_XAUUSD_RSI_Target_Buy, RS_XAUUSD_RSI_Target_Sell, + RS_XAUUSD_BarsToWait, DynamicLotForSymbol(RS_XAUUSD_Symbol, RS_XAUUSD_LotSize), RS_XAUUSD_MagicNumber); + + if(EnableRSIReversalAsianEURUSD) + ProcessRSIReversalAsian(rraEURUSDData, DynamicLotForSymbol(RRA_EURUSD_Symbol, RRA_EURUSD_MaxLotSize)); + + if(EnableRSIReversalAsianAUDUSD) + ProcessRSIReversalAsian(rraAUDUSDData, DynamicLotForSymbol(RRA_AUDUSD_Symbol, RRA_AUDUSD_MaxLotSize)); +} + +//+------------------------------------------------------------------+ diff --git a/frontline/MQL5/_united_dynamic/report.png b/frontline/MQL5/_united_dynamic/report.png new file mode 100644 index 0000000000000000000000000000000000000000..a174d73e8892fb14262661005155b71297b1e0fd GIT binary patch literal 29959 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 z

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 QpoiMmQM +#include +#include +#include +#include "MagicNumberHelpers.mqh" +#include "PerformanceEvaluator.mqh" + +//+------------------------------------------------------------------+ +//| Strategy Enable/Disable Switches | +//+------------------------------------------------------------------+ +input group "=== Strategy Enable/Disable ===" +input bool EnableDarvasBox = true; +input bool EnableEMASlopeDistance = true; +input bool EnableRSICrossOverReversal = true; +input bool EnableRSIMidPointHijack = true; +input bool EnableRSIScalpingAPPL = true; +input bool EnableRSIScalpingBTCUSD = true; +input bool EnableRSIScalpingNVDA = true; +input bool EnableRSIScalpingTSLA = true; +input bool EnableRSIScalpingXAUUSD = true; + +//+------------------------------------------------------------------+ +//| Strategy 1: DarvasBoxXAUUSD | +//+------------------------------------------------------------------+ +input group "=== DarvasBox Strategy ===" +input string DB_Symbol = "XAUUSD"; +input int DB_BoxPeriod = 165; +input double DB_BoxDeviation = 30000; // Increased to allow larger ranges (was 25140) +input int DB_VolumeThreshold = 0; // Set to 0 to disable volume threshold check. Volume data from indicator used instead. +input double DB_StopLoss = 1665; +input double DB_TakeProfit = 3685; +input bool DB_EnableLogging = false; +input color DB_BoxColor = clrBlue; +input int DB_BoxWidth = 1; +input ENUM_TIMEFRAMES DB_TrendTimeframe = PERIOD_H2; +input int DB_MA_Period = 125; +input ENUM_MA_METHOD DB_MA_Method = MODE_EMA; +input ENUM_APPLIED_PRICE DB_MA_Price = PRICE_WEIGHTED; +input double DB_TrendThreshold = 4.94; +input int DB_VolumeMA_Period = 110; +input double DB_VolumeThresholdMultiplier = 1.5; +input int DB_MagicNumber = 135790; + +//+------------------------------------------------------------------+ +//| Strategy 2: EMASlopeDistanceCocktailXAUUSD | +//| PEPPERSTONE US: Gold symbol is typically "XAUUSD" or "GOLD" | +//+------------------------------------------------------------------+ +input group "=== EMA Slope Distance Strategy ===" +input string ES_Symbol = "XAUUSD"; +input int ES_EMA_Periode = 46; +input double ES_PreisSchwelle = 600.0; +input double ES_SteigungSchwelle = 80.0; +input int ES_ÜberwachungTimeout = 800; +input double ES_TrailingStop = 250.0; +input double ES_LotGröße = 0.03; +input int ES_MagicNumber = 12350; +input bool ES_UseSpreadAdjustment = true; +input ENUM_TIMEFRAMES ES_Timeframe = PERIOD_H1; +input bool ES_UseBarData = true; +input int ES_MaxTradesPerCrossover = 9; +input int ES_ProfitCheckBars = 18; +input bool ES_CloseUnprofitableTrades = true; + +//+------------------------------------------------------------------+ +//| Strategy 3: RSICrossOverReversalXAUUSD | +//| PEPPERSTONE US: Gold symbol is typically "XAUUSD" or "GOLD" | +//+------------------------------------------------------------------+ +input group "=== RSI CrossOver Reversal Strategy ===" +input string RC_Symbol = "XAUUSD"; +input int RC_MagicNumber = 7; +input int RC_rsiPeriod = 19; +input int RC_overboughtLevel = 93; +input int RC_oversoldLevel = 22; +input double RC_entryRSIBuySpread = 0; +input double RC_entryRSISellSpread = 0; +input double RC_lotSize = 0.01; +input int RC_slippage = 3; +input int RC_cooldownSeconds = 209; +input ENUM_TIMEFRAMES RC_TimeFrame1 = PERIOD_M1; +input ENUM_TIMEFRAMES RC_TimeFrame2 = PERIOD_M1; +input ENUM_TIMEFRAMES RC_BarTimeFrame = PERIOD_M12; +input int RC_emaPeriod = 140; +input double RC_emaSlopeThreshold = 105; +input double RC_exitBuyRSI = 86; +input double RC_exitSellRSI = 10; +input double RC_TrailingStop = 295; +input double RC_emaDistanceThreshold = 165; +input int RC_tradingHourOneBegin = 24; +input int RC_tradingHourOneEnd = 22; +input int RC_tradingHourTwoBegin = 6; +input int RC_tradingHourTwoEnd = 19; +input bool RC_Sunday = false; +input bool RC_Monday = false; +input bool RC_Tuesday = true; +input bool RC_Wednesday = true; +input bool RC_Thursday = true; +input bool RC_Friday = false; +input bool RC_Saturday = false; + +//+------------------------------------------------------------------+ +//| Strategy 4: RSIMidPointHijackXAUUSD | +//| PEPPERSTONE US: Gold symbol is typically "XAUUSD" or "GOLD" | +//+------------------------------------------------------------------+ +input group "=== RSI MidPoint Hijack Strategy ===" +input string RM_Symbol = "XAUUSD"; +input ENUM_TIMEFRAMES RM_InpTimeframe = PERIOD_H1; +input double RM_InpLotSize = 0.02; +input int RM_InpMagicNumberRSIFollow = 1001; +input int RM_InpMagicNumberRSIReverse = 1002; +input int RM_InpMagicNumberEMACross = 1003; +input bool RM_InpEnableRSIFollow = true; +input bool RM_InpEnableRSIReverse = true; +input bool RM_InpEnableEMACross = true; +input bool RM_InpEnableStrategyLock = false; +input double RM_InpLockProfitThreshold = 0.0; +input bool RM_InpCloseOppositeTrades = false; +input int RM_InpRSIPeriod = 32; +input int RM_InpRSIOverbought = 78; +input int RM_InpRSIOversold = 46; +input int RM_InpRSIExitLevel = 44; +input int RM_InpRSIFollowStartHour = 23; +input int RM_InpRSIFollowEndHour = 8; +input bool RM_InpRSIFollowCloseOutsideHours = false; +input int RM_InpRSIReversePeriod = 59; +input int RM_InpRSIReverseOverbought = 51; +input int RM_InpRSIReverseOversold = 49; +input int RM_InpRSIReverseCrossLevel = 53; +input int RM_InpRSIReverseExitLevel = 48; +input int RM_InpRSIReverseStartHour = 7; +input int RM_InpRSIReverseEndHour = 13; +input bool RM_InpRSIReverseCloseOutsideHours = false; +input int RM_InpRSIReverseCooldownBars = 15; +input bool RM_InpRSIReverseCooldownOnLoss = true; +input int RM_InpEMAPeriod = 120; +input int RM_InpEMACrossStartHour = 8; +input int RM_InpEMACrossEndHour = 14; +input bool RM_InpEMACrossCloseOutsideHours = true; +input bool RM_InpUseEMADistanceEntry = true; +input double RM_InpEMADistancePips = 160.0; +input int RM_InpEMADistancePeriod = 26; + +//+------------------------------------------------------------------+ +//| Strategy 5-10: RSI Scalping Strategies | +//| Each RSI Scalping strategy trades on its own symbol: | +//| - APPL: Apple stock (AAPL) | +//| - BTCUSD: Bitcoin/USD | +//| - NVDA: NVIDIA stock | +//| - TSLA: Tesla stock | +//| - XAUUSD: Gold/USD | +//| | +//| PEPPERSTONE US SYMBOL FORMATS: | +//| - Stocks may use: "AAPL.US", "NASDAQ:AAPL", or just "AAPL" | +//| - To find correct symbols: | +//| 1. Open Market Watch (Ctrl+M) | +//| 2. Right-click > Show All | +//| 3. Search for the stock name | +//| 4. Use the exact symbol name shown | +//+------------------------------------------------------------------+ +input group "=== RSI Scalping APPL (AAPL) - Pepperstone US ===" +input string RS_APPL_Symbol = "AAPL.US"; // Try: "AAPL.US", "NASDAQ:AAPL", or "AAPL" +input ENUM_TIMEFRAMES RS_APPL_TimeFrame = PERIOD_M10; +input int RS_APPL_RSI_Period = 14; +input ENUM_APPLIED_PRICE RS_APPL_RSI_Applied_Price = PRICE_CLOSE; +input double RS_APPL_RSI_Overbought = 80; +input double RS_APPL_RSI_Oversold = 78; +input double RS_APPL_RSI_Target_Buy = 94; +input double RS_APPL_RSI_Target_Sell = 44; +input int RS_APPL_BarsToWait = 7; +input double RS_APPL_LotSize = 25; +input int RS_APPL_MagicNumber = 20001; +input int RS_APPL_Slippage = 3; + +input group "=== RSI Scalping BTCUSD ===" +input string RS_BTCUSD_Symbol = "BTCUSD"; // Pepperstone may use: "BTCUSD", "BTC/USD", or "BTCUSD.c" +input ENUM_TIMEFRAMES RS_BTCUSD_TimeFrame = PERIOD_H1; +input int RS_BTCUSD_RSI_Period = 14; +input ENUM_APPLIED_PRICE RS_BTCUSD_RSI_Applied_Price = PRICE_CLOSE; +input double RS_BTCUSD_RSI_Overbought = 90; +input double RS_BTCUSD_RSI_Oversold = 73; +input double RS_BTCUSD_RSI_Target_Buy = 88; +input double RS_BTCUSD_RSI_Target_Sell = 48; +input int RS_BTCUSD_BarsToWait = 6; +input double RS_BTCUSD_LotSize = 0.1; +input int RS_BTCUSD_MagicNumber = 123459123; +input int RS_BTCUSD_Slippage = 3; + +input group "=== RSI Scalping NVDA - Pepperstone US ===" +input string RS_NVDA_Symbol = "NVDA.US"; // Try: "NVDA.US", "NASDAQ:NVDA", or "NVDA" +input ENUM_TIMEFRAMES RS_NVDA_TimeFrame = PERIOD_M15; +input int RS_NVDA_RSI_Period = 8; +input ENUM_APPLIED_PRICE RS_NVDA_RSI_Applied_Price = PRICE_CLOSE; +input double RS_NVDA_RSI_Overbought = 36; +input double RS_NVDA_RSI_Oversold = 38; +input double RS_NVDA_RSI_Target_Buy = 90; +input double RS_NVDA_RSI_Target_Sell = 70; +input int RS_NVDA_BarsToWait = 5; +input double RS_NVDA_LotSize = 50; +input int RS_NVDA_MagicNumber = 20003; +input int RS_NVDA_Slippage = 3; + +input group "=== RSI Scalping TSLA - Pepperstone US ===" +input string RS_TSLA_Symbol = "TSLA.US"; // Try: "TSLA.US", "NASDAQ:TSLA", or "TSLA" +input ENUM_TIMEFRAMES RS_TSLA_TimeFrame = PERIOD_H1; +input int RS_TSLA_RSI_Period = 14; +input ENUM_APPLIED_PRICE RS_TSLA_RSI_Applied_Price = PRICE_CLOSE; +input double RS_TSLA_RSI_Overbought = 54; +input double RS_TSLA_RSI_Oversold = 73; +input double RS_TSLA_RSI_Target_Buy = 87; +input double RS_TSLA_RSI_Target_Sell = 33; +input int RS_TSLA_BarsToWait = 1; +input double RS_TSLA_LotSize = 50; +input int RS_TSLA_MagicNumber = 125421321; +input int RS_TSLA_Slippage = 3; + +input group "=== RSI Scalping XAUUSD ===" +input string RS_XAUUSD_Symbol = "XAUUSD"; +input ENUM_TIMEFRAMES RS_XAUUSD_TimeFrame = PERIOD_H1; +input int RS_XAUUSD_RSI_Period = 14; +input ENUM_APPLIED_PRICE RS_XAUUSD_RSI_Applied_Price = PRICE_CLOSE; +input double RS_XAUUSD_RSI_Overbought = 71; +input double RS_XAUUSD_RSI_Oversold = 57; +input double RS_XAUUSD_RSI_Target_Buy = 80; +input double RS_XAUUSD_RSI_Target_Sell = 57; +input int RS_XAUUSD_BarsToWait = 4; +input double RS_XAUUSD_LotSize = 0.1; +input int RS_XAUUSD_MagicNumber = 129102315; +input int RS_XAUUSD_Slippage = 3; + +//+------------------------------------------------------------------+ +//| Global Variables - DarvasBox | +//+------------------------------------------------------------------+ +struct DarvasBoxData { + string symbol; + bool isInitialized; + double boxHigh; + double boxLow; + bool boxFormed; + datetime lastBoxTime; + string boxName; + double minStopLevel; + double point; + CTrade trade; + int maHandle; + int volumeHandle; + datetime lastBarTime; +}; + +//+------------------------------------------------------------------+ +//| Global Variables - EMA Slope Distance | +//+------------------------------------------------------------------+ +struct EMASlopeData { + string symbol; + bool isInitialized; + int ema_handle; + double ema_array[]; + datetime letzte_überwachung_zeit; + bool überwachung_aktiv; + bool preis_trigger_aktiv; + bool steigung_trigger_aktiv; + int ticket; + CTrade trade; + int trades_in_current_crossover; + bool crossover_detected; + datetime trade_open_time; + datetime last_bar_time; +}; + +//+------------------------------------------------------------------+ +//| Global Variables - RSI CrossOver Reversal | +//+------------------------------------------------------------------+ +struct RSICrossOverData { + string symbol; + bool isInitialized; + int rsiHandle; + int emaHandle; + double previousRSIDef; + CTrade trade; + datetime lastTradeTime; + datetime bartime; + bool WeekDays[7]; + datetime lastBarTime; +}; + +//+------------------------------------------------------------------+ +//| Global Variables - RSI MidPoint Hijack | +//+------------------------------------------------------------------+ +struct RSIMidPointData { + string symbol; + bool isInitialized; + int rsiHandle; + int rsiReverseHandle; + int emaHandle; + bool rsiOverbought; + bool rsiOversold; + bool rsiReverseOverbought; + bool rsiReverseOversold; + CTrade trade; + CPositionInfo positionInfo; + bool emaCrossBuySignal; + bool emaCrossSellSignal; + int emaCrossSignalBar; + datetime lastBarTime; + datetime rsiReverseLastCloseTime; + bool rsiReverseInCooldown; + double lastBarRSI; + double lastBarRSIReverse; + double lastBarEMA; + double lastBarClose; + double lastBarEMAPrev; + double lastBarClosePrev; +}; + +//+------------------------------------------------------------------+ +//| Global Variables - RSI Scalping | +//+------------------------------------------------------------------+ +struct RSIScalpingData { + string symbol; + bool isInitialized; + CTrade trade; + int rsi_handle; + double rsi_buffer[]; + double rsi_prev; + double rsi_current; + double rsi_two_bars_ago; + bool position_open; + ulong position_ticket; + ENUM_POSITION_TYPE current_position_type; + datetime last_bar_time; + bool rsi_against_position; + int bars_against_count; +}; + +//+------------------------------------------------------------------+ +//| Global Strategy Instances | +//+------------------------------------------------------------------+ +DarvasBoxData dbData; +EMASlopeData esData; +RSICrossOverData rcData; +RSIMidPointData rmData; +RSIScalpingData rsAPPLData; +RSIScalpingData rsBTCUSDData; +RSIScalpingData rsNVDAData; +RSIScalpingData rsTSLAData; +RSIScalpingData rsXAUUSDData; + +//+------------------------------------------------------------------+ +//| Global Variables for Dynamic Lot Sizes | +//+------------------------------------------------------------------+ +// All strategies start with minimum lot size for safety (will be adjusted by performance evaluator) +double g_DB_LotSize = 0.01; // DarvasBox uses fixed lot size +double g_ES_LotSize = 0.01; // EMA Slope Distance - start with minimum +double g_RC_LotSize = 0.01; // RSI CrossOver Reversal - start with minimum +double g_RM_LotSize = 0.01; // RSI MidPoint Hijack - start with minimum +double g_RS_APPL_LotSize = 5.0; // Stock - start with stock minimum (5.0) +double g_RS_BTCUSD_LotSize = 0.01; // Crypto - start with forex minimum (0.01) +double g_RS_NVDA_LotSize = 5.0; // Stock - start with stock minimum (5.0) +double g_RS_TSLA_LotSize = 5.0; // Stock - start with stock minimum (5.0) +double g_RS_XAUUSD_LotSize = 0.01; // Forex - start with forex minimum (0.01) + +//+------------------------------------------------------------------+ +//| Expert initialization function | +//+------------------------------------------------------------------+ +int OnInit() +{ + int initResult = INIT_SUCCEEDED; + + // Initialize Performance Evaluator + InitPerformanceTracking(); + + // Initialize strategies - log warnings but don't fail entire EA if symbol unavailable + if(EnableDarvasBox) + { + if(!InitDarvasBox(DB_Symbol)) + Print("Warning: DarvasBox strategy failed to initialize for symbol '", DB_Symbol, "'"); + else + RegisterStrategy("DarvasBox", DB_MagicNumber, 0.01, DB_Symbol); // Fixed lot size + } + + if(EnableEMASlopeDistance) + { + if(!InitEMASlopeDistance(ES_Symbol)) + Print("Warning: EMASlopeDistance strategy failed to initialize for symbol '", ES_Symbol, "'"); + else + { + RegisterStrategy("EMASlopeDistance", ES_MagicNumber, ES_LotGröße, ES_Symbol); + // Start with minimum lot size (will be adjusted by performance evaluator) + double minLot = GetMinLotSizeForSymbol(ES_Symbol); + g_ES_LotSize = minLot; + } + } + + if(EnableRSICrossOverReversal) + { + if(!InitRSICrossOverReversal(RC_Symbol)) + Print("Warning: RSICrossOverReversal strategy failed to initialize for symbol '", RC_Symbol, "'"); + else + { + RegisterStrategy("RSICrossOverReversal", RC_MagicNumber, RC_lotSize, RC_Symbol); + // Start with minimum lot size (will be adjusted by performance evaluator) + double minLot = GetMinLotSizeForSymbol(RC_Symbol); + g_RC_LotSize = minLot; + } + } + + if(EnableRSIMidPointHijack) + { + if(!InitRSIMidPointHijack(RM_Symbol)) + Print("Warning: RSIMidPointHijack strategy failed to initialize for symbol '", RM_Symbol, "'"); + else + { + RegisterStrategy("RSIMidPointHijack", RM_InpMagicNumberRSIFollow, RM_InpLotSize, RM_Symbol); + RegisterStrategy("RSIMidPointHijack_Reverse", RM_InpMagicNumberRSIReverse, RM_InpLotSize, RM_Symbol); + RegisterStrategy("RSIMidPointHijack_EMACross", RM_InpMagicNumberEMACross, RM_InpLotSize, RM_Symbol); + // Start with minimum lot size (will be adjusted by performance evaluator) + double minLot = GetMinLotSizeForSymbol(RM_Symbol); + g_RM_LotSize = minLot; + } + } + + // Initialize RSI Scalping strategies - don't fail entire EA if symbol unavailable + if(EnableRSIScalpingAPPL) + { + InitRSIScalping(rsAPPLData, RS_APPL_Symbol, RS_APPL_TimeFrame, RS_APPL_RSI_Period, RS_APPL_RSI_Applied_Price, RS_APPL_MagicNumber, RS_APPL_Slippage); + RegisterStrategy("RSIScalpingAPPL", RS_APPL_MagicNumber, RS_APPL_LotSize, RS_APPL_Symbol); + // Start with minimum lot size (will be adjusted by performance evaluator) + double minLot = GetMinLotSizeForSymbol(RS_APPL_Symbol); + g_RS_APPL_LotSize = minLot; + } + + if(EnableRSIScalpingBTCUSD) + { + InitRSIScalping(rsBTCUSDData, RS_BTCUSD_Symbol, RS_BTCUSD_TimeFrame, RS_BTCUSD_RSI_Period, RS_BTCUSD_RSI_Applied_Price, RS_BTCUSD_MagicNumber, RS_BTCUSD_Slippage); + RegisterStrategy("RSIScalpingBTCUSD", RS_BTCUSD_MagicNumber, RS_BTCUSD_LotSize, RS_BTCUSD_Symbol); + // Start with minimum lot size (will be adjusted by performance evaluator) + double minLot = GetMinLotSizeForSymbol(RS_BTCUSD_Symbol); + g_RS_BTCUSD_LotSize = minLot; + } + + if(EnableRSIScalpingNVDA) + { + InitRSIScalping(rsNVDAData, RS_NVDA_Symbol, RS_NVDA_TimeFrame, RS_NVDA_RSI_Period, RS_NVDA_RSI_Applied_Price, RS_NVDA_MagicNumber, RS_NVDA_Slippage); + RegisterStrategy("RSIScalpingNVDA", RS_NVDA_MagicNumber, RS_NVDA_LotSize, RS_NVDA_Symbol); + // Start with minimum lot size (will be adjusted by performance evaluator) + double minLot = GetMinLotSizeForSymbol(RS_NVDA_Symbol); + g_RS_NVDA_LotSize = minLot; + } + + if(EnableRSIScalpingTSLA) + { + InitRSIScalping(rsTSLAData, RS_TSLA_Symbol, RS_TSLA_TimeFrame, RS_TSLA_RSI_Period, RS_TSLA_RSI_Applied_Price, RS_TSLA_MagicNumber, RS_TSLA_Slippage); + RegisterStrategy("RSIScalpingTSLA", RS_TSLA_MagicNumber, RS_TSLA_LotSize, RS_TSLA_Symbol); + // Start with minimum lot size (will be adjusted by performance evaluator) + double minLot = GetMinLotSizeForSymbol(RS_TSLA_Symbol); + g_RS_TSLA_LotSize = minLot; + } + + if(EnableRSIScalpingXAUUSD) + { + InitRSIScalping(rsXAUUSDData, RS_XAUUSD_Symbol, RS_XAUUSD_TimeFrame, RS_XAUUSD_RSI_Period, RS_XAUUSD_RSI_Applied_Price, RS_XAUUSD_MagicNumber, RS_XAUUSD_Slippage); + RegisterStrategy("RSIScalpingXAUUSD", RS_XAUUSD_MagicNumber, RS_XAUUSD_LotSize, RS_XAUUSD_Symbol); + // Start with minimum lot size (will be adjusted by performance evaluator) + double minLot = GetMinLotSizeForSymbol(RS_XAUUSD_Symbol); + g_RS_XAUUSD_LotSize = minLot; + } + + // Load adjusted lot sizes from performance evaluator + if(PE_EnableAutoAdjustment) + { + double adjustedLot; + adjustedLot = GetStrategyLotSize("EMASlopeDistance", ES_MagicNumber); + if(adjustedLot > 0) g_ES_LotSize = adjustedLot; + + adjustedLot = GetStrategyLotSize("RSICrossOverReversal", RC_MagicNumber); + if(adjustedLot > 0) g_RC_LotSize = adjustedLot; + + adjustedLot = GetStrategyLotSize("RSIMidPointHijack", RM_InpMagicNumberRSIFollow); + if(adjustedLot > 0) g_RM_LotSize = adjustedLot; + + adjustedLot = GetStrategyLotSize("RSIScalpingAPPL", RS_APPL_MagicNumber); + if(adjustedLot > 0) g_RS_APPL_LotSize = adjustedLot; + + adjustedLot = GetStrategyLotSize("RSIScalpingBTCUSD", RS_BTCUSD_MagicNumber); + if(adjustedLot > 0) g_RS_BTCUSD_LotSize = adjustedLot; + + adjustedLot = GetStrategyLotSize("RSIScalpingNVDA", RS_NVDA_MagicNumber); + if(adjustedLot > 0) g_RS_NVDA_LotSize = adjustedLot; + + adjustedLot = GetStrategyLotSize("RSIScalpingTSLA", RS_TSLA_MagicNumber); + if(adjustedLot > 0) g_RS_TSLA_LotSize = adjustedLot; + + adjustedLot = GetStrategyLotSize("RSIScalpingXAUUSD", RS_XAUUSD_MagicNumber); + if(adjustedLot > 0) g_RS_XAUUSD_LotSize = adjustedLot; + } + + Print("United EA initialized. Active strategies: ", + (EnableDarvasBox ? "DarvasBox " : ""), + (EnableEMASlopeDistance ? "EMASlope " : ""), + (EnableRSICrossOverReversal ? "RSICrossOver " : ""), + (EnableRSIMidPointHijack ? "RSIMidPoint " : ""), + (EnableRSIScalpingAPPL ? "RSIScalpingAPPL " : ""), + (EnableRSIScalpingBTCUSD ? "RSIScalpingBTCUSD " : ""), + (EnableRSIScalpingNVDA ? "RSIScalpingNVDA " : ""), + (EnableRSIScalpingTSLA ? "RSIScalpingTSLA " : ""), + (EnableRSIScalpingXAUUSD ? "RSIScalpingXAUUSD " : "")); + + if(PE_EnableLogging) + Print(GetPerformanceSummary()); + + return initResult; +} + +//+------------------------------------------------------------------+ +//| Expert deinitialization function | +//+------------------------------------------------------------------+ +void OnDeinit(const int reason) +{ + if(EnableDarvasBox) + DeinitDarvasBox(); + + if(EnableEMASlopeDistance) + DeinitEMASlopeDistance(); + + if(EnableRSICrossOverReversal) + DeinitRSICrossOverReversal(); + + if(EnableRSIMidPointHijack) + DeinitRSIMidPointHijack(); + + if(EnableRSIScalpingAPPL) + DeinitRSIScalping(rsAPPLData); + + if(EnableRSIScalpingBTCUSD) + DeinitRSIScalping(rsBTCUSDData); + + if(EnableRSIScalpingNVDA) + DeinitRSIScalping(rsNVDAData); + + if(EnableRSIScalpingTSLA) + DeinitRSIScalping(rsTSLAData); + + if(EnableRSIScalpingXAUUSD) + DeinitRSIScalping(rsXAUUSDData); + + Print("United EA deinitialized. Reason: ", reason); +} + +//+------------------------------------------------------------------+ +//| Expert tick function | +//+------------------------------------------------------------------+ +void OnTick() +{ + // Process performance evaluation (checks for quarter end and adjusts lot sizes) + ProcessPerformanceEvaluation(); + + // Update lot sizes from performance evaluator if auto-adjustment is enabled + if(PE_EnableAutoAdjustment) + { + double adjustedLot; + adjustedLot = GetStrategyLotSize("EMASlopeDistance", ES_MagicNumber); + if(adjustedLot > 0) g_ES_LotSize = adjustedLot; + + adjustedLot = GetStrategyLotSize("RSICrossOverReversal", RC_MagicNumber); + if(adjustedLot > 0) g_RC_LotSize = adjustedLot; + + adjustedLot = GetStrategyLotSize("RSIMidPointHijack", RM_InpMagicNumberRSIFollow); + if(adjustedLot > 0) g_RM_LotSize = adjustedLot; + + adjustedLot = GetStrategyLotSize("RSIScalpingAPPL", RS_APPL_MagicNumber); + if(adjustedLot > 0) g_RS_APPL_LotSize = adjustedLot; + + adjustedLot = GetStrategyLotSize("RSIScalpingBTCUSD", RS_BTCUSD_MagicNumber); + if(adjustedLot > 0) g_RS_BTCUSD_LotSize = adjustedLot; + + adjustedLot = GetStrategyLotSize("RSIScalpingNVDA", RS_NVDA_MagicNumber); + if(adjustedLot > 0) g_RS_NVDA_LotSize = adjustedLot; + + adjustedLot = GetStrategyLotSize("RSIScalpingTSLA", RS_TSLA_MagicNumber); + if(adjustedLot > 0) g_RS_TSLA_LotSize = adjustedLot; + + adjustedLot = GetStrategyLotSize("RSIScalpingXAUUSD", RS_XAUUSD_MagicNumber); + if(adjustedLot > 0) g_RS_XAUUSD_LotSize = adjustedLot; + } + + if(EnableDarvasBox) + ProcessDarvasBox(DB_Symbol); + + if(EnableEMASlopeDistance) + ProcessEMASlopeDistance(ES_Symbol); + + if(EnableRSICrossOverReversal) + ProcessRSICrossOverReversal(RC_Symbol); + + if(EnableRSIMidPointHijack) + ProcessRSIMidPointHijack(RM_Symbol); + + if(EnableRSIScalpingAPPL) + ProcessRSIScalping(rsAPPLData, RS_APPL_Symbol, RS_APPL_TimeFrame, RS_APPL_RSI_Period, RS_APPL_RSI_Applied_Price, + RS_APPL_RSI_Overbought, RS_APPL_RSI_Oversold, RS_APPL_RSI_Target_Buy, RS_APPL_RSI_Target_Sell, + RS_APPL_BarsToWait, g_RS_APPL_LotSize, RS_APPL_MagicNumber); + + if(EnableRSIScalpingBTCUSD) + ProcessRSIScalping(rsBTCUSDData, RS_BTCUSD_Symbol, RS_BTCUSD_TimeFrame, RS_BTCUSD_RSI_Period, RS_BTCUSD_RSI_Applied_Price, + RS_BTCUSD_RSI_Overbought, RS_BTCUSD_RSI_Oversold, RS_BTCUSD_RSI_Target_Buy, RS_BTCUSD_RSI_Target_Sell, + RS_BTCUSD_BarsToWait, g_RS_BTCUSD_LotSize, RS_BTCUSD_MagicNumber); + + if(EnableRSIScalpingNVDA) + ProcessRSIScalping(rsNVDAData, RS_NVDA_Symbol, RS_NVDA_TimeFrame, RS_NVDA_RSI_Period, RS_NVDA_RSI_Applied_Price, + RS_NVDA_RSI_Overbought, RS_NVDA_RSI_Oversold, RS_NVDA_RSI_Target_Buy, RS_NVDA_RSI_Target_Sell, + RS_NVDA_BarsToWait, g_RS_NVDA_LotSize, RS_NVDA_MagicNumber); + + if(EnableRSIScalpingTSLA) + ProcessRSIScalping(rsTSLAData, RS_TSLA_Symbol, RS_TSLA_TimeFrame, RS_TSLA_RSI_Period, RS_TSLA_RSI_Applied_Price, + RS_TSLA_RSI_Overbought, RS_TSLA_RSI_Oversold, RS_TSLA_RSI_Target_Buy, RS_TSLA_RSI_Target_Sell, + RS_TSLA_BarsToWait, g_RS_TSLA_LotSize, RS_TSLA_MagicNumber); + + if(EnableRSIScalpingXAUUSD) + ProcessRSIScalping(rsXAUUSDData, RS_XAUUSD_Symbol, RS_XAUUSD_TimeFrame, RS_XAUUSD_RSI_Period, RS_XAUUSD_RSI_Applied_Price, + RS_XAUUSD_RSI_Overbought, RS_XAUUSD_RSI_Oversold, RS_XAUUSD_RSI_Target_Buy, RS_XAUUSD_RSI_Target_Sell, + RS_XAUUSD_BarsToWait, g_RS_XAUUSD_LotSize, RS_XAUUSD_MagicNumber); +} + +//+------------------------------------------------------------------+ +//| Include strategy implementations | +//+------------------------------------------------------------------+ +#include "Strategies/DarvasBoxStrategy.mqh" +#include "Strategies/EMASlopeDistanceStrategy.mqh" +#include "Strategies/RSICrossOverReversalStrategy.mqh" +#include "Strategies/RSIMidPointHijackStrategy.mqh" +#include "Strategies/RSIScalpingStrategy.mqh" + +//+------------------------------------------------------------------+ diff --git a/frontline/MQL5/_united_dynamic_cent/MagicNumberHelpers.mqh b/frontline/MQL5/_united_dynamic_cent/MagicNumberHelpers.mqh new file mode 100644 index 0000000..dc1fa31 --- /dev/null +++ b/frontline/MQL5/_united_dynamic_cent/MagicNumberHelpers.mqh @@ -0,0 +1,159 @@ +//+------------------------------------------------------------------+ +//| MagicNumberHelpers.mqh | +//| Copyright 2025, MetaQuotes Ltd. | +//| https://www.mql5.com | +//+------------------------------------------------------------------+ +#property copyright "Copyright 2025, MetaQuotes Ltd." +#property link "https://www.mql5.com" +#property version "1.00" + +//+------------------------------------------------------------------+ +//| Select position by symbol and magic number | +//+------------------------------------------------------------------+ +bool PositionSelectByMagic(string symbol, ulong magic_number) +{ + // First try to find position by symbol + if(!PositionSelect(symbol)) + return false; + + // Check if the selected position has the correct magic number + if(PositionGetInteger(POSITION_MAGIC) != magic_number) + { + // Position exists but wrong magic number, search all positions + for(int i = PositionsTotal() - 1; i >= 0; i--) + { + if(PositionGetTicket(i) > 0) + { + if(PositionGetString(POSITION_SYMBOL) == symbol && + PositionGetInteger(POSITION_MAGIC) == magic_number) + { + return true; + } + } + } + return false; + } + + return true; +} + +//+------------------------------------------------------------------+ +//| Select position by ticket and verify magic number and symbol | +//+------------------------------------------------------------------+ +bool PositionSelectByTicketAndMagic(ulong ticket, ulong magic_number) +{ + if(!PositionSelectByTicket(ticket)) + return false; + + return (PositionGetInteger(POSITION_MAGIC) == magic_number); +} + +//+------------------------------------------------------------------+ +//| Select position by ticket and verify symbol, magic number | +//+------------------------------------------------------------------+ +bool PositionSelectByTicketSymbolAndMagic(ulong ticket, string symbol, ulong magic_number) +{ + if(!PositionSelectByTicket(ticket)) + return false; + + return (PositionGetString(POSITION_SYMBOL) == symbol && + PositionGetInteger(POSITION_MAGIC) == magic_number); +} + +//+------------------------------------------------------------------+ +//| Check if position exists with correct magic number | +//+------------------------------------------------------------------+ +bool PositionExistsByMagic(string symbol, ulong magic_number) +{ + return PositionSelectByMagic(symbol, magic_number); +} + +//+------------------------------------------------------------------+ +//| Get position ticket by symbol and magic number | +//+------------------------------------------------------------------+ +ulong GetPositionTicketByMagic(string symbol, ulong magic_number) +{ + for(int i = PositionsTotal() - 1; i >= 0; i--) + { + ulong ticket = PositionGetTicket(i); + if(ticket > 0) + { + if(PositionGetString(POSITION_SYMBOL) == symbol && + PositionGetInteger(POSITION_MAGIC) == magic_number) + { + return ticket; + } + } + } + return 0; +} + +//+------------------------------------------------------------------+ +//| Close position by symbol and magic number | +//+------------------------------------------------------------------+ +bool ClosePositionByMagic(CTrade &trade_obj, string symbol, ulong magic_number) +{ + ulong ticket = GetPositionTicketByMagic(symbol, magic_number); + if(ticket == 0) + return false; + + return trade_obj.PositionClose(ticket); +} + +//+------------------------------------------------------------------+ +//| Modify position by symbol and magic number | +//+------------------------------------------------------------------+ +bool ModifyPositionByMagic(CTrade &trade_obj, string symbol, ulong magic_number, + double sl, double tp) +{ + ulong ticket = GetPositionTicketByMagic(symbol, magic_number); + if(ticket == 0) + return false; + + return trade_obj.PositionModify(ticket, sl, tp); +} + +//+------------------------------------------------------------------+ +//| Get position profit by symbol and magic number | +//+------------------------------------------------------------------+ +double GetPositionProfitByMagic(string symbol, ulong magic_number) +{ + if(!PositionSelectByMagic(symbol, magic_number)) + return 0.0; + + return PositionGetDouble(POSITION_PROFIT); +} + +//+------------------------------------------------------------------+ +//| Get position type by symbol and magic number | +//+------------------------------------------------------------------+ +ENUM_POSITION_TYPE GetPositionTypeByMagic(string symbol, ulong magic_number) +{ + if(!PositionSelectByMagic(symbol, magic_number)) + return WRONG_VALUE; + + return (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); +} + +//+------------------------------------------------------------------+ +//| Count positions by symbol and magic number | +//+------------------------------------------------------------------+ +int CountPositionsByMagic(string symbol, ulong magic_number) +{ + int count = 0; + for(int i = PositionsTotal() - 1; i >= 0; i--) + { + ulong ticket = PositionGetTicket(i); + if(ticket > 0) + { + if(PositionGetString(POSITION_SYMBOL) == symbol && + PositionGetInteger(POSITION_MAGIC) == magic_number) + { + count++; + } + } + } + return count; +} + +//+------------------------------------------------------------------+ diff --git a/frontline/MQL5/_united_dynamic_cent/PEPPERSTONE_US_SETUP.md b/frontline/MQL5/_united_dynamic_cent/PEPPERSTONE_US_SETUP.md new file mode 100644 index 0000000..82dc835 --- /dev/null +++ b/frontline/MQL5/_united_dynamic_cent/PEPPERSTONE_US_SETUP.md @@ -0,0 +1,75 @@ +# Pepperstone US - Symbol Setup Guide + +## Finding Correct Symbol Names in MetaTrader 5 + +### Step-by-Step Instructions: + +1. **Open Market Watch Window** + - Press `Ctrl+M` or go to `View > Market Watch` + +2. **Show All Symbols** + - Right-click in the Market Watch window + - Select `Show All` or `Symbols` + - This shows all available symbols from your broker + +3. **Search for Your Symbols** + - Use the search box in the Market Watch window + - Search for: "AAPL", "MSFT", "NVDA", "TSLA", "BTCUSD", "XAUUSD" + +4. **Note the Exact Symbol Name** + - The symbol name shown in Market Watch is what you need to use + - Common formats for Pepperstone US: + - Stocks: `AAPL.US`, `MSFT.US`, `NVDA.US`, `TSLA.US` + - Or: `NASDAQ:AAPL`, `NASDAQ:MSFT`, etc. + - Or: Just `AAPL`, `MSFT`, etc. (if available) + +5. **Add to Market Watch** + - Double-click the symbol to add it to your Market Watch + - Or right-click and select `Show` + +6. **Update EA Inputs** + - Open the EA inputs in MetaTrader 5 + - Update each symbol parameter with the exact name from Market Watch + +## Common Pepperstone US Symbol Formats + +### US Stocks: +- **Apple**: `AAPL.US` or `NASDAQ:AAPL` or `AAPL` +- **Microsoft**: `MSFT.US` or `NASDAQ:MSFT` or `MSFT` +- **NVIDIA**: `NVDA.US` or `NASDAQ:NVDA` or `NVDA` +- **Tesla**: `TSLA.US` or `NASDAQ:TSLA` or `TSLA` + +### Cryptocurrencies: +- **Bitcoin**: `BTCUSD` or `BTC/USD` or `BTCUSD.c` + +### Precious Metals: +- **Gold**: `XAUUSD` or `GOLD` or `XAU/USD` + +## Important Notes: + +1. **Symbol Names are Case-Sensitive**: Use exact capitalization +2. **Add Symbols to Market Watch**: Symbols must be in Market Watch for the EA to access them +3. **Check Trading Hours**: US stocks trade during US market hours (9:30 AM - 4:00 PM ET) +4. **CFD vs Stock**: Pepperstone offers CFDs on stocks, not actual stocks +5. **Spread**: Check the spread for each symbol - some may have wider spreads + +## Troubleshooting: + +### If Symbol Not Found: +1. Check if you're connected to Pepperstone US server +2. Verify your account type supports the symbol +3. Contact Pepperstone support for symbol availability +4. Check if symbol requires special account permissions + +### If EA Shows "Symbol Not Available": +1. Make sure symbol is added to Market Watch +2. Verify symbol name matches exactly (including dots, colons, etc.) +3. Check broker connection status +4. Try different symbol format variations + +## Testing Symbols: + +You can test if a symbol works by: +1. Opening a chart with that symbol +2. If chart opens successfully, the symbol name is correct +3. Use that exact symbol name in the EA inputs diff --git a/frontline/MQL5/_united_dynamic_cent/PerformanceEvaluator.mqh b/frontline/MQL5/_united_dynamic_cent/PerformanceEvaluator.mqh new file mode 100644 index 0000000..1389540 --- /dev/null +++ b/frontline/MQL5/_united_dynamic_cent/PerformanceEvaluator.mqh @@ -0,0 +1,607 @@ +//+------------------------------------------------------------------+ +//| PerformanceEvaluator.mqh | +//| Copyright 2025, MetaQuotes Ltd. | +//| https://www.mql5.com | +//+------------------------------------------------------------------+ +#property copyright "Copyright 2025, MetaQuotes Ltd." +#property link "https://www.mql5.com" +#property version "1.00" + +//+------------------------------------------------------------------+ +//| Performance Metrics Structure | +//+------------------------------------------------------------------+ +struct StrategyPerformance { + string strategyName; + string symbol; // Store symbol to determine if it's a stock + int magicNumber; + double initialLotSize; + double currentLotSize; + double quarterProfit; + double quarterTrades; + double quarterWins; + double quarterLosses; + double maxDrawdown; + double winRate; + datetime quarterStart; + datetime quarterEnd; + bool isActive; + bool inPenaltyMode; // True if strategy is in penalty (worst performer) + double lotSizeBeforePenalty; // Store lot size before penalty + datetime penaltyStartTime; // When penalty started +}; + +//+------------------------------------------------------------------+ +//| Global Performance Tracking | +//+------------------------------------------------------------------+ +StrategyPerformance strategyPerformances[]; +int totalStrategies = 0; +datetime lastMonthCheck = 0; +datetime currentMonthStart = 0; +datetime currentMonthEnd = 0; + +//+------------------------------------------------------------------+ +//| Performance Adjustment Parameters | +//+------------------------------------------------------------------+ +input group "=== Performance Evaluation Settings ===" +input bool PE_EnableAutoAdjustment = true; // Enable automatic lot size adjustment +input double PE_LotSizeIncreasePercent = 10.0; // % increase for top-ranked strategies +input double PE_LotSizeDecreasePercent = 10.0; // % decrease for bottom-ranked strategies +input double PE_MinLotSize = 0.01; // Minimum lot size for forex/crypto +input double PE_MinLotSizeStocks = 5.0; // Minimum lot size for stocks (5-10 range) +input double PE_MaxLotSize = 100.0; // Maximum lot size after adjustment +input int PE_TopPerformersCount = 3; // Number of top strategies to increase lot size +input int PE_BottomPerformersCount = 3; // Number of bottom strategies to decrease lot size +input bool PE_UseWinRateWeight = true; // Consider win rate in ranking (50% profit, 50% win rate) +input bool PE_EnableBlitzPlay = true; // Enable blitz play: worst performer gets minimum lot size penalty +input bool PE_EnableLogging = true; // Enable performance logging + +//+------------------------------------------------------------------+ +//| Initialize Performance Tracking | +//+------------------------------------------------------------------+ +void InitPerformanceTracking() +{ + // Calculate current month dates + MqlDateTime dt; + TimeToStruct(TimeCurrent(), dt); + + // Determine month start (first day of current month) + dt.day = 1; + dt.hour = 0; + dt.min = 0; + dt.sec = 0; + currentMonthStart = StructToTime(dt); + + // Calculate month end (first day of next month - 1 second) + dt.mon += 1; + if(dt.mon > 12) + { + dt.mon = 1; + dt.year++; + } + currentMonthEnd = StructToTime(dt) - 1; // End of last day of month + + lastMonthCheck = TimeCurrent(); + + if(PE_EnableLogging) + { + Print("Performance Evaluator: Initialized"); + Print("Current Month Start: ", TimeToString(currentMonthStart)); + Print("Current Month End: ", TimeToString(currentMonthEnd)); + } +} + +//+------------------------------------------------------------------+ +//| Check if Symbol is a Stock | +//+------------------------------------------------------------------+ +bool IsStockSymbol(string symbol) +{ + // Check if symbol contains common stock indicators + if(StringFind(symbol, ".US") >= 0) return true; + if(StringFind(symbol, "NASDAQ:") >= 0) return true; + if(StringFind(symbol, "NYSE:") >= 0) return true; + + // Note: Symbol category check removed to avoid enum conversion issues + // String-based checks (.US, NASDAQ:, NYSE:, common tickers) are sufficient + + // Common stock tickers (without .US suffix) + string commonStocks[] = {"AAPL", "NVDA", "TSLA", "GOOGL", "AMZN", "META", "AMD", "NFLX"}; + for(int i = 0; i < ArraySize(commonStocks); i++) + { + if(StringFind(symbol, commonStocks[i]) == 0) return true; + } + + return false; +} + +//+------------------------------------------------------------------+ +//| Get Minimum Lot Size for Symbol | +//+------------------------------------------------------------------+ +double GetMinLotSizeForSymbol(string symbol) +{ + if(IsStockSymbol(symbol)) + return PE_MinLotSizeStocks; + else + return PE_MinLotSize; +} + +//+------------------------------------------------------------------+ +//| Register Strategy for Performance Tracking | +//+------------------------------------------------------------------+ +void RegisterStrategy(string strategyName, int magicNumber, double initialLotSize, string symbol = "") +{ + // Check if strategy already registered + for(int i = 0; i < ArraySize(strategyPerformances); i++) + { + if(strategyPerformances[i].strategyName == strategyName && + strategyPerformances[i].magicNumber == magicNumber) + { + if(PE_EnableLogging) + Print("Performance Evaluator: Strategy '", strategyName, "' already registered"); + return; + } + } + + // Add new strategy + int newSize = ArraySize(strategyPerformances) + 1; + ArrayResize(strategyPerformances, newSize); + + strategyPerformances[newSize - 1].strategyName = strategyName; + strategyPerformances[newSize - 1].symbol = symbol; + strategyPerformances[newSize - 1].magicNumber = magicNumber; + strategyPerformances[newSize - 1].initialLotSize = initialLotSize; + // Start with minimum lot size for safety (symbol-specific minimum) + double minLot = GetMinLotSizeForSymbol(symbol); + strategyPerformances[newSize - 1].currentLotSize = minLot; + strategyPerformances[newSize - 1].quarterProfit = 0.0; + strategyPerformances[newSize - 1].quarterTrades = 0; + strategyPerformances[newSize - 1].quarterWins = 0; + strategyPerformances[newSize - 1].quarterLosses = 0; + strategyPerformances[newSize - 1].maxDrawdown = 0.0; + strategyPerformances[newSize - 1].winRate = 0.0; + strategyPerformances[newSize - 1].quarterStart = currentMonthStart; + strategyPerformances[newSize - 1].quarterEnd = currentMonthEnd; + strategyPerformances[newSize - 1].isActive = true; + strategyPerformances[newSize - 1].inPenaltyMode = false; + strategyPerformances[newSize - 1].lotSizeBeforePenalty = initialLotSize; + strategyPerformances[newSize - 1].penaltyStartTime = 0; + + totalStrategies = newSize; + + if(PE_EnableLogging) + Print("Performance Evaluator: Registered strategy '", strategyName, + "' (Magic: ", magicNumber, ", Initial Lot: ", initialLotSize, ")"); +} + +//+------------------------------------------------------------------+ +//| Update Strategy Performance Metrics | +//+------------------------------------------------------------------+ +void UpdateStrategyPerformance(string strategyName, int magicNumber) +{ + for(int i = 0; i < ArraySize(strategyPerformances); i++) + { + if(strategyPerformances[i].strategyName == strategyName && + strategyPerformances[i].magicNumber == magicNumber && + strategyPerformances[i].isActive) + { + // Calculate performance for current quarter + double totalProfit = 0.0; + int totalTrades = 0; + int wins = 0; + int losses = 0; + double maxDD = 0.0; + double peakBalance = 0.0; + + // Scan all closed deals in current quarter + datetime quarterStart = strategyPerformances[i].quarterStart; + datetime quarterEnd = strategyPerformances[i].quarterEnd; + + // Select history for the quarter + if(HistorySelect(quarterStart, quarterEnd)) + { + int totalDeals = HistoryDealsTotal(); + for(int j = 0; j < totalDeals; j++) + { + ulong ticket = HistoryDealGetTicket(j); + if(ticket > 0) + { + long dealMagic = HistoryDealGetInteger(ticket, DEAL_MAGIC); + if(dealMagic == magicNumber) + { + double profit = HistoryDealGetDouble(ticket, DEAL_PROFIT); + double swap = HistoryDealGetDouble(ticket, DEAL_SWAP); + double commission = HistoryDealGetDouble(ticket, DEAL_COMMISSION); + double totalDealProfit = profit + swap + commission; + + totalProfit += totalDealProfit; + totalTrades++; + + if(totalDealProfit > 0) + wins++; + else if(totalDealProfit < 0) + losses++; + } + } + } + } + + // Calculate win rate + double winRate = 0.0; + if(totalTrades > 0) + winRate = (double)wins / (double)totalTrades * 100.0; + + // Update metrics + strategyPerformances[i].quarterProfit = totalProfit; + strategyPerformances[i].quarterTrades = totalTrades; + strategyPerformances[i].quarterWins = wins; + strategyPerformances[i].quarterLosses = losses; + strategyPerformances[i].winRate = winRate; + + break; + } + } +} + +//+------------------------------------------------------------------+ +//| Strategy Ranking Structure | +//+------------------------------------------------------------------+ +struct StrategyRank { + int index; + double score; +}; + +//+------------------------------------------------------------------+ +//| Calculate Strategy Score for Ranking | +//+------------------------------------------------------------------+ +double CalculateStrategyScore(int strategyIndex) +{ + double profit = strategyPerformances[strategyIndex].quarterProfit; + double winRate = strategyPerformances[strategyIndex].winRate; + double trades = strategyPerformances[strategyIndex].quarterTrades; + + // Normalize profit (scale to 0-100 range, assuming max profit of $1000) + double normalizedProfit = MathMin(profit / 10.0, 100.0); + if(profit < 0) normalizedProfit = profit / 5.0; // Penalize losses more + + // Calculate score + double score = 0.0; + if(PE_UseWinRateWeight) + { + // 50% profit, 50% win rate (if enough trades) + if(trades >= 5) + score = (normalizedProfit * 0.5) + (winRate * 0.5); + else + score = normalizedProfit; // Not enough trades, use profit only + } + else + { + // Profit only + score = normalizedProfit; + } + + return score; +} + +//+------------------------------------------------------------------+ +//| Check if Month Ended and Evaluate Performance | +//+------------------------------------------------------------------+ +void CheckMonthEnd() +{ + datetime now = TimeCurrent(); + + // Check if we've entered a new month + if(now >= currentMonthEnd) + { + if(PE_EnableLogging) + Print("Performance Evaluator: Month ended. Evaluating and ranking strategies..."); + + // Update performance metrics for all strategies + for(int i = 0; i < ArraySize(strategyPerformances); i++) + { + if(strategyPerformances[i].isActive) + { + UpdateStrategyPerformance(strategyPerformances[i].strategyName, + strategyPerformances[i].magicNumber); + } + } + + // Rank strategies + int activeCount = 0; + for(int i = 0; i < ArraySize(strategyPerformances); i++) + { + if(strategyPerformances[i].isActive) + activeCount++; + } + + if(activeCount > 0) + { + // Create ranking array + StrategyRank ranks[]; + ArrayResize(ranks, activeCount); + int rankIndex = 0; + + for(int i = 0; i < ArraySize(strategyPerformances); i++) + { + if(strategyPerformances[i].isActive) + { + ranks[rankIndex].index = i; + ranks[rankIndex].score = CalculateStrategyScore(i); + rankIndex++; + } + } + + // Sort by score (descending - highest score first) + for(int i = 0; i < activeCount - 1; i++) + { + for(int j = i + 1; j < activeCount; j++) + { + if(ranks[j].score > ranks[i].score) + { + StrategyRank temp = ranks[i]; + ranks[i] = ranks[j]; + ranks[j] = temp; + } + } + } + + // Adjust lot sizes based on ranking + if(PE_EnableAutoAdjustment) + { + // Increase top performers (skip if in penalty mode) + int topCount = MathMin(PE_TopPerformersCount, activeCount); + for(int i = 0; i < topCount; i++) + { + int strategyIdx = ranks[i].index; + + // Skip if strategy is in penalty mode + if(strategyPerformances[strategyIdx].inPenaltyMode) + continue; + + double oldLotSize = strategyPerformances[strategyIdx].currentLotSize; + double newLotSize = oldLotSize * (1.0 + PE_LotSizeIncreasePercent / 100.0); + + if(newLotSize > PE_MaxLotSize) + newLotSize = PE_MaxLotSize; + + strategyPerformances[strategyIdx].currentLotSize = newLotSize; + + if(PE_EnableLogging) + Print("Performance Evaluator: Rank #", (i+1), " - Increasing '", + strategyPerformances[strategyIdx].strategyName, + "' lot size from ", oldLotSize, " to ", newLotSize, + " (Score: ", DoubleToString(ranks[i].score, 2), + ", Profit: $", DoubleToString(strategyPerformances[strategyIdx].quarterProfit, 2), + ", Win Rate: ", DoubleToString(strategyPerformances[strategyIdx].winRate, 2), "%)"); + } + + // Decrease bottom performers (skip worst one if blitz play is enabled) + int bottomCount = MathMin(PE_BottomPerformersCount, activeCount); + int startIdx = activeCount - bottomCount; + + // If blitz play is enabled, skip the worst performer (it will get minimum penalty) + if(PE_EnableBlitzPlay && activeCount > 0) + startIdx = activeCount - bottomCount + 1; + + for(int i = startIdx; i < activeCount; i++) + { + int strategyIdx = ranks[i].index; + + // Skip if strategy is in penalty mode + if(strategyPerformances[strategyIdx].inPenaltyMode) + continue; + + double oldLotSize = strategyPerformances[strategyIdx].currentLotSize; + double newLotSize = oldLotSize * (1.0 - PE_LotSizeDecreasePercent / 100.0); + + // Use symbol-specific minimum lot size + double minLot = GetMinLotSizeForSymbol(strategyPerformances[strategyIdx].symbol); + if(newLotSize < minLot) + newLotSize = minLot; + + strategyPerformances[strategyIdx].currentLotSize = newLotSize; + + if(PE_EnableLogging) + Print("Performance Evaluator: Rank #", (i+1), " - Decreasing '", + strategyPerformances[strategyIdx].strategyName, + "' lot size from ", oldLotSize, " to ", newLotSize, + " (Score: ", DoubleToString(ranks[i].score, 2), + ", Profit: $", DoubleToString(strategyPerformances[strategyIdx].quarterProfit, 2), + ", Win Rate: ", DoubleToString(strategyPerformances[strategyIdx].winRate, 2), "%)"); + } + } + + // Blitz Play: Apply penalty to worst performer + if(PE_EnableBlitzPlay && activeCount > 0) + { + // Find worst performer (last in ranking) + int worstIdx = ranks[activeCount - 1].index; + + // Remove penalty from previous worst performer (if any) + for(int i = 0; i < ArraySize(strategyPerformances); i++) + { + if(strategyPerformances[i].isActive && strategyPerformances[i].inPenaltyMode) + { + // Check if penalty period has passed (one month) + if(now - strategyPerformances[i].penaltyStartTime >= 2592000) // ~30 days + { + // Restore lot size to before penalty + strategyPerformances[i].currentLotSize = strategyPerformances[i].lotSizeBeforePenalty; + strategyPerformances[i].inPenaltyMode = false; + strategyPerformances[i].penaltyStartTime = 0; + + if(PE_EnableLogging) + Print("Blitz Play: Penalty removed from '", strategyPerformances[i].strategyName, + "'. Lot size restored to ", strategyPerformances[i].currentLotSize); + } + } + } + + // Apply penalty to new worst performer + if(!strategyPerformances[worstIdx].inPenaltyMode) + { + strategyPerformances[worstIdx].lotSizeBeforePenalty = strategyPerformances[worstIdx].currentLotSize; + // Use symbol-specific minimum lot size + double minLot = GetMinLotSizeForSymbol(strategyPerformances[worstIdx].symbol); + strategyPerformances[worstIdx].currentLotSize = minLot; + strategyPerformances[worstIdx].inPenaltyMode = true; + strategyPerformances[worstIdx].penaltyStartTime = now; + + if(PE_EnableLogging) + Print("Blitz Play: WORST PERFORMER - '", strategyPerformances[worstIdx].strategyName, + "' penalized! Lot size reduced from ", strategyPerformances[worstIdx].lotSizeBeforePenalty, + " to minimum ", minLot, " (Score: ", DoubleToString(ranks[activeCount - 1].score, 2), + ", Profit: $", DoubleToString(strategyPerformances[worstIdx].quarterProfit, 2), ")"); + } + } + + // Log performance report + if(PE_EnableLogging) + { + Print("=== Monthly Performance Ranking ==="); + for(int i = 0; i < activeCount; i++) + { + int strategyIdx = ranks[i].index; + Print("Rank #", (i+1), ": ", strategyPerformances[strategyIdx].strategyName, + " - Score: ", DoubleToString(ranks[i].score, 2), + ", Profit: $", DoubleToString(strategyPerformances[strategyIdx].quarterProfit, 2), + ", Win Rate: ", DoubleToString(strategyPerformances[strategyIdx].winRate, 2), "%", + ", Trades: ", (int)strategyPerformances[strategyIdx].quarterTrades, + ", Lot Size: ", DoubleToString(strategyPerformances[strategyIdx].currentLotSize, 2)); + } + Print("==================================="); + } + } + + // Reset month metrics for all strategies + for(int i = 0; i < ArraySize(strategyPerformances); i++) + { + if(strategyPerformances[i].isActive) + { + strategyPerformances[i].quarterProfit = 0.0; + strategyPerformances[i].quarterTrades = 0; + strategyPerformances[i].quarterWins = 0; + strategyPerformances[i].quarterLosses = 0; + strategyPerformances[i].maxDrawdown = 0.0; + strategyPerformances[i].winRate = 0.0; + } + } + + // Update month dates + MqlDateTime dt; + TimeToStruct(now, dt); + + // First day of current month + dt.day = 1; + dt.hour = 0; + dt.min = 0; + dt.sec = 0; + currentMonthStart = StructToTime(dt); + + // First day of next month - 1 second + dt.mon += 1; + if(dt.mon > 12) + { + dt.mon = 1; + dt.year++; + } + currentMonthEnd = StructToTime(dt) - 1; + + // Update month dates for all strategies + for(int i = 0; i < ArraySize(strategyPerformances); i++) + { + strategyPerformances[i].quarterStart = currentMonthStart; + strategyPerformances[i].quarterEnd = currentMonthEnd; + } + + lastMonthCheck = now; + } +} + +//+------------------------------------------------------------------+ +//| Get Current Lot Size for Strategy | +//+------------------------------------------------------------------+ +double GetStrategyLotSize(string strategyName, int magicNumber) +{ + for(int i = 0; i < ArraySize(strategyPerformances); i++) + { + if(strategyPerformances[i].strategyName == strategyName && + strategyPerformances[i].magicNumber == magicNumber && + strategyPerformances[i].isActive) + { + return strategyPerformances[i].currentLotSize; + } + } + return 0.0; +} + +//+------------------------------------------------------------------+ +//| Process Performance Evaluation (call from OnTick) | +//+------------------------------------------------------------------+ +void ProcessPerformanceEvaluation() +{ + // Check if month ended + CheckMonthEnd(); + + // Check for penalty expiration (blitz play) + if(PE_EnableBlitzPlay) + { + datetime now = TimeCurrent(); + for(int i = 0; i < ArraySize(strategyPerformances); i++) + { + if(strategyPerformances[i].isActive && strategyPerformances[i].inPenaltyMode) + { + // Check if penalty period has passed (one month = ~30 days) + if(now - strategyPerformances[i].penaltyStartTime >= 2592000) + { + // Restore lot size to before penalty + strategyPerformances[i].currentLotSize = strategyPerformances[i].lotSizeBeforePenalty; + strategyPerformances[i].inPenaltyMode = false; + strategyPerformances[i].penaltyStartTime = 0; + + if(PE_EnableLogging) + Print("Blitz Play: Penalty expired for '", strategyPerformances[i].strategyName, + "'. Lot size restored to ", strategyPerformances[i].currentLotSize); + } + } + } + } + + // Update performance metrics periodically (every hour) + static datetime lastUpdate = 0; + if(TimeCurrent() - lastUpdate >= 3600) + { + for(int i = 0; i < ArraySize(strategyPerformances); i++) + { + if(strategyPerformances[i].isActive) + { + UpdateStrategyPerformance(strategyPerformances[i].strategyName, + strategyPerformances[i].magicNumber); + } + } + lastUpdate = TimeCurrent(); + } +} + +//+------------------------------------------------------------------+ +//| Get Performance Summary | +//+------------------------------------------------------------------+ +string GetPerformanceSummary() +{ + string summary = "\n=== Performance Summary ===\n"; + summary += "Current Month: " + TimeToString(currentMonthStart) + " to " + TimeToString(currentMonthEnd) + "\n\n"; + + for(int i = 0; i < ArraySize(strategyPerformances); i++) + { + if(strategyPerformances[i].isActive) + { + summary += strategyPerformances[i].strategyName + ":\n"; + summary += " Profit: $" + DoubleToString(strategyPerformances[i].quarterProfit, 2) + "\n"; + summary += " Trades: " + IntegerToString((int)strategyPerformances[i].quarterTrades) + "\n"; + summary += " Win Rate: " + DoubleToString(strategyPerformances[i].winRate, 2) + "%\n"; + summary += " Lot Size: " + DoubleToString(strategyPerformances[i].currentLotSize, 2) + "\n\n"; + } + } + + return summary; +} + +//+------------------------------------------------------------------+ diff --git a/frontline/MQL5/_united_dynamic_cent/STRATEGY_CONFIGURATION.md b/frontline/MQL5/_united_dynamic_cent/STRATEGY_CONFIGURATION.md new file mode 100644 index 0000000..799c760 --- /dev/null +++ b/frontline/MQL5/_united_dynamic_cent/STRATEGY_CONFIGURATION.md @@ -0,0 +1,76 @@ +# United EA Strategy Configuration Summary + +## Strategy Symbols and Magic Numbers + +### Strategy 1: DarvasBox +- **Symbol**: XAUUSD (Gold/USD) +- **Magic Number**: 135790 + +### Strategy 2: EMASlopeDistance +- **Symbol**: XAUUSD (Gold/USD) +- **Magic Number**: 12350 + +### Strategy 3: RSICrossOverReversal +- **Symbol**: XAUUSD (Gold/USD) +- **Magic Number**: 7 + +### Strategy 4: RSIMidPointHijack +- **Symbol**: XAUUSD (Gold/USD) +- **Magic Numbers**: + - RSIFollow: 1001 + - RSIReverse: 1002 + - EMACross: 1003 + +### Strategy 5: RSI Scalping APPL (Apple) +- **Symbol**: AAPL (Apple stock) +- **Magic Number**: 20001 +- **Note**: Changed from "APPL" to "AAPL" (correct ticker symbol) + +### Strategy 6: RSI Scalping BTCUSD +- **Symbol**: BTCUSD (Bitcoin/USD) +- **Magic Number**: 123459123 + +### Strategy 7: RSI Scalping MSFT +- **Symbol**: MSFT (Microsoft stock) +- **Magic Number**: 20002 + +### Strategy 8: RSI Scalping NVDA +- **Symbol**: NVDA (NVIDIA stock) +- **Magic Number**: 20003 + +### Strategy 9: RSI Scalping TSLA +- **Symbol**: TSLA (Tesla stock) +- **Magic Number**: 125421321 + +### Strategy 10: RSI Scalping XAUUSD +- **Symbol**: XAUUSD (Gold/USD) +- **Magic Number**: 129102315 + +## Important Notes + +1. **Stock Symbols**: Stock symbols (AAPL, MSFT, NVDA, TSLA) must be: + - Added to Market Watch in MetaTrader 5 + - Available from your broker + - Use the correct ticker symbol (e.g., "AAPL" not "APPL") + +2. **Magic Numbers**: All strategies have unique magic numbers to prevent interference: + - Each strategy can be identified by its magic number + - RSIMidPointHijack uses 3 magic numbers (one for each sub-strategy) + +3. **Symbol Configuration**: Each strategy trades on its own symbol: + - You can change symbols in the input parameters + - The EA will log warnings if a symbol is not available + - Strategies with unavailable symbols will be skipped (EA continues running) + +4. **RSI Scalping Strategies**: + - Each RSI Scalping variant trades on a different symbol + - They all use the same strategy logic but with different parameters + - Buy and sell signals are generated based on RSI levels for each symbol + +## Troubleshooting + +If stock symbols are not working: +1. Check if the symbol exists in your broker's symbol list +2. Add the symbol to Market Watch in MetaTrader 5 +3. Verify the symbol name matches your broker's naming convention +4. Some brokers use prefixes/suffixes (e.g., "NASDAQ:AAPL" or "AAPL.US") diff --git a/frontline/MQL5/_united_dynamic_cent/Strategies/DarvasBoxStrategy.mqh b/frontline/MQL5/_united_dynamic_cent/Strategies/DarvasBoxStrategy.mqh new file mode 100644 index 0000000..ff1d13b --- /dev/null +++ b/frontline/MQL5/_united_dynamic_cent/Strategies/DarvasBoxStrategy.mqh @@ -0,0 +1,300 @@ +//+------------------------------------------------------------------+ +//| DarvasBoxStrategy.mqh | +//+------------------------------------------------------------------+ + +bool InitDarvasBox(string symbol) +{ + dbData.symbol = symbol; + dbData.boxHigh = 0; + dbData.boxLow = 0; + dbData.boxFormed = false; + dbData.lastBoxTime = 0; + dbData.boxName = "DarvasBox_" + IntegerToString(DB_MagicNumber) + "_"; + + // Check if symbol exists + if(!SymbolSelect(symbol, true)) + { + Print("DarvasBox: Symbol '", symbol, "' not available in Market Watch. Please add it to Market Watch or check symbol name."); + return false; + } + + Sleep(100); // Wait for symbol to be ready + + dbData.point = SymbolInfoDouble(symbol, SYMBOL_POINT); + dbData.minStopLevel = SymbolInfoInteger(symbol, SYMBOL_TRADE_STOPS_LEVEL) * dbData.point; + + dbData.maHandle = iMA(symbol, DB_TrendTimeframe, DB_MA_Period, 0, DB_MA_Method, DB_MA_Price); + dbData.volumeHandle = iVolumes(symbol, PERIOD_CURRENT, VOLUME_TICK); + + if(dbData.maHandle == INVALID_HANDLE || dbData.volumeHandle == INVALID_HANDLE) + { + Print("DarvasBox: Error creating indicators for '", symbol, "'"); + return false; + } + + dbData.trade.SetDeviationInPoints(10); + dbData.trade.SetTypeFilling(ORDER_FILLING_IOC); + dbData.trade.SetAsyncMode(false); + dbData.trade.SetExpertMagicNumber(DB_MagicNumber); + + ObjectsDeleteAll(0, dbData.boxName); + dbData.isInitialized = true; + Print("DarvasBox: Successfully initialized for symbol '", symbol, "'"); + return true; +} + +void DeinitDarvasBox() +{ + if(dbData.maHandle != INVALID_HANDLE) IndicatorRelease(dbData.maHandle); + if(dbData.volumeHandle != INVALID_HANDLE) IndicatorRelease(dbData.volumeHandle); + ObjectsDeleteAll(0, dbData.boxName); +} + +void DrawDarvasBox() +{ + if(!dbData.boxFormed) return; + + datetime time1 = iTime(dbData.symbol, PERIOD_H1, DB_BoxPeriod); + datetime time2 = iTime(dbData.symbol, PERIOD_H1, 0); + + ObjectsDeleteAll(0, dbData.boxName); + + ObjectCreate(0, dbData.boxName + "Top", OBJ_TREND, 0, time1, dbData.boxHigh, time2, dbData.boxHigh); + ObjectCreate(0, dbData.boxName + "Bottom", OBJ_TREND, 0, time1, dbData.boxLow, time2, dbData.boxLow); + + ObjectSetInteger(0, dbData.boxName + "Top", OBJPROP_COLOR, DB_BoxColor); + ObjectSetInteger(0, dbData.boxName + "Bottom", OBJPROP_COLOR, DB_BoxColor); + ObjectSetInteger(0, dbData.boxName + "Top", OBJPROP_WIDTH, DB_BoxWidth); + ObjectSetInteger(0, dbData.boxName + "Bottom", OBJPROP_WIDTH, DB_BoxWidth); + ObjectSetInteger(0, dbData.boxName + "Top", OBJPROP_RAY_RIGHT, true); + ObjectSetInteger(0, dbData.boxName + "Bottom", OBJPROP_RAY_RIGHT, true); +} + +void CalculateDarvasBox() +{ + double high = 0; + double low = DBL_MAX; + + // Find highest high and lowest low in the period - EXACTLY like original + for(int i = 0; i < DB_BoxPeriod; i++) + { + high = MathMax(high, iHigh(dbData.symbol, PERIOD_H1, i)); + low = MathMin(low, iLow(dbData.symbol, PERIOD_H1, i)); + } + + double range = high - low; + double allowedRange = DB_BoxDeviation * dbData.point; // Use dbData.point instead of _Point + + if(DB_EnableLogging) + { + Print("DarvasBox: Box Calculation - High: ", high, " Low: ", low, " Range: ", range, " Allowed Range: ", allowedRange); + } + + // Check if box is formed - EXACTLY like original + if(range <= allowedRange) + { + dbData.boxHigh = high; + dbData.boxLow = low; + dbData.boxFormed = true; + dbData.lastBoxTime = iTime(dbData.symbol, PERIOD_CURRENT, 0); + + // Draw the box + DrawDarvasBox(); + + if(DB_EnableLogging) + Print("DarvasBox: Box Formed - High: ", dbData.boxHigh, " Low: ", dbData.boxLow, " Time: ", dbData.lastBoxTime); + } + else + { + dbData.boxFormed = false; + // Delete box if it exists + ObjectsDeleteAll(0, dbData.boxName); + } +} + +bool ValidateStopLevels(double price, double &sl, double &tp, ENUM_ORDER_TYPE orderType) +{ + double minSlDistance = MathMax(dbData.minStopLevel, DB_StopLoss * dbData.point); + double minTpDistance = MathMax(dbData.minStopLevel, DB_TakeProfit * dbData.point); + + if(orderType == ORDER_TYPE_BUY) + { + sl = price - minSlDistance; + tp = price + minTpDistance; + } + else + { + sl = price + minSlDistance; + tp = price - minTpDistance; + } + + return true; +} + +bool IsTrendFavorable(ENUM_ORDER_TYPE orderType) +{ + double ma[]; + ArraySetAsSeries(ma, true); + + if(CopyBuffer(dbData.maHandle, 0, 0, 2, ma) <= 0) + return false; + + double currentPrice = SymbolInfoDouble(dbData.symbol, SYMBOL_ASK); + double trendStrength = MathAbs(currentPrice - ma[0]) / dbData.point; + + if(orderType == ORDER_TYPE_BUY) + return (currentPrice > ma[0] && trendStrength > DB_TrendThreshold); + else + return (currentPrice < ma[0] && trendStrength > DB_TrendThreshold); +} + +bool CheckVolumeConditions() +{ + double volumes[]; + ArraySetAsSeries(volumes, true); + + if(CopyBuffer(dbData.volumeHandle, 0, 0, DB_VolumeMA_Period + 1, volumes) <= 0) + return false; + + double volumeMA = 0; + for(int i = 1; i <= DB_VolumeMA_Period; i++) + volumeMA += volumes[i]; + volumeMA /= DB_VolumeMA_Period; + + double currentVolume = volumes[0]; + double volumeRatio = currentVolume / volumeMA; + + return (volumeRatio > DB_VolumeThresholdMultiplier); +} + +bool PlaceOrder(ENUM_ORDER_TYPE orderType, double price, double sl, double tp) +{ + if(!ValidateStopLevels(price, sl, tp, orderType)) + { + if(DB_EnableLogging) + Print("DarvasBox: Order rejected - Stop levels validation failed"); + return false; + } + + if(!IsTrendFavorable(orderType)) + { + if(DB_EnableLogging) + Print("DarvasBox: Order rejected - Trend not favorable for ", EnumToString(orderType)); + return false; + } + + if(!CheckVolumeConditions()) + { + if(DB_EnableLogging) + Print("DarvasBox: Order rejected - Volume conditions not met"); + return false; + } + + bool result = false; + + // Use market price (0) instead of explicit price - this ensures market order execution + // In backtesting, explicit price might fail if price has moved + if(orderType == ORDER_TYPE_BUY) + result = dbData.trade.Buy(g_DB_LotSize, dbData.symbol, 0, sl, tp, "Darvas Box Breakout"); + else + result = dbData.trade.Sell(g_DB_LotSize, dbData.symbol, 0, sl, tp, "Darvas Box Breakdown"); + + // Always log errors, success only if logging enabled + if(result) + { + if(DB_EnableLogging) + Print("DarvasBox: ", (orderType == ORDER_TYPE_BUY ? "Buy" : "Sell"), " Order Placed Successfully"); + } + else + { + // Always log failures with detailed info + uint retcode_uint = dbData.trade.ResultRetcode(); + int retcode = (int)retcode_uint; + string desc = dbData.trade.ResultRetcodeDescription(); + ulong deal = dbData.trade.ResultDeal(); + ulong order = dbData.trade.ResultOrder(); + Print("DarvasBox: ", (orderType == ORDER_TYPE_BUY ? "Buy" : "Sell"), + " Order Failed - Retcode: ", retcode, + ", Description: ", desc, + ", Deal: ", deal, + ", Order: ", order, + ", Symbol: ", dbData.symbol, + ", Requested Price: ", price, + ", SL: ", sl, + ", TP: ", tp); + } + + return result; +} + +void ProcessDarvasBox(string symbol) +{ + // Skip if not initialized (symbol not available) + if(!dbData.isInitialized) + return; + + dbData.symbol = symbol; // Update symbol in case it changed + + // Calculate new box levels - EXACTLY like original (called every tick) + CalculateDarvasBox(); + + // Check for trading signals - EXACTLY like original (checked every tick) + if(dbData.boxFormed) + { + double currentPrice = SymbolInfoDouble(dbData.symbol, SYMBOL_ASK); + long currentVolume_long = iVolume(dbData.symbol, PERIOD_CURRENT, 0); + double currentVolume = (double)currentVolume_long; + + if(DB_EnableLogging) + { + Print("DarvasBox: Current Price: ", currentPrice, " Box High: ", dbData.boxHigh, " Box Low: ", dbData.boxLow); + Print("DarvasBox: Current Volume: ", currentVolume, " Volume Threshold: ", DB_VolumeThreshold); + } + + // Check for breakout above box - EXACTLY like original + if(currentPrice > dbData.boxHigh && currentVolume > DB_VolumeThreshold) + { + if(DB_EnableLogging) + Print("DarvasBox: Breakout Signal Detected - Price above box high"); + + // Buy signal + if(!PositionExistsByMagic(dbData.symbol, (ulong)DB_MagicNumber)) // No existing positions with our magic number + { + double sl = currentPrice - DB_StopLoss * dbData.point; + double tp = currentPrice + DB_TakeProfit * dbData.point; + + if(DB_EnableLogging) + Print("DarvasBox: Preparing Buy Order - Price: ", currentPrice, " SL: ", sl, " TP: ", tp); + + PlaceOrder(ORDER_TYPE_BUY, currentPrice, sl, tp); + } + else if(DB_EnableLogging) + Print("DarvasBox: Skipping Buy Signal - Position already exists"); + } + + // Check for breakdown below box - EXACTLY like original + if(currentPrice < dbData.boxLow && currentVolume > DB_VolumeThreshold) + { + if(DB_EnableLogging) + Print("DarvasBox: Breakdown Signal Detected - Price below box low"); + + // Sell signal + if(!PositionExistsByMagic(dbData.symbol, (ulong)DB_MagicNumber)) // No existing positions with our magic number + { + double sl = currentPrice + DB_StopLoss * dbData.point; + double tp = currentPrice - DB_TakeProfit * dbData.point; + + if(DB_EnableLogging) + Print("DarvasBox: Preparing Sell Order - Price: ", currentPrice, " SL: ", sl, " TP: ", tp); + + PlaceOrder(ORDER_TYPE_SELL, currentPrice, sl, tp); + } + else if(DB_EnableLogging) + Print("DarvasBox: Skipping Sell Signal - Position already exists"); + } + } + else if(DB_EnableLogging) + Print("DarvasBox: No Box Formed - Waiting for consolidation"); +} + +//+------------------------------------------------------------------+ diff --git a/frontline/MQL5/_united_dynamic_cent/Strategies/EMASlopeDistanceStrategy.mqh b/frontline/MQL5/_united_dynamic_cent/Strategies/EMASlopeDistanceStrategy.mqh new file mode 100644 index 0000000..70e4502 --- /dev/null +++ b/frontline/MQL5/_united_dynamic_cent/Strategies/EMASlopeDistanceStrategy.mqh @@ -0,0 +1,496 @@ +//+------------------------------------------------------------------+ +//| EMASlopeDistanceStrategy.mqh | +//+------------------------------------------------------------------+ + +bool InitEMASlopeDistance(string symbol) +{ + esData.symbol = symbol; + esData.letzte_überwachung_zeit = 0; + esData.überwachung_aktiv = false; + esData.preis_trigger_aktiv = false; + esData.steigung_trigger_aktiv = false; + esData.ticket = 0; + esData.trades_in_current_crossover = 0; + esData.crossover_detected = false; + esData.trade_open_time = 0; + esData.last_bar_time = 0; + + // Check if symbol exists + if(!SymbolSelect(symbol, true)) + { + Print("EMASlopeDistance: Symbol '", symbol, "' not available in Market Watch. Please add it to Market Watch or check symbol name."); + return false; + } + + Sleep(100); // Wait for symbol to be ready + + esData.trade.SetExpertMagicNumber(ES_MagicNumber); + esData.trade.SetDeviationInPoints(10); + esData.trade.SetTypeFilling(ORDER_FILLING_IOC); + + esData.ema_handle = iMA(symbol, ES_Timeframe, ES_EMA_Periode, 0, MODE_EMA, PRICE_CLOSE); + + if(esData.ema_handle == INVALID_HANDLE) + { + Print("EMASlopeDistance: Error creating EMA indicator for '", symbol, "'"); + return false; + } + + ArraySetAsSeries(esData.ema_array, true); + esData.isInitialized = true; + Print("EMASlopeDistance: Successfully initialized for symbol '", symbol, "'"); + return true; +} + +void DeinitEMASlopeDistance() +{ + if(esData.ema_handle != INVALID_HANDLE) + IndicatorRelease(esData.ema_handle); +} + +//+------------------------------------------------------------------+ +//| EMA Berechnung (EMA Calculation) | +//+------------------------------------------------------------------+ +void BerechneEMA() +{ + //--- EMA Werte vom Indicator kopieren (Copy EMA values from indicator) + int copied = CopyBuffer(esData.ema_handle, 0, 0, 3, esData.ema_array); + + if(copied <= 0) + { + Print("TRACE: Fehler beim Kopieren der EMA Werte - Copied: ", copied); + return; + } + + Print("TRACE: EMA Werte kopiert: ", copied, " Bars"); + Print("TRACE: EMA [0]: ", esData.ema_array[0], " [1]: ", esData.ema_array[1], " [2]: ", esData.ema_array[2]); +} + +//+------------------------------------------------------------------+ +//| Trigger-Bedingungen prüfen (Check trigger conditions) | +//+------------------------------------------------------------------+ +void PrüfeTrigger() +{ + if(ArraySize(esData.ema_array) < 2) + { + Print("TRACE: Array zu klein - Größe: ", ArraySize(esData.ema_array)); + return; + } + + //--- Aktuelle Werte (Current values) + double aktueller_preis = SymbolInfoDouble(esData.symbol, SYMBOL_BID); + double aktueller_ask = SymbolInfoDouble(esData.symbol, SYMBOL_ASK); + double aktueller_close = iClose(esData.symbol, ES_Timeframe, 0); + int digits = (int)SymbolInfoInteger(esData.symbol, SYMBOL_DIGITS); + double point = SymbolInfoDouble(esData.symbol, SYMBOL_POINT); + double pips_multiplier = (digits == 3 || digits == 5) ? 10.0 : 1.0; + + //--- EMA Werte in Variablen (EMA values in variables) + double ema_aktuell = esData.ema_array[0]; + double ema_vorher = esData.ema_array[1]; + + //--- EMA Crossover Erkennung (EMA Crossover Detection) + // Prüfe ob Preis die EMA kreuzt (Check if price crosses EMA) + static double last_close = 0; + static double last_ema = 0; + + if(last_close != 0 && last_ema != 0) + { + bool crossover_bullish = (last_close <= last_ema) && (aktueller_close > ema_aktuell); + bool crossover_bearish = (last_close >= last_ema) && (aktueller_close < ema_aktuell); + + //--- Neues Crossover-Ereignis erkannt (New crossover event detected) + if(crossover_bullish || crossover_bearish) + { + esData.trades_in_current_crossover = 0; // Reset trade counter + Print("TRACE: EMA Crossover erkannt - ", (crossover_bullish ? "BULLISH" : "BEARISH"), " - Trade-Counter zurückgesetzt"); + Print("TRACE: Vorher: Close=", last_close, " EMA=", last_ema, " Jetzt: Close=", aktueller_close, " EMA=", ema_aktuell); + } + } + + //--- Aktuelle Werte für nächsten Vergleich speichern (Save current values for next comparison) + last_close = aktueller_close; + last_ema = ema_aktuell; + + //--- Preisbewegung zur EMA prüfen (Check price action to EMA) + double preis_abstand = MathAbs(aktueller_close - ema_aktuell) / point / pips_multiplier; + + Print("TRACE: Preis-Abstand: ", preis_abstand, " Pips (Schwelle: ", ES_PreisSchwelle, ")"); + Print("TRACE: Close: ", aktueller_close, " EMA: ", ema_aktuell); + Print("TRACE: Trades im aktuellen Crossover: ", esData.trades_in_current_crossover, "/", ES_MaxTradesPerCrossover); + + if(preis_abstand > ES_PreisSchwelle && !esData.preis_trigger_aktiv) + { + esData.preis_trigger_aktiv = true; + Print("TRACE: Preis-Trigger aktiviert: ", preis_abstand, " Pips"); + } + + //--- EMA Steigung prüfen (Check EMA slope) + double steigung = (ema_aktuell - ema_vorher) / point / pips_multiplier; + + Print("TRACE: EMA Steigung: ", steigung, " Pips (Schwelle: ", ES_SteigungSchwelle, ")"); + + if(MathAbs(steigung) > ES_SteigungSchwelle && !esData.steigung_trigger_aktiv) + { + esData.steigung_trigger_aktiv = true; + Print("TRACE: Steigungs-Trigger aktiviert: ", steigung, " Pips"); + } + + //--- Überwachung starten wenn beide Trigger aktiv sind (Start monitoring when both triggers are active) + if(esData.preis_trigger_aktiv && esData.steigung_trigger_aktiv && !esData.überwachung_aktiv) + { + esData.überwachung_aktiv = true; + + if(ES_UseBarData) + { + esData.letzte_überwachung_zeit = iTime(esData.symbol, ES_Timeframe, 0); // Aktuelle Bar-Zeit + Print("TRACE: Überwachung gestartet - Beide Trigger aktiv (Bar: ", TimeToString(esData.letzte_überwachung_zeit), ")"); + } + else + { + esData.letzte_überwachung_zeit = TimeCurrent(); // Aktuelle Tick-Zeit + Print("TRACE: Überwachung gestartet - Beide Trigger aktiv (Tick)"); + } + } + + //--- Trade platzieren wenn Überwachung aktiv und Preis über/unter EMA (Place trade when monitoring active and price above/below EMA) + if(esData.überwachung_aktiv) + { + bool bullish_signal = aktueller_close > ema_aktuell; + bool bearish_signal = aktueller_close < ema_aktuell; + + Print("TRACE: Signal Check - Bullish: ", bullish_signal, " Bearish: ", bearish_signal); + Print("TRACE: Close: ", aktueller_close, " EMA: ", ema_aktuell); + Print("TRACE: Differenz: ", aktueller_close - ema_aktuell); + + //--- Trade-Limit prüfen (Check trade limit) + if(esData.trades_in_current_crossover >= ES_MaxTradesPerCrossover) + { + Print("TRACE: Trade-Limit erreicht (", ES_MaxTradesPerCrossover, ") - Kein neuer Trade"); + return; + } + + if(bullish_signal && !PositionExistsByMagic(esData.symbol, (ulong)ES_MagicNumber)) + { + Print("TRACE: Versuche KAUF-Trade zu platzieren (Trade #", esData.trades_in_current_crossover + 1, ")"); + if(PlatziereTrade(ORDER_TYPE_BUY)) + { + esData.trades_in_current_crossover++; + } + } + else if(bearish_signal && !PositionExistsByMagic(esData.symbol, (ulong)ES_MagicNumber)) + { + Print("TRACE: Versuche VERKAUF-Trade zu platzieren (Trade #", esData.trades_in_current_crossover + 1, ")"); + if(PlatziereTrade(ORDER_TYPE_SELL)) + { + esData.trades_in_current_crossover++; + } + } + else if(PositionExistsByMagic(esData.symbol, (ulong)ES_MagicNumber)) + { + Print("TRACE: Position bereits offen - kein neuer Trade"); + } + } +} + +//+------------------------------------------------------------------+ +//| Trade platzieren (Place trade) | +//+------------------------------------------------------------------+ +bool PlatziereTrade(ENUM_ORDER_TYPE order_type) +{ + Print("TRACE: Versuche Trade zu platzieren - Typ: ", (order_type == ORDER_TYPE_BUY) ? "KAUF" : "VERKAUF"); + Print("TRACE: Lot: ", g_ES_LotSize); + + bool success = false; + + if(order_type == ORDER_TYPE_BUY) + { + success = esData.trade.Buy(g_ES_LotSize, esData.symbol, 0, 0, 0, "EMA Crossover Trade"); + } + else + { + success = esData.trade.Sell(g_ES_LotSize, esData.symbol, 0, 0, 0, "EMA Crossover Trade"); + } + + if(success) + { + esData.ticket = (int)esData.trade.ResultOrder(); + Print("TRACE: Trade erfolgreich platziert: ", (order_type == ORDER_TYPE_BUY) ? "KAUF" : "VERKAUF", " Ticket: ", esData.ticket); + + //--- Trade-Öffnungszeit speichern (Save trade opening time) + esData.trade_open_time = iTime(esData.symbol, ES_Timeframe, 0); + Print("TRACE: Trade-Öffnungszeit: ", TimeToString(esData.trade_open_time)); + + //--- Überwachung zurücksetzen (Reset monitoring) + esData.überwachung_aktiv = false; + esData.preis_trigger_aktiv = false; + esData.steigung_trigger_aktiv = false; + + return true; + } + else + { + Print("TRACE: Fehler beim Platzieren des Trades - Retcode: ", esData.trade.ResultRetcode()); + Print("TRACE: Fehlerbeschreibung: ", esData.trade.ResultRetcodeDescription()); + + return false; + } +} + +//+------------------------------------------------------------------+ +//| Trades verwalten (Manage trades) | +//+------------------------------------------------------------------+ +void VerwalteTrades() +{ + if(!PositionSelectByMagic(esData.symbol, (ulong)ES_MagicNumber)) + return; + + double position_profit = PositionGetDouble(POSITION_PROFIT); + double position_open_price = PositionGetDouble(POSITION_PRICE_OPEN); + double current_price = PositionGetDouble(POSITION_PRICE_CURRENT); + ENUM_POSITION_TYPE position_type = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + + int digits = (int)SymbolInfoInteger(esData.symbol, SYMBOL_DIGITS); + double point = SymbolInfoDouble(esData.symbol, SYMBOL_POINT); + double pips_multiplier = (digits == 3 || digits == 5) ? 10.0 : 1.0; + double trailing_stop_pips = ES_TrailingStop; + + //--- Gleitender Stop (Trailing Stop) - nur wenn Position im Profit ist + if(position_profit > 0) // Only apply trailing stop when in profit + { + if(position_type == POSITION_TYPE_BUY) + { + double new_stop_loss = current_price - (trailing_stop_pips * point * pips_multiplier); + double current_stop_loss = PositionGetDouble(POSITION_SL); + + // Only move stop loss if new stop is higher than current stop + if(new_stop_loss > current_stop_loss) + { + ÄndereStopLoss(new_stop_loss); + } + } + else if(position_type == POSITION_TYPE_SELL) + { + double new_stop_loss = current_price + (trailing_stop_pips * point * pips_multiplier); + double current_stop_loss = PositionGetDouble(POSITION_SL); + + // Only move stop loss if new stop is lower than current stop + if(new_stop_loss < current_stop_loss || current_stop_loss == 0) + { + ÄndereStopLoss(new_stop_loss); + } + } + } + + //--- Ausstieg bei Preis unter/über EMA (Exit when price below/above EMA) + if(ArraySize(esData.ema_array) >= 1) + { + double aktueller_close = iClose(esData.symbol, ES_Timeframe, 0); + double ema_aktuell = esData.ema_array[0]; + bool exit_bullish = (position_type == POSITION_TYPE_SELL && aktueller_close > ema_aktuell); + bool exit_bearish = (position_type == POSITION_TYPE_BUY && aktueller_close < ema_aktuell); + + if(exit_bullish || exit_bearish) + { + Print("TRACE: Ausstiegssignal - Close: ", aktueller_close, " EMA: ", ema_aktuell); + SchließePosition("EMA Crossover Exit"); + + Print("TRACE: Position geschlossen - Trade-Counter bleibt bei ", esData.trades_in_current_crossover); + } + } + + //--- Profit-Prüfung nach X Bars (Profit check after X bars) + if(ES_CloseUnprofitableTrades && esData.trade_open_time != 0 && PositionExistsByMagic(esData.symbol, (ulong)ES_MagicNumber)) + { + Print("TRACE: Profit-Prüfung aktiviert - CloseUnprofitableTrades: ", ES_CloseUnprofitableTrades); + PrüfeProfitNachBars(); + } + else if(!ES_CloseUnprofitableTrades) + { + Print("TRACE: Profit-Prüfung deaktiviert - CloseUnprofitableTrades: ", ES_CloseUnprofitableTrades); + } +} + +//+------------------------------------------------------------------+ +//| Profit-Prüfung nach X Bars (Profit check after X bars) | +//+------------------------------------------------------------------+ +void PrüfeProfitNachBars() +{ + if(!PositionSelectByMagic(esData.symbol, (ulong)ES_MagicNumber)) + { + return; // Keine Position offen + } + + datetime current_bar_time = iTime(esData.symbol, ES_Timeframe, 0); + int bars_since_trade_open = iBarShift(esData.symbol, ES_Timeframe, esData.trade_open_time); + + Print("TRACE: Bars seit Trade-Öffnung: ", bars_since_trade_open, "/", ES_ProfitCheckBars); + + //--- Prüfe ob genügend Bars vergangen sind (Check if enough bars have passed) + if(bars_since_trade_open >= ES_ProfitCheckBars) + { + double position_profit = PositionGetDouble(POSITION_PROFIT); + double position_volume = PositionGetDouble(POSITION_VOLUME); + ENUM_POSITION_TYPE position_type = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + + Print("TRACE: Profit-Prüfung nach ", ES_ProfitCheckBars, " Bars"); + Print("TRACE: Position Profit: ", position_profit, " USD"); + + //--- Schließe Position wenn nicht im Profit (Close position if not in profit) + if(position_profit <= 0) + { + Print("TRACE: Position nicht im Profit - Schließe Position"); + SchließePosition("Profit Check - Unprofitable"); + + //--- Trade-Öffnungszeit zurücksetzen (Reset trade opening time) + esData.trade_open_time = 0; + Print("TRACE: Trade-Öffnungszeit zurückgesetzt"); + } + else + { + Print("TRACE: Position im Profit - Behalte Position"); + //--- Trade-Öffnungszeit zurücksetzen um weitere Prüfungen zu vermeiden (Reset to avoid further checks) + esData.trade_open_time = 0; + } + } +} + +//+------------------------------------------------------------------+ +//| Stop Loss ändern (Modify Stop Loss) | +//+------------------------------------------------------------------+ +void ÄndereStopLoss(double new_stop_loss) +{ + Print("TRACE: Versuche Stop Loss zu ändern auf: ", new_stop_loss); + + bool success = ModifyPositionByMagic(esData.trade, esData.symbol, (ulong)ES_MagicNumber, new_stop_loss, PositionGetDouble(POSITION_TP)); + + if(success) + { + Print("TRACE: Stop Loss erfolgreich geändert auf: ", new_stop_loss); + } + else + { + Print("TRACE: Fehler beim Ändern des Stop Loss - Retcode: ", esData.trade.ResultRetcode()); + Print("TRACE: Fehlerbeschreibung: ", esData.trade.ResultRetcodeDescription()); + } +} + +//+------------------------------------------------------------------+ +//| Position schließen (Close position) | +//+------------------------------------------------------------------+ +void SchließePosition(string reason = "Unbekannt") +{ + Print("TRACE: Versuche Position zu schließen - Grund: ", reason); + + bool success = ClosePositionByMagic(esData.trade, esData.symbol, (ulong)ES_MagicNumber); + + if(success) + { + Print("TRACE: Position erfolgreich geschlossen - Grund: ", reason); + } + else + { + Print("TRACE: Fehler beim Schließen der Position - Retcode: ", esData.trade.ResultRetcode()); + Print("TRACE: Fehlerbeschreibung: ", esData.trade.ResultRetcodeDescription()); + } +} + +//+------------------------------------------------------------------+ +//| Expert tick function | +//+------------------------------------------------------------------+ +void ProcessEMASlopeDistance(string symbol) +{ + // Skip if not initialized (symbol not available) + if(!esData.isInitialized) + return; + + esData.symbol = symbol; // Update symbol in case it changed + + //--- Bar-Daten oder Tick-Daten verwenden (Use bar data or tick data) + if(ES_UseBarData) + { + //--- Nur bei neuen Bars ausführen (Only execute on new bars) + datetime current_bar_time = iTime(esData.symbol, ES_Timeframe, 0); + + if(current_bar_time == esData.last_bar_time) + { + return; // Kein neuer Bar, nichts tun + } + + esData.last_bar_time = current_bar_time; + } + + //--- EMA Werte berechnen (Calculate EMA values) + BerechneEMA(); + + //--- Debug: Aktuelle Werte ausgeben (Debug: Output current values) + if(ArraySize(esData.ema_array) > 0) + { + double aktueller_close = iClose(esData.symbol, ES_Timeframe, 0); + double ema_aktuell = esData.ema_array[0]; + double ema_vorher = esData.ema_array[1]; + int digits = (int)SymbolInfoInteger(esData.symbol, SYMBOL_DIGITS); + double point = SymbolInfoDouble(esData.symbol, SYMBOL_POINT); + double preis_abstand = MathAbs(aktueller_close - ema_aktuell) / point; + double steigung = (ema_aktuell - ema_vorher) / point; + + if(ES_UseBarData) + { + Print("=== DEBUG INFO (Neuer Bar) ==="); + Print("Bar Zeit: ", TimeToString(iTime(esData.symbol, ES_Timeframe, 0))); + } + else + { + Print("=== DEBUG INFO (Tick) ==="); + } + + Print("Aktueller Close: ", aktueller_close); + Print("EMA: ", ema_aktuell); + Print("Preis-Abstand: ", preis_abstand, " Pips"); + Print("EMA Steigung: ", steigung, " Pips"); + Print("Differenz Close-EMA: ", aktueller_close - ema_aktuell); + Print("Preis-Trigger: ", esData.preis_trigger_aktiv, " Steigungs-Trigger: ", esData.steigung_trigger_aktiv); + Print("Überwachung aktiv: ", esData.überwachung_aktiv); + Print("Position offen: ", PositionExistsByMagic(esData.symbol, (ulong)ES_MagicNumber)); + Print("Trades im aktuellen Crossover: ", esData.trades_in_current_crossover, "/", ES_MaxTradesPerCrossover); + Print("=================="); + } + + //--- Überwachung prüfen (Check monitoring) + if(esData.überwachung_aktiv) + { + if(ES_UseBarData) + { + // Bar-basierte Überwachungszeit + int bars_since_monitoring = iBarShift(esData.symbol, ES_Timeframe, esData.letzte_überwachung_zeit); + int timeout_bars = (int)(ES_ÜberwachungTimeout / PeriodSeconds(ES_Timeframe)); + + if(bars_since_monitoring > timeout_bars) + { + esData.überwachung_aktiv = false; + esData.preis_trigger_aktiv = false; + esData.steigung_trigger_aktiv = false; + Print("Überwachung beendet - Bar-basierte Zeitüberschreitung (", bars_since_monitoring, " Bars)"); + } + } + else + { + // Tick-basierte Überwachungszeit + if(TimeCurrent() - esData.letzte_überwachung_zeit > ES_ÜberwachungTimeout) + { + esData.überwachung_aktiv = false; + esData.preis_trigger_aktiv = false; + esData.steigung_trigger_aktiv = false; + Print("Überwachung beendet - Tick-basierte Zeitüberschreitung"); + } + } + } + + //--- Trigger-Bedingungen prüfen (Check trigger conditions) + PrüfeTrigger(); + + //--- Trade Management (Trade management) + VerwalteTrades(); +} + +//+------------------------------------------------------------------+ diff --git a/frontline/MQL5/_united_dynamic_cent/Strategies/RSICrossOverReversalStrategy.mqh b/frontline/MQL5/_united_dynamic_cent/Strategies/RSICrossOverReversalStrategy.mqh new file mode 100644 index 0000000..f182476 --- /dev/null +++ b/frontline/MQL5/_united_dynamic_cent/Strategies/RSICrossOverReversalStrategy.mqh @@ -0,0 +1,240 @@ +//+------------------------------------------------------------------+ +//| RSICrossOverReversalStrategy.mqh | +//+------------------------------------------------------------------+ + +void WeekDays_Init() +{ + rcData.WeekDays[0] = RC_Sunday; + rcData.WeekDays[1] = RC_Monday; + rcData.WeekDays[2] = RC_Tuesday; + rcData.WeekDays[3] = RC_Wednesday; + rcData.WeekDays[4] = RC_Thursday; + rcData.WeekDays[5] = RC_Friday; + rcData.WeekDays[6] = RC_Saturday; +} + +bool WeekDays_Check(datetime aTime) +{ + MqlDateTime stm; + TimeToStruct(aTime, stm); + return(rcData.WeekDays[stm.day_of_week]); +} + +int TimeHour(datetime when = 0) +{ + if(when == 0) when = TimeCurrent(); + MqlDateTime dt; + TimeToStruct(when, dt); + return dt.hour; +} + +bool InitRSICrossOverReversal(string symbol) +{ + WeekDays_Init(); + + rcData.symbol = symbol; + rcData.previousRSIDef = 0; + rcData.lastTradeTime = 0; + rcData.bartime = 0; + rcData.lastBarTime = 0; + + // Check if symbol exists + if(!SymbolSelect(symbol, true)) + { + Print("RSICrossOverReversal: Symbol '", symbol, "' not available in Market Watch. Please add it to Market Watch or check symbol name."); + return false; + } + + Sleep(100); // Wait for symbol to be ready + + rcData.rsiHandle = iRSI(symbol, RC_TimeFrame1, RC_rsiPeriod, PRICE_CLOSE); + if(rcData.rsiHandle == INVALID_HANDLE) + { + Print("RSICrossOverReversal: Error creating RSI handle for '", symbol, "'"); + return false; + } + + rcData.emaHandle = iMA(symbol, RC_TimeFrame2, RC_emaPeriod, 0, MODE_EMA, PRICE_CLOSE); + if(rcData.emaHandle == INVALID_HANDLE) + { + Print("RSICrossOverReversal: Error creating EMA handle for '", symbol, "'"); + return false; + } + + rcData.trade.SetExpertMagicNumber(RC_MagicNumber); + rcData.isInitialized = true; + Print("RSICrossOverReversal: Successfully initialized for symbol '", symbol, "'"); + return true; +} + +void DeinitRSICrossOverReversal() +{ + if(rcData.rsiHandle != INVALID_HANDLE) + IndicatorRelease(rcData.rsiHandle); + if(rcData.emaHandle != INVALID_HANDLE) + IndicatorRelease(rcData.emaHandle); +} + +void Close_Position_MN(ulong magicNumber) +{ + ClosePositionByMagic(rcData.trade, rcData.symbol, (int)magicNumber); +} + +void ApplyTrailingStop() +{ + if(!PositionSelectByMagic(rcData.symbol, RC_MagicNumber)) + return; + + ulong PositionTicket = PositionGetInteger(POSITION_TICKET); + ENUM_POSITION_TYPE trade_type = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + string symbol = rcData.symbol; + + double POINT = SymbolInfoDouble(symbol, SYMBOL_POINT); + int DIGIT = (int)SymbolInfoInteger(symbol, SYMBOL_DIGITS); + + if(trade_type == POSITION_TYPE_BUY) + { + double Bid = NormalizeDouble(SymbolInfoDouble(symbol, SYMBOL_BID), DIGIT); + + if(Bid - PositionGetDouble(POSITION_PRICE_OPEN) > NormalizeDouble(POINT * RC_TrailingStop, DIGIT)) + { + if(PositionGetDouble(POSITION_SL) < NormalizeDouble(Bid - POINT * RC_TrailingStop, DIGIT)) + { + ModifyPositionByMagic(rcData.trade, symbol, RC_MagicNumber, + NormalizeDouble(Bid - POINT * RC_TrailingStop, DIGIT), + PositionGetDouble(POSITION_TP)); + } + } + } + else if(trade_type == POSITION_TYPE_SELL) + { + double Ask = NormalizeDouble(SymbolInfoDouble(symbol, SYMBOL_ASK), DIGIT); + + if((PositionGetDouble(POSITION_PRICE_OPEN) - Ask) > NormalizeDouble(POINT * RC_TrailingStop, DIGIT)) + { + if((PositionGetDouble(POSITION_SL) > NormalizeDouble(Ask + POINT * RC_TrailingStop, DIGIT)) || + (PositionGetDouble(POSITION_SL) == 0)) + { + ModifyPositionByMagic(rcData.trade, symbol, RC_MagicNumber, + NormalizeDouble(Ask + POINT * RC_TrailingStop, DIGIT), + PositionGetDouble(POSITION_TP)); + } + } + } +} + +void ProcessRSICrossOverReversal(string symbol) +{ + // Skip if not initialized (symbol not available) + if(!rcData.isInitialized) + return; + + rcData.symbol = symbol; // Update symbol in case it changed + if(rcData.bartime == iTime(rcData.symbol, RC_BarTimeFrame, 0)) + return; + rcData.bartime = iTime(rcData.symbol, RC_BarTimeFrame, 0); + + double rsi[]; + if(CopyBuffer(rcData.rsiHandle, 0, 0, 2, rsi) <= 0) + return; + + double ema[]; + if(CopyBuffer(rcData.emaHandle, 0, 0, 2, ema) <= 0) + return; + + datetime currentTime = TimeCurrent(); + int currentHour = TimeHour(TimeCurrent()); + + if(!WeekDays_Check(TimeTradeServer())) + { + Close_Position_MN(RC_MagicNumber); + return; + } + + if(!((currentHour < RC_tradingHourOneEnd && currentHour > RC_tradingHourOneBegin) || + (currentHour < RC_tradingHourTwoEnd && currentHour > RC_tradingHourTwoBegin))) + { + Close_Position_MN(RC_MagicNumber); + return; + } + + bool hasPosition = PositionExistsByMagic(rcData.symbol, RC_MagicNumber); + + double currentRSI = rsi[0]; + double previousRSI = rsi[1]; + + if(rcData.previousRSIDef == 0) + { + rcData.previousRSIDef = currentRSI; + return; + } + + double currentEMA = ema[0]; + double previousEMA = ema[1]; + + double emaSlope = (currentEMA - previousEMA) * 100; + double closeCurr = iClose(Symbol(), Period(), 0); + double priceToEmaDistance = (closeCurr - currentEMA) * 10; + + bool isBuyPosition = false; + bool isSellPosition = false; + if(hasPosition) + { + if(PositionSelectByMagic(rcData.symbol, RC_MagicNumber)) + { + ENUM_POSITION_TYPE positionType = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + if(positionType == POSITION_TYPE_BUY) + isBuyPosition = true; + else if(positionType == POSITION_TYPE_SELL) + isSellPosition = true; + } + } + + ApplyTrailingStop(); + + bool cooldownPassed = (currentTime - rcData.lastTradeTime) >= RC_cooldownSeconds; + bool isTrendStrong = MathAbs(emaSlope) > RC_emaSlopeThreshold || MathAbs(priceToEmaDistance) > RC_emaDistanceThreshold; + + if(isBuyPosition && currentRSI > RC_exitBuyRSI) + { + Close_Position_MN(RC_MagicNumber); + rcData.lastTradeTime = currentTime; + } + + if(isSellPosition && currentRSI < RC_exitSellRSI) + { + Close_Position_MN(RC_MagicNumber); + rcData.lastTradeTime = currentTime; + } + + if(isTrendStrong) + { + Close_Position_MN(RC_MagicNumber); + rcData.lastTradeTime = currentTime; + return; + } + + if(currentRSI < RC_overboughtLevel - RC_entryRSISellSpread && rcData.previousRSIDef >= RC_overboughtLevel && + !isSellPosition && !hasPosition && cooldownPassed) + { + rcData.trade.SetExpertMagicNumber(RC_MagicNumber); + if(rcData.trade.Sell(g_RC_LotSize, rcData.symbol, 0.0, 0.0, 0.0, "Sell Order")) + { + rcData.lastTradeTime = currentTime; + } + } + + if(currentRSI > RC_oversoldLevel + RC_entryRSIBuySpread && rcData.previousRSIDef <= RC_oversoldLevel && + !isBuyPosition && !hasPosition && cooldownPassed) + { + rcData.trade.SetExpertMagicNumber(RC_MagicNumber); + if(rcData.trade.Buy(g_RC_LotSize, rcData.symbol, 0.0, 0.0, 0.0, "Buy Order")) + { + rcData.lastTradeTime = currentTime; + } + } + + rcData.previousRSIDef = currentRSI; +} + +//+------------------------------------------------------------------+ diff --git a/frontline/MQL5/_united_dynamic_cent/Strategies/RSIMidPointHijackStrategy.mqh b/frontline/MQL5/_united_dynamic_cent/Strategies/RSIMidPointHijackStrategy.mqh new file mode 100644 index 0000000..3db8db5 --- /dev/null +++ b/frontline/MQL5/_united_dynamic_cent/Strategies/RSIMidPointHijackStrategy.mqh @@ -0,0 +1,471 @@ +//+------------------------------------------------------------------+ +//| RSIMidPointHijackStrategy.mqh | +//+------------------------------------------------------------------+ + +bool IsNewBar(string symbol) +{ + datetime time[]; + if(CopyTime(symbol, RM_InpTimeframe, 0, 1, time) > 0) + { + if(time[0] != rmData.lastBarTime) + { + rmData.lastBarTime = time[0]; + return true; + } + } + return false; +} + +bool IsWithinTradingHours(int startHour, int endHour) +{ + MqlDateTime currentTime; + TimeToStruct(TimeCurrent(), currentTime); + + if(startHour <= endHour) + return (currentTime.hour >= startHour && currentTime.hour < endHour); + else + return (currentTime.hour >= startHour || currentTime.hour < endHour); +} + +bool HasPosition(string symbol, int magic) +{ + return PositionExistsByMagic(symbol, magic); +} + +bool HasProfitablePosition(int excludeMagic) +{ + bool hasProfitable = false; + for(int i = PositionsTotal() - 1; i >= 0; i--) + { + if(rmData.positionInfo.SelectByIndex(i)) + { + if(rmData.positionInfo.Magic() != excludeMagic) + { + double profit = rmData.positionInfo.Profit(); + if(profit > RM_InpLockProfitThreshold * _Point) + { + hasProfitable = true; + if(RM_InpCloseOppositeTrades) + { + if((excludeMagic == RM_InpMagicNumberRSIFollow && rmData.positionInfo.Magic() == RM_InpMagicNumberRSIReverse) || + (excludeMagic == RM_InpMagicNumberRSIReverse && rmData.positionInfo.Magic() == RM_InpMagicNumberRSIFollow) || + (excludeMagic == RM_InpMagicNumberEMACross && (rmData.positionInfo.Magic() == RM_InpMagicNumberRSIReverse || rmData.positionInfo.Magic() == RM_InpMagicNumberRSIFollow)) || + ((excludeMagic == RM_InpMagicNumberRSIFollow || excludeMagic == RM_InpMagicNumberRSIReverse) && rmData.positionInfo.Magic() == RM_InpMagicNumberEMACross)) + { + ClosePosition(rmData.symbol, (int)rmData.positionInfo.Magic()); + } + } + } + } + } + } + return hasProfitable; +} + +bool IsRSIReverseInCooldown(string symbol) +{ + if(RM_InpRSIReverseCooldownBars <= 0) + return false; + + if(!rmData.rsiReverseInCooldown) + return false; + + datetime time[]; + if(CopyTime(symbol, RM_InpTimeframe, 0, 1, time) > 0) + { + datetime currentBarTime = time[0]; + datetime cooldownEndTime = rmData.rsiReverseLastCloseTime + RM_InpRSIReverseCooldownBars * PeriodSeconds(RM_InpTimeframe); + + if(currentBarTime >= cooldownEndTime) + { + rmData.rsiReverseInCooldown = false; + return false; + } + } + + return true; +} + +void CheckRSIFollowStrategy(string symbol) +{ + if(!IsWithinTradingHours(RM_InpRSIFollowStartHour, RM_InpRSIFollowEndHour)) + { + if(RM_InpRSIFollowCloseOutsideHours) + { + if(HasPosition(symbol, RM_InpMagicNumberRSIFollow)) + ClosePosition(symbol, RM_InpMagicNumberRSIFollow); + } + return; + } + + if(RM_InpEnableStrategyLock && HasProfitablePosition(RM_InpMagicNumberRSIFollow)) + return; + + if(rmData.lastBarRSI > RM_InpRSIOverbought) + rmData.rsiOverbought = true; + else if(rmData.lastBarRSI < RM_InpRSIOversold) + rmData.rsiOversold = true; + + if(rmData.rsiOverbought && rmData.lastBarRSI < RM_InpRSIExitLevel) + { + if(!HasPosition(symbol, RM_InpMagicNumberRSIFollow)) + { + rmData.trade.SetExpertMagicNumber(RM_InpMagicNumberRSIFollow); + rmData.trade.Sell(g_RM_LotSize, symbol, 0, 0, 0, "RSI Follow"); + } + rmData.rsiOverbought = false; + } + else if(rmData.rsiOversold && rmData.lastBarRSI > RM_InpRSIExitLevel) + { + if(!HasPosition(symbol, RM_InpMagicNumberRSIFollow)) + { + rmData.trade.SetExpertMagicNumber(RM_InpMagicNumberRSIFollow); + rmData.trade.Buy(g_RM_LotSize, symbol, 0, 0, 0, "RSI Follow"); + } + rmData.rsiOversold = false; + } +} + +void CheckRSIReverseStrategy(string symbol) +{ + if(!IsWithinTradingHours(RM_InpRSIReverseStartHour, RM_InpRSIReverseEndHour)) + { + if(RM_InpRSIReverseCloseOutsideHours) + { + if(HasPosition(symbol, RM_InpMagicNumberRSIReverse)) + ClosePosition(symbol, RM_InpMagicNumberRSIReverse); + } + return; + } + + if(RM_InpEnableStrategyLock && HasProfitablePosition(RM_InpMagicNumberRSIReverse)) + return; + + if(IsRSIReverseInCooldown(symbol)) + return; + + if(rmData.lastBarRSIReverse > RM_InpRSIReverseOverbought) + rmData.rsiReverseOverbought = true; + else if(rmData.lastBarRSIReverse < RM_InpRSIReverseOversold) + rmData.rsiReverseOversold = true; + + if(rmData.rsiReverseOverbought && rmData.lastBarRSIReverse < RM_InpRSIReverseCrossLevel) + { + if(!HasPosition(symbol, RM_InpMagicNumberRSIReverse)) + { + rmData.trade.SetExpertMagicNumber(RM_InpMagicNumberRSIReverse); + rmData.trade.Sell(g_RM_LotSize, symbol, 0, 0, 0, "RSI Reverse"); + } + rmData.rsiReverseOverbought = false; + } + else if(rmData.rsiReverseOversold && rmData.lastBarRSIReverse > RM_InpRSIReverseCrossLevel) + { + if(!HasPosition(symbol, RM_InpMagicNumberRSIReverse)) + { + rmData.trade.SetExpertMagicNumber(RM_InpMagicNumberRSIReverse); + rmData.trade.Buy(g_RM_LotSize, symbol, 0, 0, 0, "RSI Reverse"); + } + rmData.rsiReverseOversold = false; + } +} + +void CheckEMACrossStrategy(string symbol) +{ + if(!IsWithinTradingHours(RM_InpEMACrossStartHour, RM_InpEMACrossEndHour)) + { + if(RM_InpEMACrossCloseOutsideHours) + { + if(HasPosition(symbol, RM_InpMagicNumberEMACross)) + ClosePosition(symbol, RM_InpMagicNumberEMACross); + } + return; + } + + if(RM_InpEnableStrategyLock && HasProfitablePosition(RM_InpMagicNumberEMACross)) + return; + + if(rmData.lastBarEMAPrev < rmData.lastBarClosePrev && rmData.lastBarEMA > rmData.lastBarClose) + { + rmData.emaCrossBuySignal = true; + rmData.emaCrossSellSignal = false; + rmData.emaCrossSignalBar = 0; + } + else if(rmData.lastBarEMAPrev > rmData.lastBarClosePrev && rmData.lastBarEMA < rmData.lastBarClose) + { + rmData.emaCrossSellSignal = true; + rmData.emaCrossBuySignal = false; + rmData.emaCrossSignalBar = 0; + } + + if(RM_InpUseEMADistanceEntry) + { + if(rmData.emaCrossBuySignal) + { + bool distanceConditionMet = true; + double emaHistory[], closeHistory[]; + ArraySetAsSeries(emaHistory, true); + ArraySetAsSeries(closeHistory, true); + + if(CopyBuffer(rmData.emaHandle, 0, 0, RM_InpEMADistancePeriod, emaHistory) > 0 && + CopyClose(symbol, RM_InpTimeframe, 0, RM_InpEMADistancePeriod, closeHistory) > 0) + { + double point = SymbolInfoDouble(symbol, SYMBOL_POINT); + for(int i = 0; i < RM_InpEMADistancePeriod; i++) + { + double distance = (closeHistory[i] - emaHistory[i]) / point; + if(distance < RM_InpEMADistancePips) + { + distanceConditionMet = false; + break; + } + } + + if(distanceConditionMet && !HasPosition(symbol, RM_InpMagicNumberEMACross)) + { + rmData.trade.SetExpertMagicNumber(RM_InpMagicNumberEMACross); + rmData.trade.Buy(g_RM_LotSize, symbol, 0, 0, 0, "EMA Cross Distance"); + rmData.emaCrossBuySignal = false; + } + } + } + else if(rmData.emaCrossSellSignal) + { + bool distanceConditionMet = true; + double emaHistory[], closeHistory[]; + ArraySetAsSeries(emaHistory, true); + ArraySetAsSeries(closeHistory, true); + + if(CopyBuffer(rmData.emaHandle, 0, 0, RM_InpEMADistancePeriod, emaHistory) > 0 && + CopyClose(symbol, RM_InpTimeframe, 0, RM_InpEMADistancePeriod, closeHistory) > 0) + { + double point = SymbolInfoDouble(symbol, SYMBOL_POINT); + for(int i = 0; i < RM_InpEMADistancePeriod; i++) + { + double distance = (emaHistory[i] - closeHistory[i]) / point; + if(distance < RM_InpEMADistancePips) + { + distanceConditionMet = false; + break; + } + } + + if(distanceConditionMet && !HasPosition(symbol, RM_InpMagicNumberEMACross)) + { + rmData.trade.SetExpertMagicNumber(RM_InpMagicNumberEMACross); + rmData.trade.Sell(g_RM_LotSize, symbol, 0, 0, 0, "EMA Cross Distance"); + rmData.emaCrossSellSignal = false; + } + } + } + } + else + { + if(rmData.lastBarEMAPrev < rmData.lastBarClosePrev && rmData.lastBarEMA > rmData.lastBarClose) + { + if(!HasPosition(symbol, RM_InpMagicNumberEMACross)) + { + rmData.trade.SetExpertMagicNumber(RM_InpMagicNumberEMACross); + rmData.trade.Buy(g_RM_LotSize, symbol, 0, 0, 0, "EMA Cross"); + } + } + else if(rmData.lastBarEMAPrev > rmData.lastBarClosePrev && rmData.lastBarEMA < rmData.lastBarClose) + { + if(!HasPosition(symbol, RM_InpMagicNumberEMACross)) + { + rmData.trade.SetExpertMagicNumber(RM_InpMagicNumberEMACross); + rmData.trade.Sell(g_RM_LotSize, symbol, 0, 0, 0, "EMA Cross"); + } + } + } + + if(rmData.emaCrossBuySignal || rmData.emaCrossSellSignal) + { + rmData.emaCrossSignalBar++; + if(rmData.emaCrossSignalBar > RM_InpEMADistancePeriod * 2) + { + rmData.emaCrossBuySignal = false; + rmData.emaCrossSellSignal = false; + } + } +} + +void CheckExitConditions(string symbol) +{ + if(RM_InpEnableRSIFollow) + { + if(HasPosition(symbol, RM_InpMagicNumberRSIFollow)) + { + if(PositionSelectByMagic(symbol, RM_InpMagicNumberRSIFollow)) + { + ENUM_POSITION_TYPE posType = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + if((posType == POSITION_TYPE_BUY && rmData.lastBarRSI < RM_InpRSIExitLevel) || + (posType == POSITION_TYPE_SELL && rmData.lastBarRSI > RM_InpRSIExitLevel)) + { + ClosePosition(symbol, RM_InpMagicNumberRSIFollow); + } + } + } + } + + if(RM_InpEnableRSIReverse) + { + if(HasPosition(symbol, RM_InpMagicNumberRSIReverse)) + { + if(PositionSelectByMagic(symbol, RM_InpMagicNumberRSIReverse)) + { + ENUM_POSITION_TYPE posType = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + if((posType == POSITION_TYPE_BUY && rmData.lastBarRSIReverse < RM_InpRSIReverseExitLevel) || + (posType == POSITION_TYPE_SELL && rmData.lastBarRSIReverse > RM_InpRSIReverseExitLevel)) + { + ClosePosition(symbol, RM_InpMagicNumberRSIReverse); + } + } + } + } + + if(RM_InpEnableEMACross) + { + if(HasPosition(symbol, RM_InpMagicNumberEMACross)) + { + if(PositionSelectByMagic(symbol, RM_InpMagicNumberEMACross)) + { + ENUM_POSITION_TYPE posType = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + if((posType == POSITION_TYPE_BUY && rmData.lastBarEMA > rmData.lastBarClose) || + (posType == POSITION_TYPE_SELL && rmData.lastBarEMA < rmData.lastBarClose)) + { + ClosePosition(symbol, RM_InpMagicNumberEMACross); + } + } + } + } +} + +void ClosePosition(string symbol, int magic) +{ + if(!PositionExistsByMagic(symbol, magic)) + return; + + ulong ticket = GetPositionTicketByMagic(symbol, magic); + if(ticket == 0) + return; + + if(magic == RM_InpMagicNumberRSIReverse) + { + if(PositionSelectByTicketSymbolAndMagic(ticket, symbol, magic)) + { + datetime time[]; + if(CopyTime(symbol, RM_InpTimeframe, 0, 1, time) > 0) + { + rmData.rsiReverseLastCloseTime = time[0]; + double profit = PositionGetDouble(POSITION_PROFIT); + if(!RM_InpRSIReverseCooldownOnLoss || profit < 0) + { + rmData.rsiReverseInCooldown = true; + } + } + } + } + + ClosePositionByMagic(rmData.trade, symbol, magic); +} + +bool InitRSIMidPointHijack(string symbol) +{ + rmData.symbol = symbol; + rmData.rsiOverbought = false; + rmData.rsiOversold = false; + rmData.rsiReverseOverbought = false; + rmData.rsiReverseOversold = false; + rmData.emaCrossBuySignal = false; + rmData.emaCrossSellSignal = false; + rmData.emaCrossSignalBar = 0; + rmData.rsiReverseInCooldown = false; + rmData.lastBarRSI = 0; + rmData.lastBarRSIReverse = 0; + rmData.lastBarEMA = 0; + rmData.lastBarClose = 0; + rmData.lastBarEMAPrev = 0; + rmData.lastBarClosePrev = 0; + + // Check if symbol exists + if(!SymbolSelect(symbol, true)) + { + Print("RSIMidPointHijack: Symbol '", symbol, "' not available in Market Watch. Please add it to Market Watch or check symbol name."); + return false; + } + + Sleep(100); // Wait for symbol to be ready + + rmData.rsiHandle = iRSI(symbol, RM_InpTimeframe, RM_InpRSIPeriod, PRICE_CLOSE); + rmData.rsiReverseHandle = iRSI(symbol, RM_InpTimeframe, RM_InpRSIReversePeriod, PRICE_CLOSE); + rmData.emaHandle = iMA(symbol, RM_InpTimeframe, RM_InpEMAPeriod, 0, MODE_EMA, PRICE_CLOSE); + + if(rmData.rsiHandle == INVALID_HANDLE || rmData.rsiReverseHandle == INVALID_HANDLE || rmData.emaHandle == INVALID_HANDLE) + { + Print("RSIMidPointHijack: Error creating indicators for '", symbol, "'"); + return false; + } + + rmData.trade.SetExpertMagicNumber(RM_InpMagicNumberRSIFollow); + rmData.trade.SetMarginMode(); + rmData.trade.SetTypeFillingBySymbol(symbol); + rmData.trade.SetDeviationInPoints(10); + + datetime time[]; + if(CopyTime(symbol, RM_InpTimeframe, 0, 1, time) > 0) + rmData.lastBarTime = time[0]; + + rmData.isInitialized = true; + Print("RSIMidPointHijack: Successfully initialized for symbol '", symbol, "'"); + return true; +} + +void DeinitRSIMidPointHijack() +{ + if(rmData.rsiHandle != INVALID_HANDLE) IndicatorRelease(rmData.rsiHandle); + if(rmData.rsiReverseHandle != INVALID_HANDLE) IndicatorRelease(rmData.rsiReverseHandle); + if(rmData.emaHandle != INVALID_HANDLE) IndicatorRelease(rmData.emaHandle); +} + +void ProcessRSIMidPointHijack(string symbol) +{ + // Skip if not initialized (symbol not available) + if(!rmData.isInitialized) + return; + + rmData.symbol = symbol; // Update symbol in case it changed + if(!IsNewBar(rmData.symbol)) + return; + + double rsi[], rsiReverse[], ema[], close[]; + ArraySetAsSeries(rsi, true); + ArraySetAsSeries(rsiReverse, true); + ArraySetAsSeries(ema, true); + ArraySetAsSeries(close, true); + + rmData.lastBarEMAPrev = rmData.lastBarEMA; + rmData.lastBarClosePrev = rmData.lastBarClose; + + if(CopyBuffer(rmData.rsiHandle, 0, 0, 1, rsi) > 0) + rmData.lastBarRSI = rsi[0]; + + if(CopyBuffer(rmData.rsiReverseHandle, 0, 0, 1, rsiReverse) > 0) + rmData.lastBarRSIReverse = rsiReverse[0]; + + if(CopyBuffer(rmData.emaHandle, 0, 0, 1, ema) > 0) + rmData.lastBarEMA = ema[0]; + + if(CopyClose(rmData.symbol, RM_InpTimeframe, 0, 1, close) > 0) + rmData.lastBarClose = close[0]; + + if(RM_InpEnableRSIFollow) + CheckRSIFollowStrategy(rmData.symbol); + if(RM_InpEnableRSIReverse) + CheckRSIReverseStrategy(rmData.symbol); + if(RM_InpEnableEMACross) + CheckEMACrossStrategy(rmData.symbol); + + CheckExitConditions(rmData.symbol); +} + +//+------------------------------------------------------------------+ diff --git a/frontline/MQL5/_united_dynamic_cent/Strategies/RSIReversalAsianStrategy.mqh b/frontline/MQL5/_united_dynamic_cent/Strategies/RSIReversalAsianStrategy.mqh new file mode 100644 index 0000000..6762248 --- /dev/null +++ b/frontline/MQL5/_united_dynamic_cent/Strategies/RSIReversalAsianStrategy.mqh @@ -0,0 +1,493 @@ +//+------------------------------------------------------------------+ +//| RSIReversalAsianStrategy.mqh | +//+------------------------------------------------------------------+ + +//+------------------------------------------------------------------+ +//| RSI Reversal Asian Strategy Data Structure | +//+------------------------------------------------------------------+ +struct RSIReversalAsianData { + string symbol; + bool isInitialized; + int rsiHandle; + CTrade trade; + bool isPositionOpen; + double positionOpenPrice; + datetime positionOpenTime; + ENUM_POSITION_TYPE lastPositionType; + bool sessionCloseAttempted; + + // RSI crossover variables + double rsiCurrent; + double rsiPrevious; + double rsiPrevious2; + bool rsiCrossedOverbought; + bool rsiCrossedOversold; + bool rsiCrossedExitLevel; + + // Strategy parameters + int RSIPeriod; + double OverboughtLevel; + double OversoldLevel; + int TakeProfitPips; + int StopLossPips; + double MaxLotSize; + int MaxSpread; + int MaxDuration; + bool UseStopLoss; + bool UseTakeProfit; + bool UseRSIExit; + double RSIExitLevel; + bool CloseOutsideSession; + ENUM_TIMEFRAMES TimeFrame; + int MagicNumber; + int Slippage; + double point; +}; + +// Session times (UTC) +const int AsianSessionStart = 0; // 00:00 UTC +const int AsianSessionEnd = 8; // 08:00 UTC + +//+------------------------------------------------------------------+ +//| Check if current time is in Asian session | +//+------------------------------------------------------------------+ +bool IsAsianSession() +{ + datetime currentTime = TimeCurrent(); + MqlDateTime timeStruct; + TimeToStruct(currentTime, timeStruct); + + return (timeStruct.hour >= AsianSessionStart && timeStruct.hour < AsianSessionEnd); +} + +//+------------------------------------------------------------------+ +//| Check if trading is allowed for symbol | +//+------------------------------------------------------------------+ +bool IsTradingAllowed(RSIReversalAsianData& data) +{ + // Check if market is open + long tradeMode = SymbolInfoInteger(data.symbol, SYMBOL_TRADE_MODE); + if(tradeMode != SYMBOL_TRADE_MODE_FULL) + { + return false; + } + + // Check if we have enough money + if(AccountInfoDouble(ACCOUNT_MARGIN_FREE) <= 0) + { + return false; + } + + return true; +} + +//+------------------------------------------------------------------+ +//| Check RSI crossover conditions | +//+------------------------------------------------------------------+ +void CheckRSICrossover(RSIReversalAsianData& data) +{ + // Reset crossover flags + data.rsiCrossedOverbought = false; + data.rsiCrossedOversold = false; + data.rsiCrossedExitLevel = false; + + // Check for overbought crossover (RSI crosses above overbought level) + if(data.rsiPrevious < data.OverboughtLevel && data.rsiCurrent >= data.OverboughtLevel) + { + data.rsiCrossedOverbought = true; + } + + // Check for oversold crossover (RSI crosses below oversold level) + if(data.rsiPrevious > data.OversoldLevel && data.rsiCurrent <= data.OversoldLevel) + { + data.rsiCrossedOversold = true; + } + + // Check for exit level crossover + if(data.rsiPrevious < data.RSIExitLevel && data.rsiCurrent >= data.RSIExitLevel) + { + data.rsiCrossedExitLevel = true; + } + else if(data.rsiPrevious > data.RSIExitLevel && data.rsiCurrent <= data.RSIExitLevel) + { + data.rsiCrossedExitLevel = true; + } +} + +//+------------------------------------------------------------------+ +//| Close all trades for the symbol | +//+------------------------------------------------------------------+ +bool CloseAllTrades(RSIReversalAsianData& data, string reason = "") +{ + bool allClosed = true; + int totalPositions = PositionsTotal(); + + if(totalPositions == 0) + return true; + + for(int i = totalPositions - 1; i >= 0; i--) + { + if(PositionGetSymbol(i) == data.symbol) + { + ulong ticket = PositionGetTicket(i); + if(ticket > 0 && PositionSelectByTicket(ticket)) + { + if(PositionGetInteger(POSITION_MAGIC) == (ulong)data.MagicNumber) + { + // Try to close position with retry logic + int retryCount = 0; + bool positionClosed = false; + + while(retryCount < 3 && !positionClosed) + { + if(data.trade.PositionClose(ticket)) + { + data.isPositionOpen = false; + positionClosed = true; + } + else + { + int error = GetLastError(); + + // If error is 4756 (Trade disabled), wait longer before retry + if(error == 4756) + { + Sleep(5000); // Wait 5 seconds before retry + retryCount++; + } + else + { + // For other errors, break the loop + break; + } + } + } + + if(!positionClosed) + { + allClosed = false; + } + } + } + } + } + + return allClosed; +} + +//+------------------------------------------------------------------+ +//| Initialize RSI Reversal Asian Strategy | +//+------------------------------------------------------------------+ +bool InitRSIReversalAsian(RSIReversalAsianData& data, string symbol, + int RSIPeriod, double OverboughtLevel, double OversoldLevel, + int TakeProfitPips, int StopLossPips, double MaxLotSize, + int MaxSpread, int MaxDuration, bool UseStopLoss, + bool UseTakeProfit, bool UseRSIExit, double RSIExitLevel, + bool CloseOutsideSession, ENUM_TIMEFRAMES TimeFrame, + int MagicNumber, int Slippage) +{ + data.symbol = symbol; + data.isInitialized = false; + + // Check if symbol exists + if(!SymbolSelect(symbol, true)) + { + Print("RSIReversalAsian: Symbol '", symbol, "' not available in Market Watch. Please add it to Market Watch or check symbol name."); + return false; + } + + // Wait a bit for symbol to be ready + Sleep(100); + + // Get symbol point + data.point = SymbolInfoDouble(symbol, SYMBOL_POINT); + + // Store parameters + data.RSIPeriod = RSIPeriod; + data.OverboughtLevel = OverboughtLevel; + data.OversoldLevel = OversoldLevel; + data.TakeProfitPips = TakeProfitPips; + data.StopLossPips = StopLossPips; + data.MaxLotSize = MaxLotSize; + data.MaxSpread = MaxSpread; + data.MaxDuration = MaxDuration; + data.UseStopLoss = UseStopLoss; + data.UseTakeProfit = UseTakeProfit; + data.UseRSIExit = UseRSIExit; + data.RSIExitLevel = RSIExitLevel; + data.CloseOutsideSession = CloseOutsideSession; + data.TimeFrame = TimeFrame; + data.MagicNumber = MagicNumber; + data.Slippage = Slippage; + + // Initialize RSI indicator with retry logic (for insufficient history in backtesting) + data.rsiHandle = INVALID_HANDLE; + int retryCount = 0; + int maxRetries = 5; + + while(retryCount < maxRetries && data.rsiHandle == INVALID_HANDLE) + { + data.rsiHandle = iRSI(symbol, TimeFrame, RSIPeriod, PRICE_CLOSE); + + if(data.rsiHandle == INVALID_HANDLE) + { + int error = GetLastError(); + + // Error 4805 = insufficient history - wait longer and retry + if(error == 4805 && retryCount < maxRetries - 1) + { + Sleep(1000); // Wait 1 second for history to load + retryCount++; + continue; + } + + Print("RSIReversalAsian: Error creating RSI indicator for '", symbol, "' - Error: ", error, " (", error == 4805 ? "Insufficient history data" : "Unknown", ")"); + return false; + } + } + + if(data.rsiHandle == INVALID_HANDLE) + { + Print("RSIReversalAsian: Failed to create RSI indicator for '", symbol, "' after ", maxRetries, " retries"); + return false; + } + + // Wait a bit for the indicator to be ready + Sleep(100); + + // Initialize RSI values with retry logic + double rsi[]; + ArraySetAsSeries(rsi, true); + + retryCount = 0; + bool rsiInitialized = false; + + while(retryCount < 10 && !rsiInitialized) + { + int copied = CopyBuffer(data.rsiHandle, 0, 0, 3, rsi); + if(copied >= 3) + { + data.rsiCurrent = rsi[0]; + data.rsiPrevious = rsi[1]; + data.rsiPrevious2 = rsi[2]; + rsiInitialized = true; + } + else + { + retryCount++; + Sleep(100); + } + } + + if(!rsiInitialized) + { + // Don't fail initialization, just set default values + data.rsiCurrent = 50.0; + data.rsiPrevious = 50.0; + data.rsiPrevious2 = 50.0; + } + + // Set trade parameters + data.trade.SetExpertMagicNumber(MagicNumber); + data.trade.SetDeviationInPoints(Slippage); + data.trade.SetTypeFilling(ORDER_FILLING_IOC); + + // Initialize state + data.isPositionOpen = false; + data.positionOpenPrice = 0; + data.positionOpenTime = 0; + data.lastPositionType = POSITION_TYPE_BUY; + data.sessionCloseAttempted = false; + data.rsiCrossedOverbought = false; + data.rsiCrossedOversold = false; + data.rsiCrossedExitLevel = false; + + data.isInitialized = true; + + Print("RSIReversalAsian: Successfully initialized for symbol '", symbol, "'"); + return true; +} + +//+------------------------------------------------------------------+ +//| Deinitialize RSI Reversal Asian Strategy | +//+------------------------------------------------------------------+ +void DeinitRSIReversalAsian(RSIReversalAsianData& data) +{ + if(data.rsiHandle != INVALID_HANDLE) + IndicatorRelease(data.rsiHandle); +} + +//+------------------------------------------------------------------+ +//| Process RSI Reversal Asian Strategy | +//+------------------------------------------------------------------+ +void ProcessRSIReversalAsian(RSIReversalAsianData& data, double lotSize) +{ + if(!data.isInitialized) + return; + + // Check if trading is allowed + if(!IsTradingAllowed(data)) + { + return; + } + + // Check if we're in Asian session + if(!IsAsianSession()) + { + // Close all positions if outside Asian session and CloseOutsideSession is true + if(data.CloseOutsideSession && !data.sessionCloseAttempted) + { + CloseAllTrades(data, "Outside Asian session"); + data.sessionCloseAttempted = true; + } + return; + } + else + { + // Reset the session close attempt flag when we enter Asian session + data.sessionCloseAttempted = false; + } + + // Get current spread + double spread = SymbolInfoDouble(data.symbol, SYMBOL_ASK) - SymbolInfoDouble(data.symbol, SYMBOL_BID); + int spreadInPips = (int)(spread / data.point); + + // Check if spread is too high + if(spreadInPips > data.MaxSpread) + { + return; + } + + // Get RSI values from bar data + double rsi[]; + ArraySetAsSeries(rsi, true); + + int copied = CopyBuffer(data.rsiHandle, 0, 0, 3, rsi); + if(copied < 3) + { + return; + } + + // Update RSI values + data.rsiPrevious2 = data.rsiPrevious; + data.rsiPrevious = data.rsiCurrent; + data.rsiCurrent = rsi[0]; + + // Validate RSI values + if(data.rsiCurrent == 0 || data.rsiPrevious == 0) + { + return; + } + + // Check for RSI crossovers + CheckRSICrossover(data); + + // Get current prices + double currentBid = SymbolInfoDouble(data.symbol, SYMBOL_BID); + double currentAsk = SymbolInfoDouble(data.symbol, SYMBOL_ASK); + + // Check for open position + bool hasOpenPosition = PositionExistsByMagic(data.symbol, (ulong)data.MagicNumber); + + if(hasOpenPosition) + { + // Get position details + ulong ticket = GetPositionTicketByMagic(data.symbol, (ulong)data.MagicNumber); + if(ticket > 0 && PositionSelectByTicket(ticket)) + { + ENUM_POSITION_TYPE posType = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + datetime openTime = (datetime)PositionGetInteger(POSITION_TIME); + + // Check for RSI exit if enabled + if(data.UseRSIExit && data.rsiCrossedExitLevel) + { + bool shouldExit = false; + + // For long positions, exit when RSI crosses above exit level + if(posType == POSITION_TYPE_BUY && data.rsiCurrent >= data.RSIExitLevel && data.rsiPrevious < data.RSIExitLevel) + { + shouldExit = true; + } + // For short positions, exit when RSI crosses below exit level + else if(posType == POSITION_TYPE_SELL && data.rsiCurrent <= data.RSIExitLevel && data.rsiPrevious > data.RSIExitLevel) + { + shouldExit = true; + } + + if(shouldExit) + { + CloseAllTrades(data, "RSI Exit Crossover"); + return; + } + } + + // Check for timeout + if(TimeCurrent() - openTime > data.MaxDuration * 3600) + { + CloseAllTrades(data, "Timeout"); + return; + } + } + } + + // If no position is open, look for entry signals based on RSI crossover + if(!hasOpenPosition) + { + // Place buy order if RSI crosses below oversold level (oversold crossover) + if(data.rsiCrossedOversold) + { + double sl = data.UseStopLoss ? currentBid - data.StopLossPips * data.point : 0; + double tp = data.UseTakeProfit ? currentBid + data.TakeProfitPips * data.point : 0; + + if(data.UseStopLoss && sl >= currentBid) + return; + if(data.UseTakeProfit && tp <= currentBid) + return; + + // Set trade parameters + data.trade.SetDeviationInPoints(data.Slippage); + data.trade.SetTypeFilling(ORDER_FILLING_IOC); + data.trade.SetExpertMagicNumber(data.MagicNumber); + + // Use dynamic lot size + double tradeLotSize = lotSize > 0 ? lotSize : data.MaxLotSize; + + // Place buy order using CTrade + if(data.trade.Buy(tradeLotSize, data.symbol, currentAsk, sl, tp, "RSI Oversold Crossover Buy")) + { + data.isPositionOpen = true; + data.positionOpenPrice = currentAsk; + data.positionOpenTime = TimeCurrent(); + data.lastPositionType = POSITION_TYPE_BUY; + } + } + // Place sell order if RSI crosses above overbought level (overbought crossover) + else if(data.rsiCrossedOverbought) + { + double sl = data.UseStopLoss ? currentAsk + data.StopLossPips * data.point : 0; + double tp = data.UseTakeProfit ? currentAsk - data.TakeProfitPips * data.point : 0; + + if(data.UseStopLoss && sl <= currentAsk) + return; + if(data.UseTakeProfit && tp >= currentAsk) + return; + + // Set trade parameters + data.trade.SetDeviationInPoints(data.Slippage); + data.trade.SetTypeFilling(ORDER_FILLING_IOC); + data.trade.SetExpertMagicNumber(data.MagicNumber); + + // Use dynamic lot size + double tradeLotSize = lotSize > 0 ? lotSize : data.MaxLotSize; + + // Place sell order using CTrade + if(data.trade.Sell(tradeLotSize, data.symbol, currentBid, sl, tp, "RSI Overbought Crossover Sell")) + { + data.isPositionOpen = true; + data.positionOpenPrice = currentBid; + data.positionOpenTime = TimeCurrent(); + data.lastPositionType = POSITION_TYPE_SELL; + } + } + } +} diff --git a/frontline/MQL5/_united_dynamic_cent/Strategies/RSIScalpingStrategy.mqh b/frontline/MQL5/_united_dynamic_cent/Strategies/RSIScalpingStrategy.mqh new file mode 100644 index 0000000..666dc1d --- /dev/null +++ b/frontline/MQL5/_united_dynamic_cent/Strategies/RSIScalpingStrategy.mqh @@ -0,0 +1,451 @@ +//+------------------------------------------------------------------+ +//| RSIScalpingStrategy.mqh | +//+------------------------------------------------------------------+ + +//+------------------------------------------------------------------+ +//| RSI Scalping Strategy Data Structure | +//+------------------------------------------------------------------+ +struct RSIScalpingData { + string symbol; + bool isInitialized; + CTrade trade; + int rsi_handle; + double rsi_buffer[]; + double rsi_prev; + double rsi_current; + double rsi_two_bars_ago; + bool position_open; + ulong position_ticket; + ENUM_POSITION_TYPE current_position_type; + datetime last_bar_time; + bool rsi_against_position; + int bars_against_count; +}; + +string ErrorDescription(int errorCode) +{ + switch(errorCode) + { + case 4801: return "Symbol not found"; + case 4802: return "Symbol not selected"; + case 4803: return "Symbol not visible"; + case 4804: return "Symbol not available"; + case 4805: return "Cannot load indicator - insufficient history data"; + default: return "Unknown error " + IntegerToString(errorCode); + } +} + +bool InitRSIScalping(RSIScalpingData& data, string symbol, ENUM_TIMEFRAMES TimeFrame, int RSI_Period, + ENUM_APPLIED_PRICE RSI_Applied_Price, int MagicNumber, int Slippage) +{ + data.symbol = symbol; + data.isInitialized = false; + + // Check if symbol exists + if(!SymbolSelect(symbol, true)) + { + Print("RSIScalping: Symbol '", symbol, "' not available in Market Watch. Please add it to Market Watch or check symbol name."); + return false; // Return false but don't fail entire EA + } + + // Wait a bit for symbol to be ready + Sleep(100); + + // Try to create RSI indicator with retry logic (for insufficient history in backtesting) + data.rsi_handle = INVALID_HANDLE; + int retryCount = 0; + int maxRetries = 5; + + while(retryCount < maxRetries && data.rsi_handle == INVALID_HANDLE) + { + data.rsi_handle = iRSI(symbol, TimeFrame, RSI_Period, RSI_Applied_Price); + + if(data.rsi_handle == INVALID_HANDLE) + { + int error = GetLastError(); + + // Error 4805 = insufficient history - wait longer and retry + if(error == 4805 && retryCount < maxRetries - 1) + { + Sleep(1000); // Wait 1 second for history to load + retryCount++; + continue; + } + + Print("RSIScalping: Error creating RSI indicator for '", symbol, "' - Error: ", error, " (", ErrorDescription(error), ")"); + return false; // Return false but don't fail entire EA + } + } + + if(data.rsi_handle == INVALID_HANDLE) + { + Print("RSIScalping: Failed to create RSI indicator for '", symbol, "' after ", maxRetries, " retries"); + return false; + } + + data.trade.SetExpertMagicNumber(MagicNumber); + data.trade.SetDeviationInPoints(Slippage); + data.trade.SetTypeFilling(ORDER_FILLING_FOK); + + ArraySetAsSeries(data.rsi_buffer, true); + data.position_open = false; + data.position_ticket = 0; + data.rsi_against_position = false; + data.bars_against_count = 0; + data.isInitialized = true; + + Print("RSIScalping: Successfully initialized for symbol '", symbol, "'"); + return true; +} + +void DeinitRSIScalping(RSIScalpingData& data) +{ + if(data.rsi_handle != INVALID_HANDLE) + IndicatorRelease(data.rsi_handle); +} + +bool UpdateRSI(RSIScalpingData& data) +{ + if(CopyBuffer(data.rsi_handle, 0, 0, 3, data.rsi_buffer) < 3) + return false; + + data.rsi_current = data.rsi_buffer[0]; + data.rsi_prev = data.rsi_buffer[1]; + data.rsi_two_bars_ago = data.rsi_buffer[2]; + + return true; +} + +void CheckExistingPosition(RSIScalpingData& data, ENUM_TIMEFRAMES TimeFrame, int MagicNumber, + double RSI_Oversold, double RSI_Overbought, double RSI_Target_Buy, + double RSI_Target_Sell, int BarsToWait) +{ + // Always check if position exists, even if tracking says it doesn't + bool positionExists = PositionExistsByMagic(data.symbol, MagicNumber); + + if(!positionExists && data.position_open) + { + // Position was closed externally, reset tracking + data.position_open = false; + data.position_ticket = 0; + data.rsi_against_position = false; + data.bars_against_count = 0; + return; + } + + if(!positionExists) + return; + + // Update tracking if we have a position but tracking was lost + if(!data.position_open && positionExists) + { + ulong ticket = GetPositionTicketByMagic(data.symbol, MagicNumber); + if(ticket > 0 && PositionSelectByTicketSymbolAndMagic(ticket, data.symbol, MagicNumber)) + { + data.position_ticket = ticket; + data.position_open = true; + data.current_position_type = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + } + } + + // Verify our tracked position still exists + if(data.position_open && data.position_ticket > 0) + { + if(!PositionSelectByTicketSymbolAndMagic(data.position_ticket, data.symbol, MagicNumber)) + { + // Try to find the position again + ulong ticket = GetPositionTicketByMagic(data.symbol, MagicNumber); + if(ticket > 0 && PositionSelectByTicketSymbolAndMagic(ticket, data.symbol, MagicNumber)) + { + data.position_ticket = ticket; + data.current_position_type = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + } + else + { + // Position doesn't exist, reset tracking + data.position_open = false; + data.position_ticket = 0; + data.rsi_against_position = false; + data.bars_against_count = 0; + return; + } + } + else + { + // Update position type in case it changed (shouldn't happen, but be safe) + data.current_position_type = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE); + } + } + + if(data.current_position_type == POSITION_TYPE_BUY) + { + if(data.rsi_current < RSI_Oversold) + { + if(!data.rsi_against_position) + { + data.rsi_against_position = true; + data.bars_against_count = 1; + } + else + { + data.bars_against_count++; + } + + if(data.bars_against_count >= BarsToWait) + { + ClosePosition(data, MagicNumber); + return; + } + } + else + { + if(data.rsi_against_position) + { + data.rsi_against_position = false; + data.bars_against_count = 0; + } + + if(data.rsi_current >= RSI_Target_Buy) + { + ClosePosition(data, MagicNumber); + } + } + } + else if(data.current_position_type == POSITION_TYPE_SELL) + { + if(data.rsi_current > RSI_Overbought) + { + if(!data.rsi_against_position) + { + data.rsi_against_position = true; + data.bars_against_count = 1; + } + else + { + data.bars_against_count++; + } + + if(data.bars_against_count >= BarsToWait) + { + ClosePosition(data, MagicNumber); + return; + } + } + else + { + if(data.rsi_against_position) + { + data.rsi_against_position = false; + data.bars_against_count = 0; + } + + if(data.rsi_current <= RSI_Target_Sell) + { + ClosePosition(data, MagicNumber); + } + } + } +} + +void CheckEntrySignals(RSIScalpingData& data, ENUM_TIMEFRAMES TimeFrame, int MagicNumber, + double RSI_Oversold, double RSI_Overbought, double LotSize) +{ + if(data.rsi_two_bars_ago <= RSI_Oversold && data.rsi_prev > RSI_Oversold) + { + OpenBuyPosition(data, MagicNumber, LotSize); + } + + if(data.rsi_two_bars_ago >= RSI_Overbought && data.rsi_prev < RSI_Overbought) + { + OpenSellPosition(data, MagicNumber, LotSize); + } +} + +//+------------------------------------------------------------------+ +//| Normalize Lot Size According to Symbol Properties | +//+------------------------------------------------------------------+ +double NormalizeLotSize(string symbol, double lotSize) +{ + double minLot = SymbolInfoDouble(symbol, SYMBOL_VOLUME_MIN); + double maxLot = SymbolInfoDouble(symbol, SYMBOL_VOLUME_MAX); + double lotStep = SymbolInfoDouble(symbol, SYMBOL_VOLUME_STEP); + + // Round to lot step + if(lotStep > 0) + lotSize = MathFloor(lotSize / lotStep) * lotStep; + + // Apply min/max constraints + if(lotSize < minLot) + lotSize = minLot; + if(lotSize > maxLot) + lotSize = maxLot; + + return lotSize; +} + +void OpenBuyPosition(RSIScalpingData& data, int MagicNumber, double LotSize) +{ + if(PositionExistsByMagic(data.symbol, MagicNumber)) + return; + + // Normalize lot size according to symbol properties + double normalizedLot = NormalizeLotSize(data.symbol, LotSize); + + double ask = SymbolInfoDouble(data.symbol, SYMBOL_ASK); + + if(data.trade.Buy(normalizedLot, data.symbol, ask, 0, 0, "RSI Scalping Buy")) + { + ulong new_ticket = data.trade.ResultOrder(); + if(new_ticket > 0) + { + if(PositionSelectByTicketSymbolAndMagic(new_ticket, data.symbol, MagicNumber)) + { + data.position_ticket = new_ticket; + data.position_open = true; + data.current_position_type = POSITION_TYPE_BUY; + } + } + } +} + +void OpenSellPosition(RSIScalpingData& data, int MagicNumber, double LotSize) +{ + if(PositionExistsByMagic(data.symbol, MagicNumber)) + return; + + // Normalize lot size according to symbol properties + double normalizedLot = NormalizeLotSize(data.symbol, LotSize); + + double bid = SymbolInfoDouble(data.symbol, SYMBOL_BID); + + if(data.trade.Sell(normalizedLot, data.symbol, bid, 0, 0, "RSI Scalping Sell")) + { + ulong new_ticket = data.trade.ResultOrder(); + if(new_ticket > 0) + { + if(PositionSelectByTicketSymbolAndMagic(new_ticket, data.symbol, MagicNumber)) + { + data.position_ticket = new_ticket; + data.position_open = true; + data.current_position_type = POSITION_TYPE_SELL; + } + } + } +} + +void ClosePosition(RSIScalpingData& data, int MagicNumber) +{ + // First verify position still exists + if(!PositionExistsByMagic(data.symbol, MagicNumber)) + { + // Position doesn't exist, reset tracking + data.position_open = false; + data.position_ticket = 0; + data.rsi_against_position = false; + data.bars_against_count = 0; + return; + } + + // Try to close by ticket first (more reliable) + bool closed = false; + if(data.position_ticket > 0) + { + if(PositionSelectByTicket(data.position_ticket)) + { + // Verify it's our position + if(PositionGetString(POSITION_SYMBOL) == data.symbol && + PositionGetInteger(POSITION_MAGIC) == MagicNumber) + { + closed = data.trade.PositionClose(data.position_ticket); + if(!closed) + { + Print("RSIScalping: Failed to close position by ticket ", data.position_ticket, + " - Error: ", data.trade.ResultRetcode(), " (", data.trade.ResultRetcodeDescription(), ")"); + } + } + } + } + + // If ticket method failed, try magic number method + if(!closed) + { + closed = ClosePositionByMagic(data.trade, data.symbol, MagicNumber); + if(!closed) + { + Print("RSIScalping: Failed to close position by magic number for '", data.symbol, + "' - Error: ", data.trade.ResultRetcode(), " (", data.trade.ResultRetcodeDescription(), ")"); + } + } + + // Verify position is actually closed + if(closed) + { + // Wait a moment and verify + Sleep(50); + if(!PositionExistsByMagic(data.symbol, MagicNumber)) + { + data.position_open = false; + data.position_ticket = 0; + data.rsi_against_position = false; + data.bars_against_count = 0; + Print("RSIScalping: Position successfully closed for '", data.symbol, "'"); + } + else + { + Print("RSIScalping: Warning - Close returned success but position still exists for '", data.symbol, "'"); + // Try one more time + Sleep(100); + if(PositionExistsByMagic(data.symbol, MagicNumber)) + { + ClosePositionByMagic(data.trade, data.symbol, MagicNumber); + } + // Reset tracking anyway to prevent getting stuck + data.position_open = false; + data.position_ticket = 0; + data.rsi_against_position = false; + data.bars_against_count = 0; + } + } + else + { + // Close failed, but reset tracking to prevent getting stuck + // The position might have been closed externally + data.position_open = false; + data.position_ticket = 0; + data.rsi_against_position = false; + data.bars_against_count = 0; + } +} + +void ProcessRSIScalping(RSIScalpingData& data, string symbol, ENUM_TIMEFRAMES TimeFrame, int RSI_Period, + ENUM_APPLIED_PRICE RSI_Applied_Price, double RSI_Overbought, + double RSI_Oversold, double RSI_Target_Buy, double RSI_Target_Sell, + int BarsToWait, double LotSize, int MagicNumber) +{ + // Skip if not initialized (symbol not available) + if(!data.isInitialized) + return; + + data.symbol = symbol; // Update symbol in case it changed + if(Bars(data.symbol, TimeFrame) < RSI_Period + 2) + return; + + datetime current_bar_time = iTime(data.symbol, TimeFrame, 0); + if(current_bar_time == data.last_bar_time) + return; + + data.last_bar_time = current_bar_time; + + if(!UpdateRSI(data)) + return; + + CheckExistingPosition(data, TimeFrame, MagicNumber, RSI_Oversold, RSI_Overbought, + RSI_Target_Buy, RSI_Target_Sell, BarsToWait); + + if(!data.position_open && !PositionExistsByMagic(data.symbol, MagicNumber)) + { + CheckEntrySignals(data, TimeFrame, MagicNumber, RSI_Oversold, RSI_Overbought, LotSize); + } +} + +//+------------------------------------------------------------------+ diff --git a/frontline/MQL5/_united_dynamic_cent/main.mq5 b/frontline/MQL5/_united_dynamic_cent/main.mq5 new file mode 100644 index 0000000..191d017 --- /dev/null +++ b/frontline/MQL5/_united_dynamic_cent/main.mq5 @@ -0,0 +1,736 @@ +//+------------------------------------------------------------------+ +//| UnitedEA.mq5 | +//| Cent ".c" symbols; InpDynamicRefDeposit MUST match ACCOUNT_ | +//| CURRENCY numbers (USC ~50k for ~$500, or USD ~500 — not mixed). | +//| Per-order max lots = broker spec 最大量 SYMBOL_VOLUME_MAX | +//| (often 1000 on *.c); EA cannot exceed it — see symbol contract. | +//| Copyright 2025, MetaQuotes Ltd. | +//| https://www.mql5.com | +//+------------------------------------------------------------------+ +#property copyright "Copyright 2025, MetaQuotes Ltd." +#property link "https://www.mql5.com" +#property version "1.10" +#property strict + +#include +#include +#include +#include +#include "MagicNumberHelpers.mqh" + +// Lot globals must exist before strategy .mqh (Darvas uses g_DB_LotSize; EMA/RC/RM use g_ES/g_RC/g_RM) +double g_ES_LotSize; +double g_RC_LotSize; +double g_RM_LotSize; +double g_DB_LotSize; +double g_DynLotScaleLast = 1.0; // last applied scale: lots = baseLot * scale * InpLotSizeScale +double g_DynamicRefBaseline = 0.0; // when InpDynamicRefDeposit<=0, frozen ref = equity at first sizing call + +// Include strategy implementations early so structs are available +#include "Strategies/DarvasBoxStrategy.mqh" +#include "Strategies/EMASlopeDistanceStrategy.mqh" +#include "Strategies/RSICrossOverReversalStrategy.mqh" +#include "Strategies/RSIMidPointHijackStrategy.mqh" +#include "Strategies/RSIScalpingStrategy.mqh" +#include "Strategies/RSIReversalAsianStrategy.mqh" + +//+------------------------------------------------------------------+ +//| Strategy Enable/Disable Switches | +//+------------------------------------------------------------------+ +input group "=== Strategy Enable/Disable ===" +input bool EnableDarvasBox = true; +input bool EnableEMASlopeDistance = true; +input bool EnableRSICrossOverReversal = true; +input bool EnableRSIMidPointHijack = true; +input bool EnableRSIScalpingAPPL = true; +input bool EnableRSIScalpingBTCUSD = true; +input bool EnableRSIScalpingNVDA = true; +input bool EnableRSIScalpingTSLA = true; +input bool EnableRSIScalpingXAUUSD = true; +input bool EnableRSIReversalAsianEURUSD = true; +input bool EnableRSIReversalAsianAUDUSD = true; + +//+------------------------------------------------------------------+ +//| Dynamic lot sizing — 默认「按比例」:lots = base × (equity/ref) × lotScale | +//| 可选幂曲线:lots = base × (equity/ref)^exp × lotScale(旧行为) | +//| min/max 约束的是「比例系数」不是手数本身;max<=0 表示比例系数上不封顶 | +//| | +//| USC (deposit currency) vs "lot size": | +//| • Equity/ref for the multiplier are BOTH in account currency | +//| (USC). Same units → ratio is correct; no ×100 on the ratio. | +//| • Strategy base lots (e.g. DB_BaseLotSize) are ORDER VOLUME in | +//| lots, not "USC lots". Broker SYMBOL_VOLUME_* / contract define | +//| how much margin and P/L appear in USC. | +//| • Do not multiply lot inputs by 100 only because balance is USC. | +//| If DD too high: raise InpDynamicRefDeposit and/or lower base lots.| +//| If balance is USD ~500 but ref is ~50k–300k: mult→floor, lots→0.01.| +//| Ref<=0: 挂上时余额/净值为参考,之后手数随净值相对该基准的比例变化。 | +//| 单笔上限:品种规格里的「最大量」(SYMBOL_VOLUME_MAX),非 EA 参数。 | +//| InpMaxLotsPerOrder:EA 再截一刀,防止动态+scale 顶满 1000 爆仓。 | +//+------------------------------------------------------------------+ +enum ENUM_LOT_SCALE_CURVE +{ + LOT_CURVE_PROPORTIONAL = 0, // 按比例:scale = 净值/参考(线性) + LOT_CURVE_POWER = 1 // 幂:scale = (净值/参考)^exp +}; + +input group "=== Dynamic lot sizing (动态手数) ===" +input bool InpDynamicLotEnable = true; // Enable balance/equity-based scaling +input ENUM_LOT_SCALE_CURVE InpDynamicLotCurve = LOT_CURVE_PROPORTIONAL; // 默认按比例;幂曲线=旧 (equity/ref)^exp +input double InpDynamicRefDeposit = 0.0; // <=0: auto — ref=挂上时净值/余额(与测试器初始一致则手数随盈利涨); >0 手动参考金 +input bool InpDynamicRefEqualsEquity = false; // true: 比例系数固定为 1(只用基础手×lotScale) +input double InpDynamicExponent = 1.22; // 仅 LOT_CURVE_POWER 时:(净值/参考) 的指数 +input double InpDynamicMinMult = 0.0; // 比例系数下限;<=0 不抬(按比例时净值<参考会缩小手数) +input double InpDynamicMaxMult = 20.0; // 比例系数上限;<=0 不封顶(高风险) +input bool InpDynamicUseEquity = true; // true=ACCOUNT_EQUITY, false=ACCOUNT_BALANCE +input double InpDynamicStockLotCap = 0.0; // Max lots after scale (0=off); raise if InpLotSizeScale is large +input double InpLotSizeScale = 1.0; // 全局手数倍率; 曾用100易过大,默认1按需再加 +input double InpMaxLotsPerOrder = 20.0; // 单笔最大手数(0=仅券商SYMBOL_VOLUME_MAX); 保守可设5~10 + +//+------------------------------------------------------------------+ +//| Strategy 1: DarvasBoxXAUUSD (cent symbol) | +//+------------------------------------------------------------------+ +input group "=== DarvasBox Strategy ===" +input string DB_Symbol = "XAUUSD.c"; +input int DB_BoxPeriod = 165; +input double DB_BoxDeviation = 30000; // Increased to allow larger ranges (was 25140) +input int DB_VolumeThreshold = 0; // Set to 0 to disable volume threshold check. Volume data from indicator used instead. +input double DB_StopLoss = 1665; +input double DB_TakeProfit = 3685; +input bool DB_EnableLogging = false; +input color DB_BoxColor = clrBlue; +input int DB_BoxWidth = 1; +input ENUM_TIMEFRAMES DB_TrendTimeframe = PERIOD_H2; +input int DB_MA_Period = 125; +input ENUM_MA_METHOD DB_MA_Method = MODE_EMA; +input ENUM_APPLIED_PRICE DB_MA_Price = PRICE_WEIGHTED; +input double DB_TrendThreshold = 4.94; +input int DB_VolumeMA_Period = 110; +input double DB_VolumeThresholdMultiplier = 1.5; +input int DB_MagicNumber = 135790; +input double DB_BaseLotSize = 0.02; // Base lot at InpDynamicRefDeposit (Darvas) + +//+------------------------------------------------------------------+ +//| Strategy 2: EMASlopeDistanceCocktailXAUUSD | +//| Cent: gold is usually "XAUUSD.c" (verify in Market Watch). | +//+------------------------------------------------------------------+ +input group "=== EMA Slope Distance Strategy ===" +input string ES_Symbol = "XAUUSD.c"; +input int ES_EMA_Periode = 46; +input double ES_PreisSchwelle = 600.0; +input double ES_SteigungSchwelle = 80.0; +input int ES_ÜberwachungTimeout = 800; +input double ES_TrailingStop = 250.0; +input double ES_LotGröße = 0.05; +input int ES_MagicNumber = 12350; +input bool ES_UseSpreadAdjustment = true; +input ENUM_TIMEFRAMES ES_Timeframe = PERIOD_H1; +input bool ES_UseBarData = true; +input int ES_MaxTradesPerCrossover = 9; +input int ES_ProfitCheckBars = 18; +input bool ES_CloseUnprofitableTrades = true; + +//+------------------------------------------------------------------+ +//| Strategy 3: RSICrossOverReversalXAUUSD | +//| Cent: use "XAUUSD.c" if that is what the broker lists. | +//+------------------------------------------------------------------+ +input group "=== RSI CrossOver Reversal Strategy ===" +input string RC_Symbol = "XAUUSD.c"; +input int RC_MagicNumber = 7; +input int RC_rsiPeriod = 19; +input int RC_overboughtLevel = 93; +input int RC_oversoldLevel = 22; +input double RC_entryRSIBuySpread = 0; +input double RC_entryRSISellSpread = 0; +input double RC_lotSize = 0.02; +input int RC_slippage = 3; +input int RC_cooldownSeconds = 209; +input ENUM_TIMEFRAMES RC_TimeFrame1 = PERIOD_M1; +input ENUM_TIMEFRAMES RC_TimeFrame2 = PERIOD_M1; +input ENUM_TIMEFRAMES RC_BarTimeFrame = PERIOD_M12; +input int RC_emaPeriod = 140; +input double RC_emaSlopeThreshold = 105; +input double RC_exitBuyRSI = 86; +input double RC_exitSellRSI = 10; +input double RC_TrailingStop = 295; +input double RC_emaDistanceThreshold = 165; +input int RC_tradingHourOneBegin = 24; +input int RC_tradingHourOneEnd = 22; +input int RC_tradingHourTwoBegin = 6; +input int RC_tradingHourTwoEnd = 19; +input bool RC_Sunday = false; +input bool RC_Monday = false; +input bool RC_Tuesday = true; +input bool RC_Wednesday = true; +input bool RC_Thursday = true; +input bool RC_Friday = false; +input bool RC_Saturday = false; + +//+------------------------------------------------------------------+ +//| Strategy 4: RSIMidPointHijackXAUUSD | +//| Cent: use "XAUUSD.c" if that is what the broker lists. | +//+------------------------------------------------------------------+ +input group "=== RSI MidPoint Hijack Strategy ===" +input string RM_Symbol = "XAUUSD.c"; +input ENUM_TIMEFRAMES RM_InpTimeframe = PERIOD_H1; +input double RM_InpLotSize = 0.03; +input int RM_InpMagicNumberRSIFollow = 1001; +input int RM_InpMagicNumberRSIReverse = 1002; +input int RM_InpMagicNumberEMACross = 1003; +input bool RM_InpEnableRSIFollow = true; +input bool RM_InpEnableRSIReverse = true; +input bool RM_InpEnableEMACross = true; +input bool RM_InpEnableStrategyLock = false; +input double RM_InpLockProfitThreshold = 0.0; +input bool RM_InpCloseOppositeTrades = false; +input int RM_InpRSIPeriod = 32; +input int RM_InpRSIOverbought = 78; +input int RM_InpRSIOversold = 46; +input int RM_InpRSIExitLevel = 44; +input int RM_InpRSIFollowStartHour = 23; +input int RM_InpRSIFollowEndHour = 8; +input bool RM_InpRSIFollowCloseOutsideHours = false; +input int RM_InpRSIReversePeriod = 59; +input int RM_InpRSIReverseOverbought = 51; +input int RM_InpRSIReverseOversold = 49; +input int RM_InpRSIReverseCrossLevel = 53; +input int RM_InpRSIReverseExitLevel = 48; +input int RM_InpRSIReverseStartHour = 7; +input int RM_InpRSIReverseEndHour = 13; +input bool RM_InpRSIReverseCloseOutsideHours = false; +input int RM_InpRSIReverseCooldownBars = 15; +input bool RM_InpRSIReverseCooldownOnLoss = true; +input int RM_InpEMAPeriod = 120; +input int RM_InpEMACrossStartHour = 8; +input int RM_InpEMACrossEndHour = 14; +input bool RM_InpEMACrossCloseOutsideHours = true; +input bool RM_InpUseEMADistanceEntry = true; +input double RM_InpEMADistancePips = 160.0; +input int RM_InpEMADistancePeriod = 26; + +//+------------------------------------------------------------------+ +//| Strategy 5-10: RSI Scalping Strategies | +//| Each RSI Scalping strategy trades on its own symbol: | +//| - APPL: Apple stock (AAPL) | +//| - BTCUSD: Bitcoin/USD | +//| - NVDA: NVIDIA stock | +//| - TSLA: Tesla stock | +//| - XAUUSD: Gold/USD | +//| | +//| USC cent: many symbols end with ".c" — use Market Watch names. | +//| Stocks may be "AAPL.US.c" or unchanged; verify before live. | +//+------------------------------------------------------------------+ +input group "=== RSI Scalping APPL (AAPL) - cent ===" +input string RS_APPL_Symbol = "AAPL.US.c"; // If missing, try AAPL.US / NASDAQ:AAPL / AAPL +input ENUM_TIMEFRAMES RS_APPL_TimeFrame = PERIOD_M10; +input int RS_APPL_RSI_Period = 14; +input ENUM_APPLIED_PRICE RS_APPL_RSI_Applied_Price = PRICE_CLOSE; +input double RS_APPL_RSI_Overbought = 80; +input double RS_APPL_RSI_Oversold = 78; +input double RS_APPL_RSI_Target_Buy = 94; +input double RS_APPL_RSI_Target_Sell = 44; +input int RS_APPL_BarsToWait = 7; +input double RS_APPL_LotSize = 38; +input int RS_APPL_MagicNumber = 20001; +input int RS_APPL_Slippage = 3; + +input group "=== RSI Scalping BTCUSD ===" +input string RS_BTCUSD_Symbol = "BTCUSD.c"; // If missing, try BTCUSD or BTC/USD +input ENUM_TIMEFRAMES RS_BTCUSD_TimeFrame = PERIOD_H1; +input int RS_BTCUSD_RSI_Period = 14; +input ENUM_APPLIED_PRICE RS_BTCUSD_RSI_Applied_Price = PRICE_CLOSE; +input double RS_BTCUSD_RSI_Overbought = 90; +input double RS_BTCUSD_RSI_Oversold = 73; +input double RS_BTCUSD_RSI_Target_Buy = 88; +input double RS_BTCUSD_RSI_Target_Sell = 48; +input int RS_BTCUSD_BarsToWait = 6; +input double RS_BTCUSD_LotSize = 0.15; +input int RS_BTCUSD_MagicNumber = 123459123; +input int RS_BTCUSD_Slippage = 3; + +input group "=== RSI Scalping NVDA - cent ===" +input string RS_NVDA_Symbol = "NVDA.US.c"; // If missing, try NVDA.US / NASDAQ:NVDA / NVDA +input ENUM_TIMEFRAMES RS_NVDA_TimeFrame = PERIOD_M15; +input int RS_NVDA_RSI_Period = 8; +input ENUM_APPLIED_PRICE RS_NVDA_RSI_Applied_Price = PRICE_CLOSE; +input double RS_NVDA_RSI_Overbought = 36; +input double RS_NVDA_RSI_Oversold = 38; +input double RS_NVDA_RSI_Target_Buy = 90; +input double RS_NVDA_RSI_Target_Sell = 70; +input int RS_NVDA_BarsToWait = 5; +input double RS_NVDA_LotSize = 75; +input int RS_NVDA_MagicNumber = 20003; +input int RS_NVDA_Slippage = 3; + +input group "=== RSI Scalping TSLA - cent ===" +input string RS_TSLA_Symbol = "TSLA.US.c"; // If missing, try TSLA.US / NASDAQ:TSLA / TSLA +input ENUM_TIMEFRAMES RS_TSLA_TimeFrame = PERIOD_H1; +input int RS_TSLA_RSI_Period = 14; +input ENUM_APPLIED_PRICE RS_TSLA_RSI_Applied_Price = PRICE_CLOSE; +input double RS_TSLA_RSI_Overbought = 54; +input double RS_TSLA_RSI_Oversold = 73; +input double RS_TSLA_RSI_Target_Buy = 87; +input double RS_TSLA_RSI_Target_Sell = 33; +input int RS_TSLA_BarsToWait = 1; +input double RS_TSLA_LotSize = 75; +input int RS_TSLA_MagicNumber = 125421321; +input int RS_TSLA_Slippage = 3; + +input group "=== RSI Scalping XAUUSD ===" +input string RS_XAUUSD_Symbol = "XAUUSD.c"; +input ENUM_TIMEFRAMES RS_XAUUSD_TimeFrame = PERIOD_H1; +input int RS_XAUUSD_RSI_Period = 14; +input ENUM_APPLIED_PRICE RS_XAUUSD_RSI_Applied_Price = PRICE_CLOSE; +input double RS_XAUUSD_RSI_Overbought = 71; +input double RS_XAUUSD_RSI_Oversold = 57; +input double RS_XAUUSD_RSI_Target_Buy = 80; +input double RS_XAUUSD_RSI_Target_Sell = 57; +input int RS_XAUUSD_BarsToWait = 4; +input double RS_XAUUSD_LotSize = 0.15; +input int RS_XAUUSD_MagicNumber = 129102315; +input int RS_XAUUSD_Slippage = 3; + +//+------------------------------------------------------------------+ +//| Strategy 11-12: RSI Reversal Asian Strategies | +//| Each RSI Reversal Asian strategy trades on its own symbol: | +//| - EURUSD: Euro/USD | +//| - AUDUSD: Australian Dollar/USD | +//+------------------------------------------------------------------+ +input group "=== RSI Reversal Asian EURUSD ===" +input string RRA_EURUSD_Symbol = "EURUSD.c"; +input int RRA_EURUSD_RSIPeriod = 28; +input double RRA_EURUSD_OverboughtLevel = 60; +input double RRA_EURUSD_OversoldLevel = 8; +input int RRA_EURUSD_TakeProfitPips = 175; +input int RRA_EURUSD_StopLossPips = 5; +input double RRA_EURUSD_MaxLotSize = 0.15; +input int RRA_EURUSD_MaxSpread = 1000; +input int RRA_EURUSD_MaxDuration = 270; +input bool RRA_EURUSD_UseStopLoss = false; +input bool RRA_EURUSD_UseTakeProfit = false; +input bool RRA_EURUSD_UseRSIExit = true; +input double RRA_EURUSD_RSIExitLevel = 55; +input bool RRA_EURUSD_CloseOutsideSession = false; +input ENUM_TIMEFRAMES RRA_EURUSD_TimeFrame = PERIOD_M15; +input int RRA_EURUSD_MagicNumber = 30001; +input int RRA_EURUSD_Slippage = 3; + +input group "=== RSI Reversal Asian AUDUSD ===" +input string RRA_AUDUSD_Symbol = "AUDUSD.c"; +input int RRA_AUDUSD_RSIPeriod = 28; +input double RRA_AUDUSD_OverboughtLevel = 68; +input double RRA_AUDUSD_OversoldLevel = 30; +input int RRA_AUDUSD_TakeProfitPips = 175; +input int RRA_AUDUSD_StopLossPips = 5; +input double RRA_AUDUSD_MaxLotSize = 0.3; +input int RRA_AUDUSD_MaxSpread = 1000; +input int RRA_AUDUSD_MaxDuration = 340; +input bool RRA_AUDUSD_UseStopLoss = false; +input bool RRA_AUDUSD_UseTakeProfit = false; +input bool RRA_AUDUSD_UseRSIExit = true; +input double RRA_AUDUSD_RSIExitLevel = 48; +input bool RRA_AUDUSD_CloseOutsideSession = true; +input ENUM_TIMEFRAMES RRA_AUDUSD_TimeFrame = PERIOD_M15; +input int RRA_AUDUSD_MagicNumber = 30002; +input int RRA_AUDUSD_Slippage = 3; + +//+------------------------------------------------------------------+ +//| Global Variables - DarvasBox | +//+------------------------------------------------------------------+ +struct DarvasBoxData { + string symbol; + bool isInitialized; + double boxHigh; + double boxLow; + bool boxFormed; + datetime lastBoxTime; + string boxName; + double minStopLevel; + double point; + CTrade trade; + int maHandle; + int volumeHandle; + datetime lastBarTime; +}; + +//+------------------------------------------------------------------+ +//| Global Variables - EMA Slope Distance | +//+------------------------------------------------------------------+ +struct EMASlopeData { + string symbol; + bool isInitialized; + int ema_handle; + double ema_array[]; + datetime letzte_überwachung_zeit; + bool überwachung_aktiv; + bool preis_trigger_aktiv; + bool steigung_trigger_aktiv; + int ticket; + CTrade trade; + int trades_in_current_crossover; + bool crossover_detected; + datetime trade_open_time; + datetime last_bar_time; +}; + +//+------------------------------------------------------------------+ +//| Global Variables - RSI CrossOver Reversal | +//+------------------------------------------------------------------+ +struct RSICrossOverData { + string symbol; + bool isInitialized; + int rsiHandle; + int emaHandle; + double previousRSIDef; + CTrade trade; + datetime lastTradeTime; + datetime bartime; + bool WeekDays[7]; + datetime lastBarTime; +}; + +//+------------------------------------------------------------------+ +//| Global Variables - RSI MidPoint Hijack | +//+------------------------------------------------------------------+ +struct RSIMidPointData { + string symbol; + bool isInitialized; + int rsiHandle; + int rsiReverseHandle; + int emaHandle; + bool rsiOverbought; + bool rsiOversold; + bool rsiReverseOverbought; + bool rsiReverseOversold; + CTrade trade; + CPositionInfo positionInfo; + bool emaCrossBuySignal; + bool emaCrossSellSignal; + int emaCrossSignalBar; + datetime lastBarTime; + datetime rsiReverseLastCloseTime; + bool rsiReverseInCooldown; + double lastBarRSI; + double lastBarRSIReverse; + double lastBarEMA; + double lastBarClose; + double lastBarEMAPrev; + double lastBarClosePrev; +}; + +//+------------------------------------------------------------------+ +//| Global Strategy Instances | +//+------------------------------------------------------------------+ +DarvasBoxData dbData; +EMASlopeData esData; +RSICrossOverData rcData; +RSIMidPointData rmData; +RSIScalpingData rsAPPLData; +RSIScalpingData rsBTCUSDData; +RSIScalpingData rsNVDAData; +RSIScalpingData rsTSLAData; +RSIScalpingData rsXAUUSDData; + +//+------------------------------------------------------------------+ +//| Global Variables - RSI Reversal Asian | +//+------------------------------------------------------------------+ +RSIReversalAsianData rraEURUSDData; +RSIReversalAsianData rraAUDUSDData; + +//+------------------------------------------------------------------+ +//| Dynamic lot helpers | +//+------------------------------------------------------------------+ +double DynClamp(const double v, const double lo, const double hi) +{ + return MathMax(lo, MathMin(hi, v)); +} + +// Clamp scale factor (proportion or pow result). max<=0 = no upper clamp. +double ApplyDynamicScaleClamp(const double scaleRaw) +{ + double s = scaleRaw; + if(InpDynamicMinMult > 0.0) + s = MathMax(s, InpDynamicMinMult); + if(InpDynamicMaxMult > 0.0) + s = MathMin(s, InpDynamicMaxMult); + return s; +} + +// Reference for (equity/ref)^exp: manual deposit, or first-seen balance when input <= 0 +double GetDynamicRefForRatio() +{ + if(InpDynamicRefDeposit > 0.0) + return MathMax(InpDynamicRefDeposit, 1.0); + double capNow = InpDynamicUseEquity ? AccountInfoDouble(ACCOUNT_EQUITY) : AccountInfoDouble(ACCOUNT_BALANCE); + if(g_DynamicRefBaseline <= 0.0) + g_DynamicRefBaseline = MathMax(capNow, 1.0); + return MathMax(g_DynamicRefBaseline, 1.0); +} + +// Broker hard cap: 最大量 = SYMBOL_VOLUME_MAX (e.g. 1000 on EURUSD.c / XAUUSD.c) +double NormalizeVolumeForSymbol(const string symbol, double lots) +{ + double minL = SymbolInfoDouble(symbol, SYMBOL_VOLUME_MIN); + double maxL = SymbolInfoDouble(symbol, SYMBOL_VOLUME_MAX); + double step = SymbolInfoDouble(symbol, SYMBOL_VOLUME_STEP); + if(step > 0.0) + lots = MathFloor(lots / step + 1e-12) * step; + if(lots < minL) lots = minL; + if(lots > maxL) lots = maxL; + return lots; +} + +// Apply EA risk cap before broker min/step/max (InpMaxLotsPerOrder 0 = disabled) +double NormalizeVolumeForSymbolWithEACap(const string symbol, double lots) +{ + if(InpMaxLotsPerOrder > 0.0) + lots = MathMin(lots, InpMaxLotsPerOrder); + return NormalizeVolumeForSymbol(symbol, lots); +} + +// Scale factor for lots: baseLot * scale * InpLotSizeScale (then caps) +double GetDynamicLotScaleFactor() +{ + if(!InpDynamicLotEnable) + return 1.0; + if(InpDynamicRefEqualsEquity) + return ApplyDynamicScaleClamp(1.0); + double cap = InpDynamicUseEquity ? AccountInfoDouble(ACCOUNT_EQUITY) : AccountInfoDouble(ACCOUNT_BALANCE); + double refv = GetDynamicRefForRatio(); + if(cap <= 0.0) + cap = refv; + double ratio = cap / refv; + if(ratio <= 0.0) + ratio = 1.0; + double scaleRaw = ratio; + if(InpDynamicLotCurve == LOT_CURVE_POWER) + scaleRaw = MathPow(ratio, InpDynamicExponent); + return ApplyDynamicScaleClamp(scaleRaw); +} + +// baseLot = size at reference deposit; optionalCap 0 = no extra ceiling (broker min/max still apply) +double DynamicLotForSymbol(const string symbol, const double baseLot, const double optionalCap = 0.0) +{ + double scale = GetDynamicLotScaleFactor(); + g_DynLotScaleLast = scale; + double sc = (InpLotSizeScale > 0.0 ? InpLotSizeScale : 1.0); + double v = baseLot * scale * sc; + if(optionalCap > 0.0 && v > optionalCap) + v = optionalCap; + return NormalizeVolumeForSymbolWithEACap(symbol, v); +} + +void RefreshDynamicStrategyLots() +{ + double sc = (InpLotSizeScale > 0.0 ? InpLotSizeScale : 1.0); + if(!InpDynamicLotEnable) + { + g_ES_LotSize = NormalizeVolumeForSymbolWithEACap(ES_Symbol, ES_LotGröße * sc); + g_RC_LotSize = NormalizeVolumeForSymbolWithEACap(RC_Symbol, RC_lotSize * sc); + g_RM_LotSize = NormalizeVolumeForSymbolWithEACap(RM_Symbol, RM_InpLotSize * sc); + g_DB_LotSize = NormalizeVolumeForSymbolWithEACap(DB_Symbol, DB_BaseLotSize * sc); + g_DynLotScaleLast = 1.0; + return; + } + g_ES_LotSize = DynamicLotForSymbol(ES_Symbol, ES_LotGröße); + g_RC_LotSize = DynamicLotForSymbol(RC_Symbol, RC_lotSize); + g_RM_LotSize = DynamicLotForSymbol(RM_Symbol, RM_InpLotSize); + g_DB_LotSize = DynamicLotForSymbol(DB_Symbol, DB_BaseLotSize); +} + +//+------------------------------------------------------------------+ +//| Expert initialization function | +//+------------------------------------------------------------------+ +int OnInit() +{ + int initResult = INIT_SUCCEEDED; + + g_DynamicRefBaseline = 0.0; + + RefreshDynamicStrategyLots(); + + string acctCur = AccountInfoString(ACCOUNT_CURRENCY); + double eq0 = AccountInfoDouble(ACCOUNT_EQUITY); + if(InpDynamicLotEnable && !InpDynamicRefEqualsEquity && InpDynamicRefDeposit > 1000.0 && eq0 > 0.0 + && eq0 <= InpDynamicRefDeposit / 25.0) + Print("United EA: equity ", DoubleToString(eq0, 2), " ", acctCur, " vs ref ", InpDynamicRefDeposit, + " — dynamic mult is tiny; set InpDynamicRefDeposit to your balance in ", acctCur, + " (e.g. 500 for USD) or enable InpDynamicRefEqualsEquity. Else lots stay at broker minimum."); + + // Initialize strategies - log warnings but don't fail entire EA if symbol unavailable + if(EnableDarvasBox) + if(!InitDarvasBox(DB_Symbol)) + Print("Warning: DarvasBox strategy failed to initialize for symbol '", DB_Symbol, "'"); + + if(EnableEMASlopeDistance) + if(!InitEMASlopeDistance(ES_Symbol)) + Print("Warning: EMASlopeDistance strategy failed to initialize for symbol '", ES_Symbol, "'"); + + if(EnableRSICrossOverReversal) + if(!InitRSICrossOverReversal(RC_Symbol)) + Print("Warning: RSICrossOverReversal strategy failed to initialize for symbol '", RC_Symbol, "'"); + + if(EnableRSIMidPointHijack) + if(!InitRSIMidPointHijack(RM_Symbol)) + Print("Warning: RSIMidPointHijack strategy failed to initialize for symbol '", RM_Symbol, "'"); + + // Initialize RSI Scalping strategies - don't fail entire EA if symbol unavailable + if(EnableRSIScalpingAPPL) + InitRSIScalping(rsAPPLData, RS_APPL_Symbol, RS_APPL_TimeFrame, RS_APPL_RSI_Period, RS_APPL_RSI_Applied_Price, RS_APPL_MagicNumber, RS_APPL_Slippage); + + if(EnableRSIScalpingBTCUSD) + InitRSIScalping(rsBTCUSDData, RS_BTCUSD_Symbol, RS_BTCUSD_TimeFrame, RS_BTCUSD_RSI_Period, RS_BTCUSD_RSI_Applied_Price, RS_BTCUSD_MagicNumber, RS_BTCUSD_Slippage); + + if(EnableRSIScalpingNVDA) + InitRSIScalping(rsNVDAData, RS_NVDA_Symbol, RS_NVDA_TimeFrame, RS_NVDA_RSI_Period, RS_NVDA_RSI_Applied_Price, RS_NVDA_MagicNumber, RS_NVDA_Slippage); + + if(EnableRSIScalpingTSLA) + InitRSIScalping(rsTSLAData, RS_TSLA_Symbol, RS_TSLA_TimeFrame, RS_TSLA_RSI_Period, RS_TSLA_RSI_Applied_Price, RS_TSLA_MagicNumber, RS_TSLA_Slippage); + + if(EnableRSIScalpingXAUUSD) + InitRSIScalping(rsXAUUSDData, RS_XAUUSD_Symbol, RS_XAUUSD_TimeFrame, RS_XAUUSD_RSI_Period, RS_XAUUSD_RSI_Applied_Price, RS_XAUUSD_MagicNumber, RS_XAUUSD_Slippage); + + // Initialize RSI Reversal Asian strategies + if(EnableRSIReversalAsianEURUSD) + if(!InitRSIReversalAsian(rraEURUSDData, RRA_EURUSD_Symbol, RRA_EURUSD_RSIPeriod, RRA_EURUSD_OverboughtLevel, RRA_EURUSD_OversoldLevel, + RRA_EURUSD_TakeProfitPips, RRA_EURUSD_StopLossPips, RRA_EURUSD_MaxLotSize, + RRA_EURUSD_MaxSpread, RRA_EURUSD_MaxDuration, RRA_EURUSD_UseStopLoss, + RRA_EURUSD_UseTakeProfit, RRA_EURUSD_UseRSIExit, RRA_EURUSD_RSIExitLevel, + RRA_EURUSD_CloseOutsideSession, RRA_EURUSD_TimeFrame, RRA_EURUSD_MagicNumber, RRA_EURUSD_Slippage)) + Print("Warning: RSIReversalAsianEURUSD strategy failed to initialize for symbol '", RRA_EURUSD_Symbol, "'"); + + if(EnableRSIReversalAsianAUDUSD) + if(!InitRSIReversalAsian(rraAUDUSDData, RRA_AUDUSD_Symbol, RRA_AUDUSD_RSIPeriod, RRA_AUDUSD_OverboughtLevel, RRA_AUDUSD_OversoldLevel, + RRA_AUDUSD_TakeProfitPips, RRA_AUDUSD_StopLossPips, RRA_AUDUSD_MaxLotSize, + RRA_AUDUSD_MaxSpread, RRA_AUDUSD_MaxDuration, RRA_AUDUSD_UseStopLoss, + RRA_AUDUSD_UseTakeProfit, RRA_AUDUSD_UseRSIExit, RRA_AUDUSD_RSIExitLevel, + RRA_AUDUSD_CloseOutsideSession, RRA_AUDUSD_TimeFrame, RRA_AUDUSD_MagicNumber, RRA_AUDUSD_Slippage)) + Print("Warning: RSIReversalAsianAUDUSD strategy failed to initialize for symbol '", RRA_AUDUSD_Symbol, "'"); + + double refEffInit = GetDynamicRefForRatio(); + double capInit = InpDynamicUseEquity ? eq0 : AccountInfoDouble(ACCOUNT_BALANCE); + if(capInit <= 0.0) + capInit = refEffInit; + double ratioInit = capInit / refEffInit; + double powInit = MathPow(ratioInit, InpDynamicExponent); + string curveStr = (InpDynamicLotCurve == LOT_CURVE_POWER ? "POWER" : "PROP"); + Print("United EA v1.10 ", acctCur, " curve=", curveStr, " equity=", DoubleToString(eq0, 2), " refEff=", DoubleToString(refEffInit, 2), + " (inpRef=", InpDynamicRefDeposit, " baseline=", DoubleToString(g_DynamicRefBaseline, 2), ") equity/ref=", DoubleToString(ratioInit, 6), + " pow^exp=", DoubleToString(powInit, 6), " scaleOut=", DoubleToString(g_DynLotScaleLast, 6), + " minS=", InpDynamicMinMult, " maxS=", InpDynamicMaxMult, " lotScale=", InpLotSizeScale, " maxLots=", InpMaxLotsPerOrder, + " lots ES=", g_ES_LotSize, " RC=", g_RC_LotSize, " RM=", g_RM_LotSize, " DB=", g_DB_LotSize); + Print("United EA initialized. Active strategies: ", + (EnableDarvasBox ? "DarvasBox " : ""), + (EnableEMASlopeDistance ? "EMASlope " : ""), + (EnableRSICrossOverReversal ? "RSICrossOver " : ""), + (EnableRSIMidPointHijack ? "RSIMidPoint " : ""), + (EnableRSIScalpingAPPL ? "RSIScalpingAPPL " : ""), + (EnableRSIScalpingBTCUSD ? "RSIScalpingBTCUSD " : ""), + (EnableRSIScalpingNVDA ? "RSIScalpingNVDA " : ""), + (EnableRSIScalpingTSLA ? "RSIScalpingTSLA " : ""), + (EnableRSIScalpingXAUUSD ? "RSIScalpingXAUUSD " : ""), + (EnableRSIReversalAsianEURUSD ? "RSIReversalAsianEURUSD " : ""), + (EnableRSIReversalAsianAUDUSD ? "RSIReversalAsianAUDUSD " : "")); + + return initResult; +} + +//+------------------------------------------------------------------+ +//| Expert deinitialization function | +//+------------------------------------------------------------------+ +void OnDeinit(const int reason) +{ + if(EnableDarvasBox) + DeinitDarvasBox(); + + if(EnableEMASlopeDistance) + DeinitEMASlopeDistance(); + + if(EnableRSICrossOverReversal) + DeinitRSICrossOverReversal(); + + if(EnableRSIMidPointHijack) + DeinitRSIMidPointHijack(); + + if(EnableRSIScalpingAPPL) + DeinitRSIScalping(rsAPPLData); + + if(EnableRSIScalpingBTCUSD) + DeinitRSIScalping(rsBTCUSDData); + + if(EnableRSIScalpingNVDA) + DeinitRSIScalping(rsNVDAData); + + if(EnableRSIScalpingTSLA) + DeinitRSIScalping(rsTSLAData); + + if(EnableRSIScalpingXAUUSD) + DeinitRSIScalping(rsXAUUSDData); + + if(EnableRSIReversalAsianEURUSD) + DeinitRSIReversalAsian(rraEURUSDData); + + if(EnableRSIReversalAsianAUDUSD) + DeinitRSIReversalAsian(rraAUDUSDData); + + Print("United EA deinitialized. Reason: ", reason); +} + +//+------------------------------------------------------------------+ +//| Expert tick function | +//+------------------------------------------------------------------+ +void OnTick() +{ + RefreshDynamicStrategyLots(); + + if(EnableDarvasBox) + ProcessDarvasBox(DB_Symbol); + + if(EnableEMASlopeDistance) + ProcessEMASlopeDistance(ES_Symbol); + + if(EnableRSICrossOverReversal) + ProcessRSICrossOverReversal(RC_Symbol); + + if(EnableRSIMidPointHijack) + ProcessRSIMidPointHijack(RM_Symbol); + + if(EnableRSIScalpingAPPL) + ProcessRSIScalping(rsAPPLData, RS_APPL_Symbol, RS_APPL_TimeFrame, RS_APPL_RSI_Period, RS_APPL_RSI_Applied_Price, + RS_APPL_RSI_Overbought, RS_APPL_RSI_Oversold, RS_APPL_RSI_Target_Buy, RS_APPL_RSI_Target_Sell, + RS_APPL_BarsToWait, + DynamicLotForSymbol(RS_APPL_Symbol, RS_APPL_LotSize, InpDynamicStockLotCap), + RS_APPL_MagicNumber); + + if(EnableRSIScalpingBTCUSD) + ProcessRSIScalping(rsBTCUSDData, RS_BTCUSD_Symbol, RS_BTCUSD_TimeFrame, RS_BTCUSD_RSI_Period, RS_BTCUSD_RSI_Applied_Price, + RS_BTCUSD_RSI_Overbought, RS_BTCUSD_RSI_Oversold, RS_BTCUSD_RSI_Target_Buy, RS_BTCUSD_RSI_Target_Sell, + RS_BTCUSD_BarsToWait, DynamicLotForSymbol(RS_BTCUSD_Symbol, RS_BTCUSD_LotSize), RS_BTCUSD_MagicNumber); + + if(EnableRSIScalpingNVDA) + ProcessRSIScalping(rsNVDAData, RS_NVDA_Symbol, RS_NVDA_TimeFrame, RS_NVDA_RSI_Period, RS_NVDA_RSI_Applied_Price, + RS_NVDA_RSI_Overbought, RS_NVDA_RSI_Oversold, RS_NVDA_RSI_Target_Buy, RS_NVDA_RSI_Target_Sell, + RS_NVDA_BarsToWait, + DynamicLotForSymbol(RS_NVDA_Symbol, RS_NVDA_LotSize, InpDynamicStockLotCap), + RS_NVDA_MagicNumber); + + if(EnableRSIScalpingTSLA) + ProcessRSIScalping(rsTSLAData, RS_TSLA_Symbol, RS_TSLA_TimeFrame, RS_TSLA_RSI_Period, RS_TSLA_RSI_Applied_Price, + RS_TSLA_RSI_Overbought, RS_TSLA_RSI_Oversold, RS_TSLA_RSI_Target_Buy, RS_TSLA_RSI_Target_Sell, + RS_TSLA_BarsToWait, + DynamicLotForSymbol(RS_TSLA_Symbol, RS_TSLA_LotSize, InpDynamicStockLotCap), + RS_TSLA_MagicNumber); + + if(EnableRSIScalpingXAUUSD) + ProcessRSIScalping(rsXAUUSDData, RS_XAUUSD_Symbol, RS_XAUUSD_TimeFrame, RS_XAUUSD_RSI_Period, RS_XAUUSD_RSI_Applied_Price, + RS_XAUUSD_RSI_Overbought, RS_XAUUSD_RSI_Oversold, RS_XAUUSD_RSI_Target_Buy, RS_XAUUSD_RSI_Target_Sell, + RS_XAUUSD_BarsToWait, DynamicLotForSymbol(RS_XAUUSD_Symbol, RS_XAUUSD_LotSize), RS_XAUUSD_MagicNumber); + + if(EnableRSIReversalAsianEURUSD) + ProcessRSIReversalAsian(rraEURUSDData, DynamicLotForSymbol(RRA_EURUSD_Symbol, RRA_EURUSD_MaxLotSize)); + + if(EnableRSIReversalAsianAUDUSD) + ProcessRSIReversalAsian(rraAUDUSDData, DynamicLotForSymbol(RRA_AUDUSD_Symbol, RRA_AUDUSD_MaxLotSize)); +} + +//+------------------------------------------------------------------+ diff --git a/frontline/MQL5/_united_dynamic_cent/report.png b/frontline/MQL5/_united_dynamic_cent/report.png new file mode 100644 index 0000000000000000000000000000000000000000..a174d73e8892fb14262661005155b71297b1e0fd GIT binary patch literal 29959 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 z

2U*HN+!qgtVttS~NE-4hD8{@M{bXPI><`SrQWvY^{@q3fI126Sr^mcjp2?xHnG zv1Cs^>u9ZpLjsU5bwRtE)tBdE0!*qk1uToD(Oi;orxPch7&)$?lbsXHt5m#Z%GJf1 zQ&!$C8YM~!LV&7g-S3ZY1|@;i>hb=VUxY22xW=|{7!&0^#}qr{?!T`9d9Sf(g~-^5 zS<$P8tv+Ty1DyusB70&&jutnV=^$1~9kw3rxnm-Jt7W0h*pi4aMo?oD!Tr#|ym{ma zN}jP`NgTvP^K}j1U+(f78AGsgr~1#hCSz`{8uA9!K4`N@jj}?$>nB3DSa``?CCdet z;cfC7?g% zUn15JMcr^kXawa_@~{OqzjiushvsvJ0L}gbtB`(V*ka0PKSfIGJuk=qn7ARSL54H`WZB{R* zm9gRVapMHD(#h#VPIR-1E<)zF28fA-Ge@V1+Z%Egf#meOg@a&3pp@rsIn49kdpC8M zM6e$Ku7E36Z)z%Ld2=J-g0u`7_vTAf>mcr?yhd{=r`iy>0O;SzyqTgx$u0}F#a!yN z(53>tzF2pXN3O-A=pyN@TJBvN#G|_J4IVF&LRkxtNf^#II<%BvpW-dsIe>Yw@t=FiXVmI4D!#RC#=5s{-A!q?R-WEm>dE%J(f&!6%UwJx zZD(|jM?APjeHxKJz>3WN7PM1ZCAh3!>xfJu+@C769wSsNfMZw!_1e`FH6 zpU2Zsa^g>Z$O(j?z58>?<(71@LUZ-}Nb~{f8I_eiW~zCpl-30T${^6tl_zVZGO`=_ zfZTc?huSm{(*TH%lB8RrpZ;4WTVUFAT<;BHq$+KqeCk5BKy8Q`3K@lf$_@!uONs0B zG1COjK;YalOV~652R>qbgHZQ-J|vdQWTExDKA))d`|srVGiYx2@gn|1-2~*Iq&|i7 z-gf~x88R869_xs zBf`^CDB8zdgKIqEmcEz|KB)J&Hx(?b>A$ljT2-W0ufElB7hx=#U@m&S>RwxJ{9V~w zRi~V0nuOCz!r1Ij=oU_Y`+2z6TTwSq*f;R#;PPN(0)!^0T?q#!y9!pqO9uG=$e~uJ zW+8mBDwd!R1MSBXUA4=Q(J z2gKaPBYS$MXLK#=xkfO8D3b8)a&zv-9zW7#C=uaIxFn!DQ*uQu=#TlbX@hO$Z%2(-74 z5~qpacWv}nv|Sivrs_lU9>ZJ9gtGE)s!J;RqY$;qeL4& zmlFU#?0w$M0u?#-Oomqn%UF56m(iCSWL8V^wn=rZL(W=V)`U{TP+Z=aT_T3oa$3{5 zVE`EmY5{BD9Lx47G*DkroEn`8d&KD7$apcZM}gauPM2rQ{6*5jvzJ^m`d&7v-JcHC z&O+UGov7du?eTS}o;-7K9!NZ38ebvD(nRnaz%Mvv5m;^Bty&5`mw(>#0NjN@&1EW2 zlAT^B$qiZPu1hgYFwgd7PB(lf%YhkRQHX79&OFT5cx?J3_i+de|9%2@_7N@ueEK^t z+n7;g46Jbw@tT1B(ZpUeEzZm^UPfi48O?jo`Pw#gFw2&IbMIzv|ZxIUDTaV_* zryPy=i6P~h_RZWzFuF`fA4O@W5ZVkouh*E>gJ=U4AtW$$}%7oP&(^c$&KMz@& zt3m=0P%jw>YFDn(xA>%7*wCw$yV!DEM<;YEeT2K6B=sEgES5wg=a_Ajqi#d5+Ywj$ zX15i6#%%0T)}gulJ)0A<^YlSwNyvDCP1teAXsIy{iwP{S5cXz^RU<;9%AuHn8F95x zRzd?C7S|onFwcU`$Bx&f`9j(hqH-cKvgtw^HkzSP?%@et0C;Jkadu*4Y`B$Zwg1RE z(K%}jSc$E_jff!LR^kurtZ%U63E9RM;D+m9_I3!_;a1gfMbV_#sik57Z=($^Q67J~ zf0n?+_q4P{^v@LW zcE-;x$Te;$K=g3YMXO_KJeXK|SnJcd%t_Lxh)nSQoAkMi4*-&>lX8k5Dr)d00~MEo zl=&$(bsg8U2J7m8k*|X zhITww@aYsHxIVFr8ygO%-8yEj;x4vTMZm4bwl#$p;sMrQfJzPYS14^*_@sJ5w0zA| zV&DA!ZAPb|sDpg*S<*PfGh%QTsc}lJeeZQclu5jvg4;q%wFGkqUUj(8Jajbq*5UJg zg$^|V_-lI+@n&PSuEmFvkG=Prh&KHRp{ioO`o!VNjDVm1j_3Ly0-n`fA$)CBorU#E zz*+L3$qwEnL;g(Gsgl%OjS>UL9xuCj8Z<%GCa^{H((+rcO6*Hlr>0ArcV-BiIYq6J z_;^HbYL9@mg^9Hfl$o*?@evuvjA^EwEYWAN!|1scN(}$$ge#4@9AwBU?uCi&$Mhrf zjBc7Xv&?4P_!U`kkSP7~)^X$b{9f*@c8$$S{K%`iZO9OJOGx}3>7@i@nTlLS7ho{W zjts-qhTk;&e5W6j%KdfEfB#+0Z?64+Gth1E|2tU!4(aUwez5~xEuXpHP2k-u{-7!R QpoiMmQM +#include +#include +#include +#include "MagicNumberHelpers.mqh" +#include "PerformanceEvaluator.mqh" + +//+------------------------------------------------------------------+ +//| Strategy Enable/Disable Switches | +//+------------------------------------------------------------------+ +input group "=== Strategy Enable/Disable ===" +input bool EnableDarvasBox = true; +input bool EnableEMASlopeDistance = true; +input bool EnableRSICrossOverReversal = true; +input bool EnableRSIMidPointHijack = true; +input bool EnableRSIScalpingAPPL = true; +input bool EnableRSIScalpingBTCUSD = true; +input bool EnableRSIScalpingNVDA = true; +input bool EnableRSIScalpingTSLA = true; +input bool EnableRSIScalpingXAUUSD = true; + +//+------------------------------------------------------------------+ +//| Strategy 1: DarvasBoxXAUUSD | +//+------------------------------------------------------------------+ +input group "=== DarvasBox Strategy ===" +input string DB_Symbol = "XAUUSD"; +input int DB_BoxPeriod = 165; +input double DB_BoxDeviation = 30000; // Increased to allow larger ranges (was 25140) +input int DB_VolumeThreshold = 0; // Set to 0 to disable volume threshold check. Volume data from indicator used instead. +input double DB_StopLoss = 1665; +input double DB_TakeProfit = 3685; +input bool DB_EnableLogging = false; +input color DB_BoxColor = clrBlue; +input int DB_BoxWidth = 1; +input ENUM_TIMEFRAMES DB_TrendTimeframe = PERIOD_H2; +input int DB_MA_Period = 125; +input ENUM_MA_METHOD DB_MA_Method = MODE_EMA; +input ENUM_APPLIED_PRICE DB_MA_Price = PRICE_WEIGHTED; +input double DB_TrendThreshold = 4.94; +input int DB_VolumeMA_Period = 110; +input double DB_VolumeThresholdMultiplier = 1.5; +input int DB_MagicNumber = 135790; + +//+------------------------------------------------------------------+ +//| Strategy 2: EMASlopeDistanceCocktailXAUUSD | +//| PEPPERSTONE US: Gold symbol is typically "XAUUSD" or "GOLD" | +//+------------------------------------------------------------------+ +input group "=== EMA Slope Distance Strategy ===" +input string ES_Symbol = "XAUUSD"; +input int ES_EMA_Periode = 46; +input double ES_PreisSchwelle = 600.0; +input double ES_SteigungSchwelle = 80.0; +input int ES_ÜberwachungTimeout = 800; +input double ES_TrailingStop = 250.0; +input double ES_LotGröße = 0.03; +input int ES_MagicNumber = 12350; +input bool ES_UseSpreadAdjustment = true; +input ENUM_TIMEFRAMES ES_Timeframe = PERIOD_H1; +input bool ES_UseBarData = true; +input int ES_MaxTradesPerCrossover = 9; +input int ES_ProfitCheckBars = 18; +input bool ES_CloseUnprofitableTrades = true; + +//+------------------------------------------------------------------+ +//| Strategy 3: RSICrossOverReversalXAUUSD | +//| PEPPERSTONE US: Gold symbol is typically "XAUUSD" or "GOLD" | +//+------------------------------------------------------------------+ +input group "=== RSI CrossOver Reversal Strategy ===" +input string RC_Symbol = "XAUUSD"; +input int RC_MagicNumber = 7; +input int RC_rsiPeriod = 19; +input int RC_overboughtLevel = 93; +input int RC_oversoldLevel = 22; +input double RC_entryRSIBuySpread = 0; +input double RC_entryRSISellSpread = 0; +input double RC_lotSize = 0.01; +input int RC_slippage = 3; +input int RC_cooldownSeconds = 209; +input ENUM_TIMEFRAMES RC_TimeFrame1 = PERIOD_M1; +input ENUM_TIMEFRAMES RC_TimeFrame2 = PERIOD_M1; +input ENUM_TIMEFRAMES RC_BarTimeFrame = PERIOD_M12; +input int RC_emaPeriod = 140; +input double RC_emaSlopeThreshold = 105; +input double RC_exitBuyRSI = 86; +input double RC_exitSellRSI = 10; +input double RC_TrailingStop = 295; +input double RC_emaDistanceThreshold = 165; +input int RC_tradingHourOneBegin = 24; +input int RC_tradingHourOneEnd = 22; +input int RC_tradingHourTwoBegin = 6; +input int RC_tradingHourTwoEnd = 19; +input bool RC_Sunday = false; +input bool RC_Monday = false; +input bool RC_Tuesday = true; +input bool RC_Wednesday = true; +input bool RC_Thursday = true; +input bool RC_Friday = false; +input bool RC_Saturday = false; + +//+------------------------------------------------------------------+ +//| Strategy 4: RSIMidPointHijackXAUUSD | +//| PEPPERSTONE US: Gold symbol is typically "XAUUSD" or "GOLD" | +//+------------------------------------------------------------------+ +input group "=== RSI MidPoint Hijack Strategy ===" +input string RM_Symbol = "XAUUSD"; +input ENUM_TIMEFRAMES RM_InpTimeframe = PERIOD_H1; +input double RM_InpLotSize = 0.02; +input int RM_InpMagicNumberRSIFollow = 1001; +input int RM_InpMagicNumberRSIReverse = 1002; +input int RM_InpMagicNumberEMACross = 1003; +input bool RM_InpEnableRSIFollow = true; +input bool RM_InpEnableRSIReverse = true; +input bool RM_InpEnableEMACross = true; +input bool RM_InpEnableStrategyLock = false; +input double RM_InpLockProfitThreshold = 0.0; +input bool RM_InpCloseOppositeTrades = false; +input int RM_InpRSIPeriod = 32; +input int RM_InpRSIOverbought = 78; +input int RM_InpRSIOversold = 46; +input int RM_InpRSIExitLevel = 44; +input int RM_InpRSIFollowStartHour = 23; +input int RM_InpRSIFollowEndHour = 8; +input bool RM_InpRSIFollowCloseOutsideHours = false; +input int RM_InpRSIReversePeriod = 59; +input int RM_InpRSIReverseOverbought = 51; +input int RM_InpRSIReverseOversold = 49; +input int RM_InpRSIReverseCrossLevel = 53; +input int RM_InpRSIReverseExitLevel = 48; +input int RM_InpRSIReverseStartHour = 7; +input int RM_InpRSIReverseEndHour = 13; +input bool RM_InpRSIReverseCloseOutsideHours = false; +input int RM_InpRSIReverseCooldownBars = 15; +input bool RM_InpRSIReverseCooldownOnLoss = true; +input int RM_InpEMAPeriod = 120; +input int RM_InpEMACrossStartHour = 8; +input int RM_InpEMACrossEndHour = 14; +input bool RM_InpEMACrossCloseOutsideHours = true; +input bool RM_InpUseEMADistanceEntry = true; +input double RM_InpEMADistancePips = 160.0; +input int RM_InpEMADistancePeriod = 26; + +//+------------------------------------------------------------------+ +//| Strategy 5-10: RSI Scalping Strategies | +//| Each RSI Scalping strategy trades on its own symbol: | +//| - APPL: Apple stock (AAPL) | +//| - BTCUSD: Bitcoin/USD | +//| - NVDA: NVIDIA stock | +//| - TSLA: Tesla stock | +//| - XAUUSD: Gold/USD | +//| | +//| PEPPERSTONE US SYMBOL FORMATS: | +//| - Stocks may use: "AAPL.US", "NASDAQ:AAPL", or just "AAPL" | +//| - To find correct symbols: | +//| 1. Open Market Watch (Ctrl+M) | +//| 2. Right-click > Show All | +//| 3. Search for the stock name | +//| 4. Use the exact symbol name shown | +//+------------------------------------------------------------------+ +input group "=== RSI Scalping APPL (AAPL) - Pepperstone US ===" +input string RS_APPL_Symbol = "AAPL.US"; // Try: "AAPL.US", "NASDAQ:AAPL", or "AAPL" +input ENUM_TIMEFRAMES RS_APPL_TimeFrame = PERIOD_M10; +input int RS_APPL_RSI_Period = 14; +input ENUM_APPLIED_PRICE RS_APPL_RSI_Applied_Price = PRICE_CLOSE; +input double RS_APPL_RSI_Overbought = 80; +input double RS_APPL_RSI_Oversold = 78; +input double RS_APPL_RSI_Target_Buy = 94; +input double RS_APPL_RSI_Target_Sell = 44; +input int RS_APPL_BarsToWait = 7; +input double RS_APPL_LotSize = 25; +input int RS_APPL_MagicNumber = 20001; +input int RS_APPL_Slippage = 3; + +input group "=== RSI Scalping BTCUSD ===" +input string RS_BTCUSD_Symbol = "BTCUSD"; // Pepperstone may use: "BTCUSD", "BTC/USD", or "BTCUSD.c" +input ENUM_TIMEFRAMES RS_BTCUSD_TimeFrame = PERIOD_H1; +input int RS_BTCUSD_RSI_Period = 14; +input ENUM_APPLIED_PRICE RS_BTCUSD_RSI_Applied_Price = PRICE_CLOSE; +input double RS_BTCUSD_RSI_Overbought = 90; +input double RS_BTCUSD_RSI_Oversold = 73; +input double RS_BTCUSD_RSI_Target_Buy = 88; +input double RS_BTCUSD_RSI_Target_Sell = 48; +input int RS_BTCUSD_BarsToWait = 6; +input double RS_BTCUSD_LotSize = 0.1; +input int RS_BTCUSD_MagicNumber = 123459123; +input int RS_BTCUSD_Slippage = 3; + +input group "=== RSI Scalping NVDA - Pepperstone US ===" +input string RS_NVDA_Symbol = "NVDA.US"; // Try: "NVDA.US", "NASDAQ:NVDA", or "NVDA" +input ENUM_TIMEFRAMES RS_NVDA_TimeFrame = PERIOD_M15; +input int RS_NVDA_RSI_Period = 8; +input ENUM_APPLIED_PRICE RS_NVDA_RSI_Applied_Price = PRICE_CLOSE; +input double RS_NVDA_RSI_Overbought = 36; +input double RS_NVDA_RSI_Oversold = 38; +input double RS_NVDA_RSI_Target_Buy = 90; +input double RS_NVDA_RSI_Target_Sell = 70; +input int RS_NVDA_BarsToWait = 5; +input double RS_NVDA_LotSize = 50; +input int RS_NVDA_MagicNumber = 20003; +input int RS_NVDA_Slippage = 3; + +input group "=== RSI Scalping TSLA - Pepperstone US ===" +input string RS_TSLA_Symbol = "TSLA.US"; // Try: "TSLA.US", "NASDAQ:TSLA", or "TSLA" +input ENUM_TIMEFRAMES RS_TSLA_TimeFrame = PERIOD_H1; +input int RS_TSLA_RSI_Period = 14; +input ENUM_APPLIED_PRICE RS_TSLA_RSI_Applied_Price = PRICE_CLOSE; +input double RS_TSLA_RSI_Overbought = 54; +input double RS_TSLA_RSI_Oversold = 73; +input double RS_TSLA_RSI_Target_Buy = 87; +input double RS_TSLA_RSI_Target_Sell = 33; +input int RS_TSLA_BarsToWait = 1; +input double RS_TSLA_LotSize = 50; +input int RS_TSLA_MagicNumber = 125421321; +input int RS_TSLA_Slippage = 3; + +input group "=== RSI Scalping XAUUSD ===" +input string RS_XAUUSD_Symbol = "XAUUSD"; +input ENUM_TIMEFRAMES RS_XAUUSD_TimeFrame = PERIOD_H1; +input int RS_XAUUSD_RSI_Period = 14; +input ENUM_APPLIED_PRICE RS_XAUUSD_RSI_Applied_Price = PRICE_CLOSE; +input double RS_XAUUSD_RSI_Overbought = 71; +input double RS_XAUUSD_RSI_Oversold = 57; +input double RS_XAUUSD_RSI_Target_Buy = 80; +input double RS_XAUUSD_RSI_Target_Sell = 57; +input int RS_XAUUSD_BarsToWait = 4; +input double RS_XAUUSD_LotSize = 0.1; +input int RS_XAUUSD_MagicNumber = 129102315; +input int RS_XAUUSD_Slippage = 3; + +//+------------------------------------------------------------------+ +//| Global Variables - DarvasBox | +//+------------------------------------------------------------------+ +struct DarvasBoxData { + string symbol; + bool isInitialized; + double boxHigh; + double boxLow; + bool boxFormed; + datetime lastBoxTime; + string boxName; + double minStopLevel; + double point; + CTrade trade; + int maHandle; + int volumeHandle; + datetime lastBarTime; +}; + +//+------------------------------------------------------------------+ +//| Global Variables - EMA Slope Distance | +//+------------------------------------------------------------------+ +struct EMASlopeData { + string symbol; + bool isInitialized; + int ema_handle; + double ema_array[]; + datetime letzte_überwachung_zeit; + bool überwachung_aktiv; + bool preis_trigger_aktiv; + bool steigung_trigger_aktiv; + int ticket; + CTrade trade; + int trades_in_current_crossover; + bool crossover_detected; + datetime trade_open_time; + datetime last_bar_time; +}; + +//+------------------------------------------------------------------+ +//| Global Variables - RSI CrossOver Reversal | +//+------------------------------------------------------------------+ +struct RSICrossOverData { + string symbol; + bool isInitialized; + int rsiHandle; + int emaHandle; + double previousRSIDef; + CTrade trade; + datetime lastTradeTime; + datetime bartime; + bool WeekDays[7]; + datetime lastBarTime; +}; + +//+------------------------------------------------------------------+ +//| Global Variables - RSI MidPoint Hijack | +//+------------------------------------------------------------------+ +struct RSIMidPointData { + string symbol; + bool isInitialized; + int rsiHandle; + int rsiReverseHandle; + int emaHandle; + bool rsiOverbought; + bool rsiOversold; + bool rsiReverseOverbought; + bool rsiReverseOversold; + CTrade trade; + CPositionInfo positionInfo; + bool emaCrossBuySignal; + bool emaCrossSellSignal; + int emaCrossSignalBar; + datetime lastBarTime; + datetime rsiReverseLastCloseTime; + bool rsiReverseInCooldown; + double lastBarRSI; + double lastBarRSIReverse; + double lastBarEMA; + double lastBarClose; + double lastBarEMAPrev; + double lastBarClosePrev; +}; + +//+------------------------------------------------------------------+ +//| Global Variables - RSI Scalping | +//+------------------------------------------------------------------+ +struct RSIScalpingData { + string symbol; + bool isInitialized; + CTrade trade; + int rsi_handle; + double rsi_buffer[]; + double rsi_prev; + double rsi_current; + double rsi_two_bars_ago; + bool position_open; + ulong position_ticket; + ENUM_POSITION_TYPE current_position_type; + datetime last_bar_time; + bool rsi_against_position; + int bars_against_count; +}; + +//+------------------------------------------------------------------+ +//| Global Strategy Instances | +//+------------------------------------------------------------------+ +DarvasBoxData dbData; +EMASlopeData esData; +RSICrossOverData rcData; +RSIMidPointData rmData; +RSIScalpingData rsAPPLData; +RSIScalpingData rsBTCUSDData; +RSIScalpingData rsNVDAData; +RSIScalpingData rsTSLAData; +RSIScalpingData rsXAUUSDData; + +//+------------------------------------------------------------------+ +//| Global Variables for Dynamic Lot Sizes | +//+------------------------------------------------------------------+ +// All strategies start with minimum lot size for safety (will be adjusted by performance evaluator) +double g_DB_LotSize = 0.01; // DarvasBox uses fixed lot size +double g_ES_LotSize = 0.01; // EMA Slope Distance - start with minimum +double g_RC_LotSize = 0.01; // RSI CrossOver Reversal - start with minimum +double g_RM_LotSize = 0.01; // RSI MidPoint Hijack - start with minimum +double g_RS_APPL_LotSize = 5.0; // Stock - start with stock minimum (5.0) +double g_RS_BTCUSD_LotSize = 0.01; // Crypto - start with forex minimum (0.01) +double g_RS_NVDA_LotSize = 5.0; // Stock - start with stock minimum (5.0) +double g_RS_TSLA_LotSize = 5.0; // Stock - start with stock minimum (5.0) +double g_RS_XAUUSD_LotSize = 0.01; // Forex - start with forex minimum (0.01) + +//+------------------------------------------------------------------+ +//| Expert initialization function | +//+------------------------------------------------------------------+ +int OnInit() +{ + int initResult = INIT_SUCCEEDED; + + // Initialize Performance Evaluator + InitPerformanceTracking(); + + // Initialize strategies - log warnings but don't fail entire EA if symbol unavailable + if(EnableDarvasBox) + { + if(!InitDarvasBox(DB_Symbol)) + Print("Warning: DarvasBox strategy failed to initialize for symbol '", DB_Symbol, "'"); + else + RegisterStrategy("DarvasBox", DB_MagicNumber, 0.01, DB_Symbol); // Fixed lot size + } + + if(EnableEMASlopeDistance) + { + if(!InitEMASlopeDistance(ES_Symbol)) + Print("Warning: EMASlopeDistance strategy failed to initialize for symbol '", ES_Symbol, "'"); + else + { + RegisterStrategy("EMASlopeDistance", ES_MagicNumber, ES_LotGröße, ES_Symbol); + // Start with minimum lot size (will be adjusted by performance evaluator) + double minLot = GetMinLotSizeForSymbol(ES_Symbol); + g_ES_LotSize = minLot; + } + } + + if(EnableRSICrossOverReversal) + { + if(!InitRSICrossOverReversal(RC_Symbol)) + Print("Warning: RSICrossOverReversal strategy failed to initialize for symbol '", RC_Symbol, "'"); + else + { + RegisterStrategy("RSICrossOverReversal", RC_MagicNumber, RC_lotSize, RC_Symbol); + // Start with minimum lot size (will be adjusted by performance evaluator) + double minLot = GetMinLotSizeForSymbol(RC_Symbol); + g_RC_LotSize = minLot; + } + } + + if(EnableRSIMidPointHijack) + { + if(!InitRSIMidPointHijack(RM_Symbol)) + Print("Warning: RSIMidPointHijack strategy failed to initialize for symbol '", RM_Symbol, "'"); + else + { + RegisterStrategy("RSIMidPointHijack", RM_InpMagicNumberRSIFollow, RM_InpLotSize, RM_Symbol); + RegisterStrategy("RSIMidPointHijack_Reverse", RM_InpMagicNumberRSIReverse, RM_InpLotSize, RM_Symbol); + RegisterStrategy("RSIMidPointHijack_EMACross", RM_InpMagicNumberEMACross, RM_InpLotSize, RM_Symbol); + // Start with minimum lot size (will be adjusted by performance evaluator) + double minLot = GetMinLotSizeForSymbol(RM_Symbol); + g_RM_LotSize = minLot; + } + } + + // Initialize RSI Scalping strategies - don't fail entire EA if symbol unavailable + if(EnableRSIScalpingAPPL) + { + InitRSIScalping(rsAPPLData, RS_APPL_Symbol, RS_APPL_TimeFrame, RS_APPL_RSI_Period, RS_APPL_RSI_Applied_Price, RS_APPL_MagicNumber, RS_APPL_Slippage); + RegisterStrategy("RSIScalpingAPPL", RS_APPL_MagicNumber, RS_APPL_LotSize, RS_APPL_Symbol); + // Start with minimum lot size (will be adjusted by performance evaluator) + double minLot = GetMinLotSizeForSymbol(RS_APPL_Symbol); + g_RS_APPL_LotSize = minLot; + } + + if(EnableRSIScalpingBTCUSD) + { + InitRSIScalping(rsBTCUSDData, RS_BTCUSD_Symbol, RS_BTCUSD_TimeFrame, RS_BTCUSD_RSI_Period, RS_BTCUSD_RSI_Applied_Price, RS_BTCUSD_MagicNumber, RS_BTCUSD_Slippage); + RegisterStrategy("RSIScalpingBTCUSD", RS_BTCUSD_MagicNumber, RS_BTCUSD_LotSize, RS_BTCUSD_Symbol); + // Start with minimum lot size (will be adjusted by performance evaluator) + double minLot = GetMinLotSizeForSymbol(RS_BTCUSD_Symbol); + g_RS_BTCUSD_LotSize = minLot; + } + + if(EnableRSIScalpingNVDA) + { + InitRSIScalping(rsNVDAData, RS_NVDA_Symbol, RS_NVDA_TimeFrame, RS_NVDA_RSI_Period, RS_NVDA_RSI_Applied_Price, RS_NVDA_MagicNumber, RS_NVDA_Slippage); + RegisterStrategy("RSIScalpingNVDA", RS_NVDA_MagicNumber, RS_NVDA_LotSize, RS_NVDA_Symbol); + // Start with minimum lot size (will be adjusted by performance evaluator) + double minLot = GetMinLotSizeForSymbol(RS_NVDA_Symbol); + g_RS_NVDA_LotSize = minLot; + } + + if(EnableRSIScalpingTSLA) + { + InitRSIScalping(rsTSLAData, RS_TSLA_Symbol, RS_TSLA_TimeFrame, RS_TSLA_RSI_Period, RS_TSLA_RSI_Applied_Price, RS_TSLA_MagicNumber, RS_TSLA_Slippage); + RegisterStrategy("RSIScalpingTSLA", RS_TSLA_MagicNumber, RS_TSLA_LotSize, RS_TSLA_Symbol); + // Start with minimum lot size (will be adjusted by performance evaluator) + double minLot = GetMinLotSizeForSymbol(RS_TSLA_Symbol); + g_RS_TSLA_LotSize = minLot; + } + + if(EnableRSIScalpingXAUUSD) + { + InitRSIScalping(rsXAUUSDData, RS_XAUUSD_Symbol, RS_XAUUSD_TimeFrame, RS_XAUUSD_RSI_Period, RS_XAUUSD_RSI_Applied_Price, RS_XAUUSD_MagicNumber, RS_XAUUSD_Slippage); + RegisterStrategy("RSIScalpingXAUUSD", RS_XAUUSD_MagicNumber, RS_XAUUSD_LotSize, RS_XAUUSD_Symbol); + // Start with minimum lot size (will be adjusted by performance evaluator) + double minLot = GetMinLotSizeForSymbol(RS_XAUUSD_Symbol); + g_RS_XAUUSD_LotSize = minLot; + } + + // Load adjusted lot sizes from performance evaluator + if(PE_EnableAutoAdjustment) + { + double adjustedLot; + adjustedLot = GetStrategyLotSize("EMASlopeDistance", ES_MagicNumber); + if(adjustedLot > 0) g_ES_LotSize = adjustedLot; + + adjustedLot = GetStrategyLotSize("RSICrossOverReversal", RC_MagicNumber); + if(adjustedLot > 0) g_RC_LotSize = adjustedLot; + + adjustedLot = GetStrategyLotSize("RSIMidPointHijack", RM_InpMagicNumberRSIFollow); + if(adjustedLot > 0) g_RM_LotSize = adjustedLot; + + adjustedLot = GetStrategyLotSize("RSIScalpingAPPL", RS_APPL_MagicNumber); + if(adjustedLot > 0) g_RS_APPL_LotSize = adjustedLot; + + adjustedLot = GetStrategyLotSize("RSIScalpingBTCUSD", RS_BTCUSD_MagicNumber); + if(adjustedLot > 0) g_RS_BTCUSD_LotSize = adjustedLot; + + adjustedLot = GetStrategyLotSize("RSIScalpingNVDA", RS_NVDA_MagicNumber); + if(adjustedLot > 0) g_RS_NVDA_LotSize = adjustedLot; + + adjustedLot = GetStrategyLotSize("RSIScalpingTSLA", RS_TSLA_MagicNumber); + if(adjustedLot > 0) g_RS_TSLA_LotSize = adjustedLot; + + adjustedLot = GetStrategyLotSize("RSIScalpingXAUUSD", RS_XAUUSD_MagicNumber); + if(adjustedLot > 0) g_RS_XAUUSD_LotSize = adjustedLot; + } + + Print("United EA initialized. Active strategies: ", + (EnableDarvasBox ? "DarvasBox " : ""), + (EnableEMASlopeDistance ? "EMASlope " : ""), + (EnableRSICrossOverReversal ? "RSICrossOver " : ""), + (EnableRSIMidPointHijack ? "RSIMidPoint " : ""), + (EnableRSIScalpingAPPL ? "RSIScalpingAPPL " : ""), + (EnableRSIScalpingBTCUSD ? "RSIScalpingBTCUSD " : ""), + (EnableRSIScalpingNVDA ? "RSIScalpingNVDA " : ""), + (EnableRSIScalpingTSLA ? "RSIScalpingTSLA " : ""), + (EnableRSIScalpingXAUUSD ? "RSIScalpingXAUUSD " : "")); + + if(PE_EnableLogging) + Print(GetPerformanceSummary()); + + return initResult; +} + +//+------------------------------------------------------------------+ +//| Expert deinitialization function | +//+------------------------------------------------------------------+ +void OnDeinit(const int reason) +{ + if(EnableDarvasBox) + DeinitDarvasBox(); + + if(EnableEMASlopeDistance) + DeinitEMASlopeDistance(); + + if(EnableRSICrossOverReversal) + DeinitRSICrossOverReversal(); + + if(EnableRSIMidPointHijack) + DeinitRSIMidPointHijack(); + + if(EnableRSIScalpingAPPL) + DeinitRSIScalping(rsAPPLData); + + if(EnableRSIScalpingBTCUSD) + DeinitRSIScalping(rsBTCUSDData); + + if(EnableRSIScalpingNVDA) + DeinitRSIScalping(rsNVDAData); + + if(EnableRSIScalpingTSLA) + DeinitRSIScalping(rsTSLAData); + + if(EnableRSIScalpingXAUUSD) + DeinitRSIScalping(rsXAUUSDData); + + Print("United EA deinitialized. Reason: ", reason); +} + +//+------------------------------------------------------------------+ +//| Expert tick function | +//+------------------------------------------------------------------+ +void OnTick() +{ + // Process performance evaluation (checks for quarter end and adjusts lot sizes) + ProcessPerformanceEvaluation(); + + // Update lot sizes from performance evaluator if auto-adjustment is enabled + if(PE_EnableAutoAdjustment) + { + double adjustedLot; + adjustedLot = GetStrategyLotSize("EMASlopeDistance", ES_MagicNumber); + if(adjustedLot > 0) g_ES_LotSize = adjustedLot; + + adjustedLot = GetStrategyLotSize("RSICrossOverReversal", RC_MagicNumber); + if(adjustedLot > 0) g_RC_LotSize = adjustedLot; + + adjustedLot = GetStrategyLotSize("RSIMidPointHijack", RM_InpMagicNumberRSIFollow); + if(adjustedLot > 0) g_RM_LotSize = adjustedLot; + + adjustedLot = GetStrategyLotSize("RSIScalpingAPPL", RS_APPL_MagicNumber); + if(adjustedLot > 0) g_RS_APPL_LotSize = adjustedLot; + + adjustedLot = GetStrategyLotSize("RSIScalpingBTCUSD", RS_BTCUSD_MagicNumber); + if(adjustedLot > 0) g_RS_BTCUSD_LotSize = adjustedLot; + + adjustedLot = GetStrategyLotSize("RSIScalpingNVDA", RS_NVDA_MagicNumber); + if(adjustedLot > 0) g_RS_NVDA_LotSize = adjustedLot; + + adjustedLot = GetStrategyLotSize("RSIScalpingTSLA", RS_TSLA_MagicNumber); + if(adjustedLot > 0) g_RS_TSLA_LotSize = adjustedLot; + + adjustedLot = GetStrategyLotSize("RSIScalpingXAUUSD", RS_XAUUSD_MagicNumber); + if(adjustedLot > 0) g_RS_XAUUSD_LotSize = adjustedLot; + } + + if(EnableDarvasBox) + ProcessDarvasBox(DB_Symbol); + + if(EnableEMASlopeDistance) + ProcessEMASlopeDistance(ES_Symbol); + + if(EnableRSICrossOverReversal) + ProcessRSICrossOverReversal(RC_Symbol); + + if(EnableRSIMidPointHijack) + ProcessRSIMidPointHijack(RM_Symbol); + + if(EnableRSIScalpingAPPL) + ProcessRSIScalping(rsAPPLData, RS_APPL_Symbol, RS_APPL_TimeFrame, RS_APPL_RSI_Period, RS_APPL_RSI_Applied_Price, + RS_APPL_RSI_Overbought, RS_APPL_RSI_Oversold, RS_APPL_RSI_Target_Buy, RS_APPL_RSI_Target_Sell, + RS_APPL_BarsToWait, g_RS_APPL_LotSize, RS_APPL_MagicNumber); + + if(EnableRSIScalpingBTCUSD) + ProcessRSIScalping(rsBTCUSDData, RS_BTCUSD_Symbol, RS_BTCUSD_TimeFrame, RS_BTCUSD_RSI_Period, RS_BTCUSD_RSI_Applied_Price, + RS_BTCUSD_RSI_Overbought, RS_BTCUSD_RSI_Oversold, RS_BTCUSD_RSI_Target_Buy, RS_BTCUSD_RSI_Target_Sell, + RS_BTCUSD_BarsToWait, g_RS_BTCUSD_LotSize, RS_BTCUSD_MagicNumber); + + if(EnableRSIScalpingNVDA) + ProcessRSIScalping(rsNVDAData, RS_NVDA_Symbol, RS_NVDA_TimeFrame, RS_NVDA_RSI_Period, RS_NVDA_RSI_Applied_Price, + RS_NVDA_RSI_Overbought, RS_NVDA_RSI_Oversold, RS_NVDA_RSI_Target_Buy, RS_NVDA_RSI_Target_Sell, + RS_NVDA_BarsToWait, g_RS_NVDA_LotSize, RS_NVDA_MagicNumber); + + if(EnableRSIScalpingTSLA) + ProcessRSIScalping(rsTSLAData, RS_TSLA_Symbol, RS_TSLA_TimeFrame, RS_TSLA_RSI_Period, RS_TSLA_RSI_Applied_Price, + RS_TSLA_RSI_Overbought, RS_TSLA_RSI_Oversold, RS_TSLA_RSI_Target_Buy, RS_TSLA_RSI_Target_Sell, + RS_TSLA_BarsToWait, g_RS_TSLA_LotSize, RS_TSLA_MagicNumber); + + if(EnableRSIScalpingXAUUSD) + ProcessRSIScalping(rsXAUUSDData, RS_XAUUSD_Symbol, RS_XAUUSD_TimeFrame, RS_XAUUSD_RSI_Period, RS_XAUUSD_RSI_Applied_Price, + RS_XAUUSD_RSI_Overbought, RS_XAUUSD_RSI_Oversold, RS_XAUUSD_RSI_Target_Buy, RS_XAUUSD_RSI_Target_Sell, + RS_XAUUSD_BarsToWait, g_RS_XAUUSD_LotSize, RS_XAUUSD_MagicNumber); +} + +//+------------------------------------------------------------------+ +//| Include strategy implementations | +//+------------------------------------------------------------------+ +#include "Strategies/DarvasBoxStrategy.mqh" +#include "Strategies/EMASlopeDistanceStrategy.mqh" +#include "Strategies/RSICrossOverReversalStrategy.mqh" +#include "Strategies/RSIMidPointHijackStrategy.mqh" +#include "Strategies/RSIScalpingStrategy.mqh" + +//+------------------------------------------------------------------+ diff --git a/lab/EAs/RSIMidPointHijackBTCUSD/RSIMidPointHijackBTCUSD_optimize.set b/lab/EAs/RSIMidPointHijackBTCUSD/RSIMidPointHijackBTCUSD_optimize.set new file mode 100644 index 0000000..9cdfe0e --- /dev/null +++ b/lab/EAs/RSIMidPointHijackBTCUSD/RSIMidPointHijackBTCUSD_optimize.set @@ -0,0 +1,45 @@ +; RSIFollowReverseEMACross (RSIMidPointHijackBTCUSD\main.mq5) — optimization preset +; Strategy Tester → Inputs → Load +; Format: Name=value||start||step||stop||Y|N +; +; Timeframe: leave N (ENUM not a linear range). Set manually or duplicate preset per TF. +; General Settings +InpTimeframe=16385||16385||0||16385||N +InpLotSize=0.02||0.02||0.001000||0.100000||N +InpMagicNumberRSIFollow=1001||1001||1||10010||N +InpMagicNumberRSIReverse=1002||1002||1||10020||N +InpMagicNumberEMACross=1003||1003||1||10030||N +; Strategy Switches +InpEnableRSIFollow=true||false||0||true||Y +InpEnableRSIReverse=true||false||0||true||Y +InpEnableEMACross=true||false||0||true||Y +InpEnableStrategyLock=false||false||0||true||Y +InpLockProfitThreshold=0.0||0.0||5.0||200.0||Y +InpCloseOppositeTrades=false||false||0||true||Y +; RSI Follow Strategy +InpRSIPeriod=32||14||2||48||Y +InpRSIOverbought=78||65||2||88||Y +InpRSIOversold=46||20||2||50||Y +InpRSIExitLevel=44||35||1||55||Y +InpRSIFollowStartHour=23||20||1||23||Y +InpRSIFollowEndHour=8||4||1||12||Y +InpRSIFollowCloseOutsideHours=false||false||0||true||Y +; RSI Reverse Strategy +InpRSIReversePeriod=59||28||3||80||Y +InpRSIReverseOverbought=51||48||1||78||Y +InpRSIReverseOversold=49||20||2||55||Y +InpRSIReverseCrossLevel=53||45||1||60||Y +InpRSIReverseExitLevel=48||35||1||55||Y +InpRSIReverseStartHour=7||0||1||12||Y +InpRSIReverseEndHour=13||10||1||18||Y +InpRSIReverseCloseOutsideHours=false||false||0||true||Y +InpRSIReverseCooldownBars=15||0||3||30||Y +InpRSIReverseCooldownOnLoss=true||false||0||true||Y +; EMA Cross Strategy +InpEMAPeriod=120||60||10||200||Y +InpEMACrossStartHour=8||0||1||12||Y +InpEMACrossEndHour=14||12||1||20||Y +InpEMACrossCloseOutsideHours=true||false||0||true||Y +InpUseEMADistanceEntry=true||false||0||true||Y +InpEMADistancePips=160.0||40.0||20.0||400.0||Y +InpEMADistancePeriod=26||10||2||40||Y diff --git a/lab/EAs/RSIMidPointHijackBTCUSD/main.mq5 b/lab/EAs/RSIMidPointHijackBTCUSD/main.mq5 new file mode 100644 index 0000000..161c0bd --- /dev/null +++ b/lab/EAs/RSIMidPointHijackBTCUSD/main.mq5 @@ -0,0 +1,604 @@ +//+------------------------------------------------------------------+ +//| RSIFollowReverseEMACrossOver.mq5 | +//| Copyright 2024, MetaQuotes Ltd. | +//| https://www.mql5.com | +//+------------------------------------------------------------------+ +#property copyright "Copyright 2024, MetaQuotes Ltd." +#property link "https://www.mql5.com" +#property version "1.00" + +#include +#include +#include "../_united/MagicNumberHelpers.mqh" + +// Input Parameters +input group "General Settings" +input ENUM_TIMEFRAMES InpTimeframe = PERIOD_H1; // Trading Timeframe +input double InpLotSize = 0.02; // Lot Size +input int InpMagicNumberRSIFollow = 1001; // Magic Number RSI Follow +input int InpMagicNumberRSIReverse = 1002;// Magic Number RSI Reverse +input int InpMagicNumberEMACross = 1003; // Magic Number EMA Cross + +input group "Strategy Switches" +input bool InpEnableRSIFollow = true; // Enable RSI Follow Strategy +input bool InpEnableRSIReverse = true; // Enable RSI Reverse Strategy +input bool InpEnableEMACross = true; // Enable EMA Cross Strategy +input bool InpEnableStrategyLock = false; // Enable Strategy Lock +input double InpLockProfitThreshold = 0.0; // Lock Profit Threshold (pips) +input bool InpCloseOppositeTrades = false; // Close Opposite Trades When Profiting + +input group "RSI Follow Strategy" +input int InpRSIPeriod = 32; // RSI Period +input int InpRSIOverbought = 78; // RSI Overbought Level +input int InpRSIOversold = 46; // RSI Oversold Level +input int InpRSIExitLevel = 44; // RSI Exit Level +input int InpRSIFollowStartHour = 23; // RSI Follow Start Hour (0-23) +input int InpRSIFollowEndHour = 8; // RSI Follow End Hour (0-23) +input bool InpRSIFollowCloseOutsideHours = false; // Close trades outside trading hours + +input group "RSI Reverse Strategy" +input int InpRSIReversePeriod = 59; // RSI Period +input int InpRSIReverseOverbought = 51; // RSI Overbought Level +input int InpRSIReverseOversold = 49; // RSI Oversold Level +input int InpRSIReverseCrossLevel = 53; // RSI Cross Level +input int InpRSIReverseExitLevel = 48; // RSI Exit Level +input int InpRSIReverseStartHour = 7; // RSI Reverse Start Hour (0-23) +input int InpRSIReverseEndHour = 13; // RSI Reverse End Hour (0-23) +input bool InpRSIReverseCloseOutsideHours = false; // Close trades outside trading hours +input int InpRSIReverseCooldownBars = 15; // RSI Reverse Cooldown (bars) +input bool InpRSIReverseCooldownOnLoss = true; // Apply cooldown only on loss + +input group "EMA Cross Strategy" +input int InpEMAPeriod = 120; // EMA Period +input int InpEMACrossStartHour = 8; // EMA Cross Start Hour (0-23) +input int InpEMACrossEndHour = 14; // EMA Cross End Hour (0-23) +input bool InpEMACrossCloseOutsideHours = true; // Close trades outside trading hours +input bool InpUseEMADistanceEntry = true; // Use EMA Distance Entry +input double InpEMADistancePips = 160.0; // EMA Distance Threshold (pips) +input int InpEMADistancePeriod = 26; // EMA Distance Period (bars) + +// Global Variables +int rsiHandle; +int rsiReverseHandle; +int emaHandle; +bool rsiOverbought = false; +bool rsiOversold = false; +bool rsiReverseOverbought = false; +bool rsiReverseOversold = false; +CTrade trade; +CPositionInfo positionInfo; +bool emaCrossBuySignal = false; +bool emaCrossSellSignal = false; +int emaCrossSignalBar = 0; +datetime lastBarTime = 0; +datetime rsiReverseLastCloseTime = 0; +bool rsiReverseInCooldown = false; +double lastBarRSI = 0; // Store last bar's RSI value +double lastBarRSIReverse = 0; // Store last bar's RSI Reverse value +double lastBarEMA = 0; // Store last bar's EMA value +double lastBarClose = 0; // Store last bar's close value +double lastBarEMAPrev = 0; // Store previous bar's EMA value +double lastBarClosePrev = 0; // Store previous bar's close value + +//+------------------------------------------------------------------+ +//| Expert initialization function | +//+------------------------------------------------------------------+ +int OnInit() +{ + // Initialize indicators + rsiHandle = iRSI(_Symbol, InpTimeframe, InpRSIPeriod, PRICE_CLOSE); + rsiReverseHandle = iRSI(_Symbol, InpTimeframe, InpRSIReversePeriod, PRICE_CLOSE); + emaHandle = iMA(_Symbol, InpTimeframe, InpEMAPeriod, 0, MODE_EMA, PRICE_CLOSE); + + if(rsiHandle == INVALID_HANDLE || rsiReverseHandle == INVALID_HANDLE || emaHandle == INVALID_HANDLE) + { + Print("Error creating indicators"); + return INIT_FAILED; + } + + // Initialize trade settings + trade.SetExpertMagicNumber(InpMagicNumberRSIFollow); + trade.SetMarginMode(); + trade.SetTypeFillingBySymbol(_Symbol); + trade.SetDeviationInPoints(10); + + // Initialize last bar time + datetime time[]; + if(CopyTime(_Symbol, InpTimeframe, 0, 1, time) > 0) + { + lastBarTime = time[0]; + } + + return(INIT_SUCCEEDED); +} + +//+------------------------------------------------------------------+ +//| Check if new bar has formed | +//+------------------------------------------------------------------+ +bool IsNewBar() +{ + datetime time[]; + if(CopyTime(_Symbol, InpTimeframe, 0, 1, time) > 0) + { + if(time[0] != lastBarTime) + { + lastBarTime = time[0]; + return true; + } + } + return false; +} + +//+------------------------------------------------------------------+ +//| Expert deinitialization function | +//+------------------------------------------------------------------+ +void OnDeinit(const int reason) +{ + // Release indicator handles + IndicatorRelease(rsiHandle); + IndicatorRelease(rsiReverseHandle); + IndicatorRelease(emaHandle); +} + +//+------------------------------------------------------------------+ +//| Check if current time is within trading hours | +//+------------------------------------------------------------------+ +bool IsWithinTradingHours(int startHour, int endHour) +{ + MqlDateTime currentTime; + TimeToStruct(TimeCurrent(), currentTime); + + if(startHour <= endHour) + { + return (currentTime.hour >= startHour && currentTime.hour < endHour); + } + else + { + return (currentTime.hour >= startHour || currentTime.hour < endHour); + } +} + +//+------------------------------------------------------------------+ +//| Check if position exists for given magic number AND symbol | +//+------------------------------------------------------------------+ +bool HasPosition(int magic) +{ + // Use helper function that verifies BOTH symbol AND magic number for THIS EA + return PositionExistsByMagic(_Symbol, magic); +} + +//+------------------------------------------------------------------+ +//| Check if any strategy has profitable position | +//+------------------------------------------------------------------+ +bool HasProfitablePosition(int excludeMagic) +{ + bool hasProfitable = false; + for(int i = PositionsTotal() - 1; i >= 0; i--) + { + if(positionInfo.SelectByIndex(i)) + { + if(positionInfo.Magic() != excludeMagic) + { + double profit = positionInfo.Profit(); + if(profit > InpLockProfitThreshold * _Point) + { + hasProfitable = true; + // If enabled, close opposite trades + if(InpCloseOppositeTrades) + { + // Check if this is an opposite trade to the excluded magic number + if((excludeMagic == InpMagicNumberRSIFollow && positionInfo.Magic() == InpMagicNumberRSIReverse) || + (excludeMagic == InpMagicNumberRSIReverse && positionInfo.Magic() == InpMagicNumberRSIFollow) || + (excludeMagic == InpMagicNumberEMACross && (positionInfo.Magic() == InpMagicNumberRSIReverse || positionInfo.Magic() == InpMagicNumberRSIFollow)) || + ((excludeMagic == InpMagicNumberRSIFollow || excludeMagic == InpMagicNumberRSIReverse) && positionInfo.Magic() == InpMagicNumberEMACross)) + { + ClosePosition(positionInfo.Magic()); + } + } + } + } + } + } + return hasProfitable; +} + +//+------------------------------------------------------------------+ +//| Check for RSI Follow Strategy signals | +//+------------------------------------------------------------------+ +void CheckRSIFollowStrategy() +{ + // Check if within trading hours + if(!IsWithinTradingHours(InpRSIFollowStartHour, InpRSIFollowEndHour)) + { + if(InpRSIFollowCloseOutsideHours) + { + if(HasPosition(InpMagicNumberRSIFollow)) + { + ClosePosition(InpMagicNumberRSIFollow); + } + } + return; + } + + // Check strategy lock + if(InpEnableStrategyLock && HasProfitablePosition(InpMagicNumberRSIFollow)) + return; + + // Use lastBarRSI instead of copying buffer + if(lastBarRSI > InpRSIOverbought) + rsiOverbought = true; + else if(lastBarRSI < InpRSIOversold) + rsiOversold = true; + + // Check for entry signals + if(rsiOverbought && lastBarRSI < InpRSIExitLevel) + { + // Sell signal + if(!HasPosition(InpMagicNumberRSIFollow)) + { + trade.SetExpertMagicNumber(InpMagicNumberRSIFollow); + trade.Sell(InpLotSize, _Symbol, 0, 0, 0, "RSI Follow"); + } + rsiOverbought = false; + } + else if(rsiOversold && lastBarRSI > InpRSIExitLevel) + { + // Buy signal + if(!HasPosition(InpMagicNumberRSIFollow)) + { + trade.SetExpertMagicNumber(InpMagicNumberRSIFollow); + trade.Buy(InpLotSize, _Symbol, 0, 0, 0, "RSI Follow"); + } + rsiOversold = false; + } +} + +//+------------------------------------------------------------------+ +//| Check if RSI Reverse is in cooldown | +//+------------------------------------------------------------------+ +bool IsRSIReverseInCooldown() +{ + if(InpRSIReverseCooldownBars <= 0) + return false; + + if(!rsiReverseInCooldown) + return false; + + datetime time[]; + if(CopyTime(_Symbol, InpTimeframe, 0, 1, time) > 0) + { + datetime currentBarTime = time[0]; + datetime cooldownEndTime = rsiReverseLastCloseTime + InpRSIReverseCooldownBars * PeriodSeconds(InpTimeframe); + + if(currentBarTime >= cooldownEndTime) + { + rsiReverseInCooldown = false; + return false; + } + } + + return true; +} + +//+------------------------------------------------------------------+ +//| Check for RSI Reverse Strategy signals | +//+------------------------------------------------------------------+ +void CheckRSIReverseStrategy() +{ + // Check if within trading hours + if(!IsWithinTradingHours(InpRSIReverseStartHour, InpRSIReverseEndHour)) + { + if(InpRSIReverseCloseOutsideHours) + { + if(HasPosition(InpMagicNumberRSIReverse)) + { + ClosePosition(InpMagicNumberRSIReverse); + } + } + return; + } + + // Check strategy lock + if(InpEnableStrategyLock && HasProfitablePosition(InpMagicNumberRSIReverse)) + return; + + // Check cooldown + if(IsRSIReverseInCooldown()) + return; + + // Use lastBarRSIReverse instead of copying buffer + if(lastBarRSIReverse > InpRSIReverseOverbought) + rsiReverseOverbought = true; + else if(lastBarRSIReverse < InpRSIReverseOversold) + rsiReverseOversold = true; + + // Check for entry signals + if(rsiReverseOverbought && lastBarRSIReverse < InpRSIReverseCrossLevel) + { + // Sell signal + if(!HasPosition(InpMagicNumberRSIReverse)) + { + trade.SetExpertMagicNumber(InpMagicNumberRSIReverse); + trade.Sell(InpLotSize, _Symbol, 0, 0, 0, "RSI Reverse"); + } + rsiReverseOverbought = false; + } + else if(rsiReverseOversold && lastBarRSIReverse > InpRSIReverseCrossLevel) + { + // Buy signal + if(!HasPosition(InpMagicNumberRSIReverse)) + { + trade.SetExpertMagicNumber(InpMagicNumberRSIReverse); + trade.Buy(InpLotSize, _Symbol, 0, 0, 0, "RSI Reverse"); + } + rsiReverseOversold = false; + } +} + +//+------------------------------------------------------------------+ +//| Check for EMA Cross Strategy signals | +//+------------------------------------------------------------------+ +void CheckEMACrossStrategy() +{ + // Check if within trading hours + if(!IsWithinTradingHours(InpEMACrossStartHour, InpEMACrossEndHour)) + { + if(InpEMACrossCloseOutsideHours) + { + if(HasPosition(InpMagicNumberEMACross)) + { + ClosePosition(InpMagicNumberEMACross); + } + } + return; + } + + // Check strategy lock + if(InpEnableStrategyLock && HasProfitablePosition(InpMagicNumberEMACross)) + return; + + // Check for cross signals using stored values + if(lastBarEMAPrev < lastBarClosePrev && lastBarEMA > lastBarClose) + { + // Buy cross signal + emaCrossBuySignal = true; + emaCrossSellSignal = false; + emaCrossSignalBar = 0; + } + else if(lastBarEMAPrev > lastBarClosePrev && lastBarEMA < lastBarClose) + { + // Sell cross signal + emaCrossSellSignal = true; + emaCrossBuySignal = false; + emaCrossSignalBar = 0; + } + + // Check for distance entry conditions + if(InpUseEMADistanceEntry) + { + if(emaCrossBuySignal) + { + // Check if price has moved above EMA by the required distance for the required period + bool distanceConditionMet = true; + double emaHistory[], closeHistory[]; + ArraySetAsSeries(emaHistory, true); + ArraySetAsSeries(closeHistory, true); + + if(CopyBuffer(emaHandle, 0, 0, InpEMADistancePeriod, emaHistory) > 0 && + CopyClose(_Symbol, InpTimeframe, 0, InpEMADistancePeriod, closeHistory) > 0) + { + for(int i = 0; i < InpEMADistancePeriod; i++) + { + double distance = (closeHistory[i] - emaHistory[i]) / _Point; + if(distance < InpEMADistancePips) + { + distanceConditionMet = false; + break; + } + } + + if(distanceConditionMet && !HasPosition(InpMagicNumberEMACross)) + { + trade.SetExpertMagicNumber(InpMagicNumberEMACross); + trade.Buy(InpLotSize, _Symbol, 0, 0, 0, "EMA Cross Distance"); + emaCrossBuySignal = false; + } + } + } + else if(emaCrossSellSignal) + { + // Check if price has moved below EMA by the required distance for the required period + bool distanceConditionMet = true; + double emaHistory[], closeHistory[]; + ArraySetAsSeries(emaHistory, true); + ArraySetAsSeries(closeHistory, true); + + if(CopyBuffer(emaHandle, 0, 0, InpEMADistancePeriod, emaHistory) > 0 && + CopyClose(_Symbol, InpTimeframe, 0, InpEMADistancePeriod, closeHistory) > 0) + { + for(int i = 0; i < InpEMADistancePeriod; i++) + { + double distance = (emaHistory[i] - closeHistory[i]) / _Point; + if(distance < InpEMADistancePips) + { + distanceConditionMet = false; + break; + } + } + + if(distanceConditionMet && !HasPosition(InpMagicNumberEMACross)) + { + trade.SetExpertMagicNumber(InpMagicNumberEMACross); + trade.Sell(InpLotSize, _Symbol, 0, 0, 0, "EMA Cross Distance"); + emaCrossSellSignal = false; + } + } + } + } + else + { + // Original cross entry logic using stored values + if(lastBarEMAPrev < lastBarClosePrev && lastBarEMA > lastBarClose) + { + // Buy signal + if(!HasPosition(InpMagicNumberEMACross)) + { + trade.SetExpertMagicNumber(InpMagicNumberEMACross); + trade.Buy(InpLotSize, _Symbol, 0, 0, 0, "EMA Cross"); + } + } + else if(lastBarEMAPrev > lastBarClosePrev && lastBarEMA < lastBarClose) + { + // Sell signal + if(!HasPosition(InpMagicNumberEMACross)) + { + trade.SetExpertMagicNumber(InpMagicNumberEMACross); + trade.Sell(InpLotSize, _Symbol, 0, 0, 0, "EMA Cross"); + } + } + } + + // Increment signal bar counter + if(emaCrossBuySignal || emaCrossSellSignal) + { + emaCrossSignalBar++; + // Reset signals if they're too old (optional, can be removed if not needed) + if(emaCrossSignalBar > InpEMADistancePeriod * 2) + { + emaCrossBuySignal = false; + emaCrossSellSignal = false; + } + } +} + +//+------------------------------------------------------------------+ +//| Expert tick function | +//+------------------------------------------------------------------+ +void OnTick() +{ + // Only process on new bar + if(!IsNewBar()) + return; + + // Get indicator values for the new bar + double rsi[], rsiReverse[], ema[], close[]; + ArraySetAsSeries(rsi, true); + ArraySetAsSeries(rsiReverse, true); + ArraySetAsSeries(ema, true); + ArraySetAsSeries(close, true); + + // Store previous values + lastBarEMAPrev = lastBarEMA; + lastBarClosePrev = lastBarClose; + + // Get new values + if(CopyBuffer(rsiHandle, 0, 0, 1, rsi) > 0) + lastBarRSI = rsi[0]; + + if(CopyBuffer(rsiReverseHandle, 0, 0, 1, rsiReverse) > 0) + lastBarRSIReverse = rsiReverse[0]; + + if(CopyBuffer(emaHandle, 0, 0, 1, ema) > 0) + lastBarEMA = ema[0]; + + if(CopyClose(_Symbol, InpTimeframe, 0, 1, close) > 0) + lastBarClose = close[0]; + + // Check for new signals + if(InpEnableRSIFollow) + CheckRSIFollowStrategy(); + if(InpEnableRSIReverse) + CheckRSIReverseStrategy(); + if(InpEnableEMACross) + CheckEMACrossStrategy(); + + // Check for exit conditions + CheckExitConditions(); +} + +//+------------------------------------------------------------------+ +//| Check exit conditions for all strategies | +//+------------------------------------------------------------------+ +void CheckExitConditions() +{ + if(InpEnableRSIFollow) + { + // Check RSI Follow exit conditions + if(HasPosition(InpMagicNumberRSIFollow)) + { + if((positionInfo.PositionType() == POSITION_TYPE_BUY && lastBarRSI < InpRSIExitLevel) || + (positionInfo.PositionType() == POSITION_TYPE_SELL && lastBarRSI > InpRSIExitLevel)) + { + ClosePosition(InpMagicNumberRSIFollow); + } + } + } + + if(InpEnableRSIReverse) + { + // Check RSI Reverse exit conditions + if(HasPosition(InpMagicNumberRSIReverse)) + { + if((positionInfo.PositionType() == POSITION_TYPE_BUY && lastBarRSIReverse < InpRSIReverseExitLevel) || + (positionInfo.PositionType() == POSITION_TYPE_SELL && lastBarRSIReverse > InpRSIReverseExitLevel)) + { + ClosePosition(InpMagicNumberRSIReverse); + } + } + } + + if(InpEnableEMACross) + { + // Check EMA Cross exit conditions using stored values + if(HasPosition(InpMagicNumberEMACross)) + { + if((positionInfo.PositionType() == POSITION_TYPE_BUY && lastBarEMA > lastBarClose) || + (positionInfo.PositionType() == POSITION_TYPE_SELL && lastBarEMA < lastBarClose)) + { + ClosePosition(InpMagicNumberEMACross); + } + } + } +} + +//+------------------------------------------------------------------+ +//| Close position by magic number | +//+------------------------------------------------------------------+ +void ClosePosition(int magic) +{ + // Close position using helper that verifies symbol AND magic number for THIS EA + // First check if position exists for this EA on this symbol + if(!PositionExistsByMagic(_Symbol, magic)) + { + return; // No position for this EA on this symbol + } + + // Get the position ticket for this EA on this symbol + ulong ticket = GetPositionTicketByMagic(_Symbol, magic); + if(ticket == 0) + { + return; // No valid ticket found + } + + // Check if this is RSI Reverse position and update cooldown + if(magic == InpMagicNumberRSIReverse) + { + if(PositionSelectByTicketSymbolAndMagic(ticket, _Symbol, magic)) + { + datetime time[]; + if(CopyTime(_Symbol, InpTimeframe, 0, 1, time) > 0) + { + rsiReverseLastCloseTime = time[0]; + // Only enter cooldown if it's a loss or if cooldown on loss is disabled + double profit = PositionGetDouble(POSITION_PROFIT); + if(!InpRSIReverseCooldownOnLoss || profit < 0) + { + rsiReverseInCooldown = true; + } + } + } + } + + // Close the position using helper function + ClosePositionByMagic(trade, _Symbol, magic); +} diff --git a/lab/EAs/RSIMidPointHijackBTCUSD/report.html b/lab/EAs/RSIMidPointHijackBTCUSD/report.html new file mode 100644 index 0000000000000000000000000000000000000000..a731713c85028a333a92aff102220079456ff170 GIT binary patch literal 5214578 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�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 vAM9L`7oZ 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

%OyhTlK?d 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