Доработка ботов (советников, индикаторов)

Статус
Закрыто для дальнейших ответов.

Капиталист

Активный участник
А. Я понял. Ты хочешь чтобы тебе бесплатно написали советник. Я пас.

Это не советник автомат, а дописка индикатора я же сказал что вход самостоятельный вхожу я по нескольким индикаторам+ ВСА и прайс экшн на которые 3 года жизни потратил вы можете прикрутить функцию?

p.s просто я остальные индикаторы свернул на скрине чтоб не мешали обозрению
 
Последнее редактирование:

AlexeyVik

Программист mql4 mql5
А зацените что индюк показывает когда ставишь первый период - "1". Вот например тчо показывает индюк с периодами 1,40.(скрин)
Это не грааль случаем? Надо будет в понедельник проверить. Может каждый бар перерисовывает?? Последнее снижение 303 пп.

Налетай ! Разбирай грааль пока есть!!
А чем отличается тобой отмеченное место от того что я отметил?
 

Вложения

  • Bezimyanni_7403119_10705046.png
    Bezimyanni_7403119_10705046.png
    12,9 КБ · Просмотры: 85

ZADEL_21

Активный участник
А чем отличается тобой отмеченное место от того что я отметил?
Колличеством пипсов! Это же очевидно! :laugh:

Индюк явно не только CCI использует на пересечение нуля. Называется он тренд БАР. Значит может быть еще по барам микротренды вычисляет?
 

bornikol

Гуру форума
Извините,что встреваю в ваш диалог.
Меня заинтересовал индикатор Delta_excluzive_2. Искал его в поисковике но не
нашел. Нельзя ли скинуть ссылочку где можно о нем почитать или в двух словах
написать о нем.
Заранее благодарю.
 

boresn

Интересующийся
Помогите пожалуйста )))))))))))

Это ночной скальпер, торгует всего 3 часа. Подскажите где и как можно в коде изменить это время на другое
 

Вложения

eevviill

Заблокирован
Извините,что встреваю в ваш диалог.
Меня заинтересовал индикатор Delta_excluzive_2. Искал его в поисковике но не
нашел. Нельзя ли скинуть ссылочку где можно о нем почитать или в двух словах
написать о нем.
Заранее благодарю.
1)Полистай 5-15 страниц. Там будет ссылка с какой ветки индикатор.
2)Поставь на грфик и через 2 минуты поймёшь.
 

Milord

Местный знаток
гы)
1) время имеет значения от 0 до 23 часов, 24 небывает,так как оно и есть 0
int Hour() - Возвращает текущий час (0,1,2,..23) - из справки МЕ

2)дальше в теле кода - куча констант тех же что вначале..))
и везде стоит 20 и 23 часа..))
 
Последнее редактирование:

AlexeyVik

Программист mql4 mql5
Колличеством пипсов! Это же очевидно! :laugh:

Индюк явно не только CCI использует на пересечение нуля. Называется он тренд БАР. Значит может быть еще по барам микротренды вычисляет?

Это у тебя обычное заблуждение
В коде я сделал комментарии к строкам

Код:
#property copyright "Copyright © 2009, O-bo.com"
#property link      "http://www.o-bo.com"

#property indicator_separate_window
#property indicator_buffers 8
#property indicator_color1 Lime
#property indicator_color2 Red
#property indicator_color3 Green
#property indicator_color4 Maroon
#property indicator_color5 Lime
#property indicator_color6 Red
#property indicator_color7 Green
#property indicator_color8 Maroon
[COLOR=Red]// Это я добавил
#property indicator_width1 2
#property indicator_width2 2
#property indicator_width3 2
#property indicator_width4 2
#property indicator_width5 1
#property indicator_width6 1
#property indicator_width7 1
#property indicator_width8 1
// Так устанавливается ширина линий, гистограмм или размера меток которыми отображается индикатор
// [/COLOR]extern int Shirina=2;//1..5 [COLOR=Red]Эта строка не нужна[/COLOR]
extern int Period1=10;
extern int Period2=100;
extern int TF=60;//1,5,15,30,60,240,1440,10080,43200минут-что соответствует M1,M5,M15,M30,H1,H4,D1,W1,MN1
double Buffer1[];
double Buffer2[];
double Buffer3[];
double Buffer4[];
double Buffer5[];
double Buffer6[];
double Buffer7[];
double Buffer8[];

int init() {
   ObjectCreate("Close line", OBJ_HLINE, 0, Time[40], Close[0]);
   ObjectSet("Close line", OBJPROP_STYLE, STYLE_SOLID);
   ObjectSet("Close line", OBJPROP_COLOR, Silver);
   SetIndexStyle(0, DRAW_HISTOGRAM[COLOR=Red]/*[/COLOR], EMPTY,Shirina[COLOR=Red]*/[/COLOR]);SetIndexBuffer(0, Buffer1);
   SetIndexStyle(1, DRAW_HISTOGRAM[COLOR=Red]/*[/COLOR], EMPTY,Shirina[COLOR=Red]*/[/COLOR]);SetIndexBuffer(1, Buffer2);
   SetIndexStyle(2, DRAW_HISTOGRAM[COLOR=Red]/*[/COLOR], EMPTY,Shirina[COLOR=Red]*/[/COLOR]);SetIndexBuffer(2, Buffer3);
   SetIndexStyle(3, DRAW_HISTOGRAM[COLOR=Red]/*[/COLOR], EMPTY,Shirina[COLOR=Red]*/[/COLOR]);SetIndexBuffer(3, Buffer4);
   SetIndexStyle(4, DRAW_HISTOGRAM[COLOR=Red]/*[/COLOR], EMPTY,Shirina[COLOR=Red]*/[/COLOR]);SetIndexBuffer(4, Buffer5);
   SetIndexStyle(5, DRAW_HISTOGRAM[COLOR=Red]/*[/COLOR], EMPTY,Shirina[COLOR=Red]*/[/COLOR]);SetIndexBuffer(5, Buffer6);
   SetIndexStyle(6, DRAW_HISTOGRAM[COLOR=Red]/*[/COLOR], EMPTY,Shirina[COLOR=Red]*/[/COLOR]);SetIndexBuffer(6, Buffer7);
   SetIndexStyle(7, DRAW_HISTOGRAM[COLOR=Red]/*[/COLOR], EMPTY,Shirina[COLOR=Red]*/[/COLOR]);SetIndexBuffer(7, Buffer8);
   IndicatorShortName("OBO TrendBars");
   return (0);
}

int deinit() {
   ObjectDelete("Close line");
   Comment("");
   return (0);
}

int start() {
   double l_icci_0;
   double l_icci_8;
   int li_16;
   ObjectMove("Close line", 0, Time[20], Close[0]);

   //Comment("O-bo.com - Obo Trend Bars, Sensitivity : " + DoubleToStr(Sensitivity, 0));
   int l_ind_counted_20 = IndicatorCounted();
   if (Bars <= 15) return (0);
   if (l_ind_counted_20 < 1) { [COLOR=Red]// Этот блок программы абсолютно бессмыслен, начинач с этой строки [/COLOR]
      for (int pos = 1; pos <= 15; pos++)
      {
         Buffer1[Bars - pos] = 0.0;
         Buffer3[Bars - pos] = 0.0;
         Buffer2[Bars - pos] = 0.0;
         Buffer4[Bars - pos] = 0.0;
         Buffer5[Bars - pos] = 0.0;
         Buffer7[Bars - pos] = 0.0;
         Buffer6[Bars - pos] = 0.0;
         Buffer8[Bars - pos] = 0.0;
      }
   }[COLOR=Red] // и заканчивая этой строкой. Milord к этому никакого отношения не имеет.[/COLOR]
   if (l_ind_counted_20 > 0) li_16 = Bars - l_ind_counted_20;
   if (l_ind_counted_20 == 0) li_16 = Bars - 15 - 1;
   for (pos = li_16; pos >= 0; pos--)
   {
      [B]l_icci_0[/B] = [COLOR=Red][B]iCCI[/B][/COLOR](NULL,TF, [B]Period2[/B], PRICE_TYPICAL, pos); [COLOR=Red]// Здесь определяется значение индикатора CCI [/COLOR]
      [B]l_icci_8[/B] = [COLOR=Red][B]iCCI[/B][/COLOR](NULL,TF, [B]Period1[/B], PRICE_TYPICAL, pos); [COLOR=Red]// Здесь определяется значение CCI другого периода[/COLOR]
      Buffer1[pos] = EMPTY_VALUE;
      Buffer3[pos] = EMPTY_VALUE;
      Buffer2[pos] = EMPTY_VALUE;
      Buffer4[pos] = EMPTY_VALUE;
      Buffer5[pos] = EMPTY_VALUE;
      Buffer7[pos] = EMPTY_VALUE;
      Buffer6[pos] = EMPTY_VALUE;
      Buffer8[pos] = EMPTY_VALUE;
      if ([B]l_icci_0 >= 0.0 && l_icci_8 >= 0.0[/B]) [COLOR=Red]// Условие в зависимости от значений индикаторов CCI заполняется буфер соответствующего цвета[/COLOR]
      {
         Buffer1[pos] = MathMax(Open[pos], Close[pos]);
         Buffer2[pos] = MathMin(Open[pos], Close[pos]);
         Buffer5[pos] = High[pos];
         Buffer6[pos] = Low[pos];
      } 
      else
      {
         if ([B]l_icci_8 >= 0.0 && l_icci_0 < 0.0[/B]) [COLOR=Red]// Условие в зависимости от значений индикаторов CCI [/COLOR][COLOR=Red]заполняется буфер соответствующего цвета[/COLOR]
         {
            Buffer3[pos] = MathMax(Open[pos], Close[pos]);
            Buffer4[pos] = MathMin(Open[pos], Close[pos]);
            Buffer7[pos] = High[pos];
            Buffer8[pos] = Low[pos];
         } 
         else
         {
            if ([B]l_icci_0 < 0.0 && l_icci_8 < 0.0[/B]) [COLOR=Red]// Условие в зависимости от значений индикаторов CCI [/COLOR][COLOR=Red]заполняется буфер соответствующего цвета[/COLOR]
            {
               Buffer2[pos] = MathMax(Open[pos], Close[pos]);
               Buffer1[pos] = MathMin(Open[pos], Close[pos]);
               Buffer6[pos] = High[pos];
               Buffer5[pos] = Low[pos];
            }
            else 
            {
               if ([B]l_icci_8 < 0.0 && l_icci_0 > 0.0[/B]) [COLOR=Red]// Условие в зависимости от значений индикаторов CCI [/COLOR][COLOR=Red]заполняется буфер соответствующего цвета[/COLOR]
               {
                  Buffer4[pos] = MathMax(Open[pos], Close[pos]);
                  Buffer3[pos] = MathMin(Open[pos], Close[pos]);
                  Buffer8[pos] = High[pos];
                  Buffer7[pos] = Low[pos];
               }
            }
         }
      }
   }
   return (0);
}
Как видно из кода ничего кроме CCI для анализа рынка не используется.
 

ZADEL_21

Активный участник
Это у тебя обычное заблуждение
В коде я сделал комментарии к строкам

Код:
#property copyright "Copyright © 2009, O-bo.com"
#property link      "http://www.o-bo.com"

#property indicator_separate_window
#property indicator_buffers 8
#property indicator_color1 Lime
#property indicator_color2 Red
#property indicator_color3 Green
#property indicator_color4 Maroon
#property indicator_color5 Lime
#property indicator_color6 Red
#property indicator_color7 Green
#property indicator_color8 Maroon
[COLOR=Red]// Это я добавил
#property indicator_width1 2
#property indicator_width2 2
#property indicator_width3 2
#property indicator_width4 2
#property indicator_width5 1
#property indicator_width6 1
#property indicator_width7 1
#property indicator_width8 1
// Так устанавливается ширина линий, гистограмм или размера меток которыми отображается индикатор
// [/COLOR]extern int Shirina=2;//1..5 [COLOR=Red]Эта строка не нужна[/COLOR]
extern int Period1=10;
extern int Period2=100;
extern int TF=60;//1,5,15,30,60,240,1440,10080,43200минут-что соответствует M1,M5,M15,M30,H1,H4,D1,W1,MN1
double Buffer1[];
double Buffer2[];
double Buffer3[];
double Buffer4[];
double Buffer5[];
double Buffer6[];
double Buffer7[];
double Buffer8[];

int init() {
   ObjectCreate("Close line", OBJ_HLINE, 0, Time[40], Close[0]);
   ObjectSet("Close line", OBJPROP_STYLE, STYLE_SOLID);
   ObjectSet("Close line", OBJPROP_COLOR, Silver);
   SetIndexStyle(0, DRAW_HISTOGRAM[COLOR=Red]/*[/COLOR], EMPTY,Shirina[COLOR=Red]*/[/COLOR]);SetIndexBuffer(0, Buffer1);
   SetIndexStyle(1, DRAW_HISTOGRAM[COLOR=Red]/*[/COLOR], EMPTY,Shirina[COLOR=Red]*/[/COLOR]);SetIndexBuffer(1, Buffer2);
   SetIndexStyle(2, DRAW_HISTOGRAM[COLOR=Red]/*[/COLOR], EMPTY,Shirina[COLOR=Red]*/[/COLOR]);SetIndexBuffer(2, Buffer3);
   SetIndexStyle(3, DRAW_HISTOGRAM[COLOR=Red]/*[/COLOR], EMPTY,Shirina[COLOR=Red]*/[/COLOR]);SetIndexBuffer(3, Buffer4);
   SetIndexStyle(4, DRAW_HISTOGRAM[COLOR=Red]/*[/COLOR], EMPTY,Shirina[COLOR=Red]*/[/COLOR]);SetIndexBuffer(4, Buffer5);
   SetIndexStyle(5, DRAW_HISTOGRAM[COLOR=Red]/*[/COLOR], EMPTY,Shirina[COLOR=Red]*/[/COLOR]);SetIndexBuffer(5, Buffer6);
   SetIndexStyle(6, DRAW_HISTOGRAM[COLOR=Red]/*[/COLOR], EMPTY,Shirina[COLOR=Red]*/[/COLOR]);SetIndexBuffer(6, Buffer7);
   SetIndexStyle(7, DRAW_HISTOGRAM[COLOR=Red]/*[/COLOR], EMPTY,Shirina[COLOR=Red]*/[/COLOR]);SetIndexBuffer(7, Buffer8);
   IndicatorShortName("OBO TrendBars");
   return (0);
}

int deinit() {
   ObjectDelete("Close line");
   Comment("");
   return (0);
}

int start() {
   double l_icci_0;
   double l_icci_8;
   int li_16;
   ObjectMove("Close line", 0, Time[20], Close[0]);

   //Comment("O-bo.com - Obo Trend Bars, Sensitivity : " + DoubleToStr(Sensitivity, 0));
   int l_ind_counted_20 = IndicatorCounted();
   if (Bars <= 15) return (0);
   if (l_ind_counted_20 < 1) { [COLOR=Red]// Этот блок программы абсолютно бессмыслен, начинач с этой строки [/COLOR]
      for (int pos = 1; pos <= 15; pos++)
      {
         Buffer1[Bars - pos] = 0.0;
         Buffer3[Bars - pos] = 0.0;
         Buffer2[Bars - pos] = 0.0;
         Buffer4[Bars - pos] = 0.0;
         Buffer5[Bars - pos] = 0.0;
         Buffer7[Bars - pos] = 0.0;
         Buffer6[Bars - pos] = 0.0;
         Buffer8[Bars - pos] = 0.0;
      }
   }[COLOR=Red] // и заканчивая этой строкой. Milord к этому никакого отношения не имеет.[/COLOR]
   if (l_ind_counted_20 > 0) li_16 = Bars - l_ind_counted_20;
   if (l_ind_counted_20 == 0) li_16 = Bars - 15 - 1;
   for (pos = li_16; pos >= 0; pos--)
   {
      [B]l_icci_0[/B] = [COLOR=Red][B]iCCI[/B][/COLOR](NULL,TF, [B]Period2[/B], PRICE_TYPICAL, pos); [COLOR=Red]// Здесь определяется значение индикатора CCI [/COLOR]
      [B]l_icci_8[/B] = [COLOR=Red][B]iCCI[/B][/COLOR](NULL,TF, [B]Period1[/B], PRICE_TYPICAL, pos); [COLOR=Red]// Здесь определяется значение CCI другого периода[/COLOR]
      Buffer1[pos] = EMPTY_VALUE;
      Buffer3[pos] = EMPTY_VALUE;
      Buffer2[pos] = EMPTY_VALUE;
      Buffer4[pos] = EMPTY_VALUE;
      Buffer5[pos] = EMPTY_VALUE;
      Buffer7[pos] = EMPTY_VALUE;
      Buffer6[pos] = EMPTY_VALUE;
      Buffer8[pos] = EMPTY_VALUE;
      if ([B]l_icci_0 >= 0.0 && l_icci_8 >= 0.0[/B]) [COLOR=Red]// Условие в зависимости от значений индикаторов CCI заполняется буфер соответствующего цвета[/COLOR]
      {
         Buffer1[pos] = MathMax(Open[pos], Close[pos]);
         Buffer2[pos] = MathMin(Open[pos], Close[pos]);
         Buffer5[pos] = High[pos];
         Buffer6[pos] = Low[pos];
      } 
      else
      {
         if ([B]l_icci_8 >= 0.0 && l_icci_0 < 0.0[/B]) [COLOR=Red]// Условие в зависимости от значений индикаторов CCI [/COLOR][COLOR=Red]заполняется буфер соответствующего цвета[/COLOR]
         {
            Buffer3[pos] = MathMax(Open[pos], Close[pos]);
            Buffer4[pos] = MathMin(Open[pos], Close[pos]);
            Buffer7[pos] = High[pos];
            Buffer8[pos] = Low[pos];
         } 
         else
         {
            if ([B]l_icci_0 < 0.0 && l_icci_8 < 0.0[/B]) [COLOR=Red]// Условие в зависимости от значений индикаторов CCI [/COLOR][COLOR=Red]заполняется буфер соответствующего цвета[/COLOR]
            {
               Buffer2[pos] = MathMax(Open[pos], Close[pos]);
               Buffer1[pos] = MathMin(Open[pos], Close[pos]);
               Buffer6[pos] = High[pos];
               Buffer5[pos] = Low[pos];
            }
            else 
            {
               if ([B]l_icci_8 < 0.0 && l_icci_0 > 0.0[/B]) [COLOR=Red]// Условие в зависимости от значений индикаторов CCI [/COLOR][COLOR=Red]заполняется буфер соответствующего цвета[/COLOR]
               {
                  Buffer4[pos] = MathMax(Open[pos], Close[pos]);
                  Buffer3[pos] = MathMin(Open[pos], Close[pos]);
                  Buffer8[pos] = High[pos];
                  Buffer7[pos] = Low[pos];
               }
            }
         }
      }
   }
   return (0);
}
Как видно из кода ничего кроме CCI для анализа рынка не используется.

Спасибо. Но кроме как открывать индикаторы редактором mq4 и видеть только явные периоды индикаторов я больше ничего не могу.
 

AlexeyVik

Программист mql4 mql5
Это ночной скальпер, торгует всего 3 часа. Подскажите где и как можно в коде изменить это время на другое
Самый простой вариант, это найти две строки
int Gi_200 = 20;
int Gi_204 = 23;
Это 31 и 32 строки кода. И изменить время на желаемое. После чего откомпилировать.
А самый сложный, это вставить перед ними extern и они будут отображаться во внешних переменных.
Получится так
extern int Gi_200 = 20;
extern int Gi_204 = 23;
 

AlexeyVik

Программист mql4 mql5
Спасибо. Но кроме как открывать индикаторы редактором mq4 и видеть только явные периоды индикаторов я больше ничего не могу.
Ну почему-же. У тебя ещё здорово получается утверждать что индикатор использует ещё и магический шар. :D:D:D
Без обид.:)
 

Milord

Местный знаток
Самый простой вариант, это найти две строки
int Gi_200 = 20;
int Gi_204 = 23;
Это 31 и 32 строки кода. И изменить время на желаемое. После чего откомпилировать.
А самый сложный, это вставить перед ними extern и они будут отображаться во внешних переменных.
Получится так
extern int Gi_200 = 20;
extern int Gi_204 = 23;
ты ниже не пробывал смотреть код?)
там везде стоят значения 20 и 23 часа)):D
 
Последнее редактирование:

AlexeyVik

Программист mql4 mql5
гы)
1) время имеет значения от 0 до 23 часов, 24 небывает,так как оно и есть 0
int Hour() - Возвращает текущий час (0,1,2,..23) - из справки МЕ

2)дальше в теле кода - куча констант тех же что вначале..))
и везде стоит 20 и 23 часа..))
Видимо ты просто не увидел две такие строки
if (Gi_200 >= 24) Gi_200 -= 24;
if (Gi_204 >= 24) Gi_204 -= 24;
Это защита от юзера который может поставить время и 27 часов.
 
Статус
Закрыто для дальнейших ответов.

Отслеживают (859) Посмотреть

Верх