alex30774

 
Уровень 20

  Торгую в компаниях:


Группа "Стол заказов MQL"

Рейтинг 2146



РЕКОМЕНДУЮ



Добавить индекс сигнала в информационный индикатор.

Здравствуйте, Андрей.
Добавьте пожалуйста выбор индекса сигнала в этот информационный индикатор
zakaz.opentraders.ru/83624.html


Как это дожно работать: к примеру сейчас индикатор показывает максимальное и минимальное значение за n-ое количество баров.А нужно что бы была воэможность выбирать индекс сигнала.

Поставили к примеру значение индекса нуль, тогда индикатор показывает максимальное и минимальное значение (то есть по умолчанию, как сейчас уже прописано в индикаторе)

Поставили к примеру значение индекса единицу, тогда индикатор показывает предмаксимальное и предминимальное значение.

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

В настройки добавить параметр номер индекса.
  • 0
  • Просмотров: 1317
  • 20 октября 2022, 18:43
  • alex30774
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

Вступите в группу "Стол заказов MQL", чтобы следить за обновлениями
ПРИСОЕДИНИТЬСЯ К ГРУППЕ
присоединиться
  Предыдущая запись в группе
Автоматизация советника-панели
Следующая запись в группе  
максимум вчерашнего дня
20 октября 2022
21 октября 2022

Брокер для ваших роботов, 15 лет на рынке

Комментарии (19)

+
+1
на 27-е
avatar

  35  AM2 Сообщений: 16250 - Андрей

  • 20 октября 2022, 20:10
+
0
Спасибо, буду ждать.
avatar

  20  alex30774 Автор Сообщений: 748

  • 20 октября 2022, 20:16
+
0
Здравствуйте, Андрей, вы наверное забыли про мой заказ?
avatar

  20  alex30774 Автор Сообщений: 748

  • 29 октября 2022, 10:07
+
0
смотрю сейчас как это можно сделать
avatar

  35  AM2 Сообщений: 16250 - Андрей

  • 29 октября 2022, 10:47
+
+1
avatar

  35  AM2 Сообщений: 16250 - Андрей

  • 29 октября 2022, 12:02
+
0
Жаль, я по нему собирался тейкпрофит(максимальный сигнал* на коэфициент), стоплос(предмаксимальный сигнал*на коэфициент), трал(предпредмаксимальный сигнал*на коэфициент) и уровень безубытка (пятый с верху сигнал*на коэфициент)ставить.
Спасибо, что не оставили без внимания мой заказ.
Редактирован: 29 октября 2022, 13:31
avatar

  20  alex30774 Автор Сообщений: 748

  • 29 октября 2022, 12:28
+
+1
доделал
avatar

  35  AM2 Сообщений: 16250 - Андрей

  • 29 октября 2022, 15:31
+
0
Скиньте тогда пожалуста готовый вариант.
Тот что скачал при индексе 1, на селл работает коректно, а на бай показывает неправильно.
При индексе 2 показывает неправильно и для селл, и для бай.
А скачал я индикатор в 15:58

У вас на скришоте на вид правильно показывает

P.S. Перезапустил терминал и всё заработало спасибо огромное.
Редактирован: 29 октября 2022, 16:28
avatar

  20  alex30774 Автор Сообщений: 748

  • 29 октября 2022, 15:48
+
+1
это скрин. индекс 1, баров 140:



вот кодом:


//+------------------------------------------------------------------+
//|                                                          QQQ.mq5 |
//|                                              Copyright 2022, AM2 |
//|                                     https://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022, AM2"
#property link      "https://www.forexsystems.biz"
#property version   "1.00"
#property indicator_chart_window

#property indicator_buffers 2

#property indicator_plots 0

input int sf=5;
input int index=1;
input int bars=140;
input string name="QQE Arrow";

int h=0;

double up[],dn[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,up,INDICATOR_CALCULATIONS);
   SetIndexBuffer(1,dn,INDICATOR_CALCULATIONS);

   ArraySetAsSeries(up,1);
   ArraySetAsSeries(dn,1);

   h=iCustom(NULL,0,name,sf);

   Comment("");
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   ObjectsDeleteAll(0,0,OBJ_LABEL);
   Comment("");
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutLabel(string nm,string text,int x,int y, color clr)
  {
//--- создадим текстовую метку
   ObjectCreate(0,nm,OBJ_LABEL,0,0,0);
//--- установим координаты метки
   ObjectSetInteger(0,nm,OBJPROP_XDISTANCE,x);
   ObjectSetInteger(0,nm,OBJPROP_YDISTANCE,y);
//--- установим угол графика, относительно которого будут определяться координаты точки
   ObjectSetInteger(0,nm,OBJPROP_CORNER,0);
//--- установим текст
   ObjectSetString(0,nm,OBJPROP_TEXT,text);
//--- установим шрифт текста
   ObjectSetString(0,nm,OBJPROP_FONT,"Verdana");
//--- установим размер шрифта
   ObjectSetInteger(0,nm,OBJPROP_FONTSIZE,12);
//--- установим цвет
   ObjectSetInteger(0,nm,OBJPROP_COLOR,clr);
  }
