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

Bullra

Новичок
Всем привет! Индикатор берет данные с младших ТФ, но подгружает терминал. Добавил кнопку вкл/выкл, если возможно, просьба сделать так, чтобы при выключении, индикатор полностью переставал бы работать.
 

Вложения

MakarFX

Элитный участник
Всем привет! Индикатор берет данные с младших ТФ, но подгружает терминал. Добавил кнопку вкл/выкл, если возможно, просьба сделать так, чтобы при выключении, индикатор полностью переставал бы работать.
Добавьте строку
C-подобный:
int start()
  {
   if(ObjectGetInteger(ChartID(), buttonId, OBJPROP_STATE))    return(0);
 

FxMen

VIP-участник
Всем добра ! Пожалуйста, отредактируйте индикатор, как показано на скрине. Спасибо !

BSD.jpg
 

Вложения

MakarFX

Элитный участник

Вложения

Ranko

Активный участник
Уважаемые программисты , можете прикрутить стрелки при смене цвета , а точки убрать пожалуйста . Аж в глазах рябит . Спасибо)))
 

Вложения

Ranko

Активный участник
Алексей, если вас не затруднит, помогите пожалуйста с индикатором. Не могу, стрелку правильно выставить.

Посмотреть вложение 545782

На картинке: Линия МА с периодом 20. Нормализована до 3 знаков. (ступенчатая bufer_MA[] );

На каждой ступеньке вверх, выставляется синяя стрелка (код: 159 arrow_up[]);

Количество непрерывных ступеней, записывается в счётчик. ( count_up[] );

Использовал 4 буфера: 1.Линия МА. 2. Синяя стрелка. 3. Счётчик ступеней. 4. Для красной стрелки.


Нужно выставить красную стрелку (круг код: 161) всегда на синюю стрелку,

при таких условиях:

При появлении первой синей стрелки - (это первая ступень вверх) выставить Красную стрелку на синюю стрелку.
При появлении второй синей стрелки - (это вторая ступень вверх) выставить Красную стрелку на синюю новую-верхнюю стрелку. При этом удалить предыдущую Красную стрелку, с нижн(ей-их) ступеней.
При появлении третей синей стрелки - (это третья ступень вверх) выставить Красную стрелку на синюю новую-верхнюю стрелку. При этом удалить предыдущую Красную стрелку, с нижн(ей-их) ступеней.

и т.д.

То есть, если синих стрелок больше одной, и счётчик ступеней больше нуля, то переставить Красную стрелу, на новую (верхнюю) синюю стрелку.


Делал так:

PHP:
#property strict
#property indicator_chart_window

#property indicator_buffers 4

#property indicator_color1 clrSteelBlue
#property indicator_color2 clrDodgerBlue
#property indicator_color3 clrNONE
#property indicator_color4 clrRed




input int period_MA = 20;
input int Normalize = 3;


double bufer_MA[];
double arrow_up[];
double count_up[];


double arr_verh[];

 
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
{
    //--- indicator buffers mapping
    SetIndexBuffer(0, bufer_MA);  SetIndexStyle(0, DRAW_LINE);                                         // Синяя линия
    SetIndexBuffer(1, arrow_up);  SetIndexStyle(1, DRAW_ARROW, 0, 2); SetIndexArrow(1, 159);           // Синяя стрелка
    SetIndexBuffer(2, count_up);  SetIndexStyle(2, DRAW_NONE);                                         // Счётчик ступеней
 
    SetIndexBuffer(3, arr_verh);  SetIndexStyle(3, DRAW_ARROW, 0, 1); SetIndexArrow(3, 161);           // Для красной стрелки

 
    return (INIT_SUCCEEDED);
}

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
{

    int limit = rates_total - prev_calculated;
    if (limit > 1)limit -= 1;


 

    // Ступеньки из линии МА
    for (int i = 0; i < limit; i++)  bufer_MA[i] = NormalizeDouble(iMA(Symbol(), 0, period_MA, 0, 0, 0, i), Normalize);



    // Счётчик количества непрерывных ступеней
    int continuous_steps_up = 0;


    // Определить сколько раз, у первой линии, было непрерывно ступеней вверх.
    for (int i = limit - 1; i >= 0; i--){
 
 
    //+----------------------------------------------------------------------------------------------------+
        if (i < rates_total - 1 && bufer_MA[i] > bufer_MA[i + 1] && bufer_MA[i] != bufer_MA[i + 1]){
            continuous_steps_up++;
            arrow_up[i] = bufer_MA[i];
    

         }
    //+----------------------------------------------------------------------------------------------------+
    //|   счётчик ступеней
    //+----------------------------------------------------------------------------------------------------+
 
      if(   bufer_MA[i] < bufer_MA[i + 1]){   continuous_steps_up = 0;  }

        count_up[i] = continuous_steps_up;
    //+----------------------------------------------------------------------------------------------------+


      }




    return (rates_total);
}

/////////////////////////////////////////////////

Это я так делал..

Не могли бы вы, мне помочь, прикрутить красную стрелку, так как на картинках?


Картинки:
подскажите , а как им пользоваться? Это разве не зиг заг?
 

FxMen

VIP-участник
Макар! Если возможно добавьте пожалуйста М1-5. Спасибо!

bsd15.jpg
 

BUT

Местный знаток

Вложения

AlexeNP

Гуру форума
Приветствую, я ищу эксперта, который сможет автоматизировать индикаторы, простые, только буферы для стрелок продажи и покупки и настройки закрытия по противоположному сигналу, я уверен, что скачал подобный индикатор с этой страницы, но не помню, где он находится.
Ох, грехи мои тяжкие...
Universal Linear Oscillator - положить в папку include
EA Universal Linear Oscillator - положить в папку experts. Обязательно скомпилировать!
Эксперт пока еще не универсальный - работает только с двумя типами индикаторов. Зато этих индикаторов можно много в него заложить. Ограничения - при тестировании требует не меньше 1000 значимых результатов.
EURUSD H1 за 2023 год, параметры по умолчанию
TesterGraph.gif
Количество индикаторов, их настройки - в ваших руках)
 

Вложения

BUT

Местный знаток

Вложения

Fehu

Местный знаток
Здравствуйте, можно переделать индюк с мт4 на 5
 

BUT

Местный знаток
Не могли бы вы добавить возможность закрывать позицию с помощью другого стрелочного индикатора?
Здравствуйте! Добавил. На скрине все настройки расписал. Да, в принципе, итак все ясно. Протестировал, смотрите скрин. Для теста взял рисующий зиг-заг с сигналом на нулевом баре и не рисующий NonLag RSI с сигналом на первом баре.
 

Вложения

  • LUKE'S Universal EA mod 2.mq4
    LUKE'S Universal EA mod 2.mq4
    87 КБ · Просмотры: 47
  • 1719021097775.png
    1719021097775.png
    63,6 КБ · Просмотры: 261
  • 1719021279073.png
    1719021279073.png
    75,8 КБ · Просмотры: 258

BUT

Местный знаток
please turn the indicator into an advisor, and also enable the ability to close trades after certain minutes
В настройках, думаю разберетесь, там все предельно ясно.
Для теста поставил 8 минут с момента открытия ордера.
 

Вложения

  • Valecastro.ex4
    Valecastro.ex4
    13 КБ · Просмотры: 39
  • 1719021982117.png
    1719021982117.png
    77,3 КБ · Просмотры: 125

t2g

Активный участник
Здравствуйте! Добавил. На скрине все настройки расписал. Да, в принципе, итак все ясно. Протестировал, смотрите скрин. Для теста взял рисующий зиг-заг с сигналом на нулевом баре и не рисующий NonLag RSI с сигналом на первом баре.
Спасибо за быстрый ответ
большое спасибо
 
  • Like
Реакции: BUT

BUT

Местный знаток
Thanks, but it opens buy and sell at the same time, check this. I want a sell or buy to open along the arrow
Валëк, я же специально для тебя сделал переменную в настройках с именем используемого индикатора.
1719072647300-png.546164

Тебе нужно или индикатор переименовать так, как указано в переменной. Или переменную изменить так, как называется у тебя индикатор. Возможно, в названии индикатора, у тебя имеются какие-либо еще символы.

Если смотреть твой прошлый пост с этим индикатором, то он имеет еще символы в названии и называется он у тебя "DT-ZigZag-ATR 0 bar arrows (1)". Или переменную приведи к этому имени или имя индикатора измени как указано переменной.
 

Посмотрели (730) Посмотреть

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

Верх