KvaziLocker - событийный советник переменного тайм фрейма, в который зашит торговый стиль г-на VIB - талантливого трейдера, заработавшего трейдингом больше всех, с кем я знаком.

Вот основные положения его метода:

  • Когда цена приближается к дневному максимуму -  продавать.
  • Когда цена приближается к дневному минимуму-  покупать.
  • На  отскоках - закрывать позиции.
  • Если цена не отскакивает, а продолжает бить минимум/максимум - добавлять позиции.
  • Если просадка превышает определенный уровень - ставить замки (локи), чтобы затем их раскрыть, закрывая положительную сторону в ожидании уменьшения отрицательной.
  • Торговать - до выполнения дневного плана.
  • Когда VIB выполнял план, он прекращал торговлю.

Для меня его метод был одновременно и неприемлем (из-за локов), и привлекателен (из-за эффективности  торговли). Поэтому, в KvaziLocker -е я попытался разрешить это противоречие.

 Вместо лока, KvaziLocker ставит квазилок. То есть как бы (квази) его ставит, а на самом деле не ставит, но считает, что поставил. И начинает его развязывать так, как его стал бы VIB развязывать. Но используя для такой квазиразвязки квазизапертый ордер.

Вероятно, квазинепонятно? Поясню на пальцах:

VIB запирал ордер A противоположным ордером В, а потом или вместо запертого А открывал новый ордер С, или развязывал связку ордеров А или В.  

А KvaziLocker только "думает", что делает то же самое, а на самом деле или начинает считать ордером С незапертый (квазизапертый) ордер А, или закрывает А и/или переворачивается (закрывает А и открывает противоположный В).

Кроме квазизамков, в KvaziLocker  есть еще несколько инноваций:

Плавающие зоны событий переменного порога

Напомню, событие - изменение направления изменения цены не менее чем на пороговую величину.

В KvaziLocker порог последующего события определяется автоматически величиной предыдущего события по формуле:

THR= - (S-F)/2     (1)

, где THR - порог следующего события;

- второй (second) экстремум текущего события;

F - первый (first) экстремум текущего события.

KvaziLocker выделяет зоны областей High и Low текущего события FSHZone и LZone

Начало соответствующей области KvaziLocker определяет, используя параметр ZoneFactor, на расстоянии:

 Zone=(High-Low)/ZoneFactor     (2)

от первого экстремума F текущего события. То есть, для события роста определяется область LZone, а для снижения - HZone. 

Пример, как это выглядит при работе программы. Здесь:

- в верхнем левом углу информация о High-Low текущего события, H и L зонах текущего события, пороге следующего события и о цели по прибыли;

 

- белая наклонная линия - текущее событие изменения цены от первого экстремума до последнего;

- вверх от красной горизонтальной линии - зона HZone;

- вниз от желтой горизонтальной линии - зона LZone

Сетка ордеров и объем сделок

KvaziLocker совершает сделки, когда цена пересекает уровни сеток ордеров, которые расположены вверх от границы HZone и вниз от границы LZone.

KvaziLocker продает при входе цены в зону HZone, покупает при входе цены в зону LZone на глубину переменного шага от предыдущего уровня сетки ордеров.

Количество уровней сетки (максимально допустимое количество одновременно открытых ордеров) задается внешним параметром Positions. 

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

Объем ордера рассчитывается автоматически, используя параметры советника - плечо Leverage  и допустимое количество уровней Positions.  Например, если Leverage = 10, а Positions = 15, то соотношение суммарного объема пятнадцати открытых ордеров к  балансу счета составит 10:1.

Квазилокирование начинается при возникновении необходимости открытия ордера с порядковым номером Positions+1 

Текущие убытки аккумулируются в незакрытых ордерах сетки ордеров. Емкость сетки (суммарный текущий убыток в незакрытых ордерах) перед началом квазилокирования можно рассчитать по формуле [в пунктах котируемой валюты]:

С=(C1+C2+С3)*Point, где

C1=Spread*Positions;

C2=Module*(Positions-1);

C3=Σ(Stepi), i =1,Positions-1;

Stepi=i*StepFactor.

Внешние параметры

Time frame - тайм-фрейм источника исторических данных. Вы можете прикрепить KvaziLocker  к графику любого инструмента любого тайм-фрейма, но исторические данные KvaziLocker  возьмет из заданного здесь тайм-фрейма.

Module - используемая KvaziLocker -ом единица измерения. Модуль равен максимальной из двух величин:

- заданный процент от  Bid;

- спред.

Initial & Minimal thresholds - Начальный и минимальный пороги события в модулях. Например, порог = 10 означает десять модулей. Если начальный порог не задан, то он принимается равным минимальному.

Distance till TP - дистанция до тейк профита первого открытого ордера. Задается в модулях. Например, дистанция = 3 означает три модуля.  Для последующих ордеров дистанция до тейк профита увеличивается согласно формуле (3), аналогично параметру StepFactor.

Zone factor - Используется для расчета начала зон HZone и LZone по формуле (2). Минимально допустимое значение, при котором событие разделяется на две равные зоны, равно  2.

Step factor - Используется для автоматического расчета шага между уровнями сетки ордеров по формуле:

Step=Module+OrdersTotal*StepFactor*Point     (3)

, где 

Step - шаг между уровнями;

OrdersTotal - порядковый номер уровня;

Point - значение пункта котируемой валюты.

HZone, LZone - Начальные значения зон High и Low. Если не задано, то HZone=High текущего события,  LZone = Low текущего события.

