Введение
Каждый воин должен понимать свой манёвр! (с) А.В.Суворов.
Это почти правильно, но относится к командирам. А солдат должен исполнять приказы, правильно и с максимальной эффективностью.

Вы командир. Робот - ваш солдат. Не придерживайтесь тактики барана, вы должны понимать, что, зачем и почему вы делаете..
Поэтому, независимо от того, пользуетесь вы роботом или торгуете по индикаторам вручную, вы должны четко понимать принципы анализа рынка, заложенные в систему индикаторов, и понимать ситуацию на рынке с точки зрения SWT-метода. Без этого никуда.
А робот? Робот - добросовестный солдат-исполнитель, который должен выполнять задачи, поставленные вами в данной конкретной ситуации. Но вы должны четко и правильно понимать текущую ситуацию и ставить адекватные и выполнимые задачи. Иначе никакая армия роботов не поможет вам достичь поставленных целей по поимке птицы, исполняющей ваши желания.
Как добиться такого понимания?
1. Изучить основы SWT-метода по интерпретации состояния и движений рынка. Это не требует углубления в теорию, все понимается на уровне простых наглядных графических образов.
P.S. В представленном ниже описании рассмотрены основные моменты рабочих алгоритмов. Детали, не являющиеся существенными для понимания принципа действия программ, опущены, чтобы не перегружать и не загромождать текст.Робот содержит почти две тысячи строк кода, но это в основном технические моменты, связанные с логикой реализации алгоритмов.
1. SWT-Robot. Параметры настройки и состояния
Прежние версии робота можно получить отключив дополнительные параметры настройки.
1.1. Параметры настройки.
SWT-Robot - это программа для реализации торговых стратегий на основе SWT-метода. Торговые стратегии определяются выбором значений параметров робота, определяющих режимы его работы.
При сбрасывании робота на график отображается окно настройки параметров (рис.1.2).
Несмотря на множество параметров большинство из них при настройках остается неизменным
Кратко опишем назначение и функции параметров. Детальное пояснение правил открытия и закрытия позиций будет дано в следующих разделах.
В режиме AdaptibeMode=false учитываются все тренды согласно установкам параметра TrendVector. независимо от того направленное или коррекционное движение идет по этим трендам.
ContrTrend - при значении параметра true меняет направление торговли по тренду на контртрендовое. Значение параметра не влияет на дневной, внутридневной и часовой тренды, направление торговли по которым остается неизменным независимо от значения параметра ContrTrend.
Параметр V рассчитывается как сумма текущего значения трех величин:
- волатильности часового тренда;
- волатильности внутричасового тренда;
- спреда.
При отсутствии позиций, открытых торговым алгоритмом, запуск сетки может быть инициирован открытием позиции любого объема (лучше минимального) в ручном режиме.
Рост установленного шага сетки при экстремальном росте волатильности младших трендов ограничен величиной 1/10 волатильности недельного тренда
TakeProfitLevel - целое число, задающее номер тренда по которому определяются уровни ордера тейк-профит: 0 - нет ордера тейк-профит, 1 - часовой, 2 - внутридневной, 3 - дневной, 4 - недельный, 5 - краткосрочный, 6 - среднесрочный, 7 - долгосрочный, 8 основной.
CloseIfNotTrend - при значении параметра true все позиции закрываются если по данным установка робота нет признака тренда вверх или вниз.
Режимы сетки можно менять при четком понимании того, что и зачем вы делаете. На начальном этапе освоения робота сетку лучше вообще не использовать.
1.2. Параметры состояния.

В первой строке таблицы содержатся следующие данные:
Trade - параметр, который указывает, что может делать робот в текущей ситуации. Это параметр принимает три значения:
- BUY - покупать;
- SELL - продавать;
- NO - не предпринимать никаких действий.
Trend - направление совокупного тренда, определяемое в соответствии с выбранной торговой стратегий:
- UP - вверх;
- DN - вниз;
- NO - не определено.
RTT (Ready To Trade) - готовность к сделке по сигналу в направлении:
- UP - вверх;
- DN - вниз;
- NO - не готов.
DoubleGrid и HardGrid.
Торговля по сеточному алгоритму при этом не прерывается, чтобы не нарушать логику торгового алгоритма. Это сигнал для трейдера, что риски находятся в опасной зоне и необходимо их уменьшить изменением параметров торговли.
- 2 - тренд.
Если в рамках торговой стратегии тренд не учитывается, то индикация ограничивается одним разрядом.
Lup и Ldn индикация текущих уровней срабатывания позиций сетки. Значение ноль указывает на отсутствие активного уровня.
Если в вашей версии робота нет какого-либо из указанных в описании параметров настройки, значит этот режим в вашей версии не предусмотрен.
2. SWT-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).
В структуре программного кода введены ограничения на диапазон вектора трендов, а именно:- если значение параметра установлено больше89, то программа принимает значение размерности вектора равным 8, исключая возможные ошибки;
- если значение параметра установлено меньше 3, то программа принимает значение размерности вектора равным 3, т.е. три младших тренда не отключаются при любой заданной глубине анализа.
Полные условия открытия позиций записываются следующим образом:
Правила очень просты.
В зависимости от настройки тренд/контртренд по каждому из трендов формируются условия для открытия лонга или шорта.
Обозначения на примере недельного тренда:
- Wup - движение вверх;
- Wdn - движение вниз;
- WC - коррекционный характер движения;
- !WC - не коррекция$
- WTup - признак роста по совокупности параметров для недельного тренда;
- WTdn - признак снижения по совокупности параметров для недельного тренда;
- Weekly=true означает, что тренд учитывается при формировании условий сделки.
Для остальных трендов аналогично.
Далее, с учетом алгоритмов выбора трендов, как логическое произведение разрешающих условий по каждому из учитываемых трендов, формируются условия для открытия сделки в каждый конкретный момент времени.
Состояние рынка по каждому тренду показано в нижней части таблицы в правой части рисунка 2.1.
- 2 - тренд.
Если в рамках торговой стратегии тренд не учитывается, то индикация ограничивается одним разрядом.
2.2. Условия открытия позиций
Тренд считается нисходящим, если движение по всем учитываемым компонентам - стохастическим волновым трендам - направлено вниз.
В режиме контртренд позиции открываются против направления тренда.
Аналогичным образом трактуется значение параметра RTT (Ready To Trade). Режим контртренда не меняет характер учета трендов, входящих в группу RTT.
2.3. Торговый сигнал

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

Логика работы режима показана на рисунке внизу:

2.5. Блокировка конфликта интересов
2.6. Контртрендовая торговля
Для трех младших трендов, формирующих параметр готовности к сделке RTT (Ready To Trade), ничего не меняется.
2.7. Открытие позиций по алгоритму сетки
После закрытия всех позиций уровни сетки бнуляются и робот переходит в режим ожидания до открытия новой позиции по торговому алгоритму.
З. SWT-Robot. Правила закрытия позиций
3.1. Закрытие позиций по признакам разворота тренда

Рис.3.1. Отображение графика с установленным роботом
Правила открытия и закрытия позиций отличаются.
На уровне группы младших трендов (Daily, IDay и Hourly) отличий нет.
Отличия начинаются с группы старших трендов, а именно:
- по тренду недельного цикла Weekly условия закрытия позиций формируются при смене направления движения и отсутствии признака коррекции WC;
- по краткосрочному тренду Short условия закрытия позиций формируются при смене направления движения или развороте недельного тренда;
- по среднесрочному тренду Medium условия закрытия позиций формируются при смене направления движения или по признаку разворота краткосрочного тренда;
- по долгосрочному тренду Long условия закрытия позиций формируются при смене направления движения или по признакук разворота среднесрочного тренда;
- по основному тренду Basic условия закрытия позиций формируются при смене направления движения или по признаку разворота долгосрочного тренда.
- по глобальному тренду Global условия закрытия позиций формируются при смене направления движения или по признаку разворота основного тренда.
Разумеется, для формирования условий закрытия любой из перечисленных трендов должен быть включен в группу трендов, формирующих условия торговли.
Признак CloseByRT указывает, что в процессе трейда достигнут целевой уровень прибыли относительно принятого риска и позиции будут закрыты по паттерну разворота дневного тренда и разворота внутридневного тренда (см.п.3.2).
Полные правила закрытия позиций по тренду записываются следующим образом:


Закрытие лонга или шорта происходит, когда логическое произведение всех строк равно логической единице. При этом соответствующий тренд должен быть активен для формирования условий закрытия позиции, т.е. его использование должно быть разрешено и вектором трендов и алгоритмом адаптивной настройки.
3.2. Закрытие позиций по уровню прибыли.
Если установленное соотношение профит/риск не равно нулю, то целевой уровень прибыли рассчитывается как произведение коэффициента профит/риск (P/R) на значение расчетного риска позиции при заданном в настройках уровне ордера стоп-лосс.
При достижении порогового значения прибыли позиции закрываются по признакам разворота дневного тренда.
В примере, представленном на рисунке 3.1 коэффициент профит/риск (P/R) равен 3 процента, но открытых позиций нет и целевой уровень прибыли не рассчитан.
При открытии позиции уровень будет сформирован, а его превышение включит режим закрытия позиций по признакам разворота дневного тренда.
При открытии дополнительных позиций будет расти и риск и пороговое значение выхода.
Если установленное соотношение профит/риск равно меньше либо равно нулю, то все позиции закрываются по правилам п.3.1.
После закрытия всех позиций начинается новый цикл торговли.
После закрытия всех позиций начинается новый цикл торговли.
Если не равны нулю одновременно значение P/R и ProfitPerc, то пороговый режим закрытия включается по меньшему из двух значений порога:
На рисунке позаны два варианта формирования условий - с нормировкой объемов по заданному уровню и без нормировки.
3.3. Закрытие прибыльных позиций в режиме SafeModeClose
Условия закрытия:
1. Позиция должна быть в прибыли.
2. Должны быть сформированы признаки разворота внутридневного тренда для позиций соответствующего направления:
