Пожелания для МТ5 - страница 42

 
Lizar:
Нужно выделить блок и нажать shift+tab
Спасибо)
 

Добавьте в учебник в раздел

Справочник MQL5 / Технические индикаторы / iMA  конкретный пример после описания:

applied_price

[in]  Используемая цена. Может быть любой из ценовых констант ENUM_APPLIED_PRICE или хендлом другого индикатора.

 как использовать хендл другого индикатора? что это даст? или можно усреднять только значения стандартный тех.индикаторов? а если есть необходимость нарисовать пользовательский индикатор в indicator_separate_window и в этом же окне нарисовать скользящую среднюю по этому индикатору, iMA() это может?Имею смутные подозрения, что с помощью iMA() можно добиться результата iMAOnArray(), но даже не представляю как, возможно я ошибаюсь

ЗЫ: Может я и многого хочу от МТ5, но на МТ4 встроенная ф-ция iMAOnArray() была теперь она отсутствует, написать пользовательскую ф-цию для расчета среднего значения не составляет труда, но хотелось бы иметь штатные ф-ции для работы с массивами, потратил больше время на поиски информации об iMAOnArray(), чем потребовалось времени на написание собственной ф-ции

 
IgorM:

Добавьте в учебник в раздел

Справочник MQL5 / Технические индикаторы / iMA  конкретный пример после описания:

 как использовать хендл другого индикатора? что это даст? или можно усреднять только значения стандартный тех.индикаторов? а если есть необходимость нарисовать пользовательский индикатор в indicator_separate_window и в этом же окне нарисовать скользящую среднюю по этому индикатору, iMA() это может?Имею смутные подозрения, что с помощью iMA() можно добиться результата iMAOnArray(), но даже не представляю как, возможно я ошибаюсь


Жмем на линк и попадаем в раздел Ценовые константы, где ниже идет пример:

Если технический индикатор для своих расчетов использует ценовые данные, тип которых задается перечислением ENUM_APPLIED_PRICE, то в качестве входного ценового ряда можно указывать хэндл любого индикатора (встроенного в терминал или написанного пользователем). В этом случае для расчетов будут использованы значения нулевого буфера индикатора. Это позволяет легко строить значения одного индикатора по значениям другого индикатора. Хэндл пользовательского индикатора создается вызовом функции iCustom().

Пример:

#property indicator_separate_window
#property indicator_buffers 2
#property indicator_plots   2
//--- input parameters
input int      RSIperiod=14;         // период для вычисления RSI
input int      Smooth=8;             // период сглаживания RSI
input ENUM_MA_METHOD meth=MODE_SMMA// метод сглаживания
//---- plot RSI
#property indicator_label1  "RSI"
#property indicator_type1   DRAW_LINE
#property indicator_color1  Red
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1
//---- plot RSI_Smoothed
#property indicator_label2  "RSI_Smoothed"
#property indicator_type2   DRAW_LINE
#property indicator_color2  Navy
#property indicator_style2  STYLE_SOLID
#property indicator_width2  1
//--- indicator buffers
double         RSIBuffer[];          // здесь мы будем хранить значения RSI
double         RSI_SmoothedBuffer[]; // здесь будут сглаженные значения RSI 
int            RSIhandle;            // дескриптор на индикатор RSI
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
void OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,RSIBuffer,INDICATOR_DATA);
   SetIndexBuffer(1,RSI_SmoothedBuffer,INDICATOR_DATA);
   IndicatorSetString(INDICATOR_SHORTNAME,"iRSI");
   IndicatorSetInteger(INDICATOR_DIGITS,2);
//--- 
   RSIhandle=iRSI(NULL,0,RSIperiod,PRICE_CLOSE);
//---
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                 const int prev_calculated,
                 const int begin,
                 const double &price[]
                 )
 
  {
//--- сбросим в ноль значение последней ошибки 
   ResetLastError();
//--- получим данные индикатора RSI в массив RSIBuffer[]
   int copied=CopyBuffer(RSIhandle,0,0,rates_total,RSIBuffer);
   if(copied<=0)
     {
      Print("Не удалось скопировать значения индикатора RSI. Error = ",
            GetLastError(),",  copied = ",copied);
      return(0);
     }
//--- создадим индикатор средней по значениям индикатора RSI 
   int RSI_MA_handle=iMA(NULL,0,Smooth,0,meth,RSIhandle);
   copied=CopyBuffer(RSI_MA_handle,0,0,rates_total,RSI_SmoothedBuffer);
   if(copied<=0)
     {
      Print("Не удалось скопировать сглаженный индикатор RSI. Error = ",
            GetLastError(),",  copied =",copied);
      return(0);
     }
//--- return value of prev_calculated for next call
   return(rates_total);
  }

 


