1. InstaForex

    Скрыть объявление
  2. Уважаемый гость! Чтобы просмотреть скрытую часть информации Вам нужно зарегистрироваться.

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

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

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

  1. Phyton

    Phyton Участник

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

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

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

    Phyton Участник

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

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

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

    Регистрация:
    3 янв 2013
    Сообщения:
    1.830
    Симпатии:
    347
    Пол:
    Мужской
    Вот вроде раскометировал, будут вопросы пишите
    Код:
    //+------------------------------------------------------------------+
    //|                                                          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.830
    Симпатии:
    347
    Пол:
    Мужской
    Верно, писал не заметил....
     
  7. Ildarvin

    Ildarvin Участник

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

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

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

    Ildarvin Участник

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

    Ildarvin Участник

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

    Вот !
     
  11. Admin

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

    Регистрация:
    3 янв 2013
    Сообщения:
    1.830
    Симпатии:
    347
    Пол:
    Мужской
    Нужно делать проверку деления на ноль
    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
    Сообщения:
    17
    Симпатии:
    2
    Пол:
    Мужской
    Ок . Спасибо !
     

Поделиться этой страницей