ソースを参照

ticket # 1753

AhtashamShahzad3 2 年 前
コミット
83862df959
2 ファイル変更88 行追加0 行削除
  1. BIN
      BOS_CHOCH.ex5
  2. 88 0
      BOS_CHOCH.mq5

BIN
BOS_CHOCH.ex5


+ 88 - 0
BOS_CHOCH.mq5

@@ -474,9 +474,11 @@ void Entry_Action_2_down(int Store_bos_last_index, int i,int diff)
 //+------------------------------------------------------------------+
 void Check_Inside_bar(int inex)
   {
+// Print("-----------------------------------------------------------------------------------------------------------------------------------");
 
    for(int j=inex+1; j>=1; j--)
      {
+      // Print(" i am checking inside bar ");
       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))
@@ -501,6 +503,7 @@ void Check_Inside_bar(int inex)
         {
          if(iHigh(Symbol(),PERIOD_CURRENT,j) > iClose(Symbol(),PERIOD_CURRENT,j-1)  && iLow(Symbol(),PERIOD_CURRENT,j) < iOpen(Symbol(),PERIOD_CURRENT,j-1))
            {
+            //  Print("j index is",j," j-1 index is ",j-1);
             tp_date_time_sell = 0.0;
             tp_date_time_buy  = 0.0;
             //   Print("Target line deleted due to in bar ");
@@ -1808,6 +1811,46 @@ void OnTick()
                   int reversal_indexx = iBarShift(Symbol(), PERIOD_CURRENT,od_1[m].reversal_index_date_time,false);
                   int close_index = iBarShift(Symbol(), PERIOD_CURRENT,od_1[m].choch_index_date_time,false);
 
+                  if(checkCandle(close_index) == "Bearish" && (checkCandle(close_index-1) == "Bearish" || checkCandle(close_index-1) == "Doji"))
+                    {
+                     if(iHigh(Symbol(),PERIOD_CURRENT,close_index) > iOpen(Symbol(),PERIOD_CURRENT,close_index-1)  && iLow(Symbol(),PERIOD_CURRENT,close_index) < iClose(Symbol(),PERIOD_CURRENT,close_index-1))
+                       {
+                        tp_date_time_sell = 0.0;
+                        tp_date_time_buy  = 0.0;
+                        //  Print("Target line deleted due to in bar ");
+                        if(object_find("target line") > 0)
+                          {
+                           Print("Target line deleted due to in bar ");
+                           ObjectDelete(0,"target line");
+                          }
+
+                        if(object_find("target line1") > 0)
+                          {
+                           ObjectDelete(0,"target line1");
+                          }
+                       }
+                    }
+
+                  if(checkCandle(close_index) == "Bullish" && (checkCandle(close_index-1) == "Bullish" || checkCandle(close_index-1) == "Doji"))
+                    {
+                     if(iHigh(Symbol(),PERIOD_CURRENT,close_index) > iClose(Symbol(),PERIOD_CURRENT,close_index-1)  && iLow(Symbol(),PERIOD_CURRENT,close_index) < iOpen(Symbol(),PERIOD_CURRENT,close_index-1))
+                       {
+                        //  Print("j index is",j," j-1 index is ",j-1);
+                        tp_date_time_sell = 0.0;
+                        tp_date_time_buy  = 0.0;
+                        //   Print("Target line deleted due to in bar ");
+                        if(object_find("target line") > 0)
+                          {
+                           Print("Target line deleted due to in bar ");
+                           ObjectDelete(0,"target line");
+                          }
+
+                        if(object_find("target line1") > 0)
+                          {
+                           ObjectDelete(0,"target line1");
+                          }
+                       }
+                    }
 
                   double reversalMax = iOpen(Symbol(),PERIOD_CURRENT,reversal_indexx) <  iClose(Symbol(),PERIOD_CURRENT,reversal_indexx) ?  iClose(Symbol(),PERIOD_CURRENT,reversal_indexx) : iOpen(Symbol(),PERIOD_CURRENT,reversal_indexx);
                   // bool snd_con = false;
@@ -1856,6 +1899,47 @@ void OnTick()
                   int reversal_indexx = iBarShift(Symbol(), PERIOD_CURRENT,od_1[m].reversal_index_date_time,false);
                   int close_index = iBarShift(Symbol(), PERIOD_CURRENT,od_1[m].choch_index_date_time,false);
 
+                  if(checkCandle(close_index) == "Bearish" && (checkCandle(close_index-1) == "Bearish" || checkCandle(close_index-1) == "Doji"))
+                    {
+                     if(iHigh(Symbol(),PERIOD_CURRENT,close_index) > iOpen(Symbol(),PERIOD_CURRENT,close_index-1)  && iLow(Symbol(),PERIOD_CURRENT,close_index) < iClose(Symbol(),PERIOD_CURRENT,close_index-1))
+                       {
+                        tp_date_time_sell = 0.0;
+                        tp_date_time_buy  = 0.0;
+                        //  Print("Target line deleted due to in bar ");
+                        if(object_find("target line") > 0)
+                          {
+                           Print("Target line deleted due to in bar ");
+                           ObjectDelete(0,"target line");
+                          }
+
+                        if(object_find("target line1") > 0)
+                          {
+                           ObjectDelete(0,"target line1");
+                          }
+                       }
+                    }
+
+                  if(checkCandle(close_index) == "Bullish" && (checkCandle(close_index-1) == "Bullish" || checkCandle(close_index-1) == "Doji"))
+                    {
+                     if(iHigh(Symbol(),PERIOD_CURRENT,close_index) > iClose(Symbol(),PERIOD_CURRENT,close_index-1)  && iLow(Symbol(),PERIOD_CURRENT,close_index) < iOpen(Symbol(),PERIOD_CURRENT,close_index-1))
+                       {
+                        //  Print("j index is",j," j-1 index is ",j-1);
+                        tp_date_time_sell = 0.0;
+                        tp_date_time_buy  = 0.0;
+                        //   Print("Target line deleted due to in bar ");
+                        if(object_find("target line") > 0)
+                          {
+                           Print("Target line deleted due to in bar ");
+                           ObjectDelete(0,"target line");
+                          }
+
+                        if(object_find("target line1") > 0)
+                          {
+                           ObjectDelete(0,"target line1");
+                          }
+                       }
+                    }
+
 
                   double reversalMin = iOpen(Symbol(),PERIOD_CURRENT,reversal_indexx) >  iClose(Symbol(),PERIOD_CURRENT,reversal_indexx) ?  iClose(Symbol(),PERIOD_CURRENT,reversal_indexx) : iOpen(Symbol(),PERIOD_CURRENT,reversal_indexx);
                   //               double reversalMin = iOpen(Symbol(),PERIOD_CURRENT,reversal_indexx) >  iClose(Symbol(),PERIOD_CURRENT,reversal_indexx) ?  iClose(Symbol(),PERIOD_CURRENT,reversal_indexx) : iOpen(Symbol(),PERIOD_CURRENT,reversal_indexx);
@@ -1910,6 +1994,8 @@ void OnTick()
 
             if(indexOfTradePlace > 2)
               {
+               int close_index1 = iBarShift(Symbol(), PERIOD_CURRENT,od_1[m].choch_index_date_time,false);
+               Check_Inside_bar(close_index1);
 
                // second condition match
 
@@ -1942,6 +2028,7 @@ void OnTick()
 
                   int reversal_indexx = iBarShift(Symbol(), PERIOD_CURRENT,od_1[m].reversal_index_date_time,false);
                   int close_index = iBarShift(Symbol(), PERIOD_CURRENT,od_1[m].choch_index_date_time,false);
+                  //Print("Reversal Index time is ",od_1[m].reversal_index_date_time," and chock tine is ",od_1[m].choch_index_date_time);
                   Check_Inside_bar(reversal_indexx);
                   bool snd_con = false;
                   double reversalMax = iOpen(Symbol(),PERIOD_CURRENT,reversal_indexx) <  iClose(Symbol(),PERIOD_CURRENT,reversal_indexx) ?  iClose(Symbol(),PERIOD_CURRENT,reversal_indexx) : iOpen(Symbol(),PERIOD_CURRENT,reversal_indexx);
@@ -2023,6 +2110,7 @@ void OnTick()
 
                   int reversal_indexx = iBarShift(Symbol(), PERIOD_CURRENT,od_1[m].reversal_index_date_time,false);
                   int close_index = iBarShift(Symbol(), PERIOD_CURRENT,od_1[m].choch_index_date_time,false);
+                  //Print("Reversal Index time is ",od_1[m].reversal_index_date_time," and chock tine is ",od_1[m].choch_index_date_time);
                   Check_Inside_bar(reversal_indexx);
                   double reversalMin = iOpen(Symbol(),PERIOD_CURRENT,reversal_indexx) >  iClose(Symbol(),PERIOD_CURRENT,reversal_indexx) ?  iClose(Symbol(),PERIOD_CURRENT,reversal_indexx) : iOpen(Symbol(),PERIOD_CURRENT,reversal_indexx);
                   bool snd_con1 = false;