При реализации в программе TSLab некоторых стратегий, которые используют получение сигналов с разных таймфреймов, например всем известная “Три экрана” Элдера или похожие, то неизбежно появляется вопрос: “Как получить в скрипте разные таймфреймы?”. В TSLab это можно решить только используя специальный кубик (блок) который называется “Сжатие”. Аналогичный способ используется и в некоторых других программах построения торговых роботов. Как использовать сжатие и разжатие в TSLab? Как избежать опасных ошибок? Как работать с нестандартными таймфреймами? Что такое декомпрессия? Об этом и поговорим в данной статье.
Сжатие и разжатие в TSLab. Основы.
Для того чтобы внутри одной торговой стратегии получить разные таймфреймы, всегда используется сжатие. Важным ограничением этого механизма является невозможность сжать 5m в 7m. Если вам необходим таймфрейм 7m, вы должны сжимать его из 1m. Тут, в общем, все логично. Невозможно разделить две свечи 5m на одну свечу 7m и свечу 3m если у нас нет данных о более мелком таймфрейме. Если коротко, то сжимать можно только в кратный базовому таймфрейму. Если вы сомневаетесь, попробуйте сами 🙂
Для примера, получим в одном алгоритме два таймфрема 1m и 5m.
Как видно на рисунке 2, каждая большая свеча содержит в себе 5 маленьких. Параметры свечи вычисляются из маленьких свечей. Все выглядит вполне адекватно и правильно. Для сжатия использовался кубик “Сжать (Расшир)” помогающий правильно использовать сжатие. Ниже будет показано, как можно ошибиться используя стандартный кубик сжатия.
Теперь, мы можем рассчитывать индикаторы на базе таймфрейма 5m и использовать их в работе. Для примера, построим SMA по сжатому таймфрейму.
Почему-то скользящая нарисована в виде каких-то странных ступенек. Обычно она рисуется гладкой. Что произошло? В действительности, ничего не произошло и SMA отрисована верно. Чтобы понять детали, давайте взглянем на график более пристальным взором:
Суть ступенек сводится к тому, что индикатор может быть рассчитан ТОЛЬКО после того как завершается свеча. Пока текущая свеча не завершена, мы можем использовать ТОЛЬКО значение индикатора на предыдущей свече. Горизонтальные части SMA и есть значения индикатора на предыдущей свече, и оно остается до тех пор, пока не будет закрыта текущая большая свеча. Как только она закрылась, индикатор меняет свое значение на другое. Если наш таймфрейм не сжат, тогда значение индикатора меняется на каждой свече и ступенек не наблюдается.
В нашем рассуждении был забыт немаловажный момент, а именно Разжатие. Как оно работает? При выводе чего либо на график, разжатие срабатывает автоматически. В иных случаях, его имеет смысл применять используя блок “Разжать”. Ниже мы рассмотрим подобные случаи.
Пока же, следует заметить, что рисунок 5 описывает логику работы Разжатия по методу декомпресии 1. Данный метод используется по умолчанию, и для тестирования и торговли данный метод адекватно подходит. Есть еще целых 2 метода декомпрессии, о них и поговорим сейчас.
Методы декомпрессии
Метод декомпрессии можно выбрать в свойствах скрипта.
О данных методах написано в справке по программе, но лучший способ понять их работу, посмотреть глазами. Воспользуемся тем же скриптом с SMA но в свойствах скрипта поставим Метод декомпрессии 2. На график выводим цену закрытия больших свечек.
Когда вы захотите включить Метод декомпресси 2, вас заранее предупредят, что это опасно. Но мы все равно его включили и получили заглядывание в будущее, как нас и предупреждали. Рисунок 8 наглядно иллюстрирует результаты Метода2. В тестировании и в реальной торговле такой метод использовать естественно нельзя. Правильный график цены закрытия нарисован на картинке ниже:
Есть еще один метод декомпрессии (Метод3), и он уже дает задержку в 1 свечу. Давайте посмотрим что получится при его использовании для цены закрытия больших свечей.
Как показано на рисунке 10, мы получаем задержку в 1 маленький бар. Это может быть полезно при тестировании алгоритмов на таймфреймах 1s и меньше. В остальных случаях, которых большинство, не стоит использовать данный метод в работе.
Заключение по начальной части
Мы разобрали как использовать Сжатие для получения стандартных таймфреймов вроде 5m, 10m, 15m. Так же, выяснили все детали использования разных способов декомпрессии. Метод1 – наиболее подходящий для всех случаев жизни.
Продолжаем тему. Разберем как правильно сжимать в нестандартные таймфреймы, какие при этом бывают ошибки. Как работают опции “Выравнивание” и “Сдвиг выравнивания”.
Сжатие и разжатие в нестандартные таймфреймы.
Ниже сможете просмотреть видео, чтобы было нагляднее и легче для восприятия. Затронутые темы в видео:
— Ошибки возникающие при сжатии в нестандартные таймфреймы не кратные 5 минут.
— Как правильно сжимать в нестандартные таймфреймы используя блок Сжать (расширенное).
— Как применять опции “Выравнивание” и “Сдвиг выравнивания”.
— Как реализовать выравнивание по двухчасовому интервалу.
Разберем типовые ошибки при работе со сжатием, а так же ограничения мешающие наиболее полноценному использованию сжатия и разжатия в TSLab.
Сжатие и разжатие в TSLab. Типовые проблемы и решения.
В видео раскрываются следующие вопросы:
— Правильное совмещение нескольких таймфреймов в одном скрипте.
— Создание индикаторов допускающих работу в нескольких таймфреймах.
Вы уже сейчас можете начать изучать Видео курс- роботы в TSLab и научиться самому делать любых роботов!
Можно записаться на следующий поток ОнЛайн курса «Создание роботов в TSLab без программирования», информацию по которому можно посмотреть тут->
Также можете научиться программировать роботов на нашем Видео курсе «Роботы для QUIK на языке Lua»
Если же вам не хочется тратить время на обучение, то вы просто можете выбрать уже готовые роботы из тех, что представлены у нас ДЛЯ TSLab, ДЛЯ QUIK, ДЛЯ MT5, ДЛЯ КРИПТОВАЛЮТЫ!
Также можете посмотреть совершенно бесплатные наработки для МТ4, Квика, МТ5. Данный раздел также постоянно пополняется.
Не откладывайте свой шанс заработать на бирже уже сегодня!
Спасибо за статью. Только у меня проблема. Я сделал сжатие 1 мин в 5, чтобы добиться выхода по стопу на свече входа на 5 минутном графике. Только теперь после стопа, программа опять входит в сделку по тому же сигналу, что и первый раз (т.к. на 5 минутке он все еще действует). Не подскажите как это исправить? Спасибо!
Здравствуйте, как раз на ваш вопрос подготовили ответ!
Можно прочитать тут: https://daytradingschool.ru/zapret-povtornyx-sdelok-na-szhatoj-sveche-v-tslab/