소스 검색

ticket # 1483

add target lines and set tp of buy and sell
AhtashamShahzad3 2 년 전
부모
커밋
1f87ee94c9
2개의 변경된 파일210개의 추가작업 그리고 157개의 파일을 삭제
  1. BIN
      BOS_CHOCH.ex5
  2. 210 157
      BOS_CHOCH.mq5

BIN
BOS_CHOCH.ex5


+ 210 - 157
BOS_CHOCH.mq5

@@ -83,6 +83,8 @@ datetime time_of_candle = 0.0;
83 83
 datetime time_to_place_trade = 0.0;
84 84
 datetime high_index_time;
85 85
 datetime low_index_time;
86
+datetime tp_date_time_buy;
87
+datetime tp_date_time_sell;
86 88
 
87 89
 
88 90
 double hi;
@@ -601,6 +603,7 @@ void choch(int i)
601 603
          // -----------------------------------------------------------------------------------------------------------------------------------------------------------
602 604
          int chock_index = iBarShift(Symbol(), PERIOD_CURRENT, choch_index_time, false);
603 605
          chock_index++;
606
+         datetime ti = choch_index_time;
604 607
 
605 608
          HIGH = iHigh(Symbol(),PERIOD_CURRENT,chock_index);  // save high and low of the chock prev index to compare
606 609
          LOW  = iLow(Symbol(),PERIOD_CURRENT,chock_index);
@@ -613,10 +616,17 @@ void choch(int i)
613 616
             ObjectDelete(0,"target line");
614 617
            }
615 618
 
616
-         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)));
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
+         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)));
617 626
            {
618
-            Print("object error ",GetLastError());
627
+            Print("object created from uptrend to downtrend ");
619 628
            }
629
+
620 630
          ObjectSetInteger(0,"target line",OBJPROP_RAY_RIGHT,true);
621 631
          ObjectSetInteger(0,"target line",OBJPROP_COLOR,clrGreen);
622 632
 
@@ -636,7 +646,7 @@ void choch(int i)
636 646
          Print("from where you end ",chock_index1);
637 647
 
638 648
          bool condition_not_match = false;
639
-         for(int p=chock_index - 1 ; p >=chock_index1; p--)
649
+         for(int p=chock_index - 2 ; p >=chock_index1; p--)
640 650
            {
641 651
             if(iLow(Symbol(),PERIOD_CURRENT,p) < HIGH)
642 652
               {
@@ -648,6 +658,7 @@ void choch(int i)
648 658
            {
649 659
             HIGH = 0.0;
650 660
             LOW = 0.0;
661
+            tp_date_time_sell = 0.0;
651 662
             Print("TArget line deleted");
652 663
             condition_not_match = false;
653 664
 
@@ -662,6 +673,10 @@ void choch(int i)
662 673
               }
663 674
 
664 675
            }
676
+         else
677
+           {
678
+            tp_date_time_sell = ti;
679
+           }
665 680
 
666 681
          //-------------------------------------------------------------------------------------------------------------------------------------------------------------------
667 682
          if(signal == "sell")
@@ -776,69 +791,69 @@ void choch(int i)
776 791
 
777 792
          // choch_index_time = iTime(Symbol(),PERIOD_CURRENT,i);
778 793
          // -----------------------------------------------------------------------------------------------------------------------------------------------------------
779
-         chock_index = iBarShift(Symbol(), PERIOD_CURRENT, choch_index_time, false);
780
-         chock_index++;
781
-
782
-         HIGH = iHigh(Symbol(),PERIOD_CURRENT,chock_index);  // save high and low of the chock prev index to compare
783
-         LOW  = iLow(Symbol(),PERIOD_CURRENT,chock_index);
784
-
785
-         Print("from where you start ",chock_index);
786
-
787
-
788
-         if(object_find("target line") > 0)
789
-           {
790
-            ObjectDelete(0,"target line");
791
-           }
792
-
793
-         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)));
794
-           {
795
-            Print("object error ",GetLastError());
796
-           }
797
-         ObjectSetInteger(0,"target line",OBJPROP_RAY_RIGHT,true);
798
-         ObjectSetInteger(0,"target line",OBJPROP_COLOR,clrGreen);
799
-
800
-         if(object_find("target line1") > 0)
801
-           {
802
-            ObjectDelete(0,"target line1");
803
-           }
804
-
805
-         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));
806
-         ObjectSetInteger(0,"target line1",OBJPROP_RAY_RIGHT,true);
807
-         ObjectSetInteger(0,"target line1",OBJPROP_COLOR,clrGreen);
808
-
809
-
810
-         choch_index_time = iTime(Symbol(),PERIOD_CURRENT,i);
811
-
812
-         chock_index1 = iBarShift(Symbol(), PERIOD_CURRENT, choch_index_time, false);
813
-         Print("from where you end ",chock_index1);
814
-
815
-         condition_not_match = false;
816
-         for(int p=chock_index - 1 ; p >=chock_index1; p--)
817
-           {
818
-            if(iLow(Symbol(),PERIOD_CURRENT,p) < HIGH)
819
-              {
820
-               condition_not_match = true;
821
-              }
822
-           }
823
-
824
-         if(condition_not_match == true)
825
-           {
826
-            Print("TArget line deleted");
827
-            HIGH = 0.0;
828
-            LOW = 0.0;
829
-            condition_not_match = false;
830
-
831
-            if(object_find("target line") > 0)
832
-              {
833
-               ObjectDelete(0,"target line");
834
-              }
835
-
836
-            if(object_find("target line1") > 0)
837
-              {
838
-               ObjectDelete(0,"target line1");
839
-              }
840
-
841
-           }
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
+         //           }
842 857
 
