пятница, 14 июня 2024 г.

2. SWTG_Robot. Правила открытия позиций

2.1. Задание глубины анализа рынка




Рис.2.1. SWT-Robot. Отображения параметров состояния 

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

Глубина анализа рынка задается параметром TrendVector - целое число, определяющее номер старшего тренда, начиная с которого учитываются все тренды более низкого уровня при определении направления торговли.

Количество трендов, используемых для проектирования торговых стратегий восемь, и им присвоены следующие номера:
Basic - номер 8 - основной тренд;
Long - номер 7 - долгосрочный тренд;
Medium - номер 6 - среднесрочный тренд;
Short - номер 5 - краткосрочный тренд;
Weekly - номер 4 - недельный тренд;
Daily - номер 3 - дневной тренд;
IDay - номер 2 - внутридневной тренд;
Hourly - номер 1 - часовой тренд. 

В случае, когда учитываются все тренды значение параметра TrendVector будет равно восемь. Если исключить базовый тренд - 7, и т.д.

Искусственно тренды разбиты на две группы. 
Пять старших формируют параметр Trend
Три младших - параметр готовности к сделке RTT (Ready To Trade).

В структуре программного кода введены ограничения на диапазон вектора трендов, а именно:- если значение параметра установлено больше 8, то программа принимает значение размерности вектора равным 8, исключая возможные ошибки;
- если значение параметра установлено меньше 3, то программа принимает значение размерности вектора равным 3, т.е. три младших тренда не отключаются при любой заданной глубине анализа.

Состояние рынка по каждому тренду показано в нижней части таблицы рисунка 2.1.
Знак показывает направление движения: плюс - вверх, минус - вниз.
Первая слева цифра означает:
- 1 - коррекция;
- 2 - тренд.
Если в рамках торговой стратегии тренд не учитывается, то индикация ограничивается одним разрядом. 
Если учитывается, то индикатор представляет собой пятизначное число, старший разряд которого показывает направление и характер движения по тренду, второй и третий слева - разрешение (при значении 1) на открытие лонгов и шортов соответственно, четвертый и пятый - разрешение на закрытие лонгов и шортов соответственно.
Например, число 21001 означает что данный тренд восходящий, и в рамках используемой торговой стратегии по этому тренду имеется разрешение на открытие лонгов и закрытие шортов.

2.2. Условия открытия позиций


В самом простом варианте при заданной глубине анализа позиции открываются в направлении действующего тренда.
Тренд считается восходящим, если движение по всем учитываемым компонентам - стохастическим волновым трендам - направлено вверх.
Тренд считается нисходящим, если движение по всем учитываемым компонентам - стохастическим волновым трендам - направлено вниз.
Аналогичным образом трактуется значение параметра RTT (Ready To Trade)
Если согласованного движения по двум параметрам при заданных настройках робота нет, то новые позиции не открываются. Старые удерживаются, если не сформированы согласованные по всем учитываемым трендам и всем правилам условия закрытия позиций.
Пример комбинации трендов при глубине анализа 8 и режиме доминирующего тренда представлен на рисунке 2.1.
Из представленных данных видно, что доминирующий (основной) тренд направлен вниз, а по параметру RTT (Ready To Trade) нет разрешения на сделку, т.е. робот будет в режиме ожидания до разворота вниз по младшей группе трендов.

2.3. Торговый сигнал


Торговый сигнал формируется по внутричасовому тренду - волна W2 графика минутного масштаба (см. рис.2.2)



Рис.2.2. Формирование торговых сигналов

Торговые сигналы формируются по двум признакам.
Первый признак - пересечение волной внутричасового тренда нулевой линии. Если волна пересекает нулевую линию снизу вверх - формируется сигнал BUY. Если сверху вниз - сигнал SELL.
Второй признак - изменение направления движения волны. Если волна находясь в области положительных значений и двигаясь к нулевой линии разворачивается вверх - формируется сигнал BUY. Если волна находясь в области отрицательных значений и двигаясь к нулевой линии разворачивается вниз - формируется сигнал SELL.
Сделка на покупку открывается если параметр Тренд имеет значение UP, параметр RTT - UP, сигнал -  BUY и отсутствуют блокировки на открытие позиции.
Сделка на продажу открывается если параметр Тренд имеет значение DN, параметр RTT - DN, сигнал -  SELL и отсутствуют блокировки на открытие позиции.

2.4. Блокировка начала торговли до отката


Робот совершает сделки сериями в пределах разрешенного лимита риска. 
Параметр ReverseReadyToTrade - при значении true разрешает открытие первой позиции серии после отката по дневному или внутридневному трендам.



Рис.2.3. Отображение значения и состояния параметра ReverseReadyToTrade

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

2.5. Блокировка конфликта интересов


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

2.6. Контртрендовая торговля


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

2.7. Открытие позиций по алгоритму сетки


В момент открытия лонга по торговому робот формирует два уровня цены

            LevelUp = Ask + V * Point;
            LevelDn = Ask - V * Point;

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

Для коротких позиций - шорт - ситуация аналогичная, только уровни отсчитываются от цены Bid, а не Ask.

            LevelUp = Bid + V * Point;
            LevelDn = Bid - V * Point;


Комментариев нет:

Отправить комментарий