SafetyLock - Защита позиций и открытие противоположных отложенных ордеров с LOCK (HEDGE)

SafetyLock - Защита позиций и открытие противоположных отложенных ордеров с LOCK (HEDGE)

25 июня 2019, 16:45
Vladislav Andruschenko
0
1 042

SAFETYLOCK 



"Самое большое укрепление крепости - его защитники…. "
Силован Рамишвили

Советник Exp – SafetyLock PRO был написан с целью защитить такие системы от промахов не путем блокирования позиций, а за счет установки противоположно направленных отложенных ордеров.

Он помогает трейдерам избежать сильного разворота рынка путем установки противоположного отложенного ордера на уже открытую позицию.




Как часто Вам приходилось терпеть убытки из-за того, что во время не посмотрели на монитор?

Как часто Вы отказываетесь от более важных дел, чем смотреть на графики котировок?


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


Рынок очень непредсказуем, и надеяться на какую-нибудь стратегию либо советника довольно опасно. Просторы интернета кишат разнообразного рода советниками, авторы которых яро уверяют Вас, что стратегия рабочая и данный советник принесет Вам прибыль. Довольно часто такие советники рано или поздно промахиваются в своих расчетах и Вы рискуете потерять свои деньги. Работая с позициями, некоторые трейдеры подстраховывают свои позиции с помощью локированных (HEDGE) ордеров, противоположно направленными позициям.

Но зачастую Lock – это не выход, а временное удовлетворение своих желаний.




Основные функции

Советник Exp – SafetyLock PROбыл написан с целью защитить такие системы от промахов не путем блокирования позиций, а за счет установки противоположно направленных отложенных ордеров.

Он помогает трейдерам избежать сильного разворота рынка путем установки противоположного отложенного ордера на уже открытую позицию.

Если трейдер или советник открывает позицию, наш защитник открывает отложенный противоположный ордер на эту позицию. Если позиция трейдера идет в убыток, срабатывает отложенный защитный ордер, создавая тем самым замок LOCK.

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

Также есть функция модификации цены открытия отложенного ордера вслед за ценой позиции.


Алгоритм работы данного советника:


Советник начинает свою работу с того, что проверяет все открытые позиции на наличие уже установленных отложенных ордеров. В системе существуют настройки для проверяемых позиций:


Основной алгоритм

Если на проверяемую позицию еще не стоит отложенного ордера , Exp – SafetyLock PROвыставляет отложенный ордер на расстоянии delta от текущей цены(от текущей , потому что не все ордера открыты на достаточном расстоянии от цены) Следует заметить, что если позиции открываются при включенном Exp – SafetyLock PROто цена данных отложенных ордеров будет на расстоянии delta от цены открытия позиции.
Отложенный ордер можно установить с, заданным в параметрах , StopLoss и TakeProfit.
Также отложенный ордер можно установить с лотом, умноженным на MNLot. Например: если позиция открыта с лотом 0.5, и параметр MNLot=2, то отложенный ордер будет открыт с лотом 1.0 .
Далее система Exp – SafetyLock PROпроверяет уже открытые отложенные ордера, и если цена ушла от ордера на расстояние sens, То система модифицирует отложенный ордер, тем самым подтягивая ордер вслед за ценой.

Если основная позиция закрылась (по стоплоссу, тейкпрофиту, вручную или другой системой) – отложенный ордер, установленный на эту позицию, также удаляется.

Параметр OrderSafetyMonitor– регулирует возможность проверки сработанных ордеров. Другими словами, данный параметр разрешает(true) / запрещает(false) установку отложенных ордеров на позиции, которые были открыты системой Exp – SafetyLock PRO.

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

Еще три важных параметра, который стоит указать в данной статье: TrailingIfProfit, TrailingStop и Prchoose.

Иногда появляется необходимость включать трейлингстоп на позициях. И раз уж мы заговорили об автоматической системе, я «прикрутил» к данной системе автоматический Трейлингстоп.

Для того, чтобы включить Автоматический трейлингстоп, параметр TrailingIfProfitследует поставить на true. Стоит отметить, что при работе данной функции, параметры StopLoss и TakeProfit при первом срабатывании функции – модифицируются на 0.

Параметр TrailingStop– означает шаг трейлингстопа.

Параметр Prchoose– профит в пунктах, при которых автоматический трейлингстоп начнет свою работу.

Вывод: При определенных настройках и последующей проверке системы, я обнаружил, что данный инструмент является своего рода золотой жилой для всех систем, которые доступны в интернете. Данный инструмент по праву может претендовать на звание «Полноценный защитник систем». Но стоит учесть тот факт, что рынок непредсказуем и никто, даже самые опытные трейдеры не могу т с 100% уверенностью дать анализ рынка.


Мониторинг и алгоритм работы


MagictoMonitor– Магические номера проверяемых позиций. Данная опция предназначена для того, чтобы ограничить работу эксперта на определенные системы. Например, если Вы хотите чтобы система следила за позициями определенного советника, Вы должны заменить данный параметр на магический номер этого советника. Если Вы хотите чтобы советник следил за всеми позициями, в том числе и за позициями, которые были открыты вручную, данный параметр следует поставить на 0

SymbolToMonitor- Название инструмента, за позициями которого следует установить слежение. Данная опция предназначена для того, чтобы ограничить работу эксперта на определенные символы. Например, если Вы хотите чтобы система следила за позициями определенного символа, Вы должны заменить данный параметр на точное название инструмента(например: EURUSD USDCHF USDRUR). Если Вы хотите чтобы советник следил за всеми позициями, в том числе и за позициями, которые были открыты вручную, данный параметр следует поставить на 0

  1. Система следит открытые ордера по всем валютным парам или же по тем, которые заданы в настройках советника, параметр Symbol_Monitor.
  2. Система следит те позиции, которые выставленные в советнике Type_Monitor
  3. Система следит те магические номера, которые выставлены в советнике Magic_Monitor
  4. Отложенный ордер выставляется стоп ордером на расстояние StopOrderDeltaifUSE от текущей цены.
  5. Далее Отложенный ордер мониторится.
  6. Если мы прошли расстояние StopOrderDeltaifUSE от ордера и включен параметр ModifyOrdPend=true, цена Отложенного ордера подтягивается. Тем самым уходя в безубыток.
  7. Как только отложенный ордер сработала мы начинаем следить за ней (следить за ней) .
  8. В системе есть функция отключения мониторинга своих ордеров. параметр SafetyPosMonitor=false отключает мониторинг позиций, которые были созданы данным советником.
  9. Если поставить параметр на true система будет следить за  своими отложенными ордерами.
  10. Далее если Отложенный ордер не сработал и ордер от которого был открыт Отложенный ордер, уже закрыта пользователем или другим способом - Отложенный ордер, выставленный на этот ордер, автоматически удаляется.
  11. В системе есть возможность умножать лоты Отложенный ордер. параметр MNLOT. Если например ордер открыт с лотом 0.2 то Отложенный ордер будет открыт с лотом 0.2 * MNLOT.
  12. Если включен параметр CloseOneifStopsActive=true, позиция, на которую был открыт Отложенный ордер – закроется, и в работе останется только позиция созданная данным экспертом
  13. Также в системе есть возможность выставить StopLoss и TakeProfit отложенных ордеров
  14. Есть возможность включать трейлингстоп на позиции Tralling.

При перезапуске терминала система не выставляет новые Отложенные ордера. Она следит за Отложенными ордерами, выставленными ранее.

Система способна следить за огромным количеством ордеров.




Внешние переменные и настройки


 
Название Описание
MilliSecondsTimerForMonitoring количество миллисекунд исполнения алгоритма (по умолчанию 1000 = 1 секунда) 
Параметры мониторинга
SymbolMonitoring SymbolMonitoring= ALL_SYMBOL = Проверять все символы, все сделки на счете. Если Вы установили советника на 1 график любой валютной пары, он будет следить за всеми валютными парами на счете; 

SymbolMonitoring = Проверять только текущий символ. Советник будет Проверять и сопровождать только сделки с символом, на котором установлен эксперт; 

SymbolMonitoring = SPECIFID_SYMBOL = Проверять только сделки по указанному в SPECIFID_Symbol_Monitor символу. Например EURUSD - тогда советник будет сопровождать сделки только по символу EURUSD;
SPECIFID_Symbol_Monitoring