843 858
          //-------------------------------------------------------------------------------------------------------------------------------------------------------------------
844 859
          if(signal == "sell")
@@ -976,6 +991,7 @@ void choch(int i)
976 991
          //--------------------------------------------------------------------------------------------------------------------------------------------------------------------
977 992
          int chock_index = iBarShift(Symbol(), PERIOD_CURRENT, choch_index_time, false);
978 993
          chock_index++;
994
+         datetime t = choch_index_time;
979 995
 
980 996
          HIGH = iHigh(Symbol(),PERIOD_CURRENT,chock_index);  // save high and low of the chock prev index to compare
981 997
          LOW  = iLow(Symbol(),PERIOD_CURRENT,chock_index);
@@ -989,7 +1005,19 @@ void choch(int i)
989 1005
             ObjectDelete(0,"target line");
990 1006
            }
991 1007
 
992
-         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));
1008
+
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
+         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
+           {
1017
+            Print("object created from downtrend to uptrend ");
1018
+           }
1019
+
1020
+
993 1021
          ObjectSetInteger(0,"target line",OBJPROP_RAY_RIGHT,true);
994 1022
          ObjectSetInteger(0,"target line",OBJPROP_COLOR,clrGreen);
995 1023
 
@@ -1007,10 +1035,16 @@ void choch(int i)
1007 1035
          Print("from where you end ",chock_index1);
1008 1036
 
1009 1037
          bool condition_not_match = false;
1010
-         for(int p=chock_index -  1 ; p >=chock_index1; p--)
1038
+         for(int p=chock_index -  2 ; p > chock_index1; p--)
1011 1039
            {
1040
+            // Print("index is ",p," time is ", iTime(Symbol(),PERIOD_CURRENT,p));
1041
+            // Print("high is ", iHigh(Symbol(),PERIOD_CURRENT,chock_index)," low is ",LOW);
1042
+
1012 1043
             if(iHigh(Symbol(),PERIOD_CURRENT,p) > LOW)
1013 1044
               {
1045
+               Print("here the condition is get false ");
1046
+               Print("high is ", iHigh(Symbol(),PERIOD_CURRENT,p)," low is ",LOW);
1047
+               Print("index is ",p," time is ", iTime(Symbol(),PERIOD_CURRENT,p));
1014 1048
                condition_not_match = true;
1015 1049
               }
1016 1050
            }
@@ -1020,6 +1054,7 @@ void choch(int i)
1020 1054
             Print("line target deleted :");
1021 1055
             HIGH = 0.0;
1022 1056
             LOW = 0.0;
