Скачать MetaTrader 5

Индикаторы: PinBar

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Automated-Trading
Админ
105099
Automated-Trading  

PinBar:

Индикатор отмечает на графике пин-бары по заданным параметрам.

Вид графика при "Only extremum = false"

Автор: Михаил

Alexey Kozitsyn
7365
Alexey Kozitsyn  

Вопрос автору. Зачем идут проверки: 

open <= level && close <= level 

и аналогичные им для противоположной фигуры?

PS. + за "картинки" в коде. 

Михаил
2042
Михаил  
Tapochun:

Вопрос автору. Зачем идут проверки: 

open <= level && close <= level 

и аналогичные им для противоположной фигуры?

PS. + за "картинки" в коде. 

 Проверяется что тело свечи находится в пределах заданной зоны.
BredSS
9
BredSS  
Здравствуйте! Может ещё подскажите как в советнике прописать что бы при появлении стрелки сделка открывалась? Помогли бы очень... 
Ruslan Kuchma
1142
Ruslan Kuchma  
Жаль, что много лишних сигналов дает. Чего-то еще не хватает.
Михаил
2042
Михаил  
BredSS:
Здравствуйте! Может ещё подскажите как в советнике прописать что бы при появлении стрелки сделка открывалась? Помогли бы очень... 

   Лучше вставить в код советника функцию поиска пинбара а не стрелки.

   Что-то вроде:

 if (PinBar())
  {
    Ticket = OrderSend(_Symbol, OP_SELLSTOP, lot, price, 5, sl, prof, NULL, 0, 0, clrNONE);
  } 
 bool PinBar()
 {
 double open, close, high, low, dHigh, dLow, upLevel, downLevel;
  int range, body, zone;

  dHigh = iHigh(_Symbol, PERIOD_D1, 0);
  dLow  = iLow(_Symbol, PERIOD_D1, 0);

  open  = iOpen(_Symbol, PERIOD_CURRENT, 1);
  close = iClose(_Symbol, PERIOD_CURRENT, 1);

  high  = iHigh(_Symbol, PERIOD_CURRENT, 1);
  low   = iLow(_Symbol, PERIOD_CURRENT, 1);

  range = (int)MathRound((high - low)/Pp);
  body  = (int)MathRound(MathAbs(open - close)/Pp);
  zone  = (int)MathRound(range * Depth * 0.01);

  
  downLevel = NormalizeDouble(high - zone * Pp, _Digits);
  upLevel   = NormalizeDouble(low + zone * Pp, _Digits);

  if (range > MinRange && range < MaxRange)  
   {
    if (body > MinBody && body < MaxBody)
     {
      if (open <= upLevel && close <= upLevel && high == dHigh) return(true);
      if (open >= downLevel && close >= downLevel && low == dLow) return(true);
     }
   }
  return(false);
 } 
Vitalii Ananev
9472
Vitalii Ananev  
Михаил:

   Лучше вставить в код советника функцию поиска пинбара а не стрелки.

   Что-то вроде:

Или в индикатор приделать два индикаторных буфера, один селл сигнал второй бай сигнал. И в советнике считывать показания этих буферов.
Sergeu Shevchyk
12
Sergeu Shevchyk  
В индикаторе надо добавить функцию для отсылке сигналов на Email
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий