Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Не путайте бесусловное и тупое (от незнания) пересоздание индикаторов на каждом тике с разумным (редким и по необходимости) созданием индикатора. В первом случае получаете стократный тормоз и утечку ресурсов, а во втором - идеальную работу.
Я прекрасно понимаю что Karlson по незнанию сделал ошибку, так же понимаю и суть этой ошибки.
Но предложите разумную схему для решения его задачи. Человеку нужно использовать код записанный в индикаторе, но параметр(ы) этого кода определяются динамично перед каждым обращением к данным индикатора?
У меня есть решение, правда оно содержит длл, но вы же ратуете за чистый mql, вот и предложите решение на mql.
ЗЫ я уже упоминал об отглушении OnCalculate() и расчётах в событиях, но через событие можно передать три параметра. В моём решении тут на помощь приходит длл которая через лонг передаёт адрес массива с параметрами, в индикаторе по этому адресу получаются данные.
Если у вас есть решение на mql просто покажите пальцем, тут народ понятливый.
Я прекрасно понимаю что Karlson по незнанию сделал ошибку, так же понимаю и суть этой ошибки.
Но предложите разумную схему для решения его задачи. Человеку нужно использовать код записанный в индикаторе, но параметр(ы) этого кода определяются динамично перед каждым обращением к данным индикатора?
Сколько разных индикаторов в реальности надо создать? Наверняка не больше 10, иначе будет просто бессмысленная трата ресурсов.
Так как изменений параметров конечно, то можно просто создать коллекцию из индикаторов, в которую нужный индикатор добавляется по необходимости. Если индикаторов заведомо меньше 10 и они имеют явный смысл (начальные, подтверждающие, корректирующие и тд), то можно создать именованные переменные хендлов с нужными параметрами.
Но предложите разумную схему для решения его задачи. Человеку нужно использовать код записанный в индикаторе, но параметр(ы) этого кода определяются динамично перед каждым обращением к данным индикатора?
Задумался немного. Если параметр(ы) кода определяются динамично перед каждым обращением к данным индикатора, то почему бы процедуру определения таких параметров также не запихнуть в код индикатора? Иными словами, все, абсолютно все расчёты, - в индикатор.
Или есть ситуации, когда такой поход принципиально невозможен?
Задумался немного. Если параметр(ы) кода определяются динамично перед каждым обращением к данным индикатора, то почему бы процедуру определения таких параметров также не запихнуть в код индикатора? Иными словами, все, абсолютно все расчёты, - в индикатор.
Или есть ситуации, когда такой поход принципиально невозможен?
Есть такие ситуации, например когда параметры вычисляются другим(и) индикатором(и) и возвращаются советнику, а советник на основе например нейронки решает какую модель задействовать. Те заранее неизвестно какой из наборов параметров будет применён.
Подскажите пожалуйста почему в таком простом индикаторе нулевой(первый с права) бар не просчитывается везде кроме недельного графа?
Ой) подставил сюда: SimpleMAOnBuffer(e,prev_calculated,PERIOD+1,p,vect,mabuf); вместо e - rates_total и все заработало)
Пробую собрать мультивалютник. Остановился пока на схеме, которую предложил Николай Косицин в своей статье "Создание эксперта, торгующего на разных инструментах". Столкнулся с проблемой, когда результаты отличаются, если запустить тест с разных инструментов, но на одних и тех же параметрах. Пробежался по форуму и нашёл, что многие пришли к тому, что этот вопрос можно решить при помощи функции OnTimer(). Андрей Хатимлянский посоветовал вот здесь:
Отвяжитесь от тиков конкретного инструмента (OnTick) - это же мультивалютник! Работайте по таймеру или ловите момент образования бара на всех рабочих инструментах, это будет надежнее.
Я попробовал ловить момент образования бара на всех инструментах, но у меня не вышло добиться нужного результата.
Например:
В функции, которая предназначена для определения нового бара я явно указываю инструмент и таймфрейм.
В функции OnTick() схема, которую предложил Николай Косицин.
Например:
Функция isNewBar(Symbol,Timeframe) вызывается в функции, в которой исполняются торговые операции, то есть в TradePerformer(параметры).
Например:
То есть проверка нового бара происходит каждый раз для каждого инструмента отдельно. Если нового бара нет, то проверяем следующий символ. И так на каждом тике. Но этот вариант не срабатывает.
Подскажите, как правильно реализовать проверку нового бара в мультивалютном эксперте в представленной схеме.
Править ошибки человека с ником Expert ? это нужно в тему юмор.