Ver código fonte

Ticket # 1585

AhtashamShahzad3 2 anos atrás
pai
commit
dd050e2b5f
2 arquivos alterados com 257 adições e 344 exclusões
  1. BIN
      BOS_CHOCH.ex5
  2. 257 344
      BOS_CHOCH.mq5

BIN
BOS_CHOCH.ex5


+ 257 - 344
BOS_CHOCH.mq5

@@ -299,16 +299,33 @@ void Entry_Action_1_down(int Store_bos_last_index, int i,int diff)
299 299
   {
300 300
 
301 301
 
302
-
303
-//Print("bullish found at index ",j);
304
-
305 302
    ind = Store_bos_last_index +1;     // reversal candle index
306 303
    reversal_bar_time = iTime(Symbol(),PERIOD_CURRENT,ind);
304
+   bool addtional_condition = false;
305
+
306
+   for(int j=Store_bos_last_index-1; j>i+2; j--)
307
+     {
308
+      if(checkCandle(j) == "Bearish" && checkCandle(j-1) == "Bearish")
309
+        {
310
+         if(iHigh(Symbol(),PERIOD_CURRENT,j) > iOpen(Symbol(),PERIOD_CURRENT,j-1)  && iLow(Symbol(),PERIOD_CURRENT,j) < iClose(Symbol(),PERIOD_CURRENT,j-1))
311
+           {
312
+            addtional_condition = true;
313
+           }
314
+        }
315
+
316
+      if(checkCandle(j) == "Bullish" && checkCandle(j-1) == "Bullish")
317
+        {
318
+         if(iHigh(Symbol(),PERIOD_CURRENT,j) > iOpen(Symbol(),PERIOD_CURRENT,j-1)  && iLow(Symbol(),PERIOD_CURRENT,j) < iClose(Symbol(),PERIOD_CURRENT,j-1))
319
+           {
320
+            addtional_condition = true;
321
+           }
322
+        }
323
+     }
307 324
 
308 325
 
309 326
    Print("condition satisfied in downtrend buy trade :  ",check_values_less_than_choch_high(ind,i));
310 327
 
311
-   if(check_values_less_than_choch_high(ind,i) == true)
328
+   if(check_values_less_than_choch_high(ind,i) == true && addtional_condition == false)
312 329
      {
313 330
       if(iOpen(Symbol(),PERIOD_CURRENT,ind) > iOpen(Symbol(),PERIOD_CURRENT,i) && iClose(Symbol(),PERIOD_CURRENT,ind) < iClose(Symbol(),PERIOD_CURRENT,i))
314 331
         {
@@ -358,9 +375,9 @@ void Entry_Action_2_down(int Store_bos_last_index, int i,int diff)
358 375
 
359 376
    Print("condition satisfied in downtrend buy trade :  ",check_values_less_than_choch_high1(ind,i));
360 377
 
361
-   if(check_values_less_than_choch_high(ind,i) == true)
378
+//if(check_values_less_than_choch_high(ind,i) == true)
362 379
      {
363
-      if(iOpen(Symbol(),PERIOD_CURRENT,ind) > iOpen(Symbol(),PERIOD_CURRENT,i) && iClose(Symbol(),PERIOD_CURRENT,ind) < iClose(Symbol(),PERIOD_CURRENT,i))
380
+      // if(iOpen(Symbol(),PERIOD_CURRENT,ind) > iOpen(Symbol(),PERIOD_CURRENT,i) && iClose(Symbol(),PERIOD_CURRENT,ind) < iClose(Symbol(),PERIOD_CURRENT,i))
364 381
         {
365 382
          signal = "buy";
366 383
          time_of_candle = iTime(Symbol(),PERIOD_CURRENT,i);
@@ -400,12 +417,31 @@ void Entry_Action_1_up(int Store_bos_last_index, int i,int diff)
400 417
    ind = Store_bos_last_index +1;     // reversal candle index
401 418
    reversal_bar_time = iTime(Symbol(),PERIOD_CURRENT,ind);
402 419
 
420
+   bool addtional_condition = false;
403 421
 
422
+   for(int j=Store_bos_last_index-1; j>i+2; j--)
423
+     {
424
+      if(checkCandle(j) == "Bearish" && checkCandle(j-1) == "Bearish")
425
+        {
426
+         if(iHigh(Symbol(),PERIOD_CURRENT,j) > iOpen(Symbol(),PERIOD_CURRENT,j-1)  && iLow(Symbol(),PERIOD_CURRENT,j) < iClose(Symbol(),PERIOD_CURRENT,j-1))
427
+           {
428
+            addtional_condition = true;
429
+           }
430
+        }
431
+
432
+      if(checkCandle(j) == "Bullish" && checkCandle(j-1) == "Bullish")
433
+        {
434
+         if(iHigh(Symbol(),PERIOD_CURRENT,j) > iOpen(Symbol(),PERIOD_CURRENT,j-1)  && iLow(Symbol(),PERIOD_CURRENT,j) < iClose(Symbol(),PERIOD_CURRENT,j-1))
435
+           {
436
+            addtional_condition = true;
437
+           }
438
+        }
439
+     }
404 440
 
405 441
 
406 442
    Print("condition satisfied in uptrend sell trade :  ",check_values_less_than_choch_low(ind,i));
407 443
 
408
-   if(check_values_less_than_choch_low(ind,i) == true)
444
+   if(check_values_less_than_choch_low(ind,i) == true && addtional_condition == false)
409 445
      {
410 446
       if(iOpen(Symbol(),PERIOD_CURRENT,ind) < iOpen(Symbol(),PERIOD_CURRENT,i) && iClose(Symbol(),PERIOD_CURRENT,ind) > iClose(Symbol(),PERIOD_CURRENT,i))
411 447
         {
@@ -454,9 +490,9 @@ void Entry_Action_2_up(int Store_bos_last_index, int i,int diff)
454 490
 
455 491
    Print("condition satisfied in uptrend sell trade :  ",check_values_less_than_choch_low(ind,i));
456 492
 
457
-   if(check_values_less_than_choch_low1(ind,i) == true)
493
+// if(check_values_less_than_choch_low1(ind,i) == true)
458 494
      {
459
-      if(iOpen(Symbol(),PERIOD_CURRENT,ind) < iOpen(Symbol(),PERIOD_CURRENT,i) && iClose(Symbol(),PERIOD_CURRENT,ind) > iClose(Symbol(),PERIOD_CURRENT,i))
495
+      //   if(iOpen(Symbol(),PERIOD_CURRENT,ind) < iOpen(Symbol(),PERIOD_CURRENT,i) && iClose(Symbol(),PERIOD_CURRENT,ind) > iClose(Symbol(),PERIOD_CURRENT,i))
460 496
         {
461 497
          signal = "sell";
462 498
          time_of_candle = iTime(Symbol(),PERIOD_CURRENT,i);
@@ -608,20 +644,12 @@ void choch(int i)
608 644
          HIGH = iHigh(Symbol(),PERIOD_CURRENT,chock_index);  // save high and low of the chock prev index to compare
609 645
          LOW  = iLow(Symbol(),PERIOD_CURRENT,chock_index);
610 646
 
611
-         Print("from where you start ",chock_index);
612
-
613 647
 
614 648
          if(object_find("target line") > 0)
615 649
            {
616 650
             ObjectDelete(0,"target line");
617 651
            }
618 652
 
619
-         //if(!ObjectCreate(0,"target line",OBJ_TREND,0,iTime(Symbol(),PERIOD_CURRENT,chock_index),iHigh(Symbol(),PERIOD_CURRENT,chock_index),iTime(Symbol(),PERIOD_CURRENT,0),iHigh(Symbol(),PERIOD_CURRENT,chock_index)));
620
-         //  {
621
-         //   Print("time at which error accur ",iTime(Symbol(),PERIOD_CURRENT,i));
622
-         //   Print("object error ",GetLastError());
623
-         //  }
624
-
625 653
          if(ObjectCreate(0,"target line",OBJ_TREND,0,iTime(Symbol(),PERIOD_CURRENT,chock_index),iHigh(Symbol(),PERIOD_CURRENT,chock_index),iTime(Symbol(),PERIOD_CURRENT,0),iHigh(Symbol(),PERIOD_CURRENT,chock_index)));
626 654
            {
627 655
             Print("object created from uptrend to downtrend ");
@@ -643,7 +671,6 @@ void choch(int i)
643 671
          choch_index_time = iTime(Symbol(),PERIOD_CURRENT,i);
644 672
 
645 673
          int chock_index1 = iBarShift(Symbol(), PERIOD_CURRENT, choch_index_time, false);
646
-         Print("from where you end ",chock_index1);
647 674
 
648 675
          bool condition_not_match = false;
649 676
          for(int p=chock_index - 2 ; p > chock_index1; p--)
@@ -659,7 +686,7 @@ void choch(int i)
659 686
             HIGH = 0.0;
660 687
             LOW = 0.0;
661 688
             tp_date_time_sell = 0.0;
662
-            Print("TArget line deleted");
689
+            Print("Target line deleted in choch");
663 690
             condition_not_match = false;
664 691
 
665 692
             if(object_find("target line") > 0)
@@ -696,41 +723,49 @@ void choch(int i)
696 723
                   if(TimeToStruct(time_of_candle,edate))
697 724
                     {
698 725
                      edate.hour = 0;
699
-                     edate.min  = edate.min + 2;
726
+                     edate.min  = edate.min + 1;
700 727
                      edate.sec  = 0;
701 728
                     }
729
+                  time_to_place_trade = StructToTime(edate);
730
+                  store_value_in_structure(choch_index_time,reversal_bar_time,signal,time_of_candle,time_to_place_trade,1);
702 731
                   break;
703 732
                case PERIOD_M5:
704 733
                   current_time_frame_string = "5 minutes";
705 734
                   if(TimeToStruct(time_of_candle,edate))
706 735
                     {
707 736
                      edate.hour = 0;
708
-                     edate.min  = edate.min + 10;
737
+                     edate.min  = edate.min + 5;
709 738
                      edate.sec  = 0;
710 739
                     }
740
+                  time_to_place_trade = StructToTime(edate);
741
+                  store_value_in_structure(choch_index_time,reversal_bar_time,signal,time_of_candle,time_to_place_trade,1);
711 742
                   break;
712 743
                case PERIOD_M15:
713 744
                   current_time_frame_string = "15 minutes";
714 745
                   if(TimeToStruct(time_of_candle,edate))
715 746
                     {
716 747
                      edate.hour = 0;
717
-                     edate.min  = edate.min + 30;
748
+                     edate.min  = edate.min + 15;
718 749
                      edate.sec  = 0;
719 750
                     }
751
+                  time_to_place_trade = StructToTime(edate);
752
+                  store_value_in_structure(choch_index_time,reversal_bar_time,signal,time_of_candle,time_to_place_trade,1);
720 753
                   break;
721 754
                case PERIOD_M30:
722 755
                   current_time_frame_string = "30 minutes";
723 756
                   if(TimeToStruct(time_of_candle,edate))
724 757
                     {
725 758
                      edate.hour = 0;
726
-                     edate.min  = edate.min + 60;
759
+                     edate.min  = edate.min + 30;
727 760
                      edate.sec  = 0;
728 761
                     }
762
+
763
+                  time_to_place_trade = StructToTime(edate);
764
+                  store_value_in_structure(choch_index_time,reversal_bar_time,signal,time_of_candle,time_to_place_trade,1);
765
+
729 766
                   break;
730 767
                case PERIOD_H1:
731 768
                   current_time_frame_string = "1 hour";
732
-
733
-
734 769
                   if(TimeToStruct(time_of_candle,edate))
735 770
                     {
736 771
                      edate.hour = edate.hour + 1;
@@ -739,15 +774,21 @@ void choch(int i)
739 774
                     }
740 775
 
741 776
                   time_to_place_trade = StructToTime(edate);
742
-
743
-                  // Print("Time: ",iTime(Symbol(),PERIOD_CURRENT,0));
744 777
                   store_value_in_structure(choch_index_time,reversal_bar_time,signal,time_of_candle,time_to_place_trade,1);
745 778
 
746
-                  //Print("choch_index_time ",choch_index_time);
747
-                  //Print("reversal_bar_time ",reversal_bar_time);
748
-                  //Print("time_of_candle",time_of_candle);
749
-                  //Print("time_to_place_trade",time_to_place_trade);
750
-                  //Print("signal is ",signal);
779
+                  break;
780
+
781
+               case PERIOD_H4:
782
+                  current_time_frame_string = "4 hour";
783
+                  if(TimeToStruct(time_of_candle,edate))
784
+                    {
785
+                     edate.hour = edate.hour + 4;
786
+                     edate.min  = 0;
787
+                     edate.sec  = 0;
788
+                    }
789
+
790
+                  time_to_place_trade = StructToTime(edate);
791
+                  store_value_in_structure(choch_index_time,reversal_bar_time,signal,time_of_candle,time_to_place_trade,1);
751 792
 
752 793
                   break;
753 794
 
@@ -756,8 +797,6 @@ void choch(int i)
756 797
                   break;
757 798
               }
758 799
 
759
-
760
-            //signal = "";
761 800
            }
762 801
 
763 802
          signal = "";
@@ -789,73 +828,7 @@ void choch(int i)
789 828
 
790 829
          trend = "downtrend";
791 830
 
792
-         // choch_index_time = iTime(Symbol(),PERIOD_CURRENT,i);
793
-         // -----------------------------------------------------------------------------------------------------------------------------------------------------------
794
-         //         chock_index = iBarShift(Symbol(), PERIOD_CURRENT, choch_index_time, false);
795
-         //         chock_index++;
796
-         //
797
-         //         HIGH = iHigh(Symbol(),PERIOD_CURRENT,chock_index);  // save high and low of the chock prev index to compare
798
-         //         LOW  = iLow(Symbol(),PERIOD_CURRENT,chock_index);
799
-         //
800
-         //         Print("from where you start ",chock_index);
801
-         //
802
-         //
803
-         //         if(object_find("target line") > 0)
804
-         //           {
805
-         //            ObjectDelete(0,"target line");
806
-         //           }
807
-         //
808
-         //         if(!ObjectCreate(0,"target line",OBJ_TREND,0,iTime(Symbol(),PERIOD_CURRENT,chock_index),iHigh(Symbol(),PERIOD_CURRENT,chock_index),iTime(Symbol(),PERIOD_CURRENT,0),iHigh(Symbol(),PERIOD_CURRENT,chock_index)));
809
-         //           {
810
-         //            Print("object error ",GetLastError());
811
-         //           }
812
-         //         ObjectSetInteger(0,"target line",OBJPROP_RAY_RIGHT,true);
813
-         //         ObjectSetInteger(0,"target line",OBJPROP_COLOR,clrGreen);
814
-         //
815
-         //         if(object_find("target line1") > 0)
816
-         //           {
817
-         //            ObjectDelete(0,"target line1");
818
-         //           }
819
-         //
820
-         //         ObjectCreate(0,"target line1",OBJ_TREND,0,iTime(Symbol(),PERIOD_CURRENT,chock_index),iLow(Symbol(),PERIOD_CURRENT,chock_index),iTime(Symbol(),PERIOD_CURRENT,0),iLow(Symbol(),PERIOD_CURRENT,chock_index));
821
-         //         ObjectSetInteger(0,"target line1",OBJPROP_RAY_RIGHT,true);
822
-         //         ObjectSetInteger(0,"target line1",OBJPROP_COLOR,clrGreen);
823
-         //
824
-         //
825
-         //         choch_index_time = iTime(Symbol(),PERIOD_CURRENT,i);
826
-         //
827
-         //         chock_index1 = iBarShift(Symbol(), PERIOD_CURRENT, choch_index_time, false);
828
-         //         Print("from where you end ",chock_index1);
829
-         //
830
-         //         condition_not_match = false;
831
-         //         for(int p=chock_index - 1 ; p >=chock_index1; p--)
832
-         //           {
833
-         //            if(iLow(Symbol(),PERIOD_CURRENT,p) < HIGH)
834
-         //              {
835
-         //               condition_not_match = true;
836
-         //              }
837
-         //           }
838
-         //
839
-         //         if(condition_not_match == true)
840
-         //           {
841
-         //            Print("TArget line deleted");
842
-         //            HIGH = 0.0;
843
-         //            LOW = 0.0;
844
-         //            condition_not_match = false;
845
-         //
846
-         //            if(object_find("target line") > 0)
847
-         //              {
848
-         //               ObjectDelete(0,"target line");
849
-         //              }
850
-         //
851
-         //            if(object_find("target line1") > 0)
852
-         //              {
853
-         //               ObjectDelete(0,"target line1");
854
-         //              }
855
-         //
856
-         //           }
857 831
 
858
-         //-------------------------------------------------------------------------------------------------------------------------------------------------------------------
859 832
          if(signal == "sell")
860 833
            {
861 834
             MqlDateTime  edate;
@@ -876,6 +849,8 @@ void choch(int i)
876 849
                      edate.min  = edate.min + 2;
877 850
                      edate.sec  = 0;
878 851
                     }
852
+                  time_to_place_trade = StructToTime(edate);
853
+                  store_value_in_structure(choch_index_time,reversal_bar_time,signal,time_of_candle,time_to_place_trade,2);
879 854
                   break;
880 855
                case PERIOD_M5:
881 856
                   current_time_frame_string = "5 minutes";
@@ -885,6 +860,8 @@ void choch(int i)
885 860
                      edate.min  = edate.min + 10;
886 861
                      edate.sec  = 0;
887 862
                     }
863
+                  time_to_place_trade = StructToTime(edate);
864
+                  store_value_in_structure(choch_index_time,reversal_bar_time,signal,time_of_candle,time_to_place_trade,2);
888 865
                   break;
889 866
                case PERIOD_M15:
890 867
                   current_time_frame_string = "15 minutes";
@@ -894,6 +871,8 @@ void choch(int i)
894 871
                      edate.min  = edate.min + 30;
895 872
                      edate.sec  = 0;
896 873
                     }
874
+                  time_to_place_trade = StructToTime(edate);
875
+                  store_value_in_structure(choch_index_time,reversal_bar_time,signal,time_of_candle,time_to_place_trade,2);
897 876
                   break;
898 877
                case PERIOD_M30:
899 878
                   current_time_frame_string = "30 minutes";
@@ -903,29 +882,34 @@ void choch(int i)
903 882
                      edate.min  = edate.min + 60;
904 883
                      edate.sec  = 0;
905 884
                     }
885
+                  time_to_place_trade = StructToTime(edate);
886
+                  store_value_in_structure(choch_index_time,reversal_bar_time,signal,time_of_candle,time_to_place_trade,2);
906 887
                   break;
907 888
                case PERIOD_H1:
908 889
                   current_time_frame_string = "1 hour";
890
+                  if(TimeToStruct(time_of_candle,edate))
891
+                    {
892
+                     edate.hour = edate.hour + 2;
893
+                     edate.min  = 0;
894
+                     edate.sec  = 0;
895
+                    }
896
+                  time_to_place_trade = StructToTime(edate);
897
+                  store_value_in_structure(choch_index_time,reversal_bar_time,signal,time_of_candle,time_to_place_trade,2);
909 898
 
899
+                  break;
910 900
 
901
+               case PERIOD_H4:
902
+                  current_time_frame_string = "4 hour";
911 903
                   if(TimeToStruct(time_of_candle,edate))
912 904
                     {
913
-                     edate.hour = edate.hour + 2;
905
+                     edate.hour = edate.hour + 8;
914 906
                      edate.min  = 0;
915 907
                      edate.sec  = 0;
916 908
                     }
917 909
 
918 910
                   time_to_place_trade = StructToTime(edate);
919
-
920
-                  Print("Time: ",iTime(Symbol(),PERIOD_CURRENT,0));
921 911
                   store_value_in_structure(choch_index_time,reversal_bar_time,signal,time_of_candle,time_to_place_trade,2);
922 912
 
923
-                  //Print("choch_index_time ",choch_index_time);
924
-                  //Print("reversal_bar_time ",reversal_bar_time);
925
-                  //Print("time_of_candle",time_of_candle);
926
-                  //Print("time_to_place_trade",time_to_place_trade);
927
-                  //Print("signal is ",signal);
928
-
929 913
                   break;
930 914
 
931 915
                default:
@@ -933,8 +917,6 @@ void choch(int i)
933 917
                   break;
934 918
               }
935 919
 
936
-
937
-            //signal = "";
938 920
            }
939 921
 
940 922
          signal = "";
@@ -996,9 +978,6 @@ void choch(int i)
996 978
          HIGH = iHigh(Symbol(),PERIOD_CURRENT,chock_index);  // save high and low of the chock prev index to compare
997 979
          LOW  = iLow(Symbol(),PERIOD_CURRENT,chock_index);
998 980
 
999
-         Print("from where you start ",chock_index);
1000
-
1001
-
1002 981
 
1003 982
          if(object_find("target line") > 0)
1004 983
            {
@@ -1006,12 +985,6 @@ void choch(int i)
1006 985
            }
1007 986
 
1008 987
 
1009
-         //if(!ObjectCreate(0,"target line",OBJ_TREND,0,iTime(Symbol(),PERIOD_CURRENT,chock_index),iHigh(Symbol(),PERIOD_CURRENT,chock_index),iTime(Symbol(),PERIOD_CURRENT,0),iHigh(Symbol(),PERIOD_CURRENT,chock_index)));
1010
-         //  {
1011
-         //   Print("time at which error accur in downtrend to uptrend ",iTime(Symbol(),PERIOD_CURRENT,i));
1012
-         //   Print("object error ",GetLastError());
1013
-         //  }
1014
-
1015 988
          if(ObjectCreate(0,"target line",OBJ_TREND,0,iTime(Symbol(),PERIOD_CURRENT,chock_index),iHigh(Symbol(),PERIOD_CURRENT,chock_index),iTime(Symbol(),PERIOD_CURRENT,0),iHigh(Symbol(),PERIOD_CURRENT,chock_index)));
1016 989
            {
1017 990
             Print("object created from downtrend to uptrend ");
@@ -1032,22 +1005,13 @@ void choch(int i)
1032 1005
 
1033 1006
          choch_index_time = iTime(Symbol(),PERIOD_CURRENT,i);
1034 1007
          int chock_index1 = iBarShift(Symbol(), PERIOD_CURRENT, choch_index_time, false);
1035
-         Print("from where you end ",chock_index1);
1036 1008
 
1037 1009
          bool condition_not_match = false;
1038
-         Print("time of chock_index - 2 is", iTime(Symbol(),PERIOD_CURRENT,chock_index-2));
1039
-         Print("time of current candle is ",iTime(Symbol(),PERIOD_CURRENT,1));
1040 1010
 
1041 1011
          for(int p=chock_index -  2 ; p > chock_index1; p--)
1042 1012
            {
1043
-            // Print("index is ",p," time is ", iTime(Symbol(),PERIOD_CURRENT,p));
1044
-            // Print("high is ", iHigh(Symbol(),PERIOD_CURRENT,chock_index)," low is ",LOW);
1045
-
1046 1013
             if(iHigh(Symbol(),PERIOD_CURRENT,p) > LOW)
1047 1014
               {
1048
-               Print("here the condition is get false ");
1049
-               Print("high is ", iHigh(Symbol(),PERIOD_CURRENT,p)," low is ",LOW);
1050
-               Print("index is ",p," time is ", iTime(Symbol(),PERIOD_CURRENT,p));
1051 1015
                condition_not_match = true;
1052 1016
               }
1053 1017
            }
@@ -1094,41 +1058,47 @@ void choch(int i)
1094 1058
                   if(TimeToStruct(time_of_candle,edate))
1095 1059
                     {
1096 1060
                      edate.hour = 0;
1097
-                     edate.min  = edate.min + 2;
1061
+                     edate.min  = edate.min + 1;
1098 1062
                      edate.sec  = 0;
1099 1063
                     }
1064
+                  time_to_place_trade = StructToTime(edate);
1065
+                  store_value_in_structure(choch_index_time,reversal_bar_time,signal,time_of_candle,time_to_place_trade,1);
1100 1066
                   break;
1101 1067
                case PERIOD_M5:
1102 1068
                   current_time_frame_string = "5 minutes";
1103 1069
                   if(TimeToStruct(time_of_candle,edate))
1104 1070
                     {
1105 1071
                      edate.hour = 0;
1106
-                     edate.min  = edate.min + 10;
1072
+                     edate.min  = edate.min + 5;
1107 1073
                      edate.sec  = 0;
1108 1074
                     }
1075
+                  time_to_place_trade = StructToTime(edate);
1076
+                  store_value_in_structure(choch_index_time,reversal_bar_time,signal,time_of_candle,time_to_place_trade,1);
1109 1077
                   break;
1110 1078
                case PERIOD_M15:
1111 1079
                   current_time_frame_string = "15 minutes";
1112 1080
                   if(TimeToStruct(time_of_candle,edate))
1113 1081
                     {
1114 1082
                      edate.hour = 0;
1115
-                     edate.min  = edate.min + 30;
1083
+                     edate.min  = edate.min + 15;
1116 1084
                      edate.sec  = 0;
1117 1085
                     }
1086
+                  time_to_place_trade = StructToTime(edate);
1087
+                  store_value_in_structure(choch_index_time,reversal_bar_time,signal,time_of_candle,time_to_place_trade,1);
1118 1088
                   break;
1119 1089
                case PERIOD_M30:
1120 1090
                   current_time_frame_string = "30 minutes";
1121 1091
                   if(TimeToStruct(time_of_candle,edate))
1122 1092
                     {
1123 1093
                      edate.hour = 0;
1124
-                     edate.min  = edate.min + 60;
1094
+                     edate.min  = edate.min + 30;
1125 1095
                      edate.sec  = 0;
1126 1096
                     }
1097
+                  time_to_place_trade = StructToTime(edate);
1098
+                  store_value_in_structure(choch_index_time,reversal_bar_time,signal,time_of_candle,time_to_place_trade,1);
1127 1099
                   break;
1128 1100
                case PERIOD_H1:
1129 1101
                   current_time_frame_string = "1 hour";
1130
-
1131
-
1132 1102
                   if(TimeToStruct(time_of_candle,edate))
1133 1103
                     {
1134 1104
                      edate.hour = edate.hour + 1;
@@ -1137,16 +1107,20 @@ void choch(int i)
1137 1107
                     }
1138 1108
 
1139 1109
                   time_to_place_trade = StructToTime(edate);
1140
-
1141
-                  Print("Time: ",iTime(Symbol(),PERIOD_CURRENT,0));
1142 1110
                   store_value_in_structure(choch_index_time,reversal_bar_time,signal,time_of_candle,time_to_place_trade,1);
1111
+                  break;
1143 1112
 
1144
-                  //Print("choch_index_time ",choch_index_time);
1145
-                  //Print("reversal_bar_time ",reversal_bar_time);
1146
-                  //Print("time_of_candle",time_of_candle);
1147
-                  //Print("time_to_place_trade",time_to_place_trade);
1148
-                  //Print("signal is ",signal);
1113
+               case PERIOD_H4:
1114
+                  current_time_frame_string = "4 hour";
1115
+                  if(TimeToStruct(time_of_candle,edate))
1116
+                    {
1117
+                     edate.hour = edate.hour + 4;
1118
+                     edate.min  = 0;
1119
+                     edate.sec  = 0;
1120
+                    }
1149 1121
 
1122
+                  time_to_place_trade = StructToTime(edate);
1123
+                  store_value_in_structure(choch_index_time,reversal_bar_time,signal,time_of_candle,time_to_place_trade,1);
1150 1124
                   break;
1151 1125
 
1152 1126
                default:
@@ -1162,13 +1136,6 @@ void choch(int i)
1162 1136
          Entry_Action_2_down(Store_bos_last_index,i,diff);
1163 1137
          a = 2;
1164 1138
 
1165
-
1166
-
1167
-
1168
-
1169
-
1170
-
1171
-
1172 1139
          high = iHigh(Symbol(),PERIOD_CURRENT,i);
1173 1140
 
1174 1141
          high_index_time = iTime(Symbol(),PERIOD_CURRENT,i);
@@ -1187,69 +1154,6 @@ void choch(int i)
1187 1154
 
1188 1155
          trend = "uptrend";
1189 1156
 
1190
-         // choch_index_time = iTime(Symbol(),PERIOD_CURRENT,i);
1191
-         //--------------------------------------------------------------------------------------------------------------------------------------------------------------------
1192
-         //         chock_index = iBarShift(Symbol(), PERIOD_CURRENT, choch_index_time, false);
1193
-         //         chock_index++;
1194
-         //
1195
-         //         HIGH = iHigh(Symbol(),PERIOD_CURRENT,chock_index);  // save high and low of the chock prev index to compare
1196
-         //         LOW  = iLow(Symbol(),PERIOD_CURRENT,chock_index);
1197
-         //
1198
-         //         Print("from where you start ",chock_index);
1199
-         //
1200
-         //
1201
-         //
1202
-         //         if(object_find("target line") > 0)
1203
-         //           {
1204
-         //            ObjectDelete(0,"target line");
1205
-         //           }
1206
-         //
1207
-         //         ObjectCreate(0,"target line",OBJ_TREND,0,iTime(Symbol(),PERIOD_CURRENT,chock_index),iHigh(Symbol(),PERIOD_CURRENT,chock_index),iTime(Symbol(),PERIOD_CURRENT,0),iHigh(Symbol(),PERIOD_CURRENT,chock_index));
1208
-         //         ObjectSetInteger(0,"target line",OBJPROP_RAY_RIGHT,true);
1209
-         //         ObjectSetInteger(0,"target line",OBJPROP_COLOR,clrGreen);
1210
-         //
1211
-         //         if(object_find("target line1") > 0)
1212
-         //           {
1213
-         //            ObjectDelete(0,"target line1");
1214
-         //           }
1215
-         //
1216
-         //         ObjectCreate(0,"target line1",OBJ_TREND,0,iTime(Symbol(),PERIOD_CURRENT,chock_index),iLow(Symbol(),PERIOD_CURRENT,chock_index),iTime(Symbol(),PERIOD_CURRENT,0),iLow(Symbol(),PERIOD_CURRENT,chock_index));
1217
-         //         ObjectSetInteger(0,"target line1",OBJPROP_RAY_RIGHT,true);
1218
-         //         ObjectSetInteger(0,"target line1",OBJPROP_COLOR,clrGreen);
1219
-         //
1220
-         //         choch_index_time = iTime(Symbol(),PERIOD_CURRENT,i);
1221
-         //         chock_index1 = iBarShift(Symbol(), PERIOD_CURRENT, choch_index_time, false);
1222
-         //         Print("from where you end ",chock_index1);
1223
-         //
1224
-         //         condition_not_match = false;
1225
-         //         for(int p=chock_index - 1 ; p >=chock_index1; p--)
1226
-         //           {
1227
-         //            if(iHigh(Symbol(),PERIOD_CURRENT,p) > LOW)
1228
-         //              {
1229
-         //               condition_not_match = true;
1230
-         //              }
1231
-         //           }
1232
-         //
1233
-         //         if(condition_not_match == true)
1234
-         //           {
1235
-         //            HIGH = 0.0;
1236
-         //            LOW = 0.0;
1237
-         //            Print("line target deleted :");
1238
-         //            condition_not_match = false;
1239
-         //
1240
-         //            if(object_find("target line") > 0)
1241
-         //              {
1242
-         //               ObjectDelete(0,"target line");
1243
-         //              }
1244
-         //
1245
-         //            if(object_find("target line1") > 0)
1246
-         //              {
1247
-         //               ObjectDelete(0,"target line1");
1248
-         //              }
1249
-         //
1250
-         //           }
1251
-
1252
-         //------------------------------------------------------------------------------------------------------------------------------------------------------------------
1253 1157
          if(signal == "buy")
1254 1158
            {
1255 1159
             MqlDateTime  edate;
@@ -1270,6 +1174,8 @@ void choch(int i)
1270 1174
                      edate.min  = edate.min + 2;
1271 1175
                      edate.sec  = 0;
1272 1176
                     }
1177
+                  time_to_place_trade = StructToTime(edate);
1178
+                  store_value_in_structure(choch_index_time,reversal_bar_time,signal,time_of_candle,time_to_place_trade,2);
1273 1179
                   break;
1274 1180
                case PERIOD_M5:
1275 1181
                   current_time_frame_string = "5 minutes";
@@ -1279,6 +1185,8 @@ void choch(int i)
1279 1185
                      edate.min  = edate.min + 10;
1280 1186
                      edate.sec  = 0;
1281 1187
                     }
1188
+                  time_to_place_trade = StructToTime(edate);
1189
+                  store_value_in_structure(choch_index_time,reversal_bar_time,signal,time_of_candle,time_to_place_trade,2);
1282 1190
                   break;
1283 1191
                case PERIOD_M15:
1284 1192
                   current_time_frame_string = "15 minutes";
@@ -1288,6 +1196,8 @@ void choch(int i)
1288 1196
                      edate.min  = edate.min + 30;
1289 1197
                      edate.sec  = 0;
1290 1198
                     }
1199
+                  time_to_place_trade = StructToTime(edate);
1200
+                  store_value_in_structure(choch_index_time,reversal_bar_time,signal,time_of_candle,time_to_place_trade,2);
1291 1201
                   break;
1292 1202
                case PERIOD_M30:
1293 1203
                   current_time_frame_string = "30 minutes";
@@ -1297,29 +1207,31 @@ void choch(int i)
1297 1207
                      edate.min  = edate.min + 60;
1298 1208
                      edate.sec  = 0;
1299 1209
                     }
1210
+                  time_to_place_trade = StructToTime(edate);
1211
+                  store_value_in_structure(choch_index_time,reversal_bar_time,signal,time_of_candle,time_to_place_trade,2);
1300 1212
                   break;
1301 1213
                case PERIOD_H1:
1302 1214
                   current_time_frame_string = "1 hour";
1303
-
1304
-
1305 1215
                   if(TimeToStruct(time_of_candle,edate))
1306 1216
                     {
1307 1217
                      edate.hour = edate.hour + 2;
1308 1218
                      edate.min  = 0;
1309 1219
                      edate.sec  = 0;
1310 1220
                     }
1311
-
1312 1221
                   time_to_place_trade = StructToTime(edate);
1313
-
1314
-                  Print("Time: ",iTime(Symbol(),PERIOD_CURRENT,0));
1315 1222
                   store_value_in_structure(choch_index_time,reversal_bar_time,signal,time_of_candle,time_to_place_trade,2);
1223
+                  break;
1316 1224
 
1317
-                  //Print("choch_index_time ",choch_index_time);
1318
-                  //Print("reversal_bar_time ",reversal_bar_time);
1319
-                  //Print("time_of_candle",time_of_candle);
1320
-                  //Print("time_to_place_trade",time_to_place_trade);
1321
-                  //Print("signal is ",signal);
1322
-
1225
+               case PERIOD_H4:
1226
+                  current_time_frame_string = "4 hour";
1227
+                  if(TimeToStruct(time_of_candle,edate))
1228
+                    {
1229
+                     edate.hour = edate.hour + 8;
1230
+                     edate.min  = 0;
1231
+                     edate.sec  = 0;
1232
+                    }
1233
+                  time_to_place_trade = StructToTime(edate);
1234
+                  store_value_in_structure(choch_index_time,reversal_bar_time,signal,time_of_candle,time_to_place_trade,2);
1323 1235
                   break;
1324 1236
 
1325 1237
                default:
@@ -2103,70 +2015,6 @@ void OnTick()
2103 2015
    if(NewBar() == true)
2104 2016
      {
2105 2017
 
2106
-   int dx = iBarShift(Symbol(), PERIOD_CURRENT,choch_index_time, false);
2107
-//
2108
-//      double HI = iHigh(Symbol(),PERIOD_CURRENT,dx+1);  // save high and low of the chock prev index to compare
2109
-//      double LO  = iLow(Symbol(),PERIOD_CURRENT,dx+1);
2110
-//      if(trend == "downtrend")
2111
-//        {
2112
-//         for(int p=dx-1; p >= 1; p--)
2113
-//           {
2114
-//            if(iHigh(Symbol(),PERIOD_CURRENT,p) > LO)
2115
-//              {
2116
-//               tp_date_time_sell = 0.0;
2117
-//               Print("high is ",iHigh(Symbol(),PERIOD_CURRENT,p), "and index of high is ",p);
2118
-//               Print("TArget line deleted in on tick "," at index p", " and time period is ",iTime(Symbol(),PERIOD_CURRENT,p));
2119
-//
2120
-//
2121
-//               if(object_find("target line") > 0)
2122
-//                 {
2123
-//                  ObjectDelete(0,"target line");
2124
-//                 }
2125
-//
2126
-//               if(object_find("target line1") > 0)
2127
-//                 {
2128
-//                  ObjectDelete(0,"target line1");
2129
-//                 }
2130
-//               break;
2131
-//              }
2132
-//           }
2133
-//        }
2134
-//
2135
-//      if(trend == "uptrend")
2136
-//        {
2137
-//         for(int p=dx-1; p >= 1; p--)
2138
-//           {
2139
-//            if(iLow(Symbol(),PERIOD_CURRENT,p) < HI)
2140
-//              {
2141
-//               Print("low is ",LO, "and index of low is ",p);
2142
-//               Print("Target line deleted in on tick "," at index p", " and time period is ",iTime(Symbol(),PERIOD_CURRENT,p));
2143
-//
2144
-//               tp_date_time_buy = 0.0;
2145
-//
2146
-//               if(object_find("target line") > 0)
2147
-//                 {
2148
-//                  ObjectDelete(0,"target line");
2149
-//                 }
2150
-//
2151
-//               if(object_find("target line1") > 0)
2152
-//                 {
2153
-//                  ObjectDelete(0,"target line1");
2154
-//                 }
2155
-//               break;
2156
-//
2157
-//              }
2158
-//           }
2159
-//
2160
-//        }
2161
-
2162
-
2163
-
2164
-
2165
-
2166
-
2167
-
2168
-
2169
-
2170 2018
       Entry_strategy(1);
2171 2019
 
2172 2020
       // for entry condition candel 1
@@ -2183,24 +2031,37 @@ void OnTick()
2183 2031
                int reversal_indexx = iBarShift(Symbol(), PERIOD_CURRENT,od_1[m].reversal_index_date_time,false);
2184 2032
                int close_index = iBarShift(Symbol(), PERIOD_CURRENT,od_1[m].choch_index_date_time,false);
2185 2033
 
2034
+
2186 2035
                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);
2036
+               // bool snd_con = false;
2037
+               for(int i=close_index-1; i>=1; i--) // second condition of updation
2038
+                 {
2039
+                  if(iClose(Symbol(),PERIOD_CURRENT,i) < reversalMax)
2040
+                    {
2041
+                     remove_value_from_structure();
2042
+                    }
2043
+                 }
2187 2044
 
2188
-               if(reversalMax > iLow(Symbol(),PERIOD_CURRENT,1)
2189
-                  && iClose(Symbol(),PERIOD_CURRENT,close_index) < iClose(Symbol(),PERIOD_CURRENT,1)  && tp_date_time_buy != 0.0)
2045
+               // if(iOpen(Symbol(),PERIOD_CURRENT,1) > iClose(Symbol(),PERIOD_CURRENT,close_index)) // first condition of updation
2190 2046
                  {
2191
-                  Print("<<<<<<<<<<<< Entry 1 >>>>>>>>>");
2192
-                  placeBuyTrade();
2193
-                  remove_value_from_structure();
2194
-                  od_1[m].choch_index_date_time = 0;
2195
-                  od_1[m].Signal == "";
2196
-                  od_1[m].reversal_index_date_time = 0;
2197
-                  od_1[m].choch_index_date_time = 0;
2198 2047
 
2199
-                  signal = "";
2200
-                  Print("buy trade placed  -------------------------------------------------------------");
2201
-                  Print("time at which trade is placed : ",TimeCurrent());
2048
+                  if(reversalMax > iLow(Symbol(),PERIOD_CURRENT,1)
2049
+                     && iClose(Symbol(),PERIOD_CURRENT,close_index) < iClose(Symbol(),PERIOD_CURRENT,1)  && tp_date_time_buy != 0.0)
2050
+                    {
2051
+                     Print("<<<<<<<<<<<< Entry 1 >>>>>>>>>");
2052
+                     placeBuyTrade();
2053
+                     remove_value_from_structure();
2054
+                     od_1[m].choch_index_date_time = 0;
2055
+                     od_1[m].Signal == "";
2056
+                     od_1[m].reversal_index_date_time = 0;
2057
+                     od_1[m].choch_index_date_time = 0;
2058
+
2059
+                     signal = "";
2060
+                     Print("buy trade placed  -------------------------------------------------------------");
2061
+                     Print("time at which trade is placed : ",TimeCurrent());
2202 2062
 
2203 2063
 
2064
+                    }
2204 2065
                  }
2205 2066
 
2206 2067
 
@@ -2215,21 +2076,37 @@ void OnTick()
2215 2076
 
2216 2077
 
2217 2078
                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);
2218
-
2219
-               if(reversalMin < iHigh(Symbol(),PERIOD_CURRENT,1)
2220
-                  && iClose(Symbol(),PERIOD_CURRENT,close_index) > iClose(Symbol(),PERIOD_CURRENT,1) && tp_date_time_sell != 0.0)
2079
+               //               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);
2080
+               //               bool snd_con = false;
2081
+               //
2082
+               for(int i=close_index-1; i>=1; i--) // second condition of updation
2221 2083
                  {
2222
-                  placeSellTrade();
2223
-                  remove_value_from_structure();
2224
-                  od_1[m].choch_index_date_time = 0;
2225
-                  od_1[m].Signal == "";
2226
-                  od_1[m].reversal_index_date_time = 0;
2227
-                  od_1[m].choch_index_date_time = 0;
2228
-                  signal = "";
2229
-                  Print("sell trade placed  -------------------------------------------------------------");
2230
-                  Print("time at which trade is placed : ",TimeCurrent());
2084
+                  if(iClose(Symbol(),PERIOD_CURRENT,i) > reversalMin)
2085
+                    {
2086
+                      remove_value_from_structure();
2087
+                     //snd_con = true;
2088
+                    }
2089
+                 }
2090
+               //
2091
+               // if(iOpen(Symbol(),PERIOD_CURRENT,1) < iClose(Symbol(),PERIOD_CURRENT,close_index)) // first condition of updation
2092
+                 {
2093
+
2094
+
2095
+                  if(reversalMin < iHigh(Symbol(),PERIOD_CURRENT,1)
2096
+                     && iClose(Symbol(),PERIOD_CURRENT,close_index) > iClose(Symbol(),PERIOD_CURRENT,1) && tp_date_time_sell != 0.0)
2097
+                    {
2098
+                     placeSellTrade();
2099
+                     remove_value_from_structure();
2100
+                     od_1[m].choch_index_date_time = 0;
2101
+                     od_1[m].Signal == "";
2102
+                     od_1[m].reversal_index_date_time = 0;
2103
+                     od_1[m].choch_index_date_time = 0;
2104
+                     signal = "";
2105
+                     Print("sell trade placed  -------------------------------------------------------------");
2106
+                     Print("time at which trade is placed : ",TimeCurrent());
2231 2107
 
2232 2108
 
2109
+                    }
2233 2110
                  }
