dvp
dvp личный блог
16 марта 2016, 16:20

Controlled Checkered robot - Управляемый Клетчатый Робот

Начало см.:

http://smart-lab.ru/blog/313792.php

http://smart-lab.ru/blog/314938.php

http://smart-lab.ru/blog/315291.php

Управление размером позиции

Бинарную матрицу набора результатов работы роботов можно использовать для управления размером позиции при торговле. Подход очень простой – сумме единиц в матрице приводим в соответствие размер позиции.

Попробуем этот интуитивно понятный подход выразить формулами.

Берём квадратную матрицу размера 3х3 с набором бинарных «мнений» роботов.

AijControlled Checkered robot  -  Управляемый Клетчатый Робот    

Где  aji  – «мнение» отдельного робота.

Назовём такую матрицу клетчатым роботом (checkered robot).

Графически клетчатый робот выглядит как матрица квадратиков разного цвета.

Определим сумму «мнений» роботов как:

Sn = Controlled Checkered robot  -  Управляемый Клетчатый Роботaij)    {0,1,2,3,4,5,6,7,8,9}

Сопоставим значению суммы, используемому как индекс, соответствующий элемент вектора-строки (набора) значений рекомендуемого размера текущей позиции.

Rn ∈ { r0, r1, r2 , r3 , r4 , r5 , r7, r8 , r9 }

Если обозначить предшествующее значение позиции как   Zt-1, соответствующее рекомендованному значению (Rn)t-1  то, при изменившемся рекомендуемом значении текущей позиции

(Rn)t≠ (Rn)t-1

производится коррекция текущей позиции:

Zt= Zt-1+((Rn)t — Zt-1))

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

Определяем Aij  ==> вычисляем Sn ==>  сопоставляем Rn  ==> корректируем  Zt  ==> ждем начала нового тайм-фрейма.

Примеры формирования набора значений размера текущей позиции

Введем дополнительные обозначения параметров

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

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

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

pt  текущее значение цены инструмента.

n текущее значение суммы

LL размер плеча для длинных позиций.

LS размер плеча для коротких позиций.

Примеры определения значений  Rn  

Значения позиции округляются до значения в лотах.

  1. Торговля только Long .

Максимальное значение позиции в лотах

Rmax=R9 =  Округл(VL / pt).

Минимальное значение позиции в лотах

Rmin=R0 = 0         (вне рынка) 

Промежуточные значения позиции в лотах

R = Округл((Rmax/ 9)*Sn)                                                           ( 1 )

  1. Торговля  Long  и Short.

Выбираем значение Sn, соответствующее состоянию «вне рынка». Допустим, это 4. 

Rmin =min(abs(Rn)) =R4 = 0          (вне рынка) 

Подмножество Long

 

Rn , где  n ∈ { 4, 5, 6, 7, 8, 9 }

RLmax =R9 =  Округл(VL / pt).

R = Округл((RLmax / 5)*(Sn-4))                                                      ( 2 )

Подмножество Short

 

Rn , где  n∈ { 0, 1, 2, 3, 4 }

RSmax =R0 = -Округл(VS / pt)

R = Округл((RSmax / 4)*(4-Sn))                                                      ( 3 )

 

 

Дополнительный параметр управления размером позиции

Использование трендследящих алгоритмов сопровождается потерями в зоне флэта. В какой-то мере уменьшить потери можно, введя масштабирующий множитель

k  – коэффициент нагрузки позиции (КНП)

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

Формулы (1), (2), (3)  примеров будут выглядеть следующим образом:

 

R = k*(Округл((Rmax/ 9)*Sn))

Rn  = k*(Округл((RLmax/ 5)*(Sn-4)))                                                      

Rn  = k*(Округл((RSmax/ 4)*(4-Sn)))      

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

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

Описанную совокупность способов и средств я называю Управляемым Клетчатым Роботом (Controlled Checkered Robot)  - УКР или CCR.

Варианты использования УКРов могут быть самыми разнообразными – от одного из критериев при принятии решения о сделке, так и  до полной автоматизации проведения трейдов. Как вариант, УКР неплохой советчик о позиции в конце сессии для переноса на следующую сессию.

Диренко Вячеслав

rbc-trading.blogspot.ru

9 Комментариев
  • SergeyJu
    16 марта 2016, 16:49
    Прочитал все статьи. 
    Есть вопросы.
    1. Почему единичный робот бинарный (лонг-шорт), а не триарный (лонг, шорт, аут).
    2. Какой смысл в клетках, если мнения роботов просто суммируются.
    3. Почему такое странное ограничение — 9 роботов. ИМХО, ничто не мешает клепать их сотнями. 
      • SergeyJu
        16 марта 2016, 17:02
        dvp, то есть «клеточность» у Вас не по существу алготорговли, а только для картинок.
          • SergeyJu
            16 марта 2016, 17:15
            dvp, если Вы используете СС для построения робота — нет.
  • Translator
    16 марта 2016, 17:09
    Чем-то напомнило систему некоего «регулеста», время от времени дающего свои «прогнозы» на форекс-форумах.
    Он как-то даже робота своего выкладывал. С открытым кодом.
    Это был тот еще ребус! Абсолютно бессмысленный и чрезвычайно запутанный.
  • Prophetic
    16 марта 2016, 18:17
    Посмотрев на обилие формул, почувствовал себя идиотом. :)
    Ну, а по существу — не слишком ли усложняете себе задачу?
    Я так и не понял, что Вы получаете на выходе, после всех этих расчетов. вроде сначала написано «Управление размером позиции», а под конец уже «Варианты использования УКРов могут быть самыми разнообразными».

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн