Kaynağa Gözat

Doji candle bug fixed

WajeehSaqib-MQL 2 yıl önce
ebeveyn
işleme
a0c8b1226d
2 değiştirilmiş dosya ile 14 ekleme ve 10 silme
  1. BIN
      BOS_CHOCH.ex5
  2. 14 10
      BOS_CHOCH.mq5

BIN
BOS_CHOCH.ex5


+ 14 - 10
BOS_CHOCH.mq5

@@ -312,7 +312,7 @@ void Entry_Action_1_down(int Store_bos_last_index, int i,int diff)
    for(int j=Store_bos_last_index-1; j>i+1; j--)
      {
       // Print("Store_bos_last_index ",Store_bos_last_index," chock index is ",i);
-      if(checkCandle(j) == "Bearish" && checkCandle(j-1) == "Bearish")
+      if(checkCandle(j) == "Bearish" && (checkCandle(j-1) == "Bearish" || checkCandle(j-1) == "Doji"))
         {
          if(iHigh(Symbol(),PERIOD_CURRENT,j) > iOpen(Symbol(),PERIOD_CURRENT,j-1)  && iLow(Symbol(),PERIOD_CURRENT,j) < iClose(Symbol(),PERIOD_CURRENT,j-1))
            {
@@ -332,7 +332,7 @@ void Entry_Action_1_down(int Store_bos_last_index, int i,int diff)
            }
         }
 
-      if(checkCandle(j) == "Bullish" && checkCandle(j-1) == "Bullish")
+      if(checkCandle(j) == "Bullish" && (checkCandle(j-1) == "Bullish" || checkCandle(j-1) == "Doji"))
         {
          if(iHigh(Symbol(),PERIOD_CURRENT,j) > iClose(Symbol(),PERIOD_CURRENT,j-1)  && iLow(Symbol(),PERIOD_CURRENT,j) < iOpen(Symbol(),PERIOD_CURRENT,j-1))
            {
@@ -401,7 +401,7 @@ void Entry_Action_2_down(int Store_bos_last_index, int i,int diff)
    bool addtional_condition = true;
    for(int j=Store_bos_last_index-1; j>i+1; j--)
      {
-      if(checkCandle(j) == "Bearish" && checkCandle(j-1) == "Bearish")
+      if(checkCandle(j) == "Bearish" && (checkCandle(j-1) == "Bearish" || checkCandle(j-1) == "Doji"))
         {
          if(iHigh(Symbol(),PERIOD_CURRENT,j) > iOpen(Symbol(),PERIOD_CURRENT,j-1)  && iLow(Symbol(),PERIOD_CURRENT,j) < iClose(Symbol(),PERIOD_CURRENT,j-1))
            {
@@ -419,7 +419,7 @@ void Entry_Action_2_down(int Store_bos_last_index, int i,int diff)
             addtional_condition = false;
            }
         }
-      if(checkCandle(j) == "Bullish" && checkCandle(j-1) == "Bullish")
+      if(checkCandle(j) == "Bullish" && (checkCandle(j-1) == "Bullish" || checkCandle(j-1) == "Doji"))
         {
          if(iHigh(Symbol(),PERIOD_CURRENT,j) > iClose(Symbol(),PERIOD_CURRENT,j-1)  && iLow(Symbol(),PERIOD_CURRENT,j) < iOpen(Symbol(),PERIOD_CURRENT,j-1))
            {
@@ -477,7 +477,7 @@ void Check_Inside_bar(int inex)
 
    for(int j=inex+1; j>=1; j--)
      {
-      if(checkCandle(j) == "Bearish" && checkCandle(j-1) == "Bearish")
+      if(checkCandle(j) == "Bearish" && (checkCandle(j-1) == "Bearish" || checkCandle(j-1) == "Doji"))
         {
          if(iHigh(Symbol(),PERIOD_CURRENT,j) > iOpen(Symbol(),PERIOD_CURRENT,j-1)  && iLow(Symbol(),PERIOD_CURRENT,j) < iClose(Symbol(),PERIOD_CURRENT,j-1))
            {
@@ -497,7 +497,7 @@ void Check_Inside_bar(int inex)
            }
         }
 
-      if(checkCandle(j) == "Bullish" && checkCandle(j-1) == "Bullish")
+      if(checkCandle(j) == "Bullish" && (checkCandle(j-1) == "Bullish" || checkCandle(j-1) == "Doji"))
         {
          if(iHigh(Symbol(),PERIOD_CURRENT,j) > iClose(Symbol(),PERIOD_CURRENT,j-1)  && iLow(Symbol(),PERIOD_CURRENT,j) < iOpen(Symbol(),PERIOD_CURRENT,j-1))
            {
@@ -531,7 +531,7 @@ void Entry_Action_1_up(int Store_bos_last_index, int i,int diff)
 
    for(int j=Store_bos_last_index-1; j>i+1; j--)
      {
-      if(checkCandle(j) == "Bearish" && checkCandle(j-1) == "Bearish")
+      if(checkCandle(j) == "Bearish" && (checkCandle(j-1) == "Bearish" || checkCandle(j-1) == "Doji"))
         {
          if(iHigh(Symbol(),PERIOD_CURRENT,j) > iOpen(Symbol(),PERIOD_CURRENT,j-1)  && iLow(Symbol(),PERIOD_CURRENT,j) < iClose(Symbol(),PERIOD_CURRENT,j-1))
            {
@@ -550,7 +550,7 @@ void Entry_Action_1_up(int Store_bos_last_index, int i,int diff)
            }
         }
 
-      if(checkCandle(j) == "Bullish" && checkCandle(j-1) == "Bullish")
+      if(checkCandle(j) == "Bullish" && (checkCandle(j-1) == "Bullish" || checkCandle(j-1) == "Doji"))
         {
          if(iHigh(Symbol(),PERIOD_CURRENT,j) > iClose(Symbol(),PERIOD_CURRENT,j-1)  && iLow(Symbol(),PERIOD_CURRENT,j) < iOpen(Symbol(),PERIOD_CURRENT,j-1))
            {
@@ -619,7 +619,7 @@ void Entry_Action_2_up(int Store_bos_last_index, int i,int diff)
    bool addtional_condition = true;
    for(int j=Store_bos_last_index-1; j>i+1; j--)
      {
-      if(checkCandle(j) == "Bearish" && checkCandle(j-1) == "Bearish")
+      if(checkCandle(j) == "Bearish" && (checkCandle(j-1) == "Bearish" || checkCandle(j-1) == "Doji"))
         {
          if(iHigh(Symbol(),PERIOD_CURRENT,j) > iOpen(Symbol(),PERIOD_CURRENT,j-1)  && iLow(Symbol(),PERIOD_CURRENT,j) < iClose(Symbol(),PERIOD_CURRENT,j-1))
            {
@@ -638,7 +638,7 @@ void Entry_Action_2_up(int Store_bos_last_index, int i,int diff)
            }
         }
 
-      if(checkCandle(j) == "Bullish" && checkCandle(j-1) == "Bullish")
+      if(checkCandle(j) == "Bullish" && (checkCandle(j-1) == "Bullish" || checkCandle(j-1) == "Doji"))
         {
          if(iHigh(Symbol(),PERIOD_CURRENT,j) > iClose(Symbol(),PERIOD_CURRENT,j-1)  && iLow(Symbol(),PERIOD_CURRENT,j) < iOpen(Symbol(),PERIOD_CURRENT,j-1))
            {
@@ -2127,6 +2127,10 @@ string checkCandle(int v)  // to check the candle is bullish or bearish
         {
          return "Bearish";
         }
+      else
+        {
+         return "Doji";
+        }
    return "empty";
   }
 //+------------------------------------------------------------------+