1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Уважаемый гость! Что бы просмотреть скрытую часть информации Вам нужно зарегистрироваться.

    Быстрая регистрация!

  3. Еще пока действует без депозитный бонус от InstaForex 1500$

    Подробнее 1500$

как прописать пинбар? варинаты

Тема в разделе "MQL 4 уроки, вопросы, подсказки, исправления", создана пользователем Phyton, 12 янв 2016.

  1. Phyton

    Phyton Участник

    Регистрация:
    8 янв 2016
    Сообщения:
    16
    Симпатии:
    0
    добрый день!
    может быть у кого нибудь были наработки по роботу который торгует пинбары?
    или есть какие мысли по этому поводу. пол дня пытаюсь прописать логику, пока что в голове не укладывается как правильно написать.
     
  2. Admin

    Admin Администратор Команда форума

    Регистрация:
    3 янв 2013
    Сообщения:
    1.726
    Симпатии:
    305
    Пол:
    Мужской
    Выложите скриншот с пин баром, чем он характеризуется ?
     
  3. Phyton

    Phyton Участник

    Регистрация:
    8 янв 2016
    Сообщения:
    16
    Симпатии:
    0
    Пин-бар – это свеча с длинным носом (тенью) и маленьким хвостом. Нос в идеале должен быть не менее 2\3 от всей длинны свечи, а тело не более 1\3 всей длинны. Длинная тень у пинбара – это ложный пробой и отказ от того или иного ценового уровня.

    в данной картинке 1 пинбар на покупку
    второй на продажу
    [​IMG]
     
  4. Admin

    Admin Администратор Команда форума

    Регистрация:
    3 янв 2013
    Сообщения:
    1.726
    Симпатии:
    305
    Пол:
    Мужской
    Вот вроде раскометировал, будут вопросы пишите
    Код:
    //+------------------------------------------------------------------+
    //|                                                          123.mq4 |
    //|                              Copyright 2016, Trading-go Project. |
    //|                                             http://trading-go.ru |
    //+------------------------------------------------------------------+
    #property copyright "Copyright 2016, Trading-go Project."
    #property link      "http://trading-go.ru"
    #property version   "1.0" // 12.01.2016
    #property strict
    //+------------------------------------------------------------------+
    void OnTick()
      {
       if(PinBar()==0)// тело вверху нос внизу
         {
    
         }
       if(PinBar()==1) // тело внизу нос в верху
         {
    
         }
       if(PinBar()==-1)
          Print("Пинбара нет");
      }
    //+------------------------------------------------------------------+
    // Функция определит является ли бар под номером 1 пин баром, тоесть это последний закрыты бар, исключая текущий не закрытытй.
    int PinBar()
      {
       int type_pin_bar=-1;
       double bar_size=High[1]-Low[1];
       double bar_body_size=MathAbs(Close[1]-Open[1]); // MathAbs делает любое отрицательное значение положительным то есть -1 становится 1, при этом положительное значение не меняется 1 и на выходе будет 1
       double nos_body_lower=High[1]-fmax(Open[1],Close[1]);// Тело в низу размер носа // fmax выбирает наибольшее значение из 2х внесенных
       double nos_body_upper=fmin(Open[1],Close[1])-Low[1]; // Тело вверху размер носа // fmin выбирает наименьшее значение из 2х внесенных
       if((bar_size/bar_size)>=3) // Если тело свечи в 3 или более раз меньше всей свечи 
         {
          if((bar_size/nos_body_lower)>=2) // тело внизу нос в верху
             type_pin_bar=1; // OP_SELL то же самое что и 1
    
          if((bar_size/nos_body_upper)>=2) // тело вверху нос внизу
             type_pin_bar=0; // OP_BUY то же самое что и 0
         }
       return type_pin_bar;
      }
    //+------------------------------------------------------------------+
    
     
  5. Phyton

    Phyton Участник

    Регистрация:
    8 янв 2016
    Сообщения:
    16
    Симпатии:
    0
    вероятно тут должно быть
    if((bar_size/bar_body_size)>=3
    Код:
    if((bar_size/bar_size)>=3) // Если тело свечи в 3 или более раз меньше всей свечи
     
  6. Admin

    Admin Администратор Команда форума

    Регистрация:
    3 янв 2013
    Сообщения:
    1.726
    Симпатии:
    305
    Пол:
    Мужской
    Верно, писал не заметил....
     
  7. Ildarvin

    Ildarvin Участник

    Регистрация:
    6 ноя 2016
    Сообщения:
    16
    Симпатии:
    2
    Пол:
    Мужской
    Добрый день! Не могли бы проверить код. У меня выдает критическую ошибку zero divide.
     
  8. Admin

    Admin Администратор Команда форума

    Регистрация:
    3 янв 2013
    Сообщения:
    1.726
    Симпатии:
    305
    Пол:
    Мужской
    давай1те код
     
  9. Ildarvin

    Ildarvin Участник

    Регистрация:
    6 ноя 2016
    Сообщения:
    16
    Симпатии:
    2
    Пол:
    Мужской
    код который выше :)
     
  10. Ildarvin

    Ildarvin Участник

    Регистрация:
    6 ноя 2016
    Сообщения:
    16
    Симпатии:
    2
    Пол:
    Мужской

    Вот !
     
  11. Admin

    Admin Администратор Команда форума

    Регистрация:
    3 янв 2013
    Сообщения:
    1.726
    Симпатии:
    305
    Пол:
    Мужской
    Нужно делать проверку деления на ноль
    if(bar_size>0)
    if((bar_size/bar_size)>=3) // Если тело свечи в 3 или более раз меньше всей свечи
    {
    if(nos_body_lower>0)
    if((bar_size/nos_body_lower)>=2) // тело внизу нос в верху
    type_pin_bar=1; // OP_SELL то же самое что и 1
    if(nos_body_upper>0)
    if((bar_size/nos_body_upper)>=2) // тело вверху нос внизу
    type_pin_bar=0; // OP_BUY то же самое что и 0
    }
     
    Ildarvin нравится это.
  12. Ildarvin

    Ildarvin Участник

    Регистрация:
    6 ноя 2016
    Сообщения:
    16
    Симпатии:
    2
    Пол:
    Мужской
    Ок . Спасибо !
     
  13. Ildarvin

    Ildarvin Участник

    Регистрация:
    6 ноя 2016
    Сообщения:
    16
    Симпатии:
    2
    Пол:
    Мужской
    Все отлично, только надо еще одну проверку добавить
    if(bar_body_size>0)