1057
+            tp_date_time_buy = 0.0;
1023 1058
             condition_not_match = false;
1024 1059
 
1025 1060
             if(object_find("target line") > 0)
@@ -1033,6 +1068,10 @@ void choch(int i)
1033 1068
               }
1034 1069
 
1035 1070
            }
1071
+         else
1072
+           {
1073
+            tp_date_time_buy = t;
1074
+           }
1036 1075
 
1037 1076
          //------------------------------------------------------------------------------------------------------------------------------------------------------------------
1038 1077
          if(signal == "buy")
@@ -1147,65 +1186,65 @@ void choch(int i)
1147 1186
 
1148 1187
          // choch_index_time = iTime(Symbol(),PERIOD_CURRENT,i);
1149 1188
          //--------------------------------------------------------------------------------------------------------------------------------------------------------------------
1150
-         chock_index = iBarShift(Symbol(), PERIOD_CURRENT, choch_index_time, false);
1151
-         chock_index++;
1152
-
1153
-         HIGH = iHigh(Symbol(),PERIOD_CURRENT,chock_index);  // save high and low of the chock prev index to compare
1154
-         LOW  = iLow(Symbol(),PERIOD_CURRENT,chock_index);
1155
-
1156
-         Print("from where you start ",chock_index);
1157
-
1158
-
1159
-
1160
-         if(object_find("target line") > 0)
1161
-           {
1162
-            ObjectDelete(0,"target line");
1163
-           }
1164
-
1165
-         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));
1166
-         ObjectSetInteger(0,"target line",OBJPROP_RAY_RIGHT,true);
1167
-         ObjectSetInteger(0,"target line",OBJPROP_COLOR,clrGreen);
1168
-
1169
-         if(object_find("target line1") > 0)
1170
-           {
1171
-            ObjectDelete(0,"target line1");
1172
-           }
1173
-
1174
-         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));
1175
-         ObjectSetInteger(0,"target line1",OBJPROP_RAY_RIGHT,true);
1176
-         ObjectSetInteger(0,"target line1",OBJPROP_COLOR,clrGreen);
1177
-
1178
-         choch_index_time = iTime(Symbol(),PERIOD_CURRENT,i);
1179
-         chock_index1 = iBarShift(Symbol(), PERIOD_CURRENT, choch_index_time, false);
1180
-         Print("from where you end ",chock_index1);
1181
-
1182
-         condition_not_match = false;
1183
-         for(int p=chock_index - 1 ; p >=chock_index1; p--)
1184
-           {
1185
-            if(iHigh(Symbol(),PERIOD_CURRENT,p) > LOW)
1186
-              {
1187
-               condition_not_match = true;
1188
-              }
1189
-           }
1190
-
1191
-         if(condition_not_match == true)
1192
-           {
1193
-            HIGH = 0.0;
1194
-            LOW = 0.0;
1195
-            Print("line target deleted :");
1196
-            condition_not_match = false;
1197
-
1198
-            if(object_find("target line") > 0)
1199
-              {
1200
-               ObjectDelete(0,"target line");
1201
-              }
1202
-
1203
-            if(object_find("target line1") > 0)
1204
-              {
1205
-               ObjectDelete(0,"target line1");
1206
-              }
1207
-
1208
-           }
1189
+         //         chock_index = iBarShift(Symbol(), PERIOD_CURRENT, choch_index_time, false);
1190
+         //         chock_index++;
1191
+         //
1192
+         //         HIGH = iHigh(Symbol(),PERIOD_CURRENT,chock_index);  // save high and low of the chock prev index to compare
1193
+         //         LOW  = iLow(Symbol(),PERIOD_CURRENT,chock_index);
1194
+         //
1195
+         //         Print("from where you start ",chock_index);
1196
+         //
1197
+         //
1198
+         //
1199
+         //         if(object_find("target line") > 0)
1200
+         //           {
1201
+         //            ObjectDelete(0,"target line");
1202
+         //           }
1203
+         //
1204
+         //         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));
1205
+         //         ObjectSetInteger(0,"target line",OBJPROP_RAY_RIGHT,true);
1206
+         //         ObjectSetInteger(0,"target line",OBJPROP_COLOR,clrGreen);
1207
+         //
1208
+         //         if(object_find("target line1") > 0)
1209
+         //           {
1210
+         //            ObjectDelete(0,"target line1");
1211
+         //           }
1212
+         //
1213
+         //         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));
1214
+         //         ObjectSetInteger(0,"target line1",OBJPROP_RAY_RIGHT,true);
1215
+         //         ObjectSetInteger(0,"target line1",OBJPROP_COLOR,clrGreen);
1216
+         //
1217
+         //         choch_index_time = iTime(Symbol(),PERIOD_CURRENT,i);
1218
+         //         chock_index1 = iBarShift(Symbol(), PERIOD_CURRENT, choch_index_time, false);
1219
+         //         Print("from where you end ",chock_index1);
1220
+         //
1221
+         //         condition_not_match = false;
1222
+         //         for(int p=chock_index - 1 ; p >=chock_index1; p--)
1223
+         //           {
1224
+         //            if(iHigh(Symbol(),PERIOD_CURRENT,p) > LOW)
1225
+         //              {
1226
+         //               condition_not_match = true;
1227
+         //              }
1228
+         //           }
1229
+         //
1230
+         //         if(condition_not_match == true)
1231
+         //           {
1232
+         //            HIGH = 0.0;
1233
+         //            LOW = 0.0;
1234
+         //            Print("line target deleted :");
1235
+         //            condition_not_match = false;
1236
+         //
1237
+         //            if(object_find("target line") > 0)
1238
+         //              {
1239
+         //               ObjectDelete(0,"target line");
1240
+         //              }
1241
+         //
1242
+         //            if(object_find("target line1") > 0)
1243
+         //              {
1244
+         //               ObjectDelete(0,"target line1");
1245
+         //              }
1246
+         //
1247
+         //           }
1209 1248
 
