В предыдущих заметках рассматривались настройки робота Тренд при торговле по сигнальным индикаторам.
Volatility Median
Следующая стратегия, которая может торговаться универсальным трендовым роботом, основана на двух индикаторах Volatility Median.
Индикатор Volatility Median, представленный на сайте Trdrobot.ru, предназначен для отслеживания тренда, при этом он хорошо определяет период бокового движения, когда рынок не имеет значительных отклонений вверх и вниз. Его линия следует за ценой на расстоянии коэффициента ATR.
Страница презентации:
https://trdrobot.ru/avtorskij-indikator-volatility-median-dlya-quik-na-lua/
Стратегия
Стратегия, о которой будет говориться в этой заметке, основана все на том же пересечении двух скользящих средних, но вместо них применяются два Volatility Median с разными параметрами. Эти индикаторы имеют свойство не реагировать на незначительные колебания цены и пропускать участки флэта, где две скользящие запиливает и сделки приносят одни убытки.
Условие покупки наступает, когда быстрая VM пересекает медленную снизу, продажи, когда пересечение быстрой медленную происходит сверху. Робот реагирует на сигнал на следующей свече после его прохождения. Несмотря на то, что Volatility Median работает без перерисовки, все-таки ложные сигналы кратковременно могут проскакивать и лучше применять вход по закрытию свечи.
Торговля 2 лотами фьючерса на доллар/рубль Si, таймфрейм графика 5 минут.
Стоп-лосс задан 300 пунктов, при этом значении закрываются 2 лота.
Перевод стопа в безубыток не подключен.
Предусмотрен трейлинг-стоп, который начинает работать при достижении прибыли 500 п., если движение продолжается, он подтягивается за ценой с отступом так же 500 п.
Тейк-профит в два уровня, первый, при достижении прибыли 200 п. - 1 лот, второй лот - 5000 пунктов.
Ограничение просадки за день 3000 п, ограничение прибыли 6000 пунктов.
Временные интервалы торговли не установлены. Робот торгует постоянно и сделки открыты всегда, за исключением случаев полного закрытия по стопу или профиту.
График
Все индикаторы на lua в терминале Quik располагаются в папке LuaIndicators. Если в Квик такой папки нет, то ее необходимо создать и положить туда файл volatility_mid.lua.
Добавление индикатора на график фьючерса Si осуществляется вызовом редактора (правой кнопкой мыши по полю графика, в появившемся меню выбрать Редактировать). Выделив Область1, нажать вверху Добавить.
В появившемся списке найти volatility_mid.lua, убедиться, что отметка Поместить график в новую область снята, добавить. Потребуется два таких индикатора, поэтому таким же образом следует добавить второй. Нажать Применить, ОК.
Первому индикатору (быстрой линии) можно задать синий цвет и значение коэффициента ATR - 1,8. Сохранить изменения,
Применить или ОК.
На вкладке Дополнительно первому индикатору необходимо установить идентификатор, здесь, SI_Q. Применить,ОК.
Второму индикатору (медленной линии) выбрать, к примеру, желтый цвет и KATR - 2,2. ОК.
Перейти в Дополнительно и для второго индикатора задать идентификатор, может, SI_SL. Сохранить изменения, ОК.
Осталось добавить идентификатор для самого графика и для этого выделить строку Price, открыть Дополнительно, убедиться, что стоят отметки для отображения заявок, стоп-заявок, сделок и заполнить поле идентификатора - SI2CROSS_PR.
Все изменения в Квик сразу сохранить. В верхнем меню, Система -> Сохранить настройки в файл. По запросу заменить файл info.wnd в директории терминала.
Настройки робота
Установка параметров производится в читаемом файле настроек робота с расширением lua. Редактировать его можно редактором Notepad++, прежде выставив подсветку кода в Синтаксисы -> Lua.
В строке GParam.ts_id задается ID этого робота из латинских букв и цифр в кавычках без пробелов.
GParam.ts_id ='SI2CROSSTrdA'
В GParam.ts_num указывается цифровое значение. Это уникальный номер торговой стратегии для определения номера транзакции, которую выставляет робот.
Далее следует задать названия файла конфигурации и лог файлов, создаваемых роботом при запуске. По названиям должно быть понятно, какой это робот и инструмент.
Тестовый режим
GParam.ts_mode - режим работы робота, false - тестовый, когда заявки на биржу не выставляются, но на график наносятся метки позиций, true - рабочий, в этом режиме осуществляется реальная торговля через терминал Квик.
Торговый счет, код клиента и проскальзывание
Далее указывается код торгуемого инструмента, класс инструмента, код клиента и торговый счет. Эти значения можно взять в таблицах Квик. Для фьючерсов на срочном рынке код клиента и счет одинаковые, для акций фондового рынка они разные. Код клиента и торговый счет так же можно взять из стакана, в панели торговли.
Проскальзывание выставляется как можно больше. При входе в позицию по рынку, если в это время происходит резкое изменение цены, сделка может не открыться при его недостаточном значении. Для фьючерсов на Газпром, Сбербанк, доллар/рубль можно ставить 20 - 50, для нефти 0.15 - 0.3.
Срочный и фондовый рынок
В строке GParam.spot для торговли фьючерсами ставится 0, для спота (акции фондового рынка) ставится 1.
Тип лимита
Тип лимита денежных средств 0 - для срочного рынка, 2 - для фондового рынка, когда торгуются акции Московской биржи или биржи СПБ. 1 - применяется для облигаций, если этот робот их торгует.
GParam.kind_limit = 0
GParam.flaglevelcandle = true - Флаг прохода уровня по закрытию свечи или в моменте (true - по закрытию свечи, false - в моменте).
GParam.flagcandleoc = true - Флаг работы по закрытию свечи (true).
Подключение к графику
Для того, чтобы робот мог видеть график и индикаторы, ему необходимо указать их идентификаторы, те, что были установлены выше.
GParam.price_chart = "SI2CROSS_PR" - подключение графика.
GParam.ind_ma = {"SI_Q",0,"SI_Q",0} - здесь основным индикатором является быстрая VM.
В скобках первое значение идентификатор покупки, второе значение номер линии покупки, третье значение идентификатор продажи и четвертое значение номер линии продажи.
У Volatility Median номер линии лонга 0, шорта 0.
Медленная VM будет вторым индикатором.
GParam.flagmacandle - получение значения индикатора по закрытому бару или в моменте, true - по закрытому бару, когда после сигнала робот войдет в позицию на следующей свече и false, когда вход произойдет в моменте.
Открытие сделки на следующей свече гарантирует пропуск ложных сигналов и для этой стратегии это будет лучшее решение. Если поставить вход в моменте, здесь последствия могут непредсказуемые.
GParam.flagmacandle = true
Настройки позиции
Позиция закрывается по противоположному сигналу (обратному пересечению).
GParam.flagcoup = true
Строки, которые здесь не рассматриваются, можно оставить по умолчанию.
GParam.flagtrendwait = true - при включении робота он ждет появления обратного сигнала. При false этот параметр для других стратегий, когда условие срабатывания сигнала наступает при запуске, может при торговле по нахождению цены над/под линией индикатора.
Начальное количество контрактов в этом примере 2 лота.
GParam.startqty = 2
GParam.countersc = 1 - ограничение количества входа в позицию за бар. Для других стратегий, когда противоположные сигналы могут сменять друг друга несколько раз на одной свече. В данном случае поставить 1.
GParam.rashift = 0 - отступ от линии индикатора. Параметр так же для других случаев, когда сигнал наступает при пересечении линии. Для уменьшения количества ложных входов и установке коридора между входом в лонг и входом в шорт задается отступ.
Режим работы робота
Режим работы робота для пересечения двух Volatility Median - 5.
GParam.typetrade = 0 - режим торгов 1 - только в лонг, (-1) - только в шорт, 0 - реверс, в лонг и в шорт.
Настройка второго индикатора
В режиме работы робота 5 смотрится пересечение основным индикатором (быстрой VM) второго индикатора (медленной VM).
GParam.flind2 = true - флаг включения проверки по индикатору 2, подключен при true.
GParam.flind2kind = 1 - тип проверки (при 1 смотрится пересечение).
GParam.ind_ma2 = {"SI_SL",0,"SI_SL",0} - второй индикатор; в скобках 1 значение - идентификатор для лонга, 2 - номер линии в лонг, 3 - идентификатор для шорта, 4 - номер линии в шорт.
Стоп и профит по индикатору ATR
В роботе предусмотрена возможность расчета стопа и профита с учетом коэффициента ATR. Для этого параметр GParam.flagtrailatr должен быть включен - true и задан идентификатор ATR. В данном случае не применяется.
Задержка сигнала на вход в позицию
Задержка сигнала на вход в позицию предусмотрена для режима 4. Здесь не используется.
GParam.flagmatm = false
Дополнительный индикатор типа осциллятор
Дополнительный индикатор (осциллятор), который может использоваться вместе с основным сигналом, в этой стратегии не используется. Но при необходимости его можно подключить, указав идентификатор, номер линии, задав тип проверки.
Стоп-лосс
В последней версии робота Тренд выставление стоп-лосс осуществляется с возможностью учета ATR, процентов от текущей цены, коэффициента умножения расстояния от цены до индикатора. В стратегии, которая здесь рассматривается, все эти значения не используются.
Стоп-лосс при убытке 300 п. Стоп можно подобрать в процессе торгов. Нужно учитывать, что при включении многоуровневого стопа не ставится перевод в безубыток.
GParam.flagstop = true - включение стопа при true.
GParam.rastop = {300,0,0,0} - стоп на отметке 300 п.
GParam.flagstoptrail = false - флаг включения многоуровневого стопа, при false не применяется.
GParam.stop_arr = {{0,0,0},{0,0,0}} - включение многоуровневого стопа, если он будет использоваться, два уровня, в скобках значения - Стоп в пп, Коэффициент умножения GParam.rastop (4 значение), Доля контрактов закрываемых по стопу от 0 до 1, где 1 - 100%.
Трейлинг-стоп по индикатору
Трейлинг-стоп по индикатору не применяется.
Перевод стопа в безубыток
Перевод стопа в безубыток не подключен.
Трейлинг-стоп по пику цены
Трейлинг-стоп в этой стратегии используется.
GParam.flagstopnulltr = true - включение трейлинга при true.
GParam.ranulltr = 500 - значение отклонения цены от входа в плюс, когда включается трейлинг-стоп.
GParam.ranullshift = 500 - на каком расстоянии будет подтягиваться стоп от пика цены.
Тейк-профит
Тейк-профит ступенчатый. При достижении прибыли 200 п. закрывается 1 лот. Закрытие второго лота предусмотрено на отметке 5000 п. По сути второй лот скорее будет закрываться только по обратному сигналу. В то же время он рассчитан на отслеживание любого тренда.
GParam.flagprofit = true - включение профита true.
GParam.profitqty = 0
GParam.raprofit = {0,0,0,0} - в этом случае здесь значения нулевые.
GParam.flagprofittrail = true - включение многоуровневого профита true.
GParam.profit_arr = {200,0,0.5},{5000,0,1}} - два уровня, каждый в отдельных скобках, где первое значение - смещение в плюс от цены входа, второе значение - коэффициент умножения расчетного профита (четвертое значение из GParam.raprofit = {0,0,0,0}), указывается одно из двух - или стоп в пунктах, или коэффициент. При наличии одного из двух значений, второе ставится 0; третье значение в скобках одного уровня - доля контрактов закрываемых по профиту (от 0 до 1, где 1 - 100%).
Здесь, если всего 2 лота, то закрытие одного из двух будет при третьем значении 0.5 - (50%). На втором уровне позиция кроется полностью и это значение 1 - (100%).
Соответственно если количество открываемых контрактов больше, то, к примеру, при 4 лотах эти значения будут 0.25 - (25%), в последнем уровне 1 - (100%).
Настройка фиксации прибыли и убытка
Настройка фиксации убытка и прибыли за день значит, что в роботе есть возможность прекращать торговлю при заданном значении убытка и полученной прибыли. В данной стратегии робот прекращает торговлю при убытке 3000 п. за день и при достижении прибыли 6000 п.
Блокировка открытия позиций и мани-менеджмент
В последней версии робота появилась функция ограничения количества открываемых позиций за день. На данный момент, когда произошли изменения в списании комиссии - за лимитные заявки она не берется, на рыночные увеличена в шесть раз. Робот Тренд торгует только по рынку и сейчас это может быть актуально.
На фондовом рынке, для акций комиссия осталась прежней.
Так же добавлен адаптивный мани-менеджмент, когда при просадке меняется количество лотов для входа.
Закрытие позиции по времени, интервалы торговли
В этой стратегии интервалы торговли отключены.
Но при необходимости их можно установить. Это особенно актуально на открытии рынка, когда при скачках цены могут открыться несколько разнонаправленных сделок, которые приведут к убытку, равному хорошей прибыли за несколько дней.
GParam.flagstoptime = false - включение временных интервалов, false отключены.
GParam.stoptime_arr = {{"08:55:00","09:02:00",false},{"23:39:59","23:59:59",true}} - в эти периоды торговля не проводится.
Таких периодов может быть сколько угодно. Задается время начала и конца периода, false - сделки в это время не открываются, при true - все позиции закрываются.
GParam.flstoptimestpr = true - в заданные периоды при true обратные сигналы индикатора приведут к закрытию позиции. При false такие сигналы не отслеживаются.
Метки на графике и технические настройки
Для тестового режима задается количество меток на графике, иначе они отображаться не будут. Здесь должен быть включен флаг показа меток.
Технические настройки остаются без изменений.
Особенности стратегии
Торговлю по пересечению двух индикаторов Volatility Median можно осуществлять практически на любом таймфрейме. Параметры индикаторов подбираются в зависимости от стратегии.
Окно робота содержит информацию об инструменте, количестве лотов, открытых в данный момент, Вариационная маржа - это прибыль в открытой сделке, Маржа.День.Прогноз - это общее состояние прибыли/убытков за текущую сессию.
При запуске робота его следует включить, активировав нижнюю левую кнопку. Правая нижняя кнопка служит для ручного закрытия позиции.
Несмотря на то, что эти индикаторы хорошо показывают себя в боковике, пропуская большинство ложных сигналов по этой стратегии, все же полностью их избежать не удастся, при быстрой смене направления цены, убыток неизбежен. Уменьшить потери можно применением многоуровневого стопа или безубытка.
Боковое движение рынка всегда убыточное для любой чисто трендовой стратегии, но торговля Volatility Median все же значительно отличается от торговли по простым скользящим средним, ложных входов происходит значительно меньше.
Данная стратегия предназначена для ликвидных инструментов, которые хорошо ходят. В этом случае неизбежные убытки будут перекрываться прибылью от больших направленных движений.
Тестирование стратегии лучше проводить на длительных отрезках времени и смотреть как она будет себя показывать во всех фазах рынка. Прибыли сменяются убытками и они, при торгах индикаторами, могут быть значительными.
Для того, чтобы торговля по индикаторам была прибыльной можно применять диверсификацию - запускать несколько роботов по разным инструментам, по стратегиям, которые хорошо себя показали на тестах.
Настройки стратегии сопряжены с постоянной сменой параметров. При замене идентификаторов, режимов работы, добавлении фильтра, чтобы изменения гарантированно вступили в силу, необходимо удалять файл ini и лог файлы из папки logs. Во избежание потери времени, при подборе параметров это следует делать перед каждым запуском робота.
Реальная торговля трендовым роботом
В следующих заметках будет говориться о других индикаторах, которые могут применяться при торговле универсальным трендовым роботом. Будут рассматриваться скальперские стратегии.
Настройка робота, торговые стратегии и подбор параметров. Часть 1.
Торговая стратегия по сигнальному индикатору ASCTrend. Часть 2.
Торговая стратегия по индикатору Super Scalper (NR Scalper). Часть 3.
Торговая стратегия по индикатору Variable Moving Average. Часть 4.
Торговая стратегия по индикатору анализа наклона 6. Часть 6.
Торговая стратегия по индикатору пробоя хая/лоу предыдущей свечи. Часть 7.
Подписывайтесь на канал, дальше будут заметки на разные темы, которые интересны сегодня многим.