Вы просто не дочитали один абзац

 

Активно использую штатный трэйлинг стоп. В связи с этим пара пожеланий.

1) Добавить возможность выбрать в меню Столбцы "Уровень трэйлинг стопа". Это, насколько я понимаю, не сложно.

2) Добавить значение TS как свойство позиции с возможностью (именно по выбору пользователя) транслировать/не транслировать уровень TS для конкретной позиции на терминал. Понимаю, что это значительно серьёзнее, чем пункт 1), а реализация TS полностью на стороне сервера серьёзно повышает нагрузку на сервер.

Для чего лично мне был бы полезен пункт 2):

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

- на одном из терминалов вручную открывается позиция и задаётся уровень TS;

- при установке уровня TS на другом терминале TS на первом остаётся неизменным, т.к. сейчас трэйлинг стоп реализован на стороне клиента. Вот это и хотелось бы изменить, причём по желанию клиента.

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций - Документация по MQL5
 
Rosh:

Жмем на линк и попадаем в раздел Ценовые константы, где ниже идет пример:


Вы просто не дочитали один абзац

Примеры действительно есть, но нередко их интуитивно не найдешь, может можно в подобных случаях просто сделать ссылку "пример" - было бы очень удобно, IMHO конечно.
 
Rosh:

Жмем на линк и попадаем в раздел Ценовые константы, где ниже идет пример:


Вы просто не дочитали один абзац

дочитал абзац, но в примере используются только стандартные тех.индикаторы, вопрос про пользовательские индикаторы и ф-цию iMAOnArray()

-хотелось бы видеть можно ли использовать скользящие средние для сглаживания данных пользовательского индикатора 

- думаю не помешали бы ссылки на устаревшие ф-ции, чтобы не искать по форуму, в справке МТ4 был раздел

Справочник MQL4 - Устаревшие функции 

 
xeon:
Примеры действительно есть, но нередко их интуитивно не найдешь, может можно в подобных случаях просто сделать ссылку "пример" - было бы очень удобно, IMHO конечно.
Вы совершенно правы, думаю, что было бы весьма неплохо иметь в правом верхнем углу каждой страниц ссылку "ПРИМЕР", чтобы не искать по всему документу
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Способы привязки объектов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Способы привязки объектов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы объектов / Способы привязки объектов - Документация по MQL5
 
IgorM:

дочитал абзац, но в примере используются только стандартные тех.индикаторы, вопрос про пользовательские индикаторы и ф-цию iMAOnArray()

-хотелось бы видеть можно ли использовать скользящие средние для сглаживания данных пользовательского индикатора 


Приводил выше :

Если технический индикатор для своих расчетов использует ценовые данные, тип которых задается перечислением ENUM_APPLIED_PRICE, то в качестве входного ценового ряда можно указывать хэндл любого индикатора (встроенного в терминал или написанного пользователем).

Читайте также статьи:

 

Если сообщество заинтересует, то можно рассмотреть изменение существующего варианта тестирования и оптимизации. У меня, например, возникает необходимость получать данные тестирования/оптимизации не на одном периоде истории, а сразу на нескольких (скажем, для оценки равномерности работы эксперта). Конечно, можно поочерёдно провести тестирвание/оптимизацию по всем периодам. Но если один период т/о занимает от 0.5 до 1 часа, а вам надо 10--то гораздо удобнее запустить сразу все 10 периодов (например, на ночь) и получить все результаты позднее. Я в настоящее время в экперте в качестве входного параметра указываю период работы типа "Дата от", "Дата до", а на внешней вкладке тестера указываю общий период оптимизации (Даты от/до - один из параметров оптимизации). Но в этом случае время оптимизации каждого прогона по сути равно времени прогона общего большого преиода оптимизации (что на вкладке тестера--ведь тики-то идут постоянно - проверено практически). Вот если бы можно было в тестере указать сразу 2 периода: общий большой и малый внутри него, то проблема была бы решена.  

 

Есть функция ChartIndicatorAdd() добавления индикатора на график. Сделайте, пожалуйста, функцию удаления индикатора с графика. А то получилось как с ядерной бомбой: бомбу придумали, а антибомбу нет.

Документация по MQL5: Операции с графиками / ChartIndicatorAdd
Документация по MQL5: Операции с графиками / ChartIndicatorAdd
  • www.mql5.com
Операции с графиками / ChartIndicatorAdd - Документация по MQL5