Ver Fonte

Ticket # 1585

Add reversal bar functionality in entry condition 2 and resolve the inside bar issue
AhtashamShahzad3 há 2 anos atrás
pai
commit
69cfcb8e63
2 ficheiros alterados com 20 adições e 11 exclusões
  1. BIN
      BOS_CHOCH.ex5
  2. 20 11
      BOS_CHOCH.mq5

BIN
BOS_CHOCH.ex5


+ 20 - 11
BOS_CHOCH.mq5

@@ -329,7 +329,7 @@ void Entry_Action_1_down(int Store_bos_last_index, int i,int diff)
 
       if(checkCandle(j) == "Bullish" && checkCandle(j-1) == "Bullish")
         {
-         if(iHigh(Symbol(),PERIOD_CURRENT,j) > iOpen(Symbol(),PERIOD_CURRENT,j-1)  && iLow(Symbol(),PERIOD_CURRENT,j) < iClose(Symbol(),PERIOD_CURRENT,j-1))
+         if(iHigh(Symbol(),PERIOD_CURRENT,j) > iClose(Symbol(),PERIOD_CURRENT,j-1)  && iLow(Symbol(),PERIOD_CURRENT,j) < iOpen(Symbol(),PERIOD_CURRENT,j-1))
            {
             tp_date_time_buy = 0.0;
             Print("target lines deleted due to in bar");
@@ -416,7 +416,7 @@ void Entry_Action_2_down(int Store_bos_last_index, int i,int diff)
         }
       if(checkCandle(j) == "Bullish" && checkCandle(j-1) == "Bullish")
         {
-         if(iHigh(Symbol(),PERIOD_CURRENT,j) > iOpen(Symbol(),PERIOD_CURRENT,j-1)  && iLow(Symbol(),PERIOD_CURRENT,j) < iClose(Symbol(),PERIOD_CURRENT,j-1))
+         if(iHigh(Symbol(),PERIOD_CURRENT,j) > iClose(Symbol(),PERIOD_CURRENT,j-1)  && iLow(Symbol(),PERIOD_CURRENT,j) < iOpen(Symbol(),PERIOD_CURRENT,j-1))
            {
             tp_date_time_buy = 0.0;
             Print("target lines deleted due to in bar");
@@ -433,10 +433,16 @@ void Entry_Action_2_down(int Store_bos_last_index, int i,int diff)
            }
         }
      }
-   if(addtional_condition = true)
+
+   if(check_values_less_than_choch_high(ind,i) == true && addtional_condition == true)
      {
-      signal = "buy";
-      time_of_candle = iTime(Symbol(),PERIOD_CURRENT,i);
+      if(iOpen(Symbol(),PERIOD_CURRENT,ind) > iOpen(Symbol(),PERIOD_CURRENT,i) && iClose(Symbol(),PERIOD_CURRENT,ind) < iClose(Symbol(),PERIOD_CURRENT,i))
+        {
+
+         signal = "buy";
+         time_of_candle = iTime(Symbol(),PERIOD_CURRENT,i);
+
+        }
      }
 
 
@@ -487,7 +493,7 @@ void Check_Inside_bar(int inex)
 
       if(checkCandle(j) == "Bullish" && checkCandle(j-1) == "Bullish")
         {
-         if(iHigh(Symbol(),PERIOD_CURRENT,j) > iOpen(Symbol(),PERIOD_CURRENT,j-1)  && iLow(Symbol(),PERIOD_CURRENT,j) < iClose(Symbol(),PERIOD_CURRENT,j-1))
+         if(iHigh(Symbol(),PERIOD_CURRENT,j) > iClose(Symbol(),PERIOD_CURRENT,j-1)  && iLow(Symbol(),PERIOD_CURRENT,j) < iOpen(Symbol(),PERIOD_CURRENT,j-1))
            {
             tp_date_time_sell = 0.0;
             tp_date_time_buy  = 0.0;
@@ -539,7 +545,7 @@ void Entry_Action_1_up(int Store_bos_last_index, int i,int diff)
 
       if(checkCandle(j) == "Bullish" && checkCandle(j-1) == "Bullish")
         {
-         if(iHigh(Symbol(),PERIOD_CURRENT,j) > iOpen(Symbol(),PERIOD_CURRENT,j-1)  && iLow(Symbol(),PERIOD_CURRENT,j) < iClose(Symbol(),PERIOD_CURRENT,j-1))
+         if(iHigh(Symbol(),PERIOD_CURRENT,j) > iClose(Symbol(),PERIOD_CURRENT,j-1)  && iLow(Symbol(),PERIOD_CURRENT,j) < iOpen(Symbol(),PERIOD_CURRENT,j-1))
            {
             tp_date_time_sell = 0.0;
             Print("Target line deleted due to in bar ");
@@ -627,7 +633,7 @@ void Entry_Action_2_up(int Store_bos_last_index, int i,int diff)
 
       if(checkCandle(j) == "Bullish" && checkCandle(j-1) == "Bullish")
         {
-         if(iHigh(Symbol(),PERIOD_CURRENT,j) > iOpen(Symbol(),PERIOD_CURRENT,j-1)  && iLow(Symbol(),PERIOD_CURRENT,j) < iClose(Symbol(),PERIOD_CURRENT,j-1))
+         if(iHigh(Symbol(),PERIOD_CURRENT,j) > iClose(Symbol(),PERIOD_CURRENT,j-1)  && iLow(Symbol(),PERIOD_CURRENT,j) < iOpen(Symbol(),PERIOD_CURRENT,j-1))
            {
             tp_date_time_sell = 0.0;
             Print("Target line deleted due to in bar ");
@@ -645,10 +651,13 @@ void Entry_Action_2_up(int Store_bos_last_index, int i,int diff)
         }
      }
 
-   if(addtional_condition == true)
+   if(check_values_less_than_choch_low(ind,i) == true && addtional_condition == true)
      {
-      signal = "sell";
-      time_of_candle = iTime(Symbol(),PERIOD_CURRENT,i);
+      if(iOpen(Symbol(),PERIOD_CURRENT,ind) < iOpen(Symbol(),PERIOD_CURRENT,i) && iClose(Symbol(),PERIOD_CURRENT,ind) > iClose(Symbol(),PERIOD_CURRENT,i))
+        {
+         signal = "sell";
+         time_of_candle = iTime(Symbol(),PERIOD_CURRENT,i);
+        }
      }