September 8, 2020

Обзор торгового бота SH old

Описание стратегии:
Хеджирование – самая безопасная стратегия на рынке!
Советник на основе корреляции и коинтеграции валютных пар.
Описание стратегии:
Робот работает с умным хеджированием, самой безопасной стратегией на рынке. Он хеджирует (страхует) ордера двух высоко коррелируемых валютных пар, поэтому независимо от того, в каком направлении движется рынок, просадка будет минимальной, а прибыль – гарантированной! Советник SH торгует на раскореляции валютных пар. Когда коррелируемые инструменты отклоняются от своего курса, советник делает ставки на возврат к правильному курсу.
Корреля́ция
Корреля́ция («соотношение, взаимосвязь»), – статистическая взаимосвязь двух или более случайных величин (либо величин, которые можно с некоторой допустимой степенью точности считать таковыми). При этом изменения значений одной величины сопутствуют систематическому изменению значений другой величины. Математической мерой корреляции двух случайных величин служит коэффициент корреляции.
Коинтеграция
Коинтеграция – свойство нескольких нестационарных временных рядов, заключающееся в существовании некоторой их стационарной линейной комбинации. Коинтегрированность является важным свойством многих экономических переменных, которое означает, что несмотря на случайный (слабо предсказуемый) характер изменения отдельных экономических переменных, существует долгосрочная зависимость между ними, которая приводит к некоторому совместному, взаимосвязанному изменению.

Принцип работы стратегии:

Выбираем две валютные пары с высоким коэффициентом корреляции и коинтеграции. Большую часть времени пары движутся одинаково. Но бывают моменты, когда пары расходятся друг от друга. В такой момент советник открывает встречные позиции как показано на скрине ниже:

Закрытие сделок происходит в тот момент, когда валюты вновь сходятся и дают суммарную прибыль. Разберем на данном примере принцип хэджирования (страховки). Мы видим, что по GBPUSD открыта позиция sell, а по EURUSD позиция buy. Пока валюты будут идти параллельно, их суммарная прибыль изменяться не будет. Если будет даже очень длительный тренд в одном направлении, например, вверх, то по GBPUSD мы получим убыток, а по EURUSD примерно такую же прибыль. Благодаря этому принципу торговли мы не получаем больших просадок. Одна сделка у нас всегда защищает другую! Суммарная прибыль у нас возникает, тогда когда пары приближаются друг к другу. И в этот момент советник запускает трал прибыли и забирает максимально возможный профит.

Данные валютные пары взяты только для примера. Это не идеал, на который нужно равняться! Но они хорошо показывают принцип торговли так как достаточно часто расходятся и дают большое число сделок. Учитывайте это при выборе инструментов! Если Вы хотите получить наиболее безопасную торговлю, то нужно подбирать пары инструментов с очень высокой корреляцией. При этом сделок будет очень мало. У многих бывает соблазн поставить корреляцию в обратном направлении. Например на EURUSD-GBPUSD торговать по отрицательной корреляции или на EURUSD-USDCHF – по положительной. Такая торговля может принести большую прибыль за короткий срок. Но именно такая торговля, рано или поздно приведет к полному сливу, так как пары в этом случае не страхуют друг друга, а наоборот подталкивают торговлю в разнос. Если хотите торговать безопасно, то обязательно верно учитывайте направление корреляции. Коэффициент корреляции на некоторых парах может показывать как положительную, так и отрицательную корреляцию на коротких участках. В этом случае проверяйте знак корреляции на более длительном периоде, например 2000 свечей. Если же и там знак может изменяться, то с такими парами лучше не связываться так как они вероятнее всего не коррелируют между собой.

Параметры советника:

Первый инструмент для торговли советник берет тот в окне которого установлен.
Instrument_2 = “AUTO”;
Выбор второго инструмента для торговли. Если оставить поле пустым, то советник предлагает на выбор список наиболее коррелируемых инструментов:

В этом окне необходимо выбрать второй инструмент по которому в дальнейшем будет происходить торговля. Чтобы после перезапуска советник снова не предлагал это меню, нужно в поле Instrument2 вписать выбранный символ. Если в строку Instrument2 прописать конкретный инструмент, например USDCHF то советник будет работать именно с ним.
Если в строку Instrument_2 прописать слово AUTO то советник выбирает второй инструмент на основании первого из заложенного в нем списка:

При этом советник так же меняет и магик номер для удобства анализа и торговли в корзине. Например, установили советник на пару USDCHFи установили Instrument_2 = AUTO. Советник выбирает второй инструмент EURUSD и ставит магик всем сделкам = 3.
Список указанных здесь инструментов в разных версиях может меняться.

MAGIC = 100;
Уникальный номер позиций. Желательно для каждого советника ставить его разный чтобы одинаковые пары на разных советниках не пересекались. Если советник сам выбирает пару в режиме AUTO то магик он выставляет сам и его можно не менять.

Correlation = AUTO;
Выбор типа корреляции между положительной “+”, отрицательной “-” и автоматической.
Если указать параметр Correlation = AUTO, то советник определяет тип корреляции по знаку коэффициента корреляции на момент открытия позиций.
Режим AUTO рекомендуется использовать опытным пользователям. В режиме AUTO знак корелляции может измениться на противоположный в соответствии с поведением валютных пар. А от знака корелляции зависит направление сделок. Если смена знака в режиме AUTO произойдет при открытой серии ордеров на графике, то ваши доливки могут открыться не в том направлении. Это возможно использовать в стратегии ускорения выхода из просадки, но это может нарушить основной принцип хэджирования. В большинстве случаев рекомендуется зафиксировать знак корелляции «+» или «-», в зависимости от выбранных пар.

Lot 1 Symbol (0-auto)= 0.01Lot 2 Symbol (0-auto)= 0.01
Объем стартовых ордеров 1го и 2го инструментов. Если установить 0 то советник сам рассчитает лот второго инструмента исходя из их стоимости пункта и волатильности. (Автоматический расчет рекомендуется только для опытных пользователей). Не путайте его с расчетом лота от баланса. От этого он не зависит!

Доливки

Идеальный вариант торговли данным советником, когда он открывает не более 1 пары позиций и закрывает эту пару по прибыли. Потом следующий цикл… Но если произошла раскореляция или были выбраны не верно инструменты, то советник может открыть дополнительные позиции по более выгодным ценам. Позиции открываются с помощью виртуальных отложенных ордеров. При старте советник показывает линию на графике и перемещает ее за ценой на заданном расстоянии. А на откате цены, когда она пересечет линию, открывает доливку.

OrderLotUp = 2 – С какого ордера начинаем увеличение лота.
K_Lot = 2.00 – Коэффициент изменения последующих лотов.
Maxlot = 1 – Максимально возможный лот открываемой позиции
MaxOrders = 4 – Ограничение количества ордеров
Step = 15 – Первый шаг доливочных ордеров.

Если после установки первой пары ордеров их убыток в пипсах стал больше указанной в параметре Step, то открывается следующая доливка. На 5 значных котировках советник увеличивает Step в 10 раз. Величина шага, указанная на самом графике является истинной уже измененная под количество знаков.

K_Step= 1,5 – Коэффициент шага доливочных ордеров. При Step=100 и К=1.5 второй шаг будет 150 третий 225 и т.д…. Т.е. с каждой новой доливкой шаг будет увеличиваться.

Level_Tral = 10 – Расстояние до виртуального доливочного ордера.
Доливочные ордера открываются не сразу при достижении просадки. Они выставляются в виде виртуальных отложенных ордеров на расстоянии Level_Tral от текущей цены. Далее этот виртуальный отложенный ордер перемещается за ценой на этом же расстоянии, пока цена на обратном движении не откроет его.

Расчет дельты расхождения инструментов.

TIMEFRAMES = 5; – ТФ по которому производим расчет дельты корреляции.
BarsCorrelation= 300; – Число свечей для расчета корреляции
K_Min_Delta= 1.10; – Коэффициент деления максимальной дельты определяет минимальную дельту входа как DELTA_MAX / K_Min_Points. Используется для изменения минимальной дельты входа первых позиций.
Min_Delta. – Минимальная дельта открытия первых позиций. Открывать будет только если дельта

SPREAD (фильтры спреда)

NoOpenSpread= 1 – filter spread (Delta > sum spread)
Не открывать если дельта меньше NoOpenSpread. Пример: спред по EURUSD = 2 спред по GBPUSD = 3. Суммарный (3+2=5). Сделки откроются только если дельта более 15 (5*NoOpenSpredDelta)
NoOpenSpread влияет только на открытие первой пары позиций.

MaxSpread= 0 -MaxSpread (0 – off)
Не открывать и не закрывать сделки если спред по одной из пар стал больше заданного
Исключение – ручное закрытие и работа виртуальных отложек

Trailing Profit (Трал профита)

close profit (0-auto) старт трала профита в валюте депозита
close trall (откат трала профита в %)
K_D= 5 – Коэффициент на который делим профит при авторасчете. Работает только если close profit = 0. При этом стартовая прибыль трала рассчитывается в зависимости от текущей дельты деленной на коэффициент и умноженной на сумму произведений суммарного объема и стоимости пункта каждой валюты.
Profit = DELTA / K х (tick_value1 х L1+tick_value2 х L2)tick_value – стоимость пункта валютыL1 – суммарный лот всех позиций первой валютыL1 – суммарный лот всех позиций второй валюты

Трал будет включаться при достижении прибыли, например, 10 usd и при откате на 50% закрывать все. Если прибыль после старта сразу пошла вниз, то закроется при 5 usd. Если прибыль выросла, до 150 usd, то на откате закроется при 75usd и не будет уходить дальшев минус. Если нужно чтобы советник сразу закрывал ордера при достижении указанной прибыли без трала, то установите откат трала
close trall = 0.

Close Delta

CloseRevers= true – CloseDelta закрытие при пересечении дельты если прибыль больше Min_Profit
Min_Profit_Delta= 0.00 – Min Profit (минимальная прибыль в валюте 0-off)

Close Loss

CloseLoss = false – Close Loss закрытие при убытке
Loss_Close = 0 – lossprofit (убыток в валюте 0-off) закрытие при достижении убытка
Stop_Trade = true – StopTrade остановка торговли при старте

Close Time

MinuteClose= 1500 – Minute Loss Close (0 – off). В этом параметре указываем число минут после которого советник будет пытаться закрыть позицию за счет накопленного профита.

Скальпинг

Скальпинг – закрытие последних двух сделок при достижении профита. Эта функция отключена изначально и я не рекомендую ей пользоваться без особого опыта так как она может затянуть процесс закрытия серии. Суть ее в том, что она отслеживает последнюю пару сделок и когда эта пара в сумме дает прибыль больше чем указано в ProfitSkalping, то закрывает только эту пару не трогая остальные. Работает только при открытии второй или последующих пар ордеров.
ProfitSkalping = 0.0; – Профит скальпинга. (Суммарный профит последних 2 позиций)

Correlation

