Переглянути джерело

ticket # 1585

Issues in inside bar function is resolved.
AhtashamShahzad3 2 роки тому
батько
коміт
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
 datetime low_index_time;
85
 datetime low_index_time;
86
 datetime tp_date_time_buy;
86
 datetime tp_date_time_buy;
87
 datetime tp_date_time_sell;
87
 datetime tp_date_time_sell;
88
+datetime Last_bos_before_reversal;
88
 
89
 
89
 
90
 
90
 double hi;
91
 double hi;
@@ -310,7 +311,8 @@ void Entry_Action_1_down(int Store_bos_last_index, int i,int diff)
310
         {
311
         {
311
          if(iHigh(Symbol(),PERIOD_CURRENT,j) > iOpen(Symbol(),PERIOD_CURRENT,j-1)  && iLow(Symbol(),PERIOD_CURRENT,j) < iClose(Symbol(),PERIOD_CURRENT,j-1))
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
             Print("target lines deleted due to in bar");
316
             Print("target lines deleted due to in bar");
315
             if(object_find("target line") > 0)
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
          if(iHigh(Symbol(),PERIOD_CURRENT,j) > iOpen(Symbol(),PERIOD_CURRENT,j-1)  && iLow(Symbol(),PERIOD_CURRENT,j) < iClose(Symbol(),PERIOD_CURRENT,j-1))
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
             Print("target lines deleted due to in bar");
335
             Print("target lines deleted due to in bar");
334
             if(object_find("target line") > 0)
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
          if(iHigh(Symbol(),PERIOD_CURRENT,j) > iOpen(Symbol(),PERIOD_CURRENT,j-1)  && iLow(Symbol(),PERIOD_CURRENT,j) < iClose(Symbol(),PERIOD_CURRENT,j-1))
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
             Print("target lines deleted due to in bar");
404
             Print("target lines deleted due to in bar");
403
             if(object_find("target line") > 0)
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
          if(iHigh(Symbol(),PERIOD_CURRENT,j) > iOpen(Symbol(),PERIOD_CURRENT,j-1)  && iLow(Symbol(),PERIOD_CURRENT,j) < iClose(Symbol(),PERIOD_CURRENT,j-1))
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
             Print("target lines deleted due to in bar");
422
             Print("target lines deleted due to in bar");
421
             if(object_find("target line") > 0)
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
 void Entry_Action_1_up(int Store_bos_last_index, int i,int diff)
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
          if(iHigh(Symbol(),PERIOD_CURRENT,j) > iOpen(Symbol(),PERIOD_CURRENT,j-1)  && iLow(Symbol(),PERIOD_CURRENT,j) < iClose(Symbol(),PERIOD_CURRENT,j-1))
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
             Print("Target line deleted due to in bar ");
526
             Print("Target line deleted due to in bar ");
477
             if(object_find("target line") > 0)
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
          if(iHigh(Symbol(),PERIOD_CURRENT,j) > iOpen(Symbol(),PERIOD_CURRENT,j-1)  && iLow(Symbol(),PERIOD_CURRENT,j) < iClose(Symbol(),PERIOD_CURRENT,j-1))
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
             Print("Target line deleted due to in bar ");
545
             Print("Target line deleted due to in bar ");
495
             if(object_find("target line") > 0)
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
          if(iHigh(Symbol(),PERIOD_CURRENT,j) > iOpen(Symbol(),PERIOD_CURRENT,j-1)  && iLow(Symbol(),PERIOD_CURRENT,j) < iClose(Symbol(),PERIOD_CURRENT,j-1))
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
             Print("Target line deleted due to in bar ");
614
             Print("Target line deleted due to in bar ");
563
             if(object_find("target line") > 0)
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
          if(iHigh(Symbol(),PERIOD_CURRENT,j) > iOpen(Symbol(),PERIOD_CURRENT,j-1)  && iLow(Symbol(),PERIOD_CURRENT,j) < iClose(Symbol(),PERIOD_CURRENT,j-1))
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
             Print("Target line deleted due to in bar ");
633
             Print("Target line deleted due to in bar ");
581
             if(object_find("target line") > 0)
634
             if(object_find("target line") > 0)
582
               {
635
               {
@@ -1834,7 +1887,7 @@ void OnTick()
1834
 
1887
 
1835
                if(od_1[m].EntryCon == 2  && od_1[m].Signal == "buy")
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
                      double ib =iBarShift(Symbol(), PERIOD_CURRENT,tp_date_time_buy,false);
1892
                      double ib =iBarShift(Symbol(), PERIOD_CURRENT,tp_date_time_buy,false);
1840
                      for(int p=ib-2; p >= 1; p--)
1893
                      for(int p=ib-2; p >= 1; p--)
@@ -1861,7 +1914,7 @@ void OnTick()
1861
 
1914
 
1862
                   int reversal_indexx = iBarShift(Symbol(), PERIOD_CURRENT,od_1[m].reversal_index_date_time,false);
1915
                   int reversal_indexx = iBarShift(Symbol(), PERIOD_CURRENT,od_1[m].reversal_index_date_time,false);
1863
                   int close_index = iBarShift(Symbol(), PERIOD_CURRENT,od_1[m].choch_index_date_time,false);
1916
                   int close_index = iBarShift(Symbol(), PERIOD_CURRENT,od_1[m].choch_index_date_time,false);
1864
-
1917
+                  Check_Inside_bar(reversal_indexx);
1865
                   bool snd_con = false;
1918
                   bool snd_con = false;
1866
                   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);
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
                if(od_1[m].EntryCon == 2 && od_1[m].Signal == "sell")
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
                   if(trend == "downtrend")
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
                      double ib =iBarShift(Symbol(), PERIOD_CURRENT,tp_date_time_sell,false);
1971
                      double ib =iBarShift(Symbol(), PERIOD_CURRENT,tp_date_time_sell,false);
1919
                      for(int p=ib-2; p >= 1; p--)
1972
                      for(int p=ib-2; p >= 1; p--)
1920
                        {
1973
                        {
@@ -1942,7 +1995,7 @@ void OnTick()
1942
 
1995
 
1943
                   int reversal_indexx = iBarShift(Symbol(), PERIOD_CURRENT,od_1[m].reversal_index_date_time,false);
1996
                   int reversal_indexx = iBarShift(Symbol(), PERIOD_CURRENT,od_1[m].reversal_index_date_time,false);
1944
                   int close_index = iBarShift(Symbol(), PERIOD_CURRENT,od_1[m].choch_index_date_time,false);
1997
                   int close_index = iBarShift(Symbol(), PERIOD_CURRENT,od_1[m].choch_index_date_time,false);
1945
-
1998
+                  Check_Inside_bar(reversal_indexx);
1946
                   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);
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
                   bool snd_con1 = false;
2000
                   bool snd_con1 = false;
1948
 
2001