From 08e7435a5421fc6c84c3078173b454c5b0cc97d0 Mon Sep 17 00:00:00 2001 From: Bell Date: Sat, 20 Dec 2025 13:11:49 +0700 Subject: [PATCH] SimplerICt --- Experts/BellPriceActionWithEma50EA.ex5 | Bin 35656 -> 32950 bytes Experts/BellPriceActionWithEma50EA.mq5 | Bin 26494 -> 14042 bytes Experts/ICT.mq5 | 12 +- Experts/XAU_H1_M5_Pullback.mq5 | 691 ++++++++++++++++++++++++- 4 files changed, 693 insertions(+), 10 deletions(-) diff --git a/Experts/BellPriceActionWithEma50EA.ex5 b/Experts/BellPriceActionWithEma50EA.ex5 index a9ce463ba573509c9c3a2e64911076be215c7eed..a1f4e7e15b68282de845e19f4d178dd5d1308cee 100644 GIT binary patch literal 32950 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 literal 35656 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 literal 26494 zcmeHPZEsx1bsnPM3KX#Zz+$Dq231+sOCq3190w9bS%gVh6)B-^Pzd6ZA}KFlN-im@ zcK$?vK@GzQ`XQ+MrTNslMu56O8U(3<25FEqjv54MZ4_+o|(D#?q0qq zc8g*`?%jLm&YU?f&pC7E-231EbuOF>XTsS}!RJi)jqvNB=3ICqbn%%Em&4t#5Vpf| z*a%BFo(^+3cPX6TKfZ|L^WnL$9)2I^dDqcCZxl4#469)+{1e9ShQ;t!XCr(bM;9>S z`6G_hj?R*vx$x6Y4#tKeoA`IV)Wk$AA%Or^eymb6-TdyUHo4S?@asv zXI5~$82)s4UMmQ%BF8@Z+$F`}^VjAw2`=kYqRq*>%IK zQL0@~{R{jWgpZ?qDe3n+yOF0CasI@_hv5;v&*4wMzd7uWXEwsS_{Hzl@OC_+JU)UZ zcA>wyCX-9I!p}Nu_}-4R^}=^M&N1oK)3`bfJ>CT!gE;bf_+GrnXVQ)+P!P}fdOe1PkR|2RdTCM^6+*oykH1q9q4>O>Fvvjt9VgF7qW z)c~_T6|SH~AD?cxj%#Ya1x?yPi&Ie>>-yS@{qCTr&1eDS->D(GogZ=E4o2npJ$zHs z`S%(8-oTkYMqNU`-SB+G?tAgqx#U=Ay&7JK_e~{NXp7rHcYI;LXL^Kg_+pDsH_U_^ z;bypvKIdEB)23f+v*@R0@I4)_!O}0sBU0erYXMg{i!SJ!Mw^-N za=427h)9>h7jT{*&6W7HJG8U`j(-^Kas?ybi*j1px5EFMu+ihIyuo+0Px`HfR;Y+c+m)F4um zf2&cmQYn_B&V!?y;o)#p`KI>c=A#nNzJ?i>GhM<6yYP$sXe+lM+a36&o6#bB_%A+i z)`~VpkFPPeGao~LvYh!7(n8Nz`jyeNEr2TO=`Ls;fX*#^uSGf~m5VVNYNk)L4Z=60 zroNB=>{0jHyu0ByBVE-oO4>|TbCBh0upwgI2Kw6s|L8Y`Wjn+EFOJa{qiwY3D{07O zcQujZ0*)zBq8QO|IZ`H?ji%2QS}Yot_APz~_tFp3-v6azzF5)7Ie0onAtg=D7amelBP_#>K#Lz^+`rO)rhIFIq2MGC|w^T3Crc0SBPw{D`B zEl_(G6fTGRpj~<(9r~v#5zEKbpGgcy1q)c;gkJo(Eg?7z^zv$dRKMSzLzl1OB zhNe%liZCfxd$Dx~ zZDD*r2j$Oo@MI1>Uk`s5QSVmx3BKFTe_T6K;}qEnz8jvJcsF|3ow&yE7@oSP=-r}u zd4nDJ`*nCC>7Z6YT-gk;E+7tBʇ(3%m-U<3lsC;d*wHQnoxUfGMugz>C;k~Hbz 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 b2High) + { + state.bias = HTF_BIAS_UP; + return; + } + + // ===== DOWN BIAS ===== + if(b1Close < b2Low) + { + state.bias = HTF_BIAS_DOWN; + return; + } + + // ===== SIDEWAY: inside bar ===== + bool insideBar = + b1High <= b2High && + b1Low >= b2Low; + + if(insideBar) + { + state.bias = HTF_BIAS_SIDEWAY; + state.rangeHigh = b2High; + state.rangeLow = b2Low; + return; + } + + // ===== SIDEWAY: indecision ===== + bool indecision = + b1Close < b2High && + b1Close > b2Low; + + if(indecision) + { + state.bias = HTF_BIAS_SIDEWAY; + state.rangeHigh = b1High; + state.rangeLow = b1Low; + return; + } + + state.bias = HTF_BIAS_NONE; +} + +bool IsHTFBiasAligned( + ENUM_HTF_BIAS bias, + int trendDirection +) +{ + if(bias == HTF_BIAS_UP && trendDirection == 1) return true; + if(bias == HTF_BIAS_DOWN && trendDirection == -1) return true; + + return false; +} + //==================================================== // INITIALIZATION //==================================================== - int OnInit() { ZeroMemory(g_TrendState); g_TrendState.trendDirection = 0; g_TrendState.lastStructureUpdateTime = 0; + g_HTFBias.bias = HTF_BIAS_NONE; + g_HTFBias.rangeHigh = 0; + g_HTFBias.rangeLow = 0; + g_HTFBias.lastUpdateTime = 0; + + g_OBWatch.active = false; + Print("ICT Early Trend Detection EA initialized successfully"); return INIT_SUCCEEDED; } @@ -314,11 +475,522 @@ void DrawTrendSummaryLabel(const TrendState &state) // MAIN LOOP //==================================================== +//==================================================== +// SESSION GUARD +//==================================================== + +bool IsWithinSession( + int currentMinutes, + int sessionStartHour, + int sessionEndHour, + int avoidLastMinutes +) +{ + int sessionStartMin = sessionStartHour * 60; + int sessionEndMin = sessionEndHour * 60; + + // Trong phiên + if(currentMinutes < sessionStartMin || + currentMinutes >= sessionEndMin) + return false; + + // Tránh cuối phiên + if(currentMinutes >= (sessionEndMin - avoidLastMinutes)) + return false; + + return true; +} + +bool IsTradingSessionAllowed() +{ + datetime now = TimeCurrent(); + + MqlDateTime tm; + TimeToStruct(now, tm); + + int currentMinutes = tm.hour * 60 + tm.min; + + if(IsWithinSession(currentMinutes, + LondonStartHour, + LondonEndHour, + LondonAvoidLastMin)) + return true; + + if(IsWithinSession(currentMinutes, + NewYorkStartHour, + NewYorkEndHour, + NewYorkAvoidLastMin)) + return true; + + return false; +} + +bool HasPriceTouchedOB( + int direction, + double obHigh, + double obLow, + double price +) { + if(direction == 1) // buy + return price <= obHigh && price >= obLow; + + if(direction == -1) // sell + return price >= obLow && price <= obHigh; + + return false; +} + +bool FindTrendOrderBlock( + ENUM_TIMEFRAMES timeframe, + const TrendState &trend, + double &obHigh, + double &obLow, + int &obCandleIndex +) +{ + obHigh = 0; + obLow = 0; + obCandleIndex = -1; + + // ===== UP TREND ===== + if(trend.trendDirection == 1) + { + // Bắt đầu từ swing low gần nhất (key level) + for(int i = trend.latestSwingLowIndex - 1; i >= 1; i--) + { + double open = iOpen (_Symbol, timeframe, i); + double close = iClose(_Symbol, timeframe, i); + + // Nến giảm + if(close < open) + { + obHigh = iHigh(_Symbol, timeframe, i); + obLow = iLow (_Symbol, timeframe, i); + obCandleIndex = i; + return true; + } + } + } + + // ===== DOWN TREND ===== + if(trend.trendDirection == -1) + { + // Bắt đầu từ swing high gần nhất (key level) + for(int i = trend.latestSwingHighIndex - 1; i >= 1; i--) + { + double open = iOpen (_Symbol, timeframe, i); + double close = iClose(_Symbol, timeframe, i); + + // Nến tăng + if(close > open) + { + obHigh = iHigh(_Symbol, timeframe, i); + obLow = iLow (_Symbol, timeframe, i); + obCandleIndex = i; + return true; + } + } + } + + return false; +} + +void ResetOBWatch() +{ + g_OBWatch.active = false; + g_OBWatch.used = false; + g_OBWatch.direction = 0; + g_OBWatch.obHigh = 0; + g_OBWatch.obLow = 0; + g_OBWatch.createdTime = 0; +} + +bool IsOBInvalidated( + int direction, + double obHigh, + double obLow, + double price +) { + if(direction == 1) // buy + return price < obLow; + + if(direction == -1) // sell + return price > obHigh; + + return false; +} + +void ResetTriggerTFStructure() +{ + ZeroMemory(g_TriggerTF); +} + +bool IsTriggerTFStructureBreak( + const TriggerTFStructure &ts, + int trendDirection, + ENUM_TIMEFRAMES tf +) +{ + if(!ts.valid) return false; + + double close = iClose(_Symbol, tf, 1); + + if(trendDirection == 1) + return close > ts.breakLevel; + + if(trendDirection == -1) + return close < ts.breakLevel; + + return false; +} + +void UpdateTriggerTFStructure( + ENUM_TIMEFRAMES tf, + TriggerTFStructure &ts +) { + double sh, sl; + int shi, sli; + + bool foundHigh = false; + bool foundLow = false; + + for(int i = SwingDetectionRange + 1; i < StructureScanLookbackBars; i++) + { + if(!foundHigh && IsSwingHighAtBar(tf, i)) + { + sh = iHigh(_Symbol, tf, i); + shi = i; + foundHigh = true; + } + + if(!foundLow && IsSwingLowAtBar(tf, i)) + { + sl = iLow(_Symbol, tf, i); + sli = i; + foundLow = true; + } + + if(foundHigh && foundLow) break; + } + + if(!foundHigh || !foundLow) return; + + ts.lastSwingHigh = sh; + ts.lastSwingLow = sl; + ts.lastSwingHighIndex = shi; + ts.lastSwingLowIndex = sli; + + ts.direction = g_TrendState.trendDirection; + ts.valid = true; + + if(ts.direction == 1) + { + ts.breakLevel = ts.lastSwingHigh; + ts.newKeyLevel = ts.lastSwingLow; + } + else + { + ts.breakLevel = ts.lastSwingLow; + ts.newKeyLevel = ts.lastSwingHigh; + } +} + +void TryActivateOBWatch( + const TrendState &trend, + double currentPrice +) { + if(g_OBWatch.used) return; + double obHigh, obLow; + int obIndex; + + if(!FindTrendOrderBlock(TrendTimeframe, + trend, + obHigh, + obLow, + obIndex)) + return; + + if(!HasPriceTouchedOB(trend.trendDirection, + obHigh, + obLow, + currentPrice)) + return; + + g_OBWatch.active = true; + ResetTriggerTFStructure(); + g_OBWatch.direction = trend.trendDirection; + g_OBWatch.obHigh = obHigh; + g_OBWatch.obLow = obLow; + g_OBWatch.createdTime = TimeCurrent(); + + // Debug (optional) + PrintFormat( + "OB WATCH ACTIVATED | dir=%d | OB[%.2f - %.2f]", + g_OBWatch.direction, + g_OBWatch.obLow, + g_OBWatch.obHigh + ); +} + +void HandleOBWatching( + const TrendState &trend, + double currentPrice +) +{ + // 1️⃣ Bias hoặc trend không còn hợp lệ + if(!IsHTFBiasAligned(g_HTFBias.bias, trend.trendDirection)) + { + ResetOBWatch(); + return; + } + + // 2️⃣ OB quá hạn + if(IsOBExpired(g_OBWatch)) + { + ResetOBWatch(); + return; + } + + // 3️⃣ Giá đóng nến xuyên qua OB + if(IsOBCloseBreak(g_OBWatch.direction, + g_OBWatch.obHigh, + g_OBWatch.obLow)) + { + ResetOBWatch(); + return; + } + + // 4️⃣ OB bị phá sâu (tick safety) + if(IsOBInvalidated(g_OBWatch.direction, + g_OBWatch.obHigh, + g_OBWatch.obLow, + currentPrice)) + { + ResetOBWatch(); + return; + } + + // ================================================= + // 🔥 TRIGGER TF STRUCTURE LOGIC (CHỖ QUAN TRỌNG) + // ================================================= + if(!g_TriggerTF.valid) + { + UpdateTriggerTFStructure(TriggerTimeframe, g_TriggerTF); + } + + if(IsTriggerTFStructureBreak(g_TriggerTF, + trend.trendDirection, + TriggerTimeframe)) + { + OrderPlan plan = + BuildOrderPlanFromTriggerTF(g_TriggerTF, + TriggerTimeframe); + + if(plan.valid) + { + plan.lot = CalculateRiskLot(plan.entry, plan.stopLoss); + + if(plan.lot <= 0) + return; + + ExecuteOrder(plan); + + PrintFormat( + "🎯 ENTRY CONFIRMED | dir=%d | entry=%.2f | SL=%.2f | TP=%.2f | RR=1:%.1f", + plan.direction, + plan.entry, + plan.stopLoss, + plan.takeProfit, + RiskReward + ); + + // === SEND ORDER Ở ĐÂY === + // SendMarketOrder(plan) hoặc PlacePending(plan) + + MarkOBAsUsed(); + } + } + +} + +bool IsOBExpired(const OBWatchState &ob) +{ + if(!ob.active) + return true; + + int aliveSec = (int)(TimeCurrent() - ob.createdTime); + return aliveSec > OBMaxAliveMinutes * 60; +} + +void MarkOBAsUsed() +{ + g_OBWatch.used = true; + g_OBWatch.active = false; +} + +bool IsOBCloseBreak( + int direction, + double obHigh, + double obLow +) { + double close = iClose(_Symbol, TriggerTimeframe, 1); + + if(direction == 1) // buy OB + return close < obLow; + + if(direction == -1) // sell OB + return close > obHigh; + + return false; +} + +bool IsTriggerKeyLevelBreak( + const TrendState &trend, + ENUM_TIMEFRAMES triggerTf +) { + double close = iClose(_Symbol, triggerTf, 1); + + if(trend.trendDirection == 1) + return close > trend.currentKeyLevel; + + if(trend.trendDirection == -1) + return close < trend.currentKeyLevel; + + return false; +} + +OrderPlan BuildOrderPlanFromTriggerTF( + const TriggerTFStructure &ts, + ENUM_TIMEFRAMES tf +) +{ + OrderPlan plan; + ZeroMemory(plan); + + double entryPrice = iClose(_Symbol, tf, 1); + + plan.valid = true; + plan.direction = ts.direction; + plan.entry = entryPrice; + + double riskPoints; + + // ===== BUY ===== + if(ts.direction == 1) + { + plan.stopLoss = MathMin(ts.newKeyLevel, g_OBWatch.obLow); + + riskPoints = plan.entry - plan.stopLoss; + if(riskPoints <= 0) + { + plan.valid = false; + return plan; + } + + plan.takeProfit = plan.entry + riskPoints * RiskReward; + } + // ===== SELL ===== + else + { + plan.stopLoss = MathMax(ts.newKeyLevel, g_OBWatch.obHigh); + + riskPoints = plan.stopLoss - plan.entry; + if(riskPoints <= 0) + { + plan.valid = false; + return plan; + } + + plan.takeProfit = plan.entry - riskPoints * RiskReward; + } + + return plan; +} + +double CalculateRiskLot( + double entryPrice, + double stopLossPrice +) { + double balance = AccountInfoDouble(ACCOUNT_BALANCE); + double riskMoney = balance * RiskPercent / 100.0; + + double tickValue = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE); + double tickSize = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_SIZE); + + if(tickValue <= 0 || tickSize <= 0) + return 0; + + double slPoints = MathAbs(entryPrice - stopLossPrice) / _Point; + if(slPoints <= 0) + return 0; + + double costPerLot = slPoints * (tickValue / tickSize); + double lot = riskMoney / costPerLot; + + // ===== Normalize theo broker ===== + double minLot = SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_MIN); + double maxLot = SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_MAX); + double lotStep = SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_STEP); + + lot = MathMax(minLot, MathMin(lot, maxLot)); + lot = NormalizeDouble(lot, (int)MathLog10(1.0 / lotStep)); + + return lot; +} + +void ExecuteOrder(const OrderPlan &plan) +{ + if(!plan.valid) return; + + MqlTradeRequest req; + MqlTradeResult res; + ZeroMemory(req); + ZeroMemory(res); + + req.action = TRADE_ACTION_DEAL; + req.symbol = _Symbol; + req.volume = plan.lot; + req.type = plan.direction == 1 ? ORDER_TYPE_BUY : ORDER_TYPE_SELL; + req.price = plan.direction == 1 ? + SymbolInfoDouble(_Symbol, SYMBOL_ASK) : + SymbolInfoDouble(_Symbol, SYMBOL_BID); + + req.sl = plan.stopLoss; + req.tp = plan.takeProfit; + req.deviation= 5; + req.magic = 202501; + req.comment = "ICT_OB_Trigger"; + + OrderSend(req, res); + + if(res.retcode != TRADE_RETCODE_DONE) + { + Print("❌ OrderSend failed: ", res.retcode); + } + else + { + PrintFormat( + "✅ ORDER SENT | lot=%.2f | entry=%.2f | SL=%.2f | TP=%.2f", + plan.lot, + plan.entry, + plan.stopLoss, + plan.takeProfit + ); + } +} + void OnTick() { if(!IsNewBarFormed(TriggerTimeframe, g_LastTriggerBarTime)) return; + if(!IsTradingSessionAllowed()) + return; + + // ===== HTF BIAS ===== + UpdateHTFBias(BiasTimeframe, g_HTFBias); + + // ===== TREND STRUCTURE ===== UpdateMarketStructure(TrendTimeframe, g_TrendState); double currentBidPrice = SymbolInfoDouble(_Symbol, SYMBOL_BID); @@ -327,6 +999,17 @@ void OnTick() DrawMarketStructure(TrendTimeframe, g_TrendState); DrawTrendSummaryLabel(g_TrendState); - // === Entry logic sẽ gắn tại đây === + // ===== ENTRY FILTER ===== + if(!IsHTFBiasAligned(g_HTFBias.bias, + g_TrendState.trendDirection)) + return; + + // ===== ORDER BLOCK FLOW ===== + if(!g_OBWatch.active) { + TryActivateOBWatch(g_TrendState, currentBidPrice); + } else { + HandleOBWatching(g_TrendState, currentBidPrice); + } } + //+------------------------------------------------------------------+