CorrOpen = 0.0; – Correlation open. Минимальный размер корреляции
CorrClose = 0.0; – Correlation Close (0 – off) (закрывать если корреляция ниже и прибыль больше Min_Profit
Min_Profit_Correlation = -10.0; – Min Profit (минимальная прибыль в валюте депозита)
BarsControlCorrelation = 300; – Bars Control Correlation

Cointegration

Cointegration = false;
CoiOpen = 0.0; – cointegration open (0 – off) минимальный размер коинтеграции
CoiClose = 0.0; – cointegration Close (0 – off) (закрывать если коинтеграция ниже и прибыль больше Min_Profit _Coi = -10.0; – Min Profit (минимальная прибыль в валюте депозита)
PercentProfit = 10.0; – % profit closing (% профита на закрытие дальних и при снижении корреляции )

TIME (фильтр по времени)

TimeStart = 1; – TimeStart (время начала работы советника)
TimeEnd = 23; – TimeEnd (время окончания работы советника)
Сделки открываются только в период времени с TimeStart по TimeEnd. Если указать TimeEnd меньше чем TimeStar, то советник будет торговать ночью.

LOCK

Start_Lock_Orders = 0; – Start Lock Orders, 0-off (число открытых колен для открытия лок ордера)
PercentLock = 100.0; – % Lock (% перекрытия объема)
MinProfitLock = 1.0; – MinProfitLock (минимальный профит перекрытия лока)
Level_Lock = 10; – Level Lock (расстояние до лок ордера)
Локирующий ордер выставляется по той же валютной паре, по которой советник открыл заданное число основных ордеров ( Start_Lock_Orders ). Советник суммирует прибыль локирующего ордера с убытком самого первой позиции той же валюты. Если эта сумма достигает значения MinProfitLock, то советник закрывает лок и 1 дальнюю позиции. Обратите внимание, что закрывает не парно, а только по той валюте, на которой был лок. Перекос возникший после этого советник восстанавливает за счет виртуального ордера.
Функция LOCK очень опасная и не стоит ее применять без особой необходимости!

Equity Profit (закрытие при увеличении эквити)

EquityProfit = 0.0; – Equity profit (закрытие по приросту эквити в валюте) 0-off
Советник закрывает все сделки как только эквити вырастет на заданную величину. Функция предназначена больше для тестера так как ее правильная работа возможна только при торговле на 1 советнике без корзины и без торговли на других парах.
Пример:
При старте советника. EquityProfit = 10 Balance = 1000 Equity = 1000.
В процессе торговли возникла просадка по парам 100 usd. Текущий баланс 1105 usd а эквити 1005. Такое возможно если советник работал скальпингом или Вы сами закрывали прибыльные сделки не парно. Как только эквити станет 1010 usd так советник закроет все позиции. Баланс и эквити при этом станут 1010 usd. Т.е. он снизит баланс, но выведет эквити на уровень выше стартового на 10 usd.

Filter GEP (фильтр при резких скачках)

Filter_GEP = true; – Если дельта выросла на одном баре более чем в 2 раза то запрещаем открывать позиции.
Во время ГЭПА или просто при резком скачке одной из валют, бывает резкое расширение дельты. Данный фильтр нужен, чтобы советник не открывал позиции на неспокойном рынке.

Прочие параметры

Slippage = 50; – Slippage, Проскальзывание цены
StringLines = 50; – String lines Число строк в информационном поле в центре экрана.
WindSize = 1.2; – Подбор параметра для размера информации в зависимости от типа монитора (значение ставьте в пределах 0,5 – до 3)
SleepAfteOpenClose = 1000; – Задержка после открытия и закрытия позиций в миллисекундах.
AlertTime = 60; – Время задержки алерта
ask_open_close = true; -Переспрашивать перед открытием и закрытием сделок после нажатия кнопок.
DrawLine = true; – Показывать на экране линии ордеров

Дополнительные функции советника

Если нажать на значок открытой позиции, то советник предлагает ее закрыть. При этом он показывает все данные по ней в том числе текущую прибыль с учетом комиссии и свопов. Закрывать можно позиции любой валюты, не обязательно той, в окне которой находится значок.

Если Вы закрыли позицию руками или советник при закрытии не смог закрыть какое то направление из за реквотов, то возникает дисбаланс ордеров и нарушается принцип хэдж торговли. Чтобы восстановить баланс, советник выставляет виртуальный отложенный ордер в сторону недостающего направления и тралит этот ордер за ценой пока цена на обратном движении не зацепит его. Далее советник открывает ордер и восстанавливает дисбаланс. Работа виртуального доливочного ордера описана выше в разделе «Доливки»