//+------------------------------------------------------------------+
//| 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[])
  {
//---
   CopyBuffer(h,2,0,bars,up);
   CopyBuffer(h,3,0,bars,dn);

   ArraySort(up);
   ArraySort(dn);

   int n=0;
   
   for(int i=0; i<bars; i++)
     {
      if(up[i]>0)
         n++;
     }   

   PutLabel("max","Максимальный селл сигнал: "+string(NormalizeDouble(dn[index],_Digits)),11,22,Red);
   PutLabel("min","Минимальный бай сигнал: " +string(NormalizeDouble(up[n-index-1],_Digits)),11,44,DodgerBlue);

   Comment(n);

//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+



в базе обновил: www.opentraders.ru/downloads/3348/
avatar

  35  AM2 Сообщений: 16250 - Андрей

  • 29 октября 2022, 16:31
+
+1
для удобства проверки вывел индексы на экран. проверил 0-4, все совпало:




//+------------------------------------------------------------------+
//|                                                          QQQ.mq5 |
//|                                              Copyright 2022, AM2 |
//|                                     https://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022, AM2"
#property link      "https://www.forexsystems.biz"
#property version   "1.00"
#property indicator_chart_window

#property indicator_buffers 2

#property indicator_plots 0

input int sf=5;
input int index=1;
input int bars=140;
input string name="QQE Arrow";

int h=0;

double up[],dn[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,up,INDICATOR_CALCULATIONS);
   SetIndexBuffer(1,dn,INDICATOR_CALCULATIONS);

   ArraySetAsSeries(up,1);
   ArraySetAsSeries(dn,1);

   h=iCustom(NULL,0,name,sf);

   Comment("");
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   ObjectsDeleteAll(0,0,OBJ_LABEL);
   Comment("");
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutLabel(string nm,string text,int x,int y, color clr)
  {
//--- создадим текстовую метку
   ObjectCreate(0,nm,OBJ_LABEL,0,0,0);
//--- установим координаты метки
   ObjectSetInteger(0,nm,OBJPROP_XDISTANCE,x);
   ObjectSetInteger(0,nm,OBJPROP_YDISTANCE,y);
//--- установим угол графика, относительно которого будут определяться координаты точки
   ObjectSetInteger(0,nm,OBJPROP_CORNER,0);
//--- установим текст
   ObjectSetString(0,nm,OBJPROP_TEXT,text);
//--- установим шрифт текста
   ObjectSetString(0,nm,OBJPROP_FONT,"Verdana");
//--- установим размер шрифта
   ObjectSetInteger(0,nm,OBJPROP_FONTSIZE,12);
//--- установим цвет
   ObjectSetInteger(0,nm,OBJPROP_COLOR,clr);
  }
//+------------------------------------------------------------------+
//| 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[])
  {
//---
   CopyBuffer(h,2,0,bars,up);
   CopyBuffer(h,3,0,bars,dn);

   ArraySort(up);
   ArraySort(dn);

   int n=0;
   string s="";

   for(int i=0; i<bars; i++)
     {
      if(up[i]>0)
         n++;

      s+="\n"+(string)NormalizeDouble(up[i],2)+"          "+(string)NormalizeDouble(dn[i],2);
     }

   PutLabel("max","Максимальный селл сигнал: "+string(NormalizeDouble(dn[index],_Digits)),11,22,Red);
   PutLabel("min","Минимальный бай сигнал: " +string(NormalizeDouble(up[n-index-1],_Digits)),11,44,DodgerBlue);

   Comment(s);

//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+

avatar

  35  AM2 Сообщений: 16250 - Андрей

  • 29 октября 2022, 16:50
+
0
Спасибо огромное, но не работает.Скорей всего что то с моим терминалом не впорядке.


avatar

  20  alex30774 Автор Сообщений: 748

  • 29 октября 2022, 17:43
+
0
Если не секрет у вас чей терминал, какого брокера? Хочу попробовать на вашем.
avatar

  20  alex30774 Автор Сообщений: 748

  • 29 октября 2022, 17:52
+
0
у меня робо
avatar

  35  AM2 Сообщений: 16250 - Андрей

  • 29 октября 2022, 17:57
+
0
Хорошо, спасибо, завтра открою у них демо и попробую.
avatar

  20  alex30774 Автор Сообщений: 748

  • 29 октября 2022, 18:02
+
0
На Альпари красные стрелки работают правильно, а синие (для покупок) нет
avatar

  20  alex30774 Автор Сообщений: 748

  • 29 октября 2022, 18:06
+
0
биток открыл который у вас по нулям. работает:

avatar

  35  AM2 Сообщений: 16250 - Андрей

  • 29 октября 2022, 18:18
+
0
Сейчас, то же правильно работает на альпари.
Но почему то красные стрелки правильно работают уже через минуту или после смены таймфрейма зад назад, а вот синие подгружаются минут пятнадцать(смена таймфрейма не помогает).
А на валютах синие стрелки до сих пор не подгрузились(нули показывают), но это наверно из-за того что свежих тиков нет.
avatar

  20  alex30774 Автор Сообщений: 748

  • 29 октября 2022, 18:35
+
0
Проверил на Альфа-форексе: там сразу подгружается индикатор, и даже на валютах(хотя они сегодня не торгуются).Значит что-то не то с Альпари.
Хотел на робо демо-счёт открыть, но передумал: они не сотрудничают с гражданами из России.
avatar

  20  alex30774 Автор Сообщений: 748

  • 29 октября 2022, 19:14
+
0
Сегодня правильно показывает даже на Альпари.
avatar

  20  alex30774 Автор Сообщений: 748

  • 31 октября 2022, 11:30

Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий