Обсуждение статьи "LifeHack для трейдера: готовим фастфуд из индикаторов" - страница 2
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
...
Кроме того, неэффективное извлечение по 1 значению из индикатора.
...
Все это в теории. А на практике 99% индикаторов - это расчет в кольцевых буферах FIFO: удалили последний элемент, добавили новый, пересчитали индикатор. Т.е. опять-таки на практике добавление в расчетный буфер идет по одному элементу и 99% всех расчетов в индикаторе - это добавление по одному элементу. Поэтому идея заложенная в CopyBuffer, CopyRates, CopyXXX красива но не соответствует предметной области.
...
Жесткий ужас с утечками хендлов(зачем закрывать хендл индикатора?) и потрясающим оверхедом(пытаться пересоздавать индикатор, проваливаясь внутрь менеджера индикаторов). И ведь достаточно людей скопирует это не глядя и не понимая.
...
На счет сказанного непонятно, что имели в виду. Хендлы, на сколько понимаю, нигде не закрываются (вызовов IndicatorRelease не наблюдается). Есть постоянное обращение к стандартным функциям создания хендла, типа iMACD:
Очевидно, что здесь вся игра построена на том, что iMACD и подобные ей функции кешируют внутри себя уже ранее возвращенный хендл, поэтому пересоздания индикатора быть не должно.
Все это в теории. А на практике 99% индикаторов - это расчет в кольцевых буферах FIFO: удалили последний элемент, добавили новый, пересчитали индикатор. Т.е. опять-таки на практике добавление в расчетный буфер идет по одному элементу и 99% всех расчетов в индикаторе - это добавление по одному элементу. Поэтому идея заложенная в CopyBuffer, CopyRates, CopyXXX красива но не соответствует предметной области.
Это если писать простейшие и примитивные last look обработчики. Но как только делаешь шаг в сторону и начинаешь проверять 2 или более точек, то сразу видишь разницу и эффект.
Вообще конечно странно слышать, что CopyXXX функции якобы не в предметной области.
Очень сильно надо стараться, чтобы такое про базовые функции доступа к рыночному окружению сказать.
Ну и еще - не зря индикаторам выдается 100% всей истории для расчетов:
Это в доказательство, что нет никаких "99% в кольцевом буфере". Очень как нужны именно массовые доступы к истории, а не одиночные последние значения.На счет сказанного непонятно, что имели в виду. Хендлы, на сколько понимаю, нигде не закрываются (вызовов IndicatorRelease не наблюдается). Есть постоянное обращение к стандартным функциям создания хендла, типа iMACD:
Очевидно, что здесь вся игра построена на том, что iMACD и подобные ей функции кешируют внутри себя уже ранее возвращенный хендл, поэтому пересоздания индикатора быть не должно.
Вся игра построена на хаке и полному пренебрежению к контролю хендлов.
Другой трейдер берет этот код, не обращает внимания на выделения хендлов, начинает делать вызовы с разными параметрами, размножает индикаторы, теряет все хендлы, а потом удивляется тормозам и потреблению памяти.
Виноват известно кто.
Статья является небольшой выдержкой другой.
Аналогий не увидел.
Ничего не предпринято для эффективной работы. Никакого кеширования индикаторов и таймсерий.
Здесь действительно есть задел для оптимизации. Ввести кеширование было бы очень хорошей идеей.
Отсутствуют High[i], Low[i] и т.д.
А должны присутствовать? Вроде название статьи (вернее ее описание) четко говорит только о индикаторах?
Нет iCustom.
К сожалению, MQL не поддерживает функции с произвольным количеством параметров, поэтому iCustom не видится возможным реализовать "так же как в MT4"
Ожидалось увидеть совсем другое. Тем более, какой смысл фастфуда в советниках, если все равно им и не пахнет в исходниках?
Я не думаю что в рамках одной статьи можно написать целый полноценный движок полностью эмулирующий МТ4 style. Тема была заявлена четко: работа с индикаторами в стиле MQL4 (жаль название статьи не отражает тему что и запутывает).
...
Это в доказательство, что нет никаких "99% в кольцевом буфере". Очень как нужны именно массовые доступы к истории, а не одиночные последние значения.Есть и и используются чуть чаще чем постоянно. Просто каких-то спец.средств нет и разработчикам приходится лепить вложенные циклы. Откройте любой индикатор с двойным вложенным for'ом: поздравляю, кольцевой буфер найден. Вот пример вашего суперэффективного расчета индикатора MFI:
Ну очевидно же, что скорость расчета этого индикатора зависит от периода усреднения, а так быть не должно. И таких примеров масса, часть из которой написана самой MQ, а Вы говорите кольцевых буферов нет.
Есть и и используются чуть чаще чем постоянно. Просто каких-то спец.средств нет и разработчикам приходится лепить вложенные циклы. Откройте любой индикатор с двойным вложенным for'ом: поздравляю, кольцевой буфер найден. Вот пример вашего суперэффективного расчета индикатора MFI:
Ну очевидно же, что скорость расчета этого индикатора зависит от периода усреднения, а так быть не должно. И таких примеров масса, часть из которой написана самой MQ, а Вы говорите кольцевых буферов нет.
Их нет в 99% случаев. И в 90% нет и в 50% нет. Зато есть 100% объем исходных данных(на всю глубину истории) в параметрах OnCalculate.
И речь даже не об расчетах индикаторов, а об использовании как результатов индикаторов, так и доступу к исходным данным. Доступ требуется массовый, а не одиночный.
Вы же пытаетесь представить ситуацию так, что "весь рынок анализа представлен последним значением индикатора" и "CopyXXXX не соответствует предметной области".
Очень стараетесь набросить.
...
И речь даже не об расчетах индикаторов, а об использовании как результатов индикаторов, так и доступу к исходным данным. Доступ требуется массовый, а не одиночный.
...
Обратите, пожалуйста, внимание на заявку #1923700. Есть некоторые проблемы с частым получением большого количества данных.
Давно не было комментариев и вопросов для предоставления дополнительных материалов, которые помогли бы выяснить причину такого результата.
Другой трейдер берет этот код, не обращает внимания на выделения хендлов, начинает делать вызовы с разными параметрами, размножает индикаторы, теряет все хендлы, а потом удивляется тормозам и потреблению памяти.
Точно также этот другой трейдер может начать делать вызовы стандартных iХендлов, с разными параметрами. Если параметры разные - будут создаваться разные индикаторы, не зависимо от того, работаешь ты с хендлом напрямую или используешь MQL4-Style.
Очень стараетесь набросить.
А вот за это обидно.
И речь даже не об расчетах индикаторов, а об использовании как результатов индикаторов.
Это да.
...
Короче, не буду спорить, т.к. это бессмысленно. Интересно было бы собрать статистику по использованию функций Copy***. То, сколько элементов пользователи копируют в среднем, показало бы многое.