Ошибки, баги, вопросы - страница 171

 
Rosh:
Этого не должно быть. Нужны исходные коды, лучше написать в Сервисдеск.

постараюсь разобраться с Сервисдеск , но однозначно класс у меня правильно написан, т.к. если объявляю один указатель на класс - все ОК, два и более ошибка из-за неправильного распределения памяти, создаю переменную типа класс, все ОК, создаю 10 переменных типа класс - тоже все ОК, т.к. не использую оператор new

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

 
Lizar:

Добавляю индикатор на график функцией ChartIndicatorAdd(). Теперь не получается догадаться какой функцией его убрать с графика.

Такой возможности не предусмотрено.

Причем IndicatorRelease вам тут не поможет.

 
IgorM:


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

Создайте специальную функцию для инициализации, которая выполняет все, что Вы хотели бы видеть в традиционном конструкторе. И вызывайте ее сразу после объявления (для автоматически создаваемых объектов) или вызова оператора new (для динамически создаваемых объектов).
Документация по MQL5: Основы языка / Операторы / Оператор создания объекта new
Документация по MQL5: Основы языка / Операторы / Оператор создания объекта new
  • www.mql5.com
Основы языка / Операторы / Оператор создания объекта new - Документация по MQL5
 
Rosh:
Создайте специальную функцию для инициализации, которая выполняет все, что Вы хотели бы видеть в традиционном конструкторе. И вызывайте ее сразу после объявления (для автоматически создаваемых объектов) или вызова оператора new (для динамически создаваемых объектов).

так давно и сделал, но мне было бы оптимальнее все это делать в конструкторе - там сразу можно было бы выделить память с помощью ArrayResize() и гарантированно иметь правильное распределение памяти при работе с указателями

лан, нет возможности передавать в конструктор параметр для распределения памяти, уже выкрутился, жалко, что не обещаете  сделать такую возможность

ЗЫ: не нашел в MQL5 перегрузку операторов, в Си++ это void operator +(); http://www.programmersclub.ru/24/ - мелочь, а это я юзал еще в 1995-м в Borland C++

 
IgorM:

ЗЫ: не нашел в MQL5 перегрузку операторов, в Си++ это void operator +(); http://www.programmersclub.ru/24/ - мелочь, а это я юзал еще в 1995-м в Borland C++

Ее нет - Перегрузка:

Перегрузка

В пределах одного класса можно определить два или более методов, которые совместно используют одно и тоже имя, но имеют разное количество параметров. Когда это имеет место, методы называются перегруженными, а о процессе говорят как о перегрузке метода. Перегрузка метода – один из способов, с помощью которых реализуется полиморфизм. Перегрузка методов в классах производится по тем же правилам, что и перегрузка функций.

Если для вызываемой функции нет точного соответствия, то компилятор производит поиск подходящей функции по трем уровням последовательно:

  1. поиск среди методов класса;
  2. поиск среди методов базовых классов, последовательно от ближайшего предка до самого первого;
  3. поиск среди остальных функций.

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

В MQL5 нет перегрузки операторов.

 

А есть у кого  какие-то решения в области "реставрации" линий баланса и эквити по историческим данным?

Очень нужна такая фича....

PS

Верней по поводу баланса у меня есть определенные соображения, а вот насчет эквити одни вопросы пока. :(

 
Interesting:

А есть у кого  какие-то решения в области "реставрации" линий баланса и эквити по историческим данным?

Очень нужна такая фича....

PS

Верней по поводу баланса у меня есть определенные соображения, а вот насчет эквити одни вопросы пока. :(


Можно попробовать экспортировать список сделок, и написать эксперт, который повторит действия и прогнать в тестере)
 
mrProF:
Можно попробовать экспортировать список сделок, и написать эксперт, который повторит действия и прогнать в тестере)

Не это не то. Нужно внутри советника и только по историческим данным.

Балансовую линию можно реставрировать просто на основе истории сделок, тут почти нет вопросов.

Формируем список сделок влияющих на баланс и выстраиваем на их  основе кривую баланса с привязкой к конкретному времени.

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

Причем построить все это через определенные интервалы времени (скажем на момент формирования нового дневного или на 00:00 по серверному времени).

PS

Речь идет о том чтобы внутри эксперта установленного на реальный или демо счета (где ранее велась торговля) реставрировать (построить) линии баланса и эвити.

При этом эксперт не имеет возможности загрузить эти данные из файла.

 
Interesting:

Не это не то. Нужно внутри советника и только по историческим данным.

Посмотри в базе mql4.com индикатор эквити.

Мат часть останется такой же, надо будет изменить только учет сделок.

 
komposter:

Посмотри в базе mql4.com индикатор эквити.

Мат часть останется такой же, надо будет изменить только учет сделок.

Спасибо, посмотрю что и как там.
Причина обращения: