Рассчитывать индикатор в советнике и с теми же настройками сделать индикатор, который навешивать на график после теста, для визуализации.
iCustom с разным периодом это однозначно будут тормоза. Вообще где-то читал, что в мт5, индикатор будет рассчитываться всегда, даже, если копировать в буффер значения в советнике, после ряда срабатываний условных операторов.
Рассчитывать индикатор в советнике и с теми же настройками сделать индикатор, который навешивать на график после теста, для визуализации.
iCustom с разным периодом это однозначно будут тормоза. Вообще где-то читал, что в мт5, индикатор будет рассчитываться всегда, даже, если копировать в буффер значения в советнике, после ряда срабатываний условных операторов.
да там кругом попадалово в сотни строк кода
советник тики пропускает, индикатор вроде бы нет, но в тестере его хэндл нельзя удалить
int hnd;
//+------------------------------------------------------------------+//| Expert tick function |//+------------------------------------------------------------------+voidOnTick()
{
//---for(int i=5; i<20; i++)
{
hnd = iCustom(_Symbol,0,"ind",i); //создает больше i окон//hnd = iRSI(_Symbol,0,i,PRICE_CLOSE); //не создает больше i окон
}
}
//+------------------------------------------------------------------+
Меня бы устроил случай со стандартным индикатором, когда создалось бы ограниченное число окон на каждый период, которые можно убрать.. но с кастомным так не получается
П.С. и стандартный показывает одинаковые значения так при разных периодах, хороче так работать не будет, можно создать просто много хэндлов и посмотреть будут ли тормоза. По идее если расчеты в индикаторах быстрые то не должно тормозить. Для проверки стратегии не хочется переписывать все индикаторы в классы
по 200 периодов для 3-х индикаторов, 600 хэндлов.. удачи мне :)
Если индикатор так прост, можно в нем вычислить все значения, расположить их в одном буфере по порядку. Индикатор не для смотрения на него, а исключительно для советника.
Если индикатор так прост, можно в нем вычислить все значения, расположить их в одном буфере по порядку. Индикатор не для смотрения на него, а исключительно для советника.
а это мысль. А сколько там буферов в мт5 вообще создать можно, 64 вроде? а нет 512, это же все решает :)
3 индикатора с кучей буферов, в 1 буфер все пихать не удобно.. так вроде норм будет
а с другой стороны опять же нафиг это надо, когда можно создать кучу хэндлов, работы меньше а по скорости вычислений не понятно
Один хэндл, это как минимум один индикаторный буфер, а один буфер это массив с размером соответствующим количеству баров. Надо ориентироваться на доступный объем оперативной памяти, ее может не хватить.
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Рассчитывать индикатор в советнике и с теми же настройками сделать индикатор, который навешивать на график после теста, для визуализации.
iCustom с разным периодом это однозначно будут тормоза. Вообще где-то читал, что в мт5, индикатор будет рассчитываться всегда, даже, если копировать в буффер значения в советнике, после ряда срабатываний условных операторов.
Рассчитывать индикатор в советнике и с теми же настройками сделать индикатор, который навешивать на график после теста, для визуализации.
iCustom с разным периодом это однозначно будут тормоза. Вообще где-то читал, что в мт5, индикатор будет рассчитываться всегда, даже, если копировать в буффер значения в советнике, после ряда срабатываний условных операторов.
да там кругом попадалово в сотни строк кода
советник тики пропускает, индикатор вроде бы нет, но в тестере его хэндл нельзя удалить
да там кругом попадалово в сотни строк кода
советник тики пропускает, индикатор вроде бы нет, но в тестере его хэндл нельзя удалить
Вам же индикаторы все равно на ТФ, а не на тиках. Боевые советники, вызывая через iCustom индикатор, также пропускают тики.
А почему так? стандартный индикатор не создает больше i окон, а если вызывать кастомный то создается огромное кол-во и тестер начинает тормозить
каст. индикатор:
Проверка в советнике:
Меня бы устроил случай со стандартным индикатором, когда создалось бы ограниченное число окон на каждый период, которые можно убрать.. но с кастомным так не получается
П.С. и стандартный показывает одинаковые значения так при разных периодах, хороче так работать не будет, можно создать просто много хэндлов и посмотреть будут ли тормоза. По идее если расчеты в индикаторах быстрые то не должно тормозить. Для проверки стратегии не хочется переписывать все индикаторы в классы
по 200 периодов для 3-х индикаторов, 600 хэндлов.. удачи мне :)
Вам же индикаторы все равно на ТФ, а не на тиках. Боевые советники, вызывая через iCustom индикатор, также пропускают тики.
А будет ли разница если я создам n объектов классов или n хэндлов индикаторов.. вот в чем вопрос.. все равно и то и другое будет пересчитываться
Если индикатор так прост, можно в нем вычислить все значения, расположить их в одном буфере по порядку. Индикатор не для смотрения на него, а исключительно для советника.
А будет ли разница если я создам n объектов классов или n хэндлов индикаторов.. вот в чем вопрос.. все равно и то и другое будет пересчитываться
Разница принципиальная. В случае с классами все будет считаться в одной песочнице.
Если индикатор так прост, можно в нем вычислить все значения, расположить их в одном буфере по порядку. Индикатор не для смотрения на него, а исключительно для советника.
а это мысль. А сколько там буферов в мт5 вообще создать можно, 64 вроде? а нет 512, это же все решает :)
3 индикатора с кучей буферов, в 1 буфер все пихать не удобно.. так вроде норм будет
а с другой стороны опять же нафиг это надо, когда можно создать кучу хэндлов, работы меньше а по скорости вычислений не понятно
Один хэндл, это как минимум один индикаторный буфер, а один буфер это массив с размером соответствующим количеству баров. Надо ориентироваться на доступный объем оперативной памяти, ее может не хватить.
Сразу создать много хэндлов или перебирать в цикле с присвоением хэндлу индикатора с разными параметрами, или есть другие способы?
Я пользуюсь СБ, в частности коллекцией индикаторов типа CIndicators. Очень удобно, особенно для "освежевания" данных.
Там есть такой метод:
С его помощью создаётся любой индикатор.
Потом добавляем его в коллекцию.
И при необходимости получить новое значение любого индикатора из коллекции просто предварительно вызываем int CIndicators::Refresh(void).