как прописать пинбар? варинаты | Trading Go - Форекс советники, индикаторы и скрипты.
  • Форум восстановлен и работает стабильно!
    Но если что то не отображается нажмите Ctrl+F5
    Благодарим Вас за Ваше Внимание и Понимание!!!
  • Уважаемый гость! Чтобы просмотреть скрытую часть информации Вам нужно зарегистрироваться.

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

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

Phyton

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

Admin

Команда форума
Администратор
Регистрация
3 Янв 2013
Сообщения
2.005
Благодарностей
462
#2
Phyton написал(а):
добрый день!
может быть у кого нибудь были наработки по роботу который торгует пинбары?
или есть какие мысли по этому поводу. пол дня пытаюсь прописать логику, пока что в голове не укладывается как правильно написать.
Выложите скриншот с пин баром, чем он характеризуется ?
 

Phyton

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

в данной картинке 1 пинбар на покупку
второй на продажу
 

Admin

Команда форума
Администратор
Регистрация
3 Янв 2013
Сообщения
2.005
Благодарностей
462
#4
Phyton написал(а):
Trading-Go написал(а):
Выложите скриншот с пин баром, чем он характеризуется ?
Пин-бар – это свеча с длинным носом (тенью) и маленьким хвостом. Нос в идеале должен быть не менее 2\3 от всей длинны свечи, а тело не более 1\3 всей длинны. Длинная тень у пинбара – это ложный пробой и отказ от того или иного ценового уровня.

в данной картинке 1 пинбар на покупку
второй на продажу
Вот вроде раскометировал, будут вопросы пишите
Код:
//+------------------------------------------------------------------+
//|                                                          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;
  }
//+------------------------------------------------------------------+
 

Phyton

Участник
Регистрация
8 Янв 2016
Сообщения
16
Благодарностей
0
Автор темы #5
вероятно тут должно быть
if((bar_size/bar_body_size)>=3
Код:
if((bar_size/bar_size)>=3) // Если тело свечи в 3 или более раз меньше всей свечи
 

Admin

Команда форума
Администратор
Регистрация
3 Янв 2013
Сообщения
2.005
Благодарностей
462
#6
Phyton написал(а):
вероятно тут должно быть
if((bar_size/bar_body_size)>=3
Код:
if((bar_size/bar_size)>=3) // Если тело свечи в 3 или более раз меньше всей свечи
Верно, писал не заметил....
 

Ildarvin

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

Ildarvin

Участник
Регистрация
6 Ноя 2016
Сообщения
17
Благодарностей
2
#10
Вот вроде раскометировал, будут вопросы пишите
Код:
//+------------------------------------------------------------------+
//|                                                          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;
  }
//+------------------------------------------------------------------+

Вот !
 

Admin

Команда форума
Администратор
Регистрация
3 Янв 2013
Сообщения
2.005
Благодарностей
462
#11
Нужно делать проверку деления на ноль
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

Участник
Регистрация
6 Ноя 2016
Сообщения
17
Благодарностей
2
#12
Нужно делать проверку деления на ноль
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
}
Ок . Спасибо !
 
Теги Нет
Сверху