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

 
Andrey Khatimlianskii:

Замените по всему коду "UseECN\NDD" на "UseECN_NDD" (Ctrl+H)


Огромное Спасибо! Вроде скомпилировалось!

Буду тестить...

 
Andrey Khatimlianskii:

А зачем вообще эти другие экземпляры, если расчет один?


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

В классе есть цикл, в котором собираются данные по всем ордерам и позициям 1) на счёте и 2) только те, которые соответствуют фильтру по m_symbol и m_magic.

В итоге по завершению цикла имеем данные 1) по всему счёту и 2) только по ордерам и позициям, принадлежащим советнику.

Но если советник использует несколько символов или магиков, то для сбора статистики по каждому символу/магику нужно создавать экземпляры класса. Вот тут и встаёт вопрос: а зачем в этих новых экземплярах собирать статистику (1), которая уже была собрана в самом первом экземпляре класса.

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

 
Artyom Trishkin:

В классе есть цикл, в котором собираются данные по всем ордерам и позициям 1) на счёте и 2) только те, которые соответствуют фильтру по m_symbol и m_magic.

В итоге по завершению цикла имеем данные 1) по всему счёту и 2) только по ордерам и позициям, принадлежащим советнику.

Но если советник использует несколько символов или магиков, то для сбора статистики по каждому символу/магику нужно создавать экземпляры класса. Вот тут и встаёт вопрос: а зачем в этих новых экземплярах собирать статистику (1), которая уже была собрана в самом первом экземпляре класса.

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

1) Собирать статистику по всем магикам/инструментам в рамках одного класса. Список магиков задавать при инициализации, складывать в массив.

2) Как уже посоветовали, сделать результаты статистики №1 статичными, и при их наличии не запускать пересчет.

 
Artyom Trishkin:

В классе есть цикл, в котором собираются данные по всем ордерам и позициям 1) на счёте и 2) только те, которые соответствуют фильтру по m_symbol и m_magic.

В итоге по завершению цикла имеем данные 1) по всему счёту и 2) только по ордерам и позициям, принадлежащим советнику.

Но если советник использует несколько символов или магиков, то для сбора статистики по каждому символу/магику нужно создавать экземпляры класса. Вот тут и встаёт вопрос: а зачем в этих новых экземплярах собирать статистику (1), которая уже была собрана в самом первом экземпляре класса.

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

Если английский не проблема - я в блоге публиковал пример анализа гиперкуба торговой информации. Проходим по истории один раз, потом из гиперкуба запрашиваем информацию в нужных (разных) разрезах. Там, конечно, есть селекторы и по магику и по символу.
 
Artyom Trishkin:

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

Вам ответили уже:

Еще лучше все уникальные расчеты вынести в отдельный класс и сделать его синглтонтон.

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


 

Разработчиков просьба пояснить, почему типовое событие OnTesterPass при оптимизации количества вариантов большего, чем 8.6е+18, вызывается только при создании нового поколения?

И почему про эту особенность нет ни единого слова в описании в справке?

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


Как обойти это ограничение?

 
8.6е+18
Вы уверены что число именно 860000000000000000 ?
Если перевести такое количество бит в гигабайты то получим - 1075000000 Гб.
 
2017.05.29 22:53:02.047 MQL4 Market: failed create temp file for downloading product 'Prodigy' [267]

 
Разряжал батарею на ноуте.
Работал в MetaEditor 1601.
Заряд батареи был на 0% и во время компиляции МТ4 программы ноут вырубился из-за нехватки питания.
Какое мое удивление, когда в следующий раз открыв рабочий файл вместо кода оказалось 311 KB NUL значений.

По возможности, рассмотрите пожалуйста вариант более безопасной реализации процедуры сохранения во время компиляции.
 
Sergey Dzyublik:
Разряжал батарею на ноуте.
Работал в MetaEditor 1601.
Заряд батареи был на 0% и во время компиляции МТ4 программы ноут вырубился из-за нехватки питания.
Какое мое удивление, когда в следующий раз открыв рабочий файл вместо кода оказалось 311 KB NUL значений.

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

Может быть есть смысл рассмотреть вариант приобретения ноута с более энергоемкой батареей ? Или работать безопасно от сети ?