Добавлена возможность создавать список символов через запятую, для мониторинга.
Вы можете указать символы для мониторинга:
SymbolMonitoring = SPECIFID_SYMBOL SPECIFID_Symbol_Monitoring = EURUSD, USDCHF, USDJPY
тогда советник будет следить за 3 парами 

Внимание! Вы должны указать символы так, как написано в "Обзоре Рынка"

Если написано EURUSD.c то писать нужно EURUSD.с , а не eurusd.c  или EURUSD.C

Type_Monitoring тип сделок для мониторинга, BUY SELL или ВСЕ
Magic_Monitoring Магический номер позиций для мониторинга
Теперь можно задать список магических номеров через запятую, которые нужно Проверять . 
Например: 
Magic_Monitoring= -1 означает, что будут Проверять все магические номера;
Magic_Monitoring= 0 означает, что будут мониториться ручные сделки ;
Magic_Monitoring= 555,777 означает, что будут мониториться магики 555 и 777;
Comment_Monitoring Данная опция фильтрует сделки для выставления LOCK по позициям, чьи комментарии совпадают с Comment_Monitoring 
Например: 
Comment_Monitoring="" - следит за всеми сделками, неважно какой у них комментарий 
Comment_Monitoring="VirtualTRadePad" - следит за всеми сделками, с комментарием VirtualTRadePad, даже если в комментарии есть VirtualTRadePad-1 или VirtualTRadePadEXTRA или TickVirtualTRadePadEXTRA 
Min_Lot_Monitoring Минимальный лот для мониторинга советником, если 0 - параметр отключен; 
Max_Lot_Monitoring Максимальный лот для мониторинга советником, если 0 - параметр отключен; 

например, Вам необходимо использовать текущий советник SafetyLock для защиты позиций, которые набрали большой лот, например при использовании мартина. Лот, на который Вам нужно установить противоположный стоп ордер = 0.16, при этом советник не должен трогать позиции, которые меньше чем 0.16, тогда Вам необходимо выставить такие параметры: Min_Lot_Monitoring =0.16 ; 
например, Вам необходимо локировать все позиции, которые имею лот от 0.1 до 0.25, тогда Вам необходимо выставить такие параметры: 
Min_Lot_Monitoring = 0.1; 
Max_Lot_Monitoring = 0.25; 
SafetyPosMonitoring Включить мониторинг позиций, открытых советником SafetyLock.
Если SafetyLock  установил локирование Вашей позиции путем установки отложенного ордера и этот отложенный ордер активировался и превратился в позицию, тогда SafetyLock  установит новый отложенный ордер на эту позицию.
Этот алгоритм напоминает алгоритм Качелей.
Параметры отложенных ордеров
StopLosse стоплосс ордеров отложенных ордеров SafetyLock
TakeProfite тейкпрофит ордеров отложенных ордеров SafetyLock
MNLOT Множитель лота для отложенных ордеров 
Если, например, ордер открыт с лотом 0.2, то отложенный ордер будет открыт с лотом 0.2 *  MNLOT;
StopOrderDeltaifUSEe Дистанция для отложенных ордеров SafetyLock
DynamicStopOrderDelta

параметр динамической дистанции DynamicStopOrderDelta:
Позволяет устанавливать разную дистанцию отложенного ордера в зависимости от лота защищаемой позиции.
При DynamicStopOrderDelta >0 : Чем Выше лот, тем ближе дистанция отложенного ордера!
При DynamicStopOrderDelta <0 : Чем Выше лот, тем дальше дистанция отложенного ордера!
DynamicStopOrderDelta устанавливается на позицию с объемом 1 лот.

Например:
При DynamicStopOrderDelta=100:
Если лот (объем) вашей позиции будет 1 лот, тогда дистанция StopOrderDeltaifUSEe будет = 100 пунктов;
Если лот (объем) вашей позиции будет 0.1 лот, тогда дистанция StopOrderDeltaifUSEe будет = 1000 пунктов;
Если лот (объем) вашей позиции будет 0.01 лот, тогда дистанция StopOrderDeltaifUSEe будет = 10000 пунктов;

