diff --git a/PaPP v2/PaPP_Median_EA.mq5 b/PaPP v2/PaPP_Median_EA.mq5 index 4cb4443..51cb229 100644 --- a/PaPP v2/PaPP_Median_EA.mq5 +++ b/PaPP v2/PaPP_Median_EA.mq5 @@ -154,14 +154,24 @@ void OnTick() //--- Reset escursion flags quando price rientra nel cluster if(bid>=buyBand && bid<=sellBand) { buyFired=false; sellFired=false; } + //--- MA alignment: se tutte monotone = trend, blocca mean reversion + bool trendUp=true, trendDown=true; + for(int m=0;m<7;m++) + if(mv[m] > mv[m+1]) trendUp=false; + else if(mv[m] < mv[m+1]) trendDown=false; + else { trendUp=false; trendDown=false; } + bool allowBuy = !buyFired && nBuy0) Print(" MA",m,"=",DoubleToString(mv[m],_Digits), @@ -170,7 +180,7 @@ void OnTick() } //--- Entry: fuori dal cluster, TP=mediana, SL simmetrico - if(bid < buyBand && !buyFired && nBuy < MaxPosPerSide) + if(bid < buyBand && allowBuy) { double entry = ask; double tpDist = MathAbs(median-entry); @@ -194,7 +204,7 @@ void OnTick() else if(DebugPrint) Print("BUY SKIP: tpDist too small (",DoubleToString(tpDist/point,0),"pts)"); } - if(bid > sellBand && !sellFired && nSell < MaxPosPerSide) + if(bid > sellBand && allowSell) { double entry = bid; double tpDist = MathAbs(entry-median); @@ -218,17 +228,8 @@ void OnTick() else if(DebugPrint) Print("SELL SKIP: tpDist too small (",DoubleToString(tpDist/point,0),"pts)"); } - if(DebugPrint) - { - if(bid>=buyBand && bid<=sellBand) - Print("NO ENTRY: inside cluster [",DoubleToString(buyBand,_Digits), - " - ",DoubleToString(sellBand,_Digits),"]"); - else if(bid=MaxPosPerSide) - Print("BUY BLOCKED: max pos (",nBuy,"/",MaxPosPerSide,") bid=",DoubleToString(bid,_Digits), - " < buyBand=",DoubleToString(buyBand,_Digits)); - else if(bid>sellBand && nSell>=MaxPosPerSide) - Print("SELL BLOCKED: max pos (",nSell,"/",MaxPosPerSide,") bid=",DoubleToString(bid,_Digits), - " > sellBand=",DoubleToString(sellBand,_Digits)); - } + if(DebugPrint && bid>=buyBand && bid<=sellBand) + Print("NO ENTRY: inside cluster [",DoubleToString(buyBand,_Digits), + " - ",DoubleToString(sellBand,_Digits),"]"); } //+------------------------------------------------------------------+