Leverage - допустимое торговое плечо. 

Positions - максимально допустимое количество не закрытых ордеров (количество уровней в сетке ордеров).

Target for equity - Если указано, то задает значение цели по капиталу, по достижению которой все ордера закрываются. Если не указано, то торговля без поставленной цели, то есть, до бесконечности. 

Step till next Target Equity - Если не указано, то после достижения Target for equity советник выгружается. Если указано, то после фиксации текущей Target for equity автоматически назначается новый:

 Target for equity= Target for equity+Step till next Target Equity     (4)

Airbag - подушка безопасности в % от капитала начала сессии.  Если указано, то торговля прекращается, после снижения капитала до указанного значения. Если не указано, то допускается торговля вплоть до обнуления капитала. Рекомендую без подушки безопасности не торговать.

Особенность программы.

Программа собирает профит на отскоках от экстремумов цены, компенсируя убытки, возникающие при пробитии очередных экстремумов. Программа в общем плюсе, пока длина траектории вибрации цены (отскоков) превышает длину тренда, но уходит в минус, когда тренд перекрывает вибрацию. 

Текущие убытки аккумулируются на уровнях сетки ордеров, пройденных по траектории без вибрации и компенсируются вибрациями на крайних уровнях сетки. 

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

При отключенной подушки безопасности (если параметр Airbag =0), полная потеря капитала возможна при изменении цены без отскоков более чем на (100/Leverage)%. Например, при торговле с плечом 1:10 конец может наступить после прямолинейного изменения цены без вибраций на 10%. 

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

Пример

Начальный капитал 1000$

Настройка: Цель по эквити +10$ от базы. Здесь база = эквити = капиталу, когда нет открытых ордеров. Плечо 1:10, уровней сетки 10.

Валютная пара EURUSD.

Примерно до 25 сделки видим увеличение/снижение крутизны роста баланса по мере увеличения/снижения задействованного уровня сетки. Особенно отчетливо рост крутизны виден, после 25-ой сделки, когда при текущей базе около 1032$ была установлена цель по эквити 1043$. После достижения поставленной цели (1043$) на восьмом уровне сетки при балансе около 1054$, робот закрыл все открытые ордера  и приготовился к новому циклу с целью 1054$.

Так как программа предназначена для диапазонной торговли, но по паре EURUSD видим четко выраженный тренд, меняем торговый инструмент на USDJPY, где тренд не такой отчетливый.

Валютная пара USDJPY.

15.08.2017. После достижения цели по эквити 1054$ (при балансе около 1064$) в сделках 41-56, робот закрыл семь уровней сетки открытых ордеров, в которых хранились текущие убытки, и приготовился к новому циклу с целью 1064$.

17.08.2017. В сделках 56-66 пройден путь до предыдущей цели по капиталу, и при капитале 1068намечена следующая цель по капиталу 1078$ 

24.08.2017. Счету исполнился 1 месяц. Закрыто 97 ордеров с плечом 1:1,  суммарная прибыль 9.898%. То есть 1% прибыли добывается примерно за 10 сделок.

05.09.2017. Перед перерывом в торговле закрыто 125 ордеров с плечом 1:1, Profit Factor 4.0, Maximal DrawDown 1.62%,  текущий капитал 1130$. Пару недель торговать не будем.

Download
Детальный отчет КвазиЛокера, часть 1
Kvazilocker.htm
HTML Document 76.0 KB

После объявленного выше перерыва, мы поменяли брокера счета  KvaziLocker. Теперь брокер счета - компания InstaForex. Основное отличие торговых условий в InstaForex от условий у предыдущего брокера - меньший лот (1 лот InstaForex = 10 000, 1 лот у предыдущего брокера = 100 000). Остальные отличия - непринципиальны. 

Начальный капитал текущего счета = 1130 (как конечный у предыдущего). Поэтому, в дальнейшем будем рассматривать предыдущий отчет как Часть 1 (см. выше), а текущий - как Часть 2 (см. ниже) единого отчета.

Начальный капитал, 1000.

Текущий капитал, 1255 (29.11.2017).

Суммарная доходность, 25.5%

Maximal Drawdown, 1.62% (1.62% и 1.43%)

Количество сделок, 237 (125+102)

Исходная настройка программы: торговля с плечом до 1:10 сетью до 10 ордеров

Текущая настройка программы: торговля с плечом до 1:11 сетью до 11 ордеров.

Максимально использованное, до настоящего момента, фактическое плечо составило 1:6.9 (когда сеть открытых ордеров состояла из 7 последовательно отрытых ордеров с общим объемом 0.84 лота и суммарным текущим убытком около 530 пунктов иены, что составляло примерно 3.8% от капитала).

Следовательно, при желании, программу можно использовать для более агрессивной торговли с гораздо большей доходностью и риском.

Download
Продолжение детального отчета КвазиЛокера, часть 2
KvaziLockerPart2.htm
HTML Document 62.7 KB

HIGH-RISK WARNING: Foreign exchange trading carries a high level of risk that may not be suitable for all investors. Leverage creates additional risk and loss exposure. Before you decide to trade foreign exchange, carefully consider your investment objectives, experience level, and risk tolerance. You could lose some or all of your initial investment; do not invest money that you cannot afford to lose. Educate yourself on the risks associated with foreign exchange trading, and seek advice from an independent financial or tax advisor if you have any questions. Any data and information are provided 'as is' solely for informational purposes, and are not intended for trading purposes or advice.