1210 1249
          //------------------------------------------------------------------------------------------------------------------------------------------------------------------
1211 1250
          if(signal == "buy")
@@ -1775,17 +1814,25 @@ void placeBuyTrade()
1775 1814
    double sell_SL = 0,sell_Tp = 0, openPrice = 0,buySL = 0, buyTp = 0;
1776 1815
    openPrice = SymbolInfoDouble(Symbol(),SYMBOL_ASK);
1777 1816
    double Ask = SymbolInfoDouble(Symbol(),SYMBOL_ASK);
1817
+
1778 1818
    int  ch = iBarShift(Symbol(), PERIOD_CURRENT,choch_index_time,false);  // get high of chock index
1779 1819
    buySL = iLow(Symbol(),PERIOD_CURRENT,ch) - stoploss *10 * Point();
1820
+
1821
+   int tp = iBarShift(Symbol(), PERIOD_CURRENT,tp_date_time_buy,false);
1822
+
1823
+   buyTp = iLow(Symbol(),PERIOD_CURRENT,tp);
1824
+
1825
+   // tp_date_time_buy = 0.0;
1780 1826
 //
1781 1827
 //   if(stoploss != 0)
1782 1828
 //     {
1783 1829
 //      buySL = Ask - (stoploss *10* Point());
1784 1830
 //     }
1785
-   if(takeProfit != 0)
1786
-     {
1787
-      buyTp = Ask + (takeProfit *10* Point());
1788
-     }
1831
+//if(takeProfit != 0)
1832
+//  {
1833
+//   buyTp = Ask + (takeProfit *10* Point());
1834
+//  }
1835
+
1789 1836
    double distance = (Ask - buySL)/Point();
1790 1837
    if(trade.PositionOpen(Symbol(),ORDER_TYPE_BUY,getlot(distance),Ask,buySL,buyTp,"Buy Trade Placed"))
