Просмотр исходного кода

ticket # 1585

Issues in inside bar function is resolved.
AhtashamShahzad3 лет назад: 2
Родитель
Сommit
40a2203e29
2 измененных файлов с 62 добавлено и 9 удалено
  1. BIN
      BOS_CHOCH.ex5
  2. 62 9
      BOS_CHOCH.mq5

+ 62 - 9
BOS_CHOCH.mq5

@@ -85,6 +85,7 @@ datetime high_index_time;
85 85
 datetime low_index_time;
86 86
 datetime tp_date_time_buy;
87 87
 datetime tp_date_time_sell;
88
+datetime Last_bos_before_reversal;
88 89
 
89 90
 
90 91
 double hi;
@@ -310,7 +311,8 @@ void Entry_Action_1_down(int Store_bos_last_index, int i,int diff)
310 311
         {
311 312
          if(iHigh(Symbol(),PERIOD_CURRENT,j) > iOpen(Symbol(),PERIOD_CURRENT,j-1)  && iLow(Symbol(),PERIOD_CURRENT,j) < iClose(Symbol(),PERIOD_CURRENT,j-1))
312 313
            {
313
-            
314
+            tp_date_time_buy = 0.0;
315
+
314 316
             Print("target lines deleted due to in bar");
315 317
             if(object_find("target line") > 0)
316 318
               {
@@ -329,7 +331,7 @@ void Entry_Action_1_down(int Store_bos_last_index, int i,int diff)
329 331
         {
330 332
          if(iHigh(Symbol(),PERIOD_CURRENT,j) > iOpen(Symbol(),PERIOD_CURRENT,j-1)  && iLow(Symbol(),PERIOD_CURRENT,j) < iClose(Symbol(),PERIOD_CURRENT,j-1))
331 333
            {
332
-            
334
+            tp_date_time_buy = 0.0;
333 335
             Print("target lines deleted due to in bar");
334 336
             if(object_find("target line") > 0)
335 337
               {
@@ -398,7 +400,7 @@ void Entry_Action_2_down(int Store_bos_last_index, int i,int diff)
398 400
         {
399 401
          if(iHigh(Symbol(),PERIOD_CURRENT,j) > iOpen(Symbol(),PERIOD_CURRENT,j-1)  && iLow(Symbol(),PERIOD_CURRENT,j) < iClose(Symbol(),PERIOD_CURRENT,j-1))
400 402
            {
401
-            
403
+            tp_date_time_buy = 0.0;
402 404
             Print("target lines deleted due to in bar");
403 405
             if(object_find("target line") > 0)
404 406
               {
@@ -416,7 +418,7 @@ void Entry_Action_2_down(int Store_bos_last_index, int i,int diff)
416 418
         {
417 419
          if(iHigh(Symbol(),PERIOD_CURRENT,j) > iOpen(Symbol(),PERIOD_CURRENT,j-1)  && iLow(Symbol(),PERIOD_CURRENT,j) < iClose(Symbol(),PERIOD_CURRENT,j-1))
418 420
            {
419
-            
421
+            tp_date_time_buy = 0.0;
420 422
             Print("target lines deleted due to in bar");
421 423
             if(object_find("target line") > 0)
422 424
               {
@@ -459,6 +461,53 @@ void Entry_Action_2_down(int Store_bos_last_index, int i,int diff)
459 461
 //+------------------------------------------------------------------+
460 462
 //|                                                                  |
461 463
 //+------------------------------------------------------------------+
464
+void Check_Inside_bar(int inex)
465
+  {
466
+
467
+   for(int j=inex+1; j>=1; j--)
468
+     {
469
+      if(checkCandle(j) == "Bearish" && checkCandle(j-1) == "Bearish")
470
+        {
471
+         if(iHigh(Symbol(),PERIOD_CURRENT,j) > iOpen(Symbol(),PERIOD_CURRENT,j-1)  && iLow(Symbol(),PERIOD_CURRENT,j) < iClose(Symbol(),PERIOD_CURRENT,j-1))
472
+           {
473
+            tp_date_time_sell = 0.0;
474
+            tp_date_time_buy  = 0.0;
475
+            Print("Target line deleted due to in bar ");
476
+            if(object_find("target line") > 0)
477
+              {
478
+               ObjectDelete(0,"target line");
479
+              }
480
+
481
+            if(object_find("target line1") > 0)
482
+              {
483
+               ObjectDelete(0,"target line1");
484
+              }
485
+           }
486
+        }
487
+
488
+      if(checkCandle(j) == "Bullish" && checkCandle(j-1) == "Bullish")
489
+        {
490
+         if(iHigh(Symbol(),PERIOD_CURRENT,j) > iOpen(Symbol(),PERIOD_CURRENT,j-1)  && iLow(Symbol(),PERIOD_CURRENT,j) < iClose(Symbol(),PERIOD_CURRENT,j-1))
491
+           {
492
+            tp_date_time_sell = 0.0;
493
+            tp_date_time_buy  = 0.0;
494
+            Print("Target line deleted due to in bar ");
495
+            if(object_find("target line") > 0)
496
+              {
497
+               ObjectDelete(0,"target line");
498
+              }
499
+
500
+            if(object_find("target line1") > 0)
501
+              {
502
+               ObjectDelete(0,"target line1");
503
+              }
504
+           }
505
+        }
506
+     }
507
+  }
508
+//+------------------------------------------------------------------+
509
+//|                                                                  |
510
+//+------------------------------------------------------------------+
462 511
 void Entry_Action_1_up(int Store_bos_last_index, int i,int diff)
463 512
   {
464 513
 
@@ -473,6 +522,7 @@ void Entry_Action_1_up(int Store_bos_last_index, int i,int diff)
473 522
         {
474 523
          if(iHigh(Symbol(),PERIOD_CURRENT,j) > iOpen(Symbol(),PERIOD_CURRENT,j-1)  && iLow(Symbol(),PERIOD_CURRENT,j) < iClose(Symbol(),PERIOD_CURRENT,j-1))
475 524
            {
525
+            tp_date_time_sell = 0.0;
476 526
             Print("Target line deleted due to in bar ");
477 527
             if(object_find("target line") > 0)
478 528
               {
@@ -491,6 +541,7 @@ void Entry_Action_1_up(int Store_bos_last_index, int i,int diff)
491 541
         {
492 542
          if(iHigh(Symbol(),PERIOD_CURRENT,j) > iOpen(Symbol(),PERIOD_CURRENT,j-1)  && iLow(Symbol(),PERIOD_CURRENT,j) < iClose(Symbol(),PERIOD_CURRENT,j-1))
493 543
            {
544
+            tp_date_time_sell = 0.0;
494 545
             Print("Target line deleted due to in bar ");
495 546
             if(object_find("target line") > 0)
496 547
               {
@@ -559,6 +610,7 @@ void Entry_Action_2_up(int Store_bos_last_index, int i,int diff)
559 610
         {
560 611
          if(iHigh(Symbol(),PERIOD_CURRENT,j) > iOpen(Symbol(),PERIOD_CURRENT,j-1)  && iLow(Symbol(),PERIOD_CURRENT,j) < iClose(Symbol(),PERIOD_CURRENT,j-1))
561 612
            {
613
+            tp_date_time_sell = 0.0;
562 614
             Print("Target line deleted due to in bar ");
563 615
             if(object_find("target line") > 0)
564 616
               {
@@ -577,6 +629,7 @@ void Entry_Action_2_up(int Store_bos_last_index, int i,int diff)
577 629
         {
578 630
          if(iHigh(Symbol(),PERIOD_CURRENT,j) > iOpen(Symbol(),PERIOD_CURRENT,j-1)  && iLow(Symbol(),PERIOD_CURRENT,j) < iClose(Symbol(),PERIOD_CURRENT,j-1))
579 631
            {
632
+            tp_date_time_sell = 0.0;
580 633
             Print("Target line deleted due to in bar ");
581 634
             if(object_find("target line") > 0)
582 635
               {
@@ -1834,7 +1887,7 @@ void OnTick()
1834 1887
 
1835 1888
                if(od_1[m].EntryCon == 2  && od_1[m].Signal == "buy")
1836 1889
                  {
1837
-                  if(trend == "uptrend" )
1890
+                  if(trend == "uptrend")
1838 1891
                     {
1839 1892
                      double ib =iBarShift(Symbol(), PERIOD_CURRENT,tp_date_time_buy,false);
1840 1893
                      for(int p=ib-2; p >= 1; p--)
@@ -1861,7 +1914,7 @@ void OnTick()
1861 1914
 
1862 1915
                   int reversal_indexx = iBarShift(Symbol(), PERIOD_CURRENT,od_1[m].reversal_index_date_time,false);
1863 1916
                   int close_index = iBarShift(Symbol(), PERIOD_CURRENT,od_1[m].choch_index_date_time,false);
1864
-
1917
+                  Check_Inside_bar(reversal_indexx);
1865 1918
                   bool snd_con = false;
1866 1919
                   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);
1867 1920
 
@@ -1911,10 +1964,10 @@ void OnTick()
1911 1964
 
1912 1965
                if(od_1[m].EntryCon == 2 && od_1[m].Signal == "sell")
1913 1966
                  {
1914
-                 // Print("hi ----- entry condition 2 trend lines in sell case downtrend "," tp_date_time_sell",tp_date_time_sell);
1967
+                  // Print("hi ----- entry condition 2 trend lines in sell case downtrend "," tp_date_time_sell",tp_date_time_sell);
1915 1968
                   if(trend == "downtrend")
1916 1969
                     {
1917
-                   //  Print("there ----- entry condition 2 trend lines in sell case downtrend "," tp_date_time_sell",tp_date_time_sell);
1970
+                     //  Print("there ----- entry condition 2 trend lines in sell case downtrend "," tp_date_time_sell",tp_date_time_sell);
1918 1971
                      double ib =iBarShift(Symbol(), PERIOD_CURRENT,tp_date_time_sell,false);
1919 1972
                      for(int p=ib-2; p >= 1; p--)
1920 1973
                        {
@@ -1942,7 +1995,7 @@ void OnTick()
1942 1995
 
1943 1996
                   int reversal_indexx = iBarShift(Symbol(), PERIOD_CURRENT,od_1[m].reversal_index_date_time,false);
1944 1997
                   int close_index = iBarShift(Symbol(), PERIOD_CURRENT,od_1[m].choch_index_date_time,false);
1945
-
1998
+                  Check_Inside_bar(reversal_indexx);
1946 1999
                   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);
1947 2000
                   bool snd_con1 = false;
1948 2001