Selaa lähdekoodia

ticket # 1476

AhtashamShahzad3 2 vuotta sitten
vanhempi
commit
6d0f10a3a3
2 muutettua tiedostoa jossa 80 lisäystä ja 71 poistoa
  1. BIN
      MK_BOS_CHOCH.ex5
  2. 80 71
      MK_BOS_CHOCH.mq5

BIN
MK_BOS_CHOCH.ex5


+ 80 - 71
MK_BOS_CHOCH.mq5

@@ -24,6 +24,8 @@ int index_of_low = 0;
24
 int index_of_high = 0;
24
 int index_of_high = 0;
25
 int high_index=0;
25
 int high_index=0;
26
 double high,low,low1,high1;
26
 double high,low,low1,high1;
27
+
28
+bool choch = false;
27
 //+------------------------------------------------------------------+
29
 //+------------------------------------------------------------------+
28
 //| Expert initialization function                                   |
30
 //| Expert initialization function                                   |
29
 //+------------------------------------------------------------------+
31
 //+------------------------------------------------------------------+
@@ -109,28 +111,52 @@ void foo(int index)
109
                  {
111
                  {
110
                   // print("hi");
112
                   // print("hi");
111
                   double close = iClose(Symbol(),PERIOD_CURRENT,l);
113
                   double close = iClose(Symbol(),PERIOD_CURRENT,l);
114
+                  double low3  = iLow(Symbol(),PERIOD_CURRENT,l);
112
 
115
 
113
                   if(close < low)
116
                   if(close < low)
114
                     {
117
                     {
115
                      double price_low = iLow(Symbol(),PERIOD_CURRENT,l+1);
118
                      double price_low = iLow(Symbol(),PERIOD_CURRENT,l+1);
116
-                     double time = iTime(Symbol(),PERIOD_CURRENT,l+1);
117
-                     double time1 = iTime(Symbol(),PERIOD_CURRENT,l-1);
118
-                     ObjectCreate(0,"tline1",OBJ_TREND,0,time,price_low,time1,price_low);
119
+                     datetime time = iTime(Symbol(),PERIOD_CURRENT,l+1);
120
+                     datetime time1 = iTime(Symbol(),PERIOD_CURRENT,l-1);
121
+                     //ObjectCreate(0,"tline1",OBJ_TREND,0,time,price_low,time1,price_low);
119
                      trend = "downtrend";
122
                      trend = "downtrend";
120
                      Print("choch");
123
                      Print("choch");
121
                      index_of_last_high = i;
124
                      index_of_last_high = i;
122
                      Print("close", close);
125
                      Print("close", close);
126
+                     choch = true;
127
+                     break;
128
+
129
+                    }
130
+                  if(low3 < low)
131
+                    {
132
+                     double price_low = iLow(Symbol(),PERIOD_CURRENT,l+1);
133
+                     datetime time = iTime(Symbol(),PERIOD_CURRENT,l+1);
134
+                     datetime time1 = iTime(Symbol(),PERIOD_CURRENT,l-1);
135
+                     //ObjectCreate(0,"tline1",OBJ_TREND,0,time,price_low,time1,price_low);
136
+                     trend = "downtrend";
137
+                     Print("choch in condition 3");
138
+                     index_of_last_high = i;
139
+                     Print("close", close);
140
+                     choch = true;
123
                      break;
141
                      break;
124
 
142
 
125
                     }
143
                     }
126
 
144
 
127
                  }
145
                  }
128
-               Print("index of last updated high is : ",index_of_last_high);
129
-               hi = iHigh(Symbol(),PERIOD_CURRENT,index_of_last_high+1);
130
-               lo = iLow(Symbol(),PERIOD_CURRENT,index_of_last_high+1);
146
+               if(choch == true)
147
+                 {
148
+                  hi = iHigh(Symbol(),PERIOD_CURRENT,index_of_last_high+1);
149
+                  lo = iLow(Symbol(),PERIOD_CURRENT,index_of_last_high+1);
150
+
151
+                  Print(" buy and sell high index is ",index_of_last_high+1);
152
+                  Print(" high price is ", hi);
153
+                  Print(" low price is ", lo);
154
+
155
+                  hi = 0.0;
156
+                  lo =0.0;
157
+                  choch = false;
158
+                 }
131
 