1791 1838
      {
@@ -1855,17 +1902,23 @@ void placeSellTrade()
1855 1902
    double sell_SL = 0,sell_Tp = 0, openPrice = 0, buySL = 0, buyTp = 0;
1856 1903
    openPrice = SymbolInfoDouble(Symbol(),SYMBOL_BID);
1857 1904
    double Bid = SymbolInfoDouble(Symbol(),SYMBOL_BID);
1905
+
1858 1906
    int  ch = iBarShift(Symbol(), PERIOD_CURRENT,choch_index_time,false);  // get high of chock index
1859 1907
    sell_SL = iHigh(Symbol(),PERIOD_CURRENT,ch) + stoploss *10 * Point();
1908
+
1909
+   int tp = iBarShift(Symbol(), PERIOD_CURRENT,tp_date_time_sell,false);
1910
+   sell_Tp = iLow(Symbol(),PERIOD_CURRENT,tp);
1911
+
1912
+   //tp_date_time_sell = 0.0;
1860 1913
    double distance = (sell_SL - Bid)/Point();
1861 1914
 //if(stoploss != 0)
1862 1915
 //  {
1863 1916
 //   sell_SL = Bid + (stoploss *10* Point());
1864 1917
 //  }
1865
-   if(takeProfit != 0)
1866
-     {
1867
-      sell_Tp = Bid - (takeProfit *10* Point());
1868
-     }
1918
+//if(takeProfit != 0)
1919
+//  {
1920
+//   sell_Tp = Bid - (takeProfit *10* Point());
1921
+//  }
1869 1922
 
1870 1923
 
1871 1924
    if(trade.PositionOpen(Symbol(),ORDER_TYPE_SELL,getlot(distance),Bid,sell_SL,sell_Tp,"Sell Trade Placed"))
@@ -1895,27 +1948,27 @@ int OnInit()
1895 1948
 
1896 1949
    int idx = 0;
1897 1950
 
1898
-   int user_input_index = iBarShift(Symbol(), PERIOD_CURRENT,inpTime, false);
1899
-   if(ObjectCreate(0,"line",OBJ_VLINE,0,inpTime,iLow(Symbol(),PERIOD_CURRENT,user_input_index)))
1951
+//int user_input_index = iBarShift(Symbol(), PERIOD_CURRENT,inpTime, false);
1952
+//if(ObjectCreate(0,"line",OBJ_VLINE,0,inpTime,iLow(Symbol(),PERIOD_CURRENT,user_input_index)))
1953
+//  {
1954
+//   Print("vertical line created on chart : ");
1955
+//  }
1956
+//else
1957
+//  {
1958
+//   Print("error in creating line : ");
1959
+//  }
1960
+
1961
+
1962
+   int user_input_index = iBarShift(Symbol(), PERIOD_CURRENT, D'2021.09.01 15:30:27', false);
1963
+   if(ObjectCreate(0,"line",OBJ_VLINE,0,D'2021.09.01 15:30:27',iLow(Symbol(),PERIOD_CURRENT,user_input_index)))
1900 1964
      {
1901
-      Print("vertical line created on chart : ");
1965
+      Print("object created on chart : ");
1902 1966
      }
1903 1967
    else
1904 1968
      {
1905
-      Print("error in creating line : ");
1969
+      Print("object not created : ");
1906 1970
      }
1907 1971
 
1908
-
1909
-   //int user_input_index = iBarShift(Symbol(), PERIOD_CURRENT, D'2022.09.01 15:30:27', false);
1910
-   //if(ObjectCreate(0,"line",OBJ_VLINE,0,D'2022.09.01 15:30:27',iLow(Symbol(),PERIOD_CURRENT,user_input_index)))
1911
-   //  {
1912
-   //   Print("object created on chart : ");
1913
-   //  }
1914
-   //else
1915
-   //  {
1916
-   //   Print("object not created : ");
1917
-   //  }
1918
-
1919 1972
    object_find(object_name);
1920 1973
    if(object_find(object_name) == true)
1921 1974
      {
@@ -2072,7 +2125,7 @@ void OnTick()
2072 2125
                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);
2073 2126
 
2074 2127
                if(reversalMax > iLow(Symbol(),PERIOD_CURRENT,1)
2075
-                  && iClose(Symbol(),PERIOD_CURRENT,close_index) < iClose(Symbol(),PERIOD_CURRENT,1))
2128
+                  && iClose(Symbol(),PERIOD_CURRENT,close_index) < iClose(Symbol(),PERIOD_CURRENT,1)  && tp_date_time_buy != 0.0 )
2076 2129
                  {
2077 2130
                   Print("<<<<<<<<<<<< Entry 1 >>>>>>>>>");
2078 2131
                   placeBuyTrade();
@@ -2092,7 +2145,7 @@ void OnTick()
2092 2145
 
2093 2146
               }
