Продолжение. Начало

ReflectorX

Заложенные в ReflectorX на генетическом уровне безусловные знания:

- событийность в терминах RespectScale.com;

- запрет на торговлю без выставления Стоп Лосс и Тейк Профит.

Все остальные рефлексы - условные.

Торгуемые валюты.

ReflectorX торгует все возможные варианты комбинаций валютных пар из следующего списка валют:

USD, EUR, CHF, JPY, GBP, AUD, NZD, CAD, MXN, HKD, DKK, NOK, SEK, ZAR, CZK, HUF, PLN, SGD, RUR. По запросу возможно подключение любых дополнительных валют.

Торговые инструменты

Как следует из формулы определения возможного количества сочетаний "19 по 2" (19 валют по две валюты в валютной паре), всего под контролем  ReflectorX возможны сделки по 171 валютным парам. Но фактическое количество торгуемых инструментов может быть меньше, так как программа автоматически забракуют комбинации валют с недостаточной для анализа глубиной исторических данных, а также со слишком дорогой стоимостью совершения сделки.

ReflectorX создает торговые инструменты, комбинируя самую сильную S (strong) и самую слабую W (weak) по определенному признаку валюту за определенный переменный тайм-фрейм.

Если валюты S и W торгуются в валютном кроссе SW, то ReflectorX купит SW. 

Если валюты S и W торгуются в валютном кроссе WS, то ReflectorX продаст WS. 

Если валютный кросс SW или WS не торгуется, то ReflectorX самостоятельно создаст цепочку W$S, в которой продает W за $, а $ за S.

Если валютный кросс SW или WS торгуется, но цепочка W$S выгодней кросса Sили WS, то ReflectorX вместо валютного кросса SW или Wторгует цепочку W$F.

Если первое звено цепочки W$S торгуется в паре W$, то ReflectorX  продаст W$.

Если первое звено цепочки W$S торгуется в паре $W, то ReflectorX  купит $W.

Если второе звено цепочки W$S торгуется в паре S$, то ReflectorX  купит S$. 

Если второе звено цепочки W$S торгуется в паре $S, то ReflectorX  продаст S$.

Стоимость совершения сделки

Стоимость совершения сделки это та часть стоимости сделки, которая платится за совершение сделки.

Доля стоимости совершения сделки в стоимости сделки определяется удельным весом спрэда в стоимости сделки. Допустимая для торговли (максимальная величина) стоимости совершения сделки задается входным параметром rightWeight

Единица измерения rightWeight - 1/10000 (одна десятитысячная) цены. Например, значение входного параметра rightWeight=10 означает запрет торговли парами, удельный вес спрэда в которых превышает  1/1000 цены.

ReflectorX не торгует валютные пары со стоимостью совершения сделки выше значения rightWeight. Например, значение входного параметра rightWeight=10 означает блокировку торговли парами, удельный вес спрэда в которых превышает  1/1000 цены.

ПримечаниеКогда торгуете самостоятельно, без рефлектора, то чтобы спрэд не "съедал" весомую часть капитала, удобно использовать скрипт SpreadWeighter (бесплатный для наших рефералов), описание которого находится в Каталоге. С помощьюSpreadWeighter сможете выбирать претендентов для торговли руководствуясь не эмоциями и слухами, а рационально оценивая, где торговать выгоднее , чтобы найти "край непуганой дичи" -  торговые инструменты (валютные пары и цепочки)с самой дешевой стоимостью совершения сделок. Так, как это делает ReflectorX . 

Объем сделки

Объем сделки рассчитывается автоматически по величине принимаемого трейдером риска на сделку, который задается входным параметром Risk в % от текущего баланса. Программа автоматически вычисляет значение Стоп Лосс и отрывает сделку такого размера, чтобы убыток ее закрытия по Стоп Лосс, не превысил принятый величину параметра Risk.

