template <typename T> void f( T& ) {} // Пашет только для объектов структур и классов. template <typename T> void OnlyObjects( T& ) { const T Tmp; f((T)Tmp); // .... } void OnStart() { int i; MqlTick Tick; OnlyObjects(Tick); // OK OnlyObjects(i); // Error }
В статье увидел особенность MQL, которую не знал. Пример ее использования.
Это, видимо, к другой статье относится ;-) - https://www.mql5.com/ru/articles/8028/ - шаблоны там использовались, а пример оттуда сюда просто переехал уже в готовом виде.

- www.mql5.com
Станислав, спасибо за проделанную работу!
Почему все четыре типа графиков (экви-, рендж-, тиковые и ренко) не объединены в одного советника? Были основания их разделить, или просто проще было переделать что-то готовое?
Очень хорошая идея. Плюс торговля с графика встроенная работала бы.
Кого-бы пингануть? @Renat Fatkhullin @Slava
Почему все четыре типа графиков (экви-, рендж-, тиковые и ренко) не объединены в одного советника? Были основания их разделить, или просто проще было переделать что-то готовое?
Во-первых, исторически они были сделаны раздельно (начать с того, что кое-то - не моё ;-). Во-вторых, ИМХО у каждого типа графиков есть свои приверженцы и они мало пересекаются (например, любители тиков - это не любители ренко, а таймшифт - вообще отдельная песня). В третьих, у них общего - только инициализация, да и то не полностью, потому что продолжение генерации после перезапуска нужно делать по-разному. Была идея вынести общее в отдельный инклудник, но с учетом пункта 2 каждому проще выбрать для себя один файл без зависимостей.
Во-первых, исторически они были сделаны раздельно (начать с того, что кое-то - не моё ;-). Во-вторых, ИМХО у каждого типа графиков есть свои приверженцы и они мало пересекаются (например, любители тиков - это не любители ренко, а таймшифт - вообще отдельная песня). В третьих, у них общего - только инициализация, да и то не полностью, потому что продолжение генерации после перезапуска нужно делать по-разному. Была идея вынести общее в отдельный инклудник, но с учетом пункта 2 каждому проще выбрать для себя один файл без зависимостей.
Ну, смысл-то у них у всех один — взять тики (или минутки), и построить из них график без временной шкалы.
И подготовка истории (в идеале однократная, с продолжением после паузы с нужного места), и генерация новых баров, и эмуляция тиков — все похоже. Только правила для "нового бара" отличаются.
Но я ответ понял, тоже бы начал с адаптации готового, а не изобретал бы велосипед.
Забавно) а кто и где его так позиционирует?
У моего брокера сервер МТ5 за 100мс не успевает отложенный ордер исполнить, какое уж тут HFT)
Не говоря уже о том, что отложенные ордера исполняются как рыночные.
Забавно) а кто и где его так позиционирует?
У моего брокера сервер МТ5 за 100мс не успевает отложенный ордер исполнить, какое уж тут HFT)
Не говоря уже о том, что отложенные ордера исполняются как рыночные.
https://www.mql5.com/en/welcome/en-metatrader-5-high-frequency-trading

- www.mql5.com
Ренко
Для реализации графиков ренко используем неторгующий эксперт RenkoTicks.mq5. Он генерирует ренко в виде котировок пользовательского инструмента, обрабатывая для этого реальные тики (доступные в MetaTrader 5 от вашего брокера). Котировки (бары) исходного символа и таймфрейм рабочего графика, на который помещен RenkoTicks, не имеют значения.
Альтернативой пользовательским символам при построении ренко мог бы быть индикатор или рисование (с помощью объектов или на холсте (canvas)), но в обоих случаях невозможно было бы применять индикаторы или скрипты на таком псевдографике.
Ну зачем же столь категорично. Можно же нарисовать на канвасе, значения записать в индикаторный буфер и применять другие индикаторы по цене "Данные предыдущего индикатора". И это только один самый примитивный вариант. Существуют и другие более продвинутые.
Ну зачем же столь категорично. Можно же нарисовать на канвасе, значения записать в индикаторный буфер и применять другие индикаторы по цене "Данные предыдущего индикатора". И это только один самый примитивный вариант. Существуют и другие более продвинутые.
Это решение не покрывает всего разнообразия используемых на практике инструментов.
Это решение не покрывает всего разнообразия используемых на практике инструментов.
это решение и не претендует на полноту разнообразия, а лишь как опровержение утверждения о отсутствии возможности применять индикаторы на чарте с нестандартной схемой тайминга баров.
Повторюсь - есть более продвинутые решения (правда, гораздо сложнее), которые уже могут претендовать на то, чтобы покрывать "все разнообразие".

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Опубликована статья Пользовательские символы: основы применения на практике:
Статья посвящена программной генерации пользовательских символов, с помощью которых демонстрируется несколько популярных способов отображения котировок. Предложен вариант малоинвазивной адаптации советников для торговли реальным символом с графика производного пользовательского символа. Исходные коды MQL прилагаются.
Для фондовых инструментов эксперт позволяет использовать режим реальных объемов, например, так:
Исходный (a) и эквиобъемный (b) график LKOH с реальным объемом 10000 на бар, сгенерированный экспертом EqualVolumeBars в MetaTrader 5
Таймфрейм рабочего символа при размещении эксперта не важен, поскольку для расчетов всегда используются или бары M1 или тиковая история.
Таймфрейм графиков пользовательского символа должен быть равен M1 (как наименьший доступный в терминале). Таким образом, время баров, как правило, максимально близко соответствует моментам их формирования. Однако при сильных движениях на рынке, когда количество тиков или размер объемов формирует несколько баров в минуту, время баров будет убегать вперед от реального. Когда рынок успокоится, ситуация с временными отметками эквиобъемных баров нормализуется. Это ограничение платформы, вероятно, не особенно критично для равнообъемных или равнодиапазонных баров, поскольку весь смысл их использования заключается в отвязке от абсолютного времени.
Автор: Stanislav Korotky