Как отобразить пользовательский индикатор на графике тестера стратегий который открывается в конце тестирования или в визуализаторе?
- www.mql5.com
Там немного не то , как я понял при использовании шаблона индикатор пересчитывается заново.
Разобрался с методом AddToChart - к сожалению он существует только в справке, в коде класса он не реализован, видимо предлагается написать его самим, но в справке не слова об этом.
Чтобы нарисовать индикатор без пересчета думаю надо скопировать и записать его буфер, а после прогона эксперта в тестере по этим данным его нарисовать. Осталось придумать как это реализовать.
Там немного не то , как я понял при использовании шаблона индикатор пересчитывается заново.
P.S. Вообще справка по стандартной библиотеке оставляет желать лучшего, примеров мало и разобраться с ней тяжело (возможно только для людей незнакомых с ООП - мне во всяком случае).
Те кто программируют на паскале или C++ просто не понимают как тут все слооооожноооо..... я например :) Ацкий взрыв мозга. Нельзя сделать даже так:
MqlParam params[2][4], param[4]; param=params[2];//invalid array access - бред!
ArrayCopy тоже не годиться. Реализация массивов в MQL просто убога. Куча дополнительных классов которые прыгают с бубном вокруг массивов добавляя им стандартных возможностей. Код становится плохо читаемым + груда лишних операций.
TO All: Можно установить классу свойство в качестве массива? как обращаться к его элементам?
...
TO All: Можно установить классу свойство в качестве массива? как обращаться к его элементам?
Это как?
Может быть переменная разделе public, она будет видна в списке, можно будет с ней работать. Раз перменная, значит и массив может быть.
Это как?
Может быть переменная разделе public, она будет видна в списке, можно будет с ней работать. Раз перменная, значит и массив может быть.
Те кто программируют на паскале или C++ просто не понимают как тут все слооооожноооо..... я например :) Ацкий взрыв мозга. Нельзя сделать даже так:
param=params[2];//invalid array access - бред!
знаток с++? и где в нем так можно сделать?
в с++ на ваше предложение будет ошибка изменения левосторонним оператором.
TO All: Можно установить классу свойство в качестве массива?
(с) Ацкий взрыв мозга
вам это ?
class A { int arr[]; // свойство класса в качестве массива }
знаток с++? и где в нем так можно сделать?
в с++ на ваше предложение будет ошибка изменения левосторонним оператором.
(с) Ацкий взрыв мозга
вам это ?
Нет дельфи, на паскале так можно сделать. На си утверждать не буду.
То, что в класс вставить переменную массива можно - это ясно, но как к ней обращаться через Public свойства?
Вроде простая задача на пять строк максимум: создать 4 индикатора (SMA) и бросить их на график, красиво разукрасить.
Логично было бы использовать класс стандартной библиотеки CIndicators... думаю напишу такой код:
CIndicators Indicators; MqlParam params[4][4]; //--тут заполнение массива параметров //.... //--заполнили for(i=0;i<4;i++) { Indicators.Create(_Symbol, _Period, IND_MA, 4, params[i]);//компилятор выдаст ошибку invalid array access, да и фиг с ним обойдемся без нормального //цикла напишем километр кода. }; //--пытаемся обратиться к каждому индикатору опять же: for(i=0;i<4;i++) Indicators.At(i).AddToChart(0, 0);//Стоп! At вернет указатель на CObject! Нужно привести его к типу. А как, а никто не знает даже справочник :) //Не говоря уже о том, как корректно определить тип объекта в данном случае получится (CiMA), но в общем случае это не всегда известно. //--
Нет дельфи, на паскале так можно сделать. На си утверждать не буду.
То, что в класс вставить переменную массива можно - это ясно, но как к ней обращаться через Public свойства?
Вроде простая задача на пять строк максимум: создать 4 индикатора (SMA) и бросить их на график, красиво разукрасить.
Логично было бы использовать класс стандартной библиотеки CIndicators... думаю напишу такой код:
class A { private: public: int a2[]; }; //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart(){ A a; a.a2... }Обращаться как обычно - написать "a", поставить точку, откроется список.
Обращаться как обычно - написать "a", поставить точку, откроется список.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Как отобразить пользовательский индикатор на графике тестера стратегий который открывается в конце тестирования или в визуализаторе?
Мастером создаю эксперт по сигналам встроенного Moving Average - после тестирования на графике рисуется индикатор, делаю тоже самое со своим индикатором - он не рисуется (причем его даже нет в списке индикаторов графика).
Если просто перетащить мой индикатор на график - он нормально работает (то есть он рабочий). Модуль сигналов сделал по образцу SignalMA.mqh , сгенерировал советник - он компилируется без ошибок и при тестировании не выдает никаких ошибок.
Для контроля правильности установки ордеров советником очень желательно видеть индикатор (причем в том виде который использовался советником, при наложении - индикатор считается заново - другие показания)
Можно ли это реализовать методом AddToChart ? (вычитал в справке), если да то приведите пожалуйста пример как это делается.
P.S. Вообще справка по стандартной библиотеке оставляет желать лучшего, примеров мало и разобраться с ней тяжело (возможно только для людей незнакомых с ООП - мне во всяком случае).
Там бы надо добавить описание взаимодействия модулей для мастера, а то без статей не напишешь даже модуля сигналов (да и то статья устарела).