Расчет выполняется для счетов с любой валютой депозита для сделок с любыми валютами, как в кроссах, так и в цепочке кроссов. Например, если баланс = 1234 руб, Risk=1%, а торгуем AUDMXN, то откроется ордер максимального объема с риском закрытия по Стоп Лосс не больше 1% = 12.34 руб.  Если средств на счете недостаточно для сделки минимально возможного объема, то совершается сделка минимально возможного объема.

ПримечаниеКогда торгуете самостоятельно, то чтобы  освободиться от необходимости расчета размера открываемой позиции, удобно использовать скрипт RiskManager (бесплатный для наших рефералов), который автоматические откроет сделку  для любой пары с риском, который не превышает заданный. Описание скрипта смотрите в Каталоге. Используя RiskManagerсможете назначать объемы так, как это делает ReflectorX. 

Исторические данные

ReflectorX использует для анализа исторические данные заданного тайм-фрейма платформы MT4. Тайм-фрейм задается входным параметром timeFrame в минутах. Значение используемого тайм-фрейма на результаты торговли влияет незначительно. Чем меньше тайм-фрейм, тем точнее временная идентификация начала/завершения события, но тем выше ресурсоемкость исторической базы. Поэтому:

- идеальный по точности тайм-фрейм - тиковый;

- минимально доступный, самый точный, но самый ресурсоемкий тайм-фрейм  - 1 минутка;

тайм-фрейм, которым пользуюсь я - 5 минутка 

Установите на своей платформе MT4 в Tools->Options->Chart параметры графиков достаточные для желаемой глубины истории. Например, у меня установлено: максимум баров в истории 10,000,000, максимум на чертеже 100,000.

После этого, можно запускать ReflectorX, чтобы он набирался опыта, накачивая и отбирая нужную историю. Рано или поздно (скорее поздно, чем рано) рефлектор накачает историю, и начнет торговать. 

Но ждать придется долго. Поэтому, воспользуйтесь скриптами, которые наши рефералы могут получить бесплатно: HistoryChecker и HistoryExtender. Первый скрипт проверяет наполнение исторической базы, а второй заполняет историю выбранного тайм-фрэйма (подробней см. в Каталоге).

Определенные признаки силы - слабости валют

Сила/слабость всех валют определяется за определенные событийные периоды переменного тайм-фрейма относительно единой базы - доллара США ($):

- по шкале силы события;

- по процентному изменению цены в событии;

- по скорости изменения цены в событии.

Например, за определенные событийные периоды:

- валюты A, B, C, D, E выросли против $, они - "сильные" (S);

- валюты F, G,H, I - ослабли против $, они - "слабые" (W).

По каждому показателю (сила, процент, скорость) определяется самая-самая сильная S/слабая W за определенные событийные периоды пара валют.  

Определенные событийные периоды 

ReflectorX автоматически определяет следующую систему ассоциативных событийных периодов переменного тайм-фрейма, которые использует для принятия торговых решений: 

- для каждой валюты и для каждого торгового инструмента: период текущего события с заданным значением порога Treshold , время начала FTime;

- общий для всех валют и торговых инструментов период текущего рыночного цикла, время начала RTime; 

- для каждой валюты и для каждого торгового инструментапериод текущего события в текущий рыночный цикл, время начала FRTime;

- общий для всех валют и торговых инструментов период последнего происшествия, время начала LRTime;

- общий для всех валют и торговых инструментов период с момента фиксации последнего происшествия, время начала - XRTime. 

Очевидно, что требуются пояснения:

На первом рисунке показано текущее событие F->S одной из валют от первого экстремума F (first) ко второму экстремуму (second), с контрой синего цвета f->s, с индивидуальным тайм-фреймом FTime - временем экстремума F.

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

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

Здесь рисунке история события красного цвета с момента FTime дополнена его предысторией до глубины RTime. Эта общая история - история события черного цвета протяженностью RTime. Так видим, что первый экстремум периода RTime (отмечен FR) не совпал к красным экстремумом F периода  FTime. Поэтому, текущее черное событие черного цвета внутри периода RTime со временем начала FRTime: FR->S с контрой черного цвета f->s. 

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

