Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 238

 
forexman77:

На оптимизацию уходит много времени по сравнению с MQL4.

В четверке использую проверку нового бара, на нем записываю значение пользовательского индикатора, а стоп и профит трейлинги вычисляются все время.

Благодаря такой конструкции значительно сокращается время оптимизации.

В MQL5 не совсем понятно будет ли это работать.

1.Если правильно понимаю в пятой версии нет массивов Close[], нужно так же, как и для индикатора запрашивать данные и копировать в массив, чтобы получить массив цен.

2.Логично предположу, что сначала необходимо запросить котировки и записать их в буфер, а уже затем после проверки нового бара обновлять значение индикатора?

3.Прилагаю советника, что использую в качестве шаблона. Посмотрите, может где-то у меня явные ошибки, из-за которых увеличивается время тестирования.

4.Еще заметил при одиночном прогоне первая половина проходит значительно быстрее второй. С чем это может быть связано?

5. Как можно еще сократить время оптимизации?

4. Тоже заметил, что при тестировании вначале очень быстро идёт процесс, а потом замедляется и под конец ну очень медленно тестируется.
 
paladin800:
4. Тоже заметил, что при тестировании вначале очень быстро идёт процесс, а потом замедляется и под конец ну очень медленно тестируется.
Наверное, это связано с этим.
 
Reshetov:
  1. Правильно
  2. Тоже правильно
  3. Посмотрел код. Могу посоветовать использовать стандартную библиотеку.
  4. Фиг его знает? У меня вроде бы без разницы?
  5. Воспользоваться облачными вычислениями
paladin800:
4. Тоже заметил, что при тестировании вначале очень быстро идёт процесс, а потом замедляется и под конец ну очень медленно тестируется.
Fleder:
Наверное, это связано с этим.

Спасибо! Вот тут нашел хороший на материал на эту тему https://www.mql5.com/ru/forum/23162 (второе сообщение, две ссылки)

Там много букв и кода. Вообщем надо много думать и читать)

И еще по теме, есть советник, в котором  порядка 12 переменных для оптимизации. Внизу под шагами получается два-три миллиона, оптимизация будет стоить

непомерно дорого в облаке, даже на контрольных точках. Примерно на 100 тысячах бакс было. Но, только в пятом метатрейдере можно получить оптимизацию того качества, которое необходимо. 

Порционное вычисление в индикаторе
Порционное вычисление в индикаторе
  • www.mql5.com
Индикатор производит вычисление одного значения для бара достаточно длительное время (запрос к БД, вычисление на стороне БД, возврат значения функции).
 

forexman77:

И еще по теме, есть советник, в котором  порядка 12 переменных для оптимизации. Внизу под шагами получается два-три миллиона, оптимизация будет стоить

непомерно дорого в облаке, даже на контрольных точках. Примерно на 100 тысячах бакс было. Но, только в пятом метатрейдере можно получить оптимизацию того качества, которое необходимо. 

У меня советники по 20 входных  параметров, из которых 18 оптимизируемых. Оптимизирую вообще без облака, т.к. скорость оптимизации + форвардного тестирования приемлемая. В коде использовалась стандартная библиотека.
 
Reshetov:
У меня советники по 20 входных  параметров, из которых 18 оптимизируемых. Оптимизирую вообще без облака, т.к. скорость оптимизации + форвардного тестирования приемлемая. В коде использовалась стандартная библиотека.
Спасибо! Это очень интересно. Наверняка, я что-то делаю не правильно. Надо изучить этот предмет.
 

Здравствуйте.

 Хочу узнать короткое имя индикатора на графике. Сделал примитивный скрипт. Но компилятор ругается - 'IndicatorName' - function not defined . Как добиться своего?

//+------------------------------------------------------------------+
//|                                                   TestScript.mq5 |
//|                        Copyright 2014, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2014, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   string name=IndicatorName(0,0);
   Alert("Короткое имя индикатора - ",name);
  }
 

Есть индикатор, которому хочется отрисовать один из своих буферов в чарте основного окна, а другой - в дополнительном окне. 2 разных индикатора делать не хочется. Как объяснить компьютеру, чего ему делать, или такое невозможно в МТ5?

 
RedFish:

Здравствуйте.

 Хочу узнать короткое имя индикатора на графике. Сделал примитивный скрипт. Но компилятор ругается - 'IndicatorName' - function not defined . Как добиться своего?

Компилятор Вам подсказывает, что такой функции (IndicatorName) нет. Используйте функцию ChartIndicatorName(). 
 
YAndrey:

Есть индикатор, которому хочется отрисовать один из своих буферов в чарте основного окна, а другой - в дополнительном окне. 2 разных индикатора делать не хочется. Как объяснить компьютеру, чего ему делать, или такое невозможно в МТ5?

Можно сделать два отдельных индикатора. И один помещать на график из другого с помощью функции IndicatorCreate().
 
tol64:
Компилятор Вам подсказывает, что такой функции (IndicatorName) нет. Используйте функцию ChartIndicatorName(). 
Спасибо tol64.