2094 2147
 
2095
-            if(od_1[m].EntryCon == 1 && iTime(Symbol(),PERIOD_CURRENT,1) == 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*/)
2148
+            if(od_1[m].EntryCon == 1 && iTime(Symbol(),PERIOD_CURRENT,1) == 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*/)
2096 2149
               {
2097 2150
 
2098 2151
                //Print("i am in enrtry condition 1 : ");
@@ -2112,7 +2165,7 @@ void OnTick()
2112 2165
                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);
2113 2166
 
2114 2167
                if(reversalMin < iHigh(Symbol(),PERIOD_CURRENT,1)
2115
-                  && iClose(Symbol(),PERIOD_CURRENT,close_index) > iClose(Symbol(),PERIOD_CURRENT,1))
2168
+                  && iClose(Symbol(),PERIOD_CURRENT,close_index) > iClose(Symbol(),PERIOD_CURRENT,1) && tp_date_time_sell != 0.0 )
2116 2169
                  {
2117 2170
                   placeSellTrade();
2118 2171
                   remove_value_from_structure();
@@ -2133,7 +2186,7 @@ void OnTick()
2133 2186
 
2134 2187
             // second condition match
2135 2188
 
2136
-            if(od_1[m].EntryCon == 2 && TimeCurrent() > od_1[m].Time_of_candle_For_trade && od_1[m].Signal == "buy" && od_1[m].Time_of_candle_For_trade != 0 /*&& HIGH != 0 && LOW != 0*/)
2189
+            if(od_1[m].EntryCon == 2 && TimeCurrent() > od_1[m].Time_of_candle_For_trade && od_1[m].Signal == "buy" && od_1[m].Time_of_candle_For_trade != 0  /*&& HIGH != 0 && LOW != 0*/)
2137 2190
               {
2138 2191
                // Print("time is greater and signal is buy ",TimeCurrent());
2139 2192
                // Print("i am in enrtry condition 1 : ");
@@ -2155,7 +2208,7 @@ void OnTick()
2155 2208
                if(value_close_high(close_index) == true)
2156 2209
                  {
2157 2210
                   if(iClose(Symbol(),PERIOD_CURRENT,close_index) > iLow(Symbol(),PERIOD_CURRENT,1)
2158
-                     && iClose(Symbol(),PERIOD_CURRENT,close_index) < iClose(Symbol(),PERIOD_CURRENT,1))
2211
+                     && iClose(Symbol(),PERIOD_CURRENT,close_index) < iClose(Symbol(),PERIOD_CURRENT,1) && tp_date_time_buy != 0.0 )
2159 2212
                     {
2160 2213
                      Print("<<<<<<<<<<<< Entry 2 >>>>>>>>>");
2161 2214
                      placeBuyTrade();
@@ -2176,7 +2229,7 @@ void OnTick()
2176 2229
 
2177 2230
               }
2178 2231
 
2179
-            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*/)
2232
+            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*/)
2180 2233
               {
2181 2234
 
2182 2235
                // Print("time is greater and signal is sell ",TimeCurrent());
@@ -2197,7 +2250,7 @@ void OnTick()
2197 2250
                if(value_close_low(close_index) == true)
2198 2251
                  {
2199 2252
                   if(iClose(Symbol(),PERIOD_CURRENT,close_index) < iHigh(Symbol(),PERIOD_CURRENT,1)
2200
-                     && iClose(Symbol(),PERIOD_CURRENT,close_index) > iClose(Symbol(),PERIOD_CURRENT,1))
2253
+                     && iClose(Symbol(),PERIOD_CURRENT,close_index) > iClose(Symbol(),PERIOD_CURRENT,1) && tp_date_time_sell!= 0.0 )
2201 2254
                     {
2202 2255
                      placeSellTrade();
2203 2256
                      remove_value_from_structure();