При DynamicStopOrderDelta=-100:
Если лот (объем) вашей позиции будет 1 лот, тогда дистанция StopOrderDeltaifUSEe будет = 100 пунктов;
Если лот (объем) вашей позиции будет 0.1 лот, тогда дистанция StopOrderDeltaifUSEe будет = 10 пунктов;
Если лот (объем) вашей позиции будет 0.01 лот, тогда дистанция StopOrderDeltaifUSEe будет = 1 пункт;

Параметры Сетки ордеров
NumberofStopOrder Количество отложенных ордеров SafetyLock для одной позиции.
Вы можете установить NumberofStopOrder= 5, тогда на каждую позицию будет открыто 5 отложенных ордеров LOCK. 
Позволяет строить сетку отложенных ордеров
DistancefromStopOrders Шаг сетки в пунктах, при использовании  NumberofStopOrder
Параметры модификация ордеров
ModifyOrdPend Включить модификацию цены открытия отложенных ордеров при движении цены.
Позволяет тянутся отложенным ордерам вслед за ценой.

ModifyOrdPend_STEP Шаг модификации в пунктах
ModifyOrdPend_onlytoOpenPrice  true - возможность модифицировать отложенный ордер только до цены открытия позиции(старый вариант)
false - продолжать модифицировать по движению цены
Параметры дополнительные
ReopenClosedSafetyOrders Позволяет заново открывать отложенные ордера SafetyLock , если они были закрыты стопом, при этом защищаемая позиция еще открыта.
Например: Отложенный ордер SafetyLock  сработал и превратился в позицию, на эту позицию установлен стоплосс, тейкпрофит или трейлингстоп. Эта позиция, при движении цены, закрывается по своему стоплоссу или тейкпрофиту. При включении этой опции, советник SafetyLock  выставит новый отложенный ордер на главную позицию. 
StopOrderDeltaifReopens  Дистанция для установки отложенного ордера SAFETYLOCK после переоткрытия ордера. 
Если StopOrderDeltaifReopens = 0, тогда дистанция = StopOrderDeltaifUSEe (старый вариант)
Цена для установки отложенного ордера будет рассчитываться от текущей цены. 
Close_One_if_Safety_Closed_In_Profit

закрывает оригинальную позицию, если позиция SafetyLock была закрыта в прибыли, перекрывающей текущий убыток оригинальной позиции. 
Например, Close_One_if_Safety_Closed_In_Profit=true MNLOT=2. 
Как только сработает LOCK и позиция Safety будет закрыта по тейкпрофиту, тогда и оригинальная позиция будет закрыта. 

При использовании NumberofStopOrder>1 прибыль позиций SafetyLock рассчитывается от суммы прибыли всех позиций по Тикету основной позиции. 

Теперь закрытие основной позиции происходит только тогда, когда сумма прибыли закрытых позиций SAFETYLOCK и основной позиции будет больше или равна Close_One_if_Safety_Closed_In_Profit_Dollars.
Закрываются все ордера и позиции SAFETYLOCK.

Например:

  1. Close_One_if_Safety_Closed_In_Profit = true и Close_One_if_Safety_Closed_In_Profit_Dollars = 10 и StopOrderDeltaifReopens =10;
  2. Оригинальная позиция BUY и ордер SAFETYLOCK SELLSTOP;
  3. Цена идет вниз и BUY закрывается с убытком -10$ и активируется отложенный ордер SELLSTOP;
  4. Цена продолжает идти вниз и SELL становится прибыльной позицией с прибылью 20 $;
  5. По условиям работы этой функции: Убыток от оригинальной позиции BUY -10$ + текущая позиция SAFETYLOCK SELL с прибылью +20$ = 10$ общей прибы; 
  6. Позиция SAFETYLOCK SELL закрывается и суммарная прибыль от двух позиций (BUY + SAFETYLOCK_SELL) = 10 $.


Close_One_if_Safety_More_profitable

закрывает оригинальную позицию, если позиция SafetyLock более прибыльная, перекрывающая текущий убыток оригинальной позиции. 
Например, Close_One_if_Safety_More_profitable=true MNLOT=2. 
Как только сработает LOCK и позиция Safety будет более прибыльная, тогда и позиция Safety и оригинальная позиция будет закрыта. 

При использовании NumberofStopOrder>1 прибыль позиций SafetyLock рассчитывается от суммы прибыли всех позиций по тикету основной позиции. 

Теперь закрытие основной позиции и позиций SAFETYLOCK происходит только тогда, когда сумма прибыли этих позиций будет больше или равна Close_One_if_Safety_More_profitable_Dollars(При NumberofStopOrder>1)
Для получения результатов прошлых версий, установите Close_One_if_Safety_More_profitable_Dollars= 0.


Например:

  1. Close_One_if_Safety_More_profitable = true и Close_One_if_Safety_More_profitable_Dollars = 10 и  StopOrderDeltaifReopens  =10 и   MNLOT=3;
  2. Оригинальная позиция BUY с лотом 0.1 и ордер SAFETYLOCK SELLSTOP с лотом 0.3;
  3. Цена идет вниз и текущий убыток  BUY -10$ , тогда активируется отложенный ордер SELLSTOP;
  4. Цена продолжает идти вниз и SELL становится прибыльной позицией с прибылью 30$, убыток оригинальной позиции BUY = -20$;
  5. По условиям работы этой функции: Убыток от оригинальной позиции BUY -20$ + текущая позиция SAFETYLOCK SELL с прибылью +30$ = 10$ общей прибыли;
  6. Позиция SAFETYLOCK SELL и оригинальная позиция BUY закрываются и суммарная прибыль от двух позиций (BUY + SAFETYLOCK_SELL) = 10 $.

Если включены обе функции Close_One_if_Safety_More_profitableи Close_One_if_Safety_Closed_In_Profit
тогда вычисляется общая прибыль от закрытых позиций SAFETYLOCK и позиций SAFETYLOCK, которые еще открыты. (Актуально для NumberofStopOrder>1) 
Сумма прибыли SAFETYLOCK должны быть больше или равна Close_One_if_Safety_More_profitable_Dollars + Close_One_if_Safety_Closed_In_Profit_Dollars.,
чем основная позиция.

Например:

  1. Close_One_if_Safety_More_profitable = true и Close_One_if_Safety_Closed_In_Profit=true и Close_One_if_Safety_More_profitable_Dollars = 10 и   StopOrderDeltaifReopens =10 и  NumberofStopOrder = 5 и TakeProfite=10 и MNLOT=3;
  2. Оригинальная позиция BUY с лотом 0.1 и 5 ордеров SAFETYLOCK SELLSTOP с лотом 0.3;
  3. Цена идет вниз и текущий убыток  BUY -10$ , тогда активируется отложенный ордер первый SELLSTOP;
  4. Цена идет вниз и текущий убыток  BUY -20$ , тогда активируется отложенный ордер второй  SELLSTOP; При этом первая позиция SAFETYLOCK SELL закрывается с прибылью +30 $
  5. Цена продолжает идти вниз и второй SELL становится прибыльной позицией с прибылью 10$, убыток оригинальной позиции BUY = -30$;
  6. По условиям работы этой функции: Убыток от оригинальной позиции BUY -30$ + текущая позиция SAFETYLOCK SELL с прибылью +10$ + Прибыль от закрытой позиции SAFETYLOCK SELL +30$ = 10$ общей прибыли;
  7. Позиция SAFETYLOCK SELL и оригинальная позиция BUY закрываются и суммарная прибыль от трех позиций (BUY + SAFETYLOCK_SELL+ SAFETYLOCK_SELL) = 10 $.


CloseOneifStopsActive Закрывать позицию, если отложенный ордер SafetyLock сработал.
Если отложенный ордер активировался и превратился в позицию, тогда, при включении этой опции, главная позиция будет закрыта.
CloseSafetyPositionsifclosed Закрывать позиции SafetyLock, которые уже активированы, если главная позиция закрылась.
Если главная позиция была закрыта, тогда позиция SafetyLock  будет также закрыта
Close_One_if _Safety_Closed Если позиция SAFETYLOCK была закрыта по любой причине (ручное закрытие, тейкпрофит, трейлингстоп), тогда основная позиция будет также закрыта. 
Remove_TAKEPROFIT_ofOriginalifStopsActive Удалять тейкпрофит оригинальной позиции, если отложенный ордер SafetyLock был активирован; 
Remove_STOPLOSS_ofOriginalifStopsActive Удалять стоплосс оригинальной позиции, если отложенный ордер SafetyLock был активирован; 

Позволяет "жестко" зафиксировать LOCK на двух позициях удалив при этом стоплосс и тейкпрофит. Создает "Безопасный замок", который не будет разблокирован если оригинальная позиция была закрыта по своему стполосс или тейкпрофиту. 

Параметры TrailingStop
TrailingStopUSE Включить трейлингстоп позиций SAFETYLOCK PRO.
Включает трейлингстоп только на позиции, которые были активированы и открыты советником 
IfProfTrail Включать трейлингстоп только тогда, когда позиция набрала TrailingStope пунктов прибыли.
Если выключить эту опцию, советник включит функцию трейлингстопа сразу же, как только позиция наберет +0 пунктов прибыли. Тогда первый стоплосс установится в минусовую зону. 
TrailingStarte Количество пунктов прибыли для начала включения функции трейлингстопа
TrailingStope Дистанция в пунктах от текущей цены до установленного стоплосса. 
Если текущая прибыль = 200 пунктов, а TrailingStope = 100, тогда стоплосс будет установлен на уровне +100 пунктов. Тем самым мы даем цене возможность отката на 100 пунктов максимум. В другом случае сработает стоплосс и позиция будет закрыта в +100 пунктов. 
TrailingStep Шаг изменения стоплосса при включении функции трейлингстопа.

Параметры Breakeven
MovingInWLUSE Включение функции безубытка. 
Функция модифицирует стоплосс в LevelWLoss пунктов, когда позиция наберет LevelProfit пунктов прибыли. 

Пример:
LevelWLoss=50 LevelProfit=200
Как только позиция наберет 200 пунктов прибыли, Стоплосс позиции будет модифицирован в цену открытия позиции (+спред) + 50 пунктов
Пример:
LevelWLoss=0 LevelProfit=100
Как только позиция наберет 100 пунктов прибыли, Стоплосс позиции будет модифицирован в цену открытия позиции (+спред)
LevelWLoss Уровень установки стоплосса в плюсовой зоне в пунктах
LevelProfit Количество пунктов прибыли, которое должна пройти позиция для того, чтобы функция безубытка модифицировала стоплосс.
Параметры торговли
SetMinStops Автоматически нормализует все параметры в пунктах до минимально возможного уровня стопов на сервере. 
Если ВЫ указали стоплосс или дистанцию = 10 пунктам, а минимальный стоп уровень на вашем сервере = 20 пунктам, тогда советник автоматически нормализует значения стоплосса и дистанции до 20 пунктов. 
Если выключить эту опцию, тогда при возврате сервером ошибки 130 , советник не сможет установить отложенный ордер или стоплосс
Magic Магический номер открываемых отложенных ордеров советником 
Slippage Уровень максимально возможного проскальзывания в пунктах при открытии и закрытии позиций.

Пример:
Slippage = 1
Максимальное отклонение при открытии позиции = Цена открытия +-1 пункт.
Slippage = 100
Максимальное отклонение при открытии позиции = Цена открытия +-100 пункт.
Например: Цена открытия позиции при отправке приказа на сервер = 1.12345
Но, если за время отправки и открытия позиции цена изменилась в пределах 100 пунктов, тогда позиция откроется с проскальзыванием в пределах 1.12245 - 1.12445 
MarketWatch Включает возможность открытия позиций с стоплосс \ тейкпрофитом на счете с MARKET исполнением. 
Первая открывается позиция, после успешного открытия модифицируются уровни стоплосс и тейкпрофит.




Safety SLP - Нивелирование позиций.
Сглаживание убытков с помощью перекрытия плюсовых ордеров.


Как мало нужно для счастья. Д ля одного, это здоровье, для другого-любовь, кому-то не хватает материального благополучия, кто-то видит счастье в общении, кто-то счастлив от того, что он нужен кому-то, кому-то для счастья хватает просто радоваться жизни.
Для трейдеров счастье - когда сигналы отработаны на 100 % в плюс. Либо убыток сведен к 0, или хотя бы к минимуму. Советник Safety SLP поможет свести убыточную позицию к минимальным убыткам с помощью нивелирования локированных (LOCK) позиций.