159
 
132
-               Print("hy",hi, "index is : ",index_of_last_high+1);
133
-               Print("ho",lo);
134
 
160
 
135
                index = i;
161
                index = i;
136
 
162
 
@@ -197,7 +223,7 @@ void foo(int index)
197
                     {
223
                     {
198
 
224
 
199
                      high1 = iHigh(Symbol(),PERIOD_CURRENT,index - k);
225
                      high1 = iHigh(Symbol(),PERIOD_CURRENT,index - k);
200
-                     if(high1 > high)
226
+                     if(high1 >= high)
201
                        {
227
                        {
202
                         //Print("here");
228
                         //Print("here");
203
                         high = high1;
229
                         high = high1;
@@ -218,28 +244,64 @@ void foo(int index)
218
                  {
244
                  {
219
                   // print("hi");
245
                   // print("hi");
220
                   double close = iClose(Symbol(),PERIOD_CURRENT,l);
246
                   double close = iClose(Symbol(),PERIOD_CURRENT,l);
247
+                  double high3 = iHigh(Symbol(),PERIOD_CURRENT,l);
248
+
221
                   if(close > high)
249
                   if(close > high)
222
                     {
250
                     {
223
 
251
 
224
                      double price_high = iLow(Symbol(),PERIOD_CURRENT,l+1);
252
                      double price_high = iLow(Symbol(),PERIOD_CURRENT,l+1);
225
-                     double time = iTime(Symbol(),PERIOD_CURRENT,l+1);
226
-                     double time1 = iTime(Symbol(),PERIOD_CURRENT,l-1);
227
-                     bool a = ObjectCreate(0,"tline2",OBJ_TREND,0,time,price_high,time1,price_high);
228
-                     Print("object created : ", a);
253
+                     datetime time = iTime(Symbol(),PERIOD_CURRENT,l+1);
254
+                     datetime time1 = iTime(Symbol(),PERIOD_CURRENT,l-1);
255
+                     //ObjectCreate(0,"tline2",OBJ_TREND,0,time,price_high,time1,price_high);
256
+
229
 
257
 
230
                      trend = "uptrend";
258
                      trend = "uptrend";
231
                      Print("choch");
259
                      Print("choch");
232
                      Print(l);
260
                      Print(l);
233
                      index_of_last_low = i;
261
                      index_of_last_low = i;
234
                      Print("close", close);
262
                      Print("close", close);
263
+                     choch = true;
235
                      break;
264
                      break;
236
 
265
 
237
                     }
266
                     }
238
 
267
 
268
+                  if(high3 > high)
269
+                    {
270
+
271
+                     double price_high = iLow(Symbol(),PERIOD_CURRENT,l+1);
272
+                     datetime time = iTime(Symbol(),PERIOD_CURRENT,l+1);
273
+                     datetime time1 = iTime(Symbol(),PERIOD_CURRENT,l-1);
274
+                     // ObjectCreate(0,"tline2",OBJ_TREND,0,time,price_high,time1,price_high);
275
+
276
+
277
+                     trend = "uptrend";
278
+                     Print("choch in condition 3");
279
+                     Print(l);
280
+                     index_of_last_low = i;
281
+                     Print("close", close);
282
+                     choch = true;
283
+                     break;
284
+
285
+                    }
286
+
287
+
288
+
289
+
239
                  }
290
                  }
240
-               hi = iHigh(Symbol(),PERIOD_CURRENT,index_of_last_low+1);
241
-               lo = iLow(Symbol(),PERIOD_CURRENT,index_of_last_low+1);
291
+               if(choch == true)
292
+                 {
293
+
294
+                  hi = iHigh(Symbol(),PERIOD_CURRENT,index_of_last_low+1);
295
+                  lo = iLow(Symbol(),PERIOD_CURRENT,index_of_last_low+1);
296
+
297
+                  Print(" buy and sell high index is ",index_of_last_low+1);
298
+                  Print(" high price is ", hi);
299
+                  Print(" low price is ", lo);
242
 
300
 
301
+                  hi = 0.0;
302
+                  lo =0.0;
303
+                  choch = false;
304
+                 }
243
                index = i;
305
                index = i;
244
 
306
 
245
               }
307
               }
@@ -266,10 +328,10 @@ int OnInit()
266
 
328
 
267
       datetime time_of_candle = (datetime)ObjectGetInteger(0,"line",OBJPROP_TIME,0);
329
       datetime time_of_candle = (datetime)ObjectGetInteger(0,"line",OBJPROP_TIME,0);
268
 
330
 
269
-      Print("line time: ",time_of_candle);
331
+     // Print("line time: ",time_of_candle);
270
       int index = iBarShift(Symbol(), PERIOD_CURRENT, time_of_candle, false);
332
       int index = iBarShift(Symbol(), PERIOD_CURRENT, time_of_candle, false);
271
-      Print(index);
272
-      Print(index);
333
+      //Print(index);
334
+     // Print(index);
273
 
335
 
274
       //      datetime time_of_candle = (datetime)ObjectGetInteger(0,"line",OBJPROP_TIME,0);
336
       //      datetime time_of_candle = (datetime)ObjectGetInteger(0,"line",OBJPROP_TIME,0);
275
       //      Print("time is " , time_of_candle);
337
       //      Print("time is " , time_of_candle);
@@ -285,8 +347,6 @@ int OnInit()
285
       Print("Object Not Found");
347
       Print("Object Not Found");
286
      }
348
      }
287
 
349
 
288
-
289
-
290
    return(INIT_SUCCEEDED);
350
    return(INIT_SUCCEEDED);
291
   }
351
   }
292
 //+------------------------------------------------------------------+
352
 //+------------------------------------------------------------------+
@@ -312,7 +372,6 @@ void OnTick()
312
 
372
 
313
   }
373
   }
314
 
374
 
315
-
316
 //+------------------------------------------------------------------+
375
 //+------------------------------------------------------------------+
317
 //|                                                                  |
376
 //|                                                                  |
318
 //+------------------------------------------------------------------+
377
 //+------------------------------------------------------------------+
@@ -365,53 +424,3 @@ string checkCandle(int i)  // to check the candle is bullish or bearish
365
 //+------------------------------------------------------------------+
424
 //+------------------------------------------------------------------+
366
 
425
 
367
 //+------------------------------------------------------------------+
426
 //+------------------------------------------------------------------+
368
-
369
-
370
-
371
-
372
-
373
-
374
-/////////////////////////////////////
375
-//void third condition()
376
-//  {
377
-//   if(checkCandle(index) == "Bearish")
378
-//     {
379
-//
380
-//      trend = "downtrend";
381
-//
382
-//      // double high,low = 0.0;
383
-//
384
-//      // to store high and low of the value after the object
385
-//      low = iLow(Symbol(),PERIOD_CURRENT,index);
386
-//
387
-//      //low =  iLow(Symbol(),PERIOD_CURRENT,index-1);
388
-//
389
-//      if(trend == "downtrend")
390
-//        {
391
-//
392
-//         low1 = iLow(Symbol(),PERIOD_CURRENT,i);
393
-//
394
-//
395
-//         if(low1 < low)
396
-//           {
397
-//            low = low1;
398
-//            for(int l=i; l > 0; l--)
399
-//              {
400
-//               // print("hi");
401
-//               double high2 = iHigh(Symbol(),PERIOD_CURRENT,l);
402
-//               if(high2 > high)
403
-//                 {
404
-//
405
-//                  high = high2;
406
-//
407
-//                 }
408
-//
409
-//              }
410
-//           }
411
-//
412
-//        }
413
-//      //
414
-//     }
415
-//
416
-//  }
417
-//+------------------------------------------------------------------+