Скорость работы экспертов, индикаторный код в которых целиком размещён в эксперте, зачастую эдак раза в три быстрее, чем у их аналогов с вызовами пользовательских индикаторов. Это справедливо для вариантов с очень тяжёлыми индикаторными расчётами. Если эти расчёты очень лёгкие, то разницы никакой не будет. В индикаторе EMA слишком примитивный расчёт, для того чтобы его использовать в таких замерах. В какой-то из своих последних статей на этом сайте я даже выкладывал варианты эксперта с очень тяжёлым индикаторным расчётом JMA. Вариант с кодом без вызовов индикаторов работает в три раза быстрее.
У меня лично нет никакого желания кому-то и что-то доказывать, я просто излагаю выводы, которые видел собственными глазами и далеко не один раз, хотя, конечно, я не занимаюсь такими вещами бесконечно, и вполне может быть, что в последних билда МТ4 картина эта стала выглядеть как-то иначе. И даж в МТ5 на первых порах всё было абсолютно аналогично. Но такие детали я не отслеживаю и поэтому не могу утверждать, что сейчас всё именно так и осталось.
В какой-то из своих последних статей на этом сайте я даже выкладывал варианты эксперта с очень тяжёлым индикаторным расчётом JMA. Вариант с кодом без вызовов индикаторов работает в три раза быстрее.
Скорость работы экспертов, индикаторный код в которых целиком размещён в эксперте, зачастую эдак раза в три быстрее, чем у их аналогов с вызовами пользовательских индикаторов. Это справедливо для вариантов с очень тяжёлыми индикаторными расчётами. Если эти расчёты очень лёгкие, то разницы никакой не будет. В индикаторе EMA слишком примитивный расчёт, для того чтобы его использовать в таких замерах. В какой-то из своих последних статей на этом сайте я даже выкладывал варианты эксперта с очень тяжёлым индикаторным расчётом JMA. Вариант с кодом без вызовов индикаторов работает в три раза быстрее.
У меня лично нет никакого желания кому-то и что-то доказывать, я просто излагаю выводы, которые видел собственными глазами и далеко не один раз, хотя, конечно, я не занимаюсь такими вещами бесконечно, и вполне может быть, что в последних билда МТ4 картина эта стала выглядеть как-то иначе. И даж в МТ5 на первых порах всё было абсолютно аналогично. Но такие детали я не отслеживаю и поэтому не могу утверждать, что сейчас всё именно так и осталось.
Не смешите. Вы просто еще не научились писать индикаторы.
После такой ереси:
//---- ЭМУЛЯЦИЯ ИНДИКАТОРНЫХ БУФЕРОВint NewSize = iBars(symbol, timeframe);
//---- Проверка на смену нулевого бараif(ArraySize(Ind_Buffer0) < NewSize)
{
//---- Установить прямое направление индексирования в массиве ArraySetAsSeries(Ind_Buffer0, false);
ArraySetAsSeries(Ind_Buffer1, false);
ArraySetAsSeries(Ind_Buffer2, false);
//---- Изменить размер эмулируемых индикаторных буферов ArrayResize(Ind_Buffer0, NewSize);
ArrayResize(Ind_Buffer1, NewSize);
ArrayResize(Ind_Buffer2, NewSize);
//---- Установить обратное направление индексирования в массиве ArraySetAsSeries(Ind_Buffer0, true);
ArraySetAsSeries(Ind_Buffer1, true);
ArraySetAsSeries(Ind_Buffer2, true);
}
//----
могли бы вообще воздержаться от своего мнения в этой теме.
Ага, я тему тоже немного исследовал. Конечно, на самом деле бред возиться в дерьме разработчиков платформы, но не суть.
Вы переделали мой советник в индикатор. Как и вы, я еще сутки назад был уверен, что индикатор из советника и просто советник должны показывать одинаковые результаты, т.к. оба "срабатывают" на тике. Но что-то поразному они срабатывают. Советник на первом тике после появления связи ведет совсем не так, как индикатор, полученный из советника. Можете сами проверить.
Выше привел скрин, где видно, что после разрыва связи сравнивается советник (не индикатор из советника) с iCustom. Там обрыв связи проходит без проблем.
Предполагаю, что на первом тике после обрыва связи индикатор не срабатывает сразу. Точнее индикатор ждет выполнения функции IndicatorCounted(). А это функция может исполняться (в зависимости от связи) до нескольких секунд. Т.е. такая схема:
Первый тик после обрыва связи.
Запустился индикатор.
Идет исполнение IndicatorCounted() (похоже, что сразу после запуска индикатора, даже если IndicatorCounted() не присутствует в теле индикатора) в течение некоторого времени.
После получения результата идет обновление торгового окружения.
И индикатор начинает исполнять свой код так, как будто запустился не на первом тике, а на крайнем тике, предшествующем результату IndicatorCounted().
Получается, что для абсолютной надежности советников "все в одном" надо делать в самом начале функции старт вызов ПУСТОГО индикатора и RefreshRates(). Это и будет гарантировать подкачку истории (после обрыва) и исполнение советника на первом тике, соответствующем уже закачанной истории.
hrenfx: Получается, что для абсолютной надежности советников "все в одном" надо делать в самом начале функции старт вызов ПУСТОГО индикатора и RefreshRates(). Это и будет гарантировать подкачку истории (после обрыва) и исполнение советника на первом тике, соответствующем уже закачанной истории.
А исследования и проверки по этой догадке выложить можете?
хм... если это так, и дает гарантию загрузки, то вариант очень даже ничего.
видел ветку ForexTools, где так не было решения проблемы подкачки истории в момент старта терминала и эксперта.
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Зело полезный дискурс...
И зная ресурс и потенциал участников, провокационно предлагаю замерить скорость и "неглотательность" тиков в:
1) Советниге
2) зацикленном с частотой 1 милисеконд скрипте
3) индюке
4) стороннем DDE приёмнике.
Для неофитных адептов - типа меня, тоже будет полезно.
;)
На ночь глядя:
Добавлю свои пять копеек:
Скорость работы экспертов, индикаторный код в которых целиком размещён в эксперте, зачастую эдак раза в три быстрее, чем у их аналогов с вызовами пользовательских индикаторов. Это справедливо для вариантов с очень тяжёлыми индикаторными расчётами. Если эти расчёты очень лёгкие, то разницы никакой не будет. В индикаторе EMA слишком примитивный расчёт, для того чтобы его использовать в таких замерах. В какой-то из своих последних статей на этом сайте я даже выкладывал варианты эксперта с очень тяжёлым индикаторным расчётом JMA. Вариант с кодом без вызовов индикаторов работает в три раза быстрее.
У меня лично нет никакого желания кому-то и что-то доказывать, я просто излагаю выводы, которые видел собственными глазами и далеко не один раз, хотя, конечно, я не занимаюсь такими вещами бесконечно, и вполне может быть, что в последних билда МТ4 картина эта стала выглядеть как-то иначе. И даж в МТ5 на первых порах всё было абсолютно аналогично. Но такие детали я не отслеживаю и поэтому не могу утверждать, что сейчас всё именно так и осталось.
GODZILLA:
В какой-то из своих последних статей на этом сайте я даже выкладывал варианты эксперта с очень тяжёлым индикаторным расчётом JMA. Вариант с кодом без вызовов индикаторов работает в три раза быстрее.
Тут? Вывод прост, возможны 3 варианта:
1. код без вызовов индикаторов написан неправильно, что маловероятно.
2. индикатор написан неэффективно.
3. приведенные цифры не отражают действительности.
Добавлю свои пять копеек:
Скорость работы экспертов, индикаторный код в которых целиком размещён в эксперте, зачастую эдак раза в три быстрее, чем у их аналогов с вызовами пользовательских индикаторов. Это справедливо для вариантов с очень тяжёлыми индикаторными расчётами. Если эти расчёты очень лёгкие, то разницы никакой не будет. В индикаторе EMA слишком примитивный расчёт, для того чтобы его использовать в таких замерах. В какой-то из своих последних статей на этом сайте я даже выкладывал варианты эксперта с очень тяжёлым индикаторным расчётом JMA. Вариант с кодом без вызовов индикаторов работает в три раза быстрее.
У меня лично нет никакого желания кому-то и что-то доказывать, я просто излагаю выводы, которые видел собственными глазами и далеко не один раз, хотя, конечно, я не занимаюсь такими вещами бесконечно, и вполне может быть, что в последних билда МТ4 картина эта стала выглядеть как-то иначе. И даж в МТ5 на первых порах всё было абсолютно аналогично. Но такие детали я не отслеживаю и поэтому не могу утверждать, что сейчас всё именно так и осталось.
Не смешите. Вы просто еще не научились писать индикаторы.
После такой ереси:
могли бы вообще воздержаться от своего мнения в этой теме.
Разоблачение заблуждения №1: можно обойтись без IndicatorCounted()
Индюк с оным:
Без оного, по принципу hrenfx
Далее накидываем индюки на график и эмулируем потерю связи во время работы автомата. Результат:
Ага, я тему тоже немного исследовал. Конечно, на самом деле бред возиться в дерьме разработчиков платформы, но не суть.
Вы переделали мой советник в индикатор. Как и вы, я еще сутки назад был уверен, что индикатор из советника и просто советник должны показывать одинаковые результаты, т.к. оба "срабатывают" на тике. Но что-то поразному они срабатывают. Советник на первом тике после появления связи ведет совсем не так, как индикатор, полученный из советника. Можете сами проверить.
Выше привел скрин, где видно, что после разрыва связи сравнивается советник (не индикатор из советника) с iCustom. Там обрыв связи проходит без проблем.
Предполагаю, что на первом тике после обрыва связи индикатор не срабатывает сразу. Точнее индикатор ждет выполнения функции IndicatorCounted(). А это функция может исполняться (в зависимости от связи) до нескольких секунд. Т.е. такая схема:
P.S. Тестирую на 226-м билде.
Получается, что для абсолютной надежности советников "все в одном" надо делать в самом начале функции старт вызов ПУСТОГО индикатора и RefreshRates(). Это и будет гарантировать подкачку истории (после обрыва) и исполнение советника на первом тике, соответствующем уже закачанной истории.
А исследования и проверки по этой догадке выложить можете?
хм... если это так, и дает гарантию загрузки, то вариант очень даже ничего.
видел ветку ForexTools, где так не было решения проблемы подкачки истории в момент старта терминала и эксперта.