Так, для рассмотренного нами события FR->S, происшествие - отскок розового цвета от текущего экстремума S на глубину больше текущей контры черного цвета f->s. На рисунке, время начала коррекции - время экстремума S. 

У каждой валюты, у каждого события - свое уникальное время происшествия. Время самого свежего происшествия текущего рыночного цикла - это LRTime.

Очевидно, что время LRTime начала коррекции могло быть зафиксировано только после того, как отскок розового цвета от экстремума S превысил отскок предыдущей контры f->s. Время XRTime - время фиксации происшествия, которое началось в LRTime. 

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

Пороги.

Упомянутые выше событийные периоды переменных тайм-фреймов  и переменные пороги определяются по следующим исходным данным:

Порог события (Treshold) задается в % от первого экстремума события F->S .

Порог контры события (treshold) задается в % от порога события. Событие считается зрелым/незрелым, если контра события больше/меньше порога treshold.

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

- спрэд;

- % от цены (входной параметр kMinBar).

Product Life Management (PLM)

PLM - это управление жизненным циклом изделия. ReflectorX контролирует свои изделия - открытые ордера на протяжении всей их жизни, то есть от замысла до закрытия.

ReflectorX  делает ставки на "собачьих бегах" валют, учитывая форму участвующих в забеге "собак" и показатели, с которыми "собаки" преодолевали предыдущие треки. Ставка делается только в тех забега, в которых участвует самая сильная и/или самая слабая в данной дисциплине "собака". Бывает, что первым к финишу приходит аутсайдер, но чаще лидер обгоняет аутсайдера.

Как правило, ReflectorX закрывает открытые ордера самостоятельно,  но у всех ордеров обязательно выставляется Стоп Лосс и Тейк Профит. В ходе торговли, если необходимо, ReflectorX меняет значения Стоп Лосс и Тейк Профит. Когда ReflectorX замечает новых лидеров и аутсайдеров, то открывает новые сделки, не прекращая контролировать ранее открытые сделки.

Проворность программы - частота фиксации происшествий/ количество совершаемых сделок, существенно зависит от величины порога Treshold. Чем меньше Treshold, тем чаще завершаются старые/ возникают новые события, тем больше сделок. Например, на рисунке ниже (он, примерно, от 24.01.2017), при пороге 4% некоторые сделки тянутся с ноября, а некоторые открывались и закрылись прямо в день открытия. Есть дни, когда сделок совсем нет, а есть дни, когда их очень много.  Сколько жить сделке решаю не я, а ReflectorX.

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

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

Аналитика и торговля

Возможна поставка двух вариантов советника ReflectorX - аналитика или трейдера.

Аналитик ReflectorX Analyst раскроет всю подноготную рынка, определит периоды, подскажет, когда и что торговать, выдаст рекомендации, но совершать сделки, управлять рисками и средствами придется вручную.

Торговый автомат ReflectorX Trader торгует полностью самостоятельно, принимая на себя выполнение следующих поставленных перед ним условий торговли:

 - Подушка безопасности (минимально допустимый для трейдинга баланс в % от баланса в момент запуска советника)  - если задано, то запрещает продолжение торговли при снижении баланса ниже допустимого;

 - Риск на сделку Risk в процентах от текущего баланса, задается обязательно. Используется для расчета объема сделки. Например, если баланс = 1000 руб, а Risk=1, то допустимый риск на сделку 1% = 10 руб. Если средств на счете недостаточно для сделки минимально возможного объема, то совершается сделка минимально возможного объема.

- kST - допустимое соотношение дистанций до стоп лосс и тейк профит при открытии ордера. Запрещает открытие ордеров со значением меньше заданного. 

 - Цель по капиталу - если задано, то завершает торговлю при достижении заданной цели. Если не задано, то торгует до бесконечности.

 - Калибр - если задано, то ставит промежуточные цели по суммарной прибыли /убытку всех открытых ордеров (TargetProfit/TargetLoss). Используется вместе с коэффициентом YoYo в "секретных" формулах:

  TargetProfit = YoYo*AccountBalance()/(2-Calibr)  

  TargetLoss = (2-Calibr)*AccountBalance()/(2-Calibr) 

Например, если баланс = 1000 руб, Calibr=1.05, YoYo=1, то TargetProfit = 1050, а TargetLoss = 950. Когда величина капитала достигнет одной из этих целей, то программа закроет все ордера, которые она не стала бы открывать в момент закрытия, и назначит новые промежуточные цели с учетом текущего изменения баланса.  

YoYo - коэффициент йо-йо назван по аналогии с игрушкой, которая болтается на веревочке. Если позволить капиталу, как йо-йо, расти/снижаться, как в примере, по калибру 1.05 на плюс/минус 5%, то, в итоге, капитал похудеет. Чтобы капитал в режиме "вверх-вниз" не худел, а толстел, используем в формуле коэффициент YoYo>1.

- kRisksStopNewOrders - дистанция до TargetLoss счета, единица измерения - риск на сделку Risk ( описание смотри выше). Если задано, то запрещает открывать новые сделки при снижении капитала счета ниже заданного значения.

- kRiskUnloss - дистанция до безубыточности счета, единица измерения - риск на сделку Risk (описание смотри выше). Если задано, то если суммарная прибыль открытых позиций счета больше заданного значения, то выставляет TargetLoss счета на расстоянии kRiskUnloss от максимально достигнутой прибыли.

Чтобы увеличить изображение, щелкните по нему мышкой.

Здесь в окне слева, сводная информация о возможных претендентах для торговли:

Торгуется USD против EUR, CHF, JPY, GBP, AUD, NZD, CAD, MXN, DKK, NOK, SEK, ZAR, SEK, PLN, SGD, а также 33 кросса и 72 цепочки из данных валют;

Не будет торговаться HKD из за недостатка исходных исторических данных (а данных недостаточно, так как HKD почти не шевелится относительно USD);

Не будут торговаться RUR и HUF, потому что стоимость совершения сделок по ним превышает значение, заданное входным параметром rightWeight.

В окне графика, автоматически генерируемая советником текстовая и графическая информация. Здесь построчно сверху вниз:

верхняя красная строка - текущее состояние рынка (тренд или коррекция) и момент фиксации текущего состояния;

вторая сверху бегущая строка с информацией о выбранных по определенному признаку валютах для сделки в текущий момент. Здесь, на рисунке: по признаку шкалы силы, сохраняется сигнал продавать USD покупать AUD, сделка по этому сигналу уже совершена;

третья строка - данные о текущих торговых целях (если заданы);

четвертая строка - список слабейших по каждому из определенных признаков валют. Текущее сообщение на рисунке - по всем признакам самая слабая валюта USD;

пятая строка - список самых сильных по каждому из определенных признаков валют. Текущее сообщение на рисунке - самый сильный рост 6.69% у шведской кроны SEK, самый быстрый рост 0.02%/час у британского фунта GBP, а самая сильный 3.05 по шкале силы - австралийский доллар AUD;

шестая строка (красная) - RTime. Текущее значение RTime = 16.12.2016 03:05 - время начала текущего события максимальной силы (USDSEK, силой 2.97). Также, RTime отмечен красной вертикальной линией на графике;

седьмая, самая нижняя желтая строка - LRTime. Текущее значение LRTime = 19.01.2017 19:35 - время последнего происшествия за период с RTime (завершения коррекции - продолжения тренда для USDJPY). Также, LRTime отмечен желтой вертикальной линией на графике. 

Условия поставки программы ReflectorX  смотрите в Каталоге.