2234 2111
 
2235 2112
               }
@@ -2242,9 +2119,10 @@ void OnTick()
2242 2119
               {
2243 2120
                if(trend == "uptrend")
2244 2121
                  {
2245
-                  for(int p=dx-1; p >= 1; p--)
2122
+                  double ib =iBarShift(Symbol(), PERIOD_CURRENT,tp_date_time_buy,false);
2123
+                  for(int p=ib-2; p >= 1; p--)
2246 2124
                     {
2247
-                     double ib =iBarShift(Symbol(), PERIOD_CURRENT,tp_date_time_buy,false);
2125
+
2248 2126
                      Print("low of the last choch index is",iLow(Symbol(),PERIOD_CURRENT,ib));
2249 2127
                      if(iHigh(Symbol(),PERIOD_CURRENT,p) > iLow(Symbol(),PERIOD_CURRENT,ib))
2250 2128
                        {
@@ -2275,28 +2153,42 @@ void OnTick()
2275 2153
                int reversal_indexx = iBarShift(Symbol(), PERIOD_CURRENT,od_1[m].reversal_index_date_time,false);
2276 2154
                int close_index = iBarShift(Symbol(), PERIOD_CURRENT,od_1[m].choch_index_date_time,false);
2277 2155
 
2278
-               if(value_close_high(close_index) == true)
2156
+               //bool snd_con = false;
2157
+               //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);
2158
+
2159
+               //for(int i=close_index-1; i>=1; i--) // second condition of updation
2160
+               //  {
2161
+               //   if(iClose(Symbol(),PERIOD_CURRENT,i) < reversalMax)
2162
+               //     {
2163
+               //      snd_con = true;
2164
+               //     }
2165
+               //  }
2166
+
2167
+               if(iOpen(Symbol(),PERIOD_CURRENT,1) > iClose(Symbol(),PERIOD_CURRENT,close_index)) // first condition of updation
2279 2168
                  {
2280
-                  if(iClose(Symbol(),PERIOD_CURRENT,close_index) > iLow(Symbol(),PERIOD_CURRENT,1)
2281
-                     && iClose(Symbol(),PERIOD_CURRENT,close_index) < iClose(Symbol(),PERIOD_CURRENT,1) && tp_date_time_buy != 0.0)
2169
+
2170
+                  if(value_close_high(close_index) == true)
2282 2171
                     {
2283
-                     Print("<<<<<<<<<<<< Entry 2 >>>>>>>>>");
2284
-                     placeBuyTrade();
2285
-                     remove_value_from_structure();
2286
-                     od_1[m].choch_index_date_time = 0;
2287
-                     od_1[m].Signal == "";
2288
-                     od_1[m].reversal_index_date_time = 0;
2289
-                     od_1[m].choch_index_date_time = 0;
2172
+                     if(iClose(Symbol(),PERIOD_CURRENT,close_index) > iLow(Symbol(),PERIOD_CURRENT,1)
2173
+                        && iClose(Symbol(),PERIOD_CURRENT,close_index) < iClose(Symbol(),PERIOD_CURRENT,1) && tp_date_time_buy != 0.0)
2174
+                       {
2175
+                        Print("<<<<<<<<<<<< Entry 2 >>>>>>>>>");
2176
+                        placeBuyTrade();
2177
+                        remove_value_from_structure();
2178
+                        od_1[m].choch_index_date_time = 0;
2179
+                        od_1[m].Signal == "";
2180
+                        od_1[m].reversal_index_date_time = 0;
2181
+                        od_1[m].choch_index_date_time = 0;
2290 2182
 
2291
-                     signal = "";
2292
-                     Print("buy trade placed  -------------------------------------------------------------");
2293
-                     Print("time at which trade is placed : ",TimeCurrent());
2183
+                        signal = "";
2184
+                        Print("buy trade placed  -------------------------------------------------------------");
2185
+                        Print("time at which trade is placed : ",TimeCurrent());
2294 2186
 
2295 2187
 
2188
+                       }
2296 2189
                     }
2297
-                 }
2298
-
2299 2190
 
2191
+                 }
2300 2192
               }
2301 2193
 
2302 2194
             if(od_1[m].EntryCon == 2 && TimeCurrent() > od_1[m].Time_of_candle_For_trade && od_1[m].Signal == "sell" && od_1[m].Time_of_candle_For_trade != 0  /*&& HIGH != 0 && LOW != 0*/)
@@ -2304,14 +2196,14 @@ void OnTick()
2304 2196
 
2305 2197
                if(trend == "downtrend")
2306 2198
                  {
2307
-
2308
-                  for(int p=dx-1; p >= 1; p--)
2199
+                  double ib =iBarShift(Symbol(), PERIOD_CURRENT,tp_date_time_sell,false);
2200
+                  for(int p=ib-2; p >= 1; p--)
2309 2201
                     {
2310
-                     double ib =iBarShift(Symbol(), PERIOD_CURRENT,tp_date_time_buy,false);
2202
+
2311 2203
                      Print("high of the last choch index is",iHigh(Symbol(),PERIOD_CURRENT,ib));
2312 2204
                      if(iLow(Symbol(),PERIOD_CURRENT,p) < iHigh(Symbol(),PERIOD_CURRENT,ib))
2313 2205
                        {
2314
-                     //   Print("low is ",LO, "and index of low is ",p);
2206
+                        //   Print("low is ",LO, "and index of low is ",p);
2315 2207
                         Print("Target line deleted in on entry 2 "," at index p", " and time period is ",iTime(Symbol(),PERIOD_CURRENT,p));
2316 2208
 
2317 2209
                         tp_date_time_sell = 0.0;
@@ -2335,22 +2227,37 @@ void OnTick()
2335 2227
                int reversal_indexx = iBarShift(Symbol(), PERIOD_CURRENT,od_1[m].reversal_index_date_time,false);
2336 2228
                int close_index = iBarShift(Symbol(), PERIOD_CURRENT,od_1[m].choch_index_date_time,false);
2337 2229
 
2338
-               if(value_close_low(close_index) == true)
2230
+               //               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);
2231
+               //               bool snd_con = false;
2232
+               //
2233
+               //               for(int i=close_index-1; i>=1; i--) // second condition of updation
2234
+               //                 {
2235
+               //                  if(iClose(Symbol(),PERIOD_CURRENT,i) > reversalMin)
2236
+               //                    {
2237
+               //                     snd_con = true;
2238
+               //                    }
2239
+               //                 }
2240
+
2241
+               if(iOpen(Symbol(),PERIOD_CURRENT,1) < iClose(Symbol(),PERIOD_CURRENT,close_index)) // first condition of updation
2339 2242
                  {
2340
-                  if(iClose(Symbol(),PERIOD_CURRENT,close_index) < iHigh(Symbol(),PERIOD_CURRENT,1)
2341
-                     && iClose(Symbol(),PERIOD_CURRENT,close_index) > iClose(Symbol(),PERIOD_CURRENT,1) && tp_date_time_sell!= 0.0)
2243
+
2244
+                  if(value_close_low(close_index) == true)
2342 2245
                     {
2343
-                     placeSellTrade();
2344
-                     remove_value_from_structure();
2345
-                     od_1[m].choch_index_date_time = 0;
2346
-                     od_1[m].Signal == "";
2347
-                     od_1[m].reversal_index_date_time = 0;
2348
-                     od_1[m].choch_index_date_time = 0;
2349
-                     signal = "";
2350
-                     Print("sell trade placed  -------------------------------------------------------------");
2351
-                     Print("time at which trade is placed : ",TimeCurrent());
2246
+                     if(iClose(Symbol(),PERIOD_CURRENT,close_index) < iHigh(Symbol(),PERIOD_CURRENT,1)
2247
+                        && iClose(Symbol(),PERIOD_CURRENT,close_index) > iClose(Symbol(),PERIOD_CURRENT,1) && tp_date_time_sell != 0.0)
2248
+                       {
2249
+                        placeSellTrade();
2250
+                        remove_value_from_structure();
2251
+                        od_1[m].choch_index_date_time = 0;
2252
+                        od_1[m].Signal == "";
2253
+                        od_1[m].reversal_index_date_time = 0;
2254
+                        od_1[m].choch_index_date_time = 0;
2255
+                        signal = "";
2256
+                        Print("sell trade placed  -------------------------------------------------------------");
2257
+                        Print("time at which trade is placed : ",TimeCurrent());
2352 2258
 
2353 2259
 
2260
+                       }
2354 2261
                     }
2355 2262
                  }
2356 2263
 
@@ -2420,3 +2327,9 @@ string checkCandle(int v)  // to check the candle is bullish or bearish
2420 2327
 //+------------------------------------------------------------------+
2421 2328
 
2422 2329
 //+------------------------------------------------------------------+
2330
+
2331
+//+------------------------------------------------------------------+
2332
+
2333
+//+------------------------------------------------------------------+
2334
+
2335
+//+------------------------------------------------------------------+