SWT-Robot. Параметры настройки и состояния

Редакция от 27.11.2020.

Каждый воин должен понимать свой манёвр! (с) А.В.Суворов



Рынок так устроен, что любая железка, завязанная на жесткий алгоритм действий, рано или поздно натолкнется на ситуацию, когда этот алгоритм будет приносить не прибыль, а убытки. Возможно это случится через три года, возможно через 5 минут.
Если вы относитесь к роботу, как к черному ящику, не понимая, что, как и почему он делает, то вы в данной ситуации обречены терпеть убытки до окончания неблагоприятного периода. Когда он закончится? Возможно через час, возможно через год.
Поэтому, независимо от того, пользуетесь вы роботом или торгуете по индикаторам вручную, вы должны четко понимать принципы анализа рынка, заложенные в систему индикаторов, и понимать ситуацию на рынке с точки зрения SWT-метода. Без этого никуда.

А робот? Робот - добросовестный солдат-исполнитель, который должен выполнять задачи, поставленные вами в данной конкретной ситуации. Но вы должны четко и правильно понимать текущую ситуацию и ставить адекватные и выполнимые задачи. Иначе никакая армия роботов не поможет вам достичь поставленных целей по поимке вышеозначенной птицы.

Как добиться такого понимания?
1. Изучить основы SWT-метода по интерпретации состояния и движений рынка. Это не требует углубления в теорию, все понимается на уровне простых наглядных графических образов.
2. Понимать алгоритм действий робота и его изменения в зависимости от каждой настройки.
3. Трезво взвешивайте свои силы, потому что легкость и простота в обращении с индикаторами и роботом, следующие из материалов блога, в значительной степени определяются опытом автора.
4. Контроль, контроль и еще раз контроль рисков. Ваша главная задача - оставаться в игре, а не стать богатым, сделав одну ставку. Ставка может и не сыграть.

Удачи!!!

Конструктор торговых роботов SWT-Robot. 

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

1. Параметры настройки.


Рис.1.1. График с установленным торговым роботом SWT-Robot.

SWT-Robot - это программа для конструирования и исполнения торговых стратегий.
Торговые стратегии задаются выбором значений параметров робота, определяющих режимы его работы.

При сбрасывании робота на график отображается окно настройки параметров (рис.1.2).



Рис.1.2. Диалоговое окно настройки параметров робота.

Назначение и функции параметров следующие.

TrendStateVector_1_8 - целое число, определяющее старший тренд, начиная с которого учитываются все тренды более низкого уровня при определении направления торговли. Количество трендов, используемых для проектирования торговых стратегий восемь: Basic - основной, Long - долгосрочный, Medium - среднесрочный, Short - краткосрочный, Weekly - недельный, Daily - дневной, IDay - внутридневной и Hourly - часовой тренды.
Значение параметра 8 означает, что в расчет принимается основной и все младшие тренды, значение параметра 7 - долгосрочный и все младшие тренды и т.д.
Если значение параметра лежит вне диапазона 1-8, то параметр TrendStateVector_1_8 не учитывается, а работает режим раздельного учета трендов по выбору трейдера с помощью параметров BasicTLongTMediumTShortTWeeklyTDailyTIDayT и HourlyT, которые при значении true включают в расчеты соответствующий тренд, а при значении false отключают этот тренд при определении направления торговли.

LongPos при значении параметра true разрешает торговому алгоритму открывать позиции на покупку. На сеточный алгоритм действие параметра на распространяется.
ShortPos при значении параметра true разрешает торговому алгоритму открывать позиции на продажу. На сеточный алгоритм действие параметра на распространяется.

ZeroTDmode при значении параметра true задает нулевую задержку в определении направления тренда.

ContrTrend при значении параметра true переключает робот в режим контр-трендовой торговли, т.е. против направления Trend Direction.
ReverseReadyToTrade - параметр, определяющий тактику проведения сделок. При значении параметра параметра true позиции по торговым сигналам открываются только на откате по дневному тренду или внутридневному тренду, если нет открытых сделок и нет отката по дневному тренду.
LotsForManualMM - объем позиции, задаваемый вручную при выключенном AutoMM.
AutoMM при значении параметра true автоматическое определение объема позиции при заданном риске в процентах от имеющихся средств.
RiskForTradePerc - процент риска на сделку при заданном режиме установки ордеров стоп-лосс и включенном AutoMM.
ProfitSymbPerc - уровень плавающей прибыли в процентах, при достижении которого робот закроет все открытые позиции по инструменту.
BreakEvenEquity - при значении параметра true робот закроет все позиции по инструменту если текущий риск по позициям больше установленного лимита риска RiskLimitPerc при условии, что RiskLimitPerc не равен нулю.
RiskLimitPerc - лимит риска в процентах от баланса счета, при превышении которого блокируется открытие новых позиций.
LeverageMax - максимальный размер фактического кредитного плеча, при превышении которого блокируется открытие новых позиций.
TheChannelStopProfit  - при значении параметра true уровни стоп-лосс и тейк-профит определяются по параметрам каналов поддержки/сопротивления для соответствующего тренда, при значении параметра false - по параметрам волатильности соответствующего тренда.
StopLossLevel_0_7 - целое число, задающее номер тренда, по которому определяются уровни ордера стоп-лосс: 0 - нет ордера стоп-лосс, 1 - часовой, 2 - внутридневной, 3 - дневной, 4 - недельный, 5 - краткосрочный, 6 - среднесрочный, 7 - долгосрочный.
TakeProfitLevel_0_7 - целое число, задающее номер тренда по которому определяются уровни ордера тейк-профит: 0 - нет ордера тейк-профит, 1 - часовой, 2 - внутридневной, 3 - дневной, 4 - недельный, 5 - краткосрочный, 6 - среднесрочный, 7 - долгосрочный.
MovingStopLoss - при значении параметра true ордер стоп-лосс подтягивается к уровню открытия позиции, уменьшая риски, если меняются расчетные значения уровня.
TrailingStopAdaptive - при значении параметра true включается автоматический трейлинг-стоп размера V, равного сумме волатильности часового и внутричасового трендов с поправкой на спред. При значении параметра false размер трейлинг-стопа равен величине ManualTrailingStopSize,  задаваемой вручную (при нулевом значении трейлинг-стоп отсутствует).
GridAlgorithmMode_0_4 - параметр сеточного алгоритма:
- 0 - сеточный алгоритм отключен;
- 1 - позиции сетки открываются открываются только при признаках тренда;
- 2 - позиции сетки открываются независимо от признаков тренда;
- 3 - аналогично 1, только при закрытии позиций по эквити уровни сетки сбрасываются в ноль;
- 4 - аналогично 2, только при закрытии позиций по эквити уровни сетки сбрасываются в ноль.
Сеточный алгоритм инициируется открытием позиций по торговым алгоритмам, или заданием уровня запуска вручную, при запуске робота.
GridStepFaktor - множитель шага сетки на базовый шаг, равный V.
UpGridLevel - уровень запуска сеточного алгоритма при установке робота (если это необходимо).
DownGridLevel - уровень запуска сеточного алгоритма при установке робота (если это необходимо).
TimeOutMinutes - интервал тайм-аут (в минутах) блокирования повторной сделки (не распространяется на сеточный алгоритм).
TradingStrategyNumber - номер встроенной торговой стратегии.
ControlManualPosByExpert - при значении параметра true разрешает обрабатывать роботом позиции, открытые вручную.
TickValueFaktor - множитель стоимости тика для устранения ошибок на сервере.
MagicInit - мэджик-идентификатор для настройки разных копий советника, работающих на одном инструменте.
SizeLabel - задание размера шрифта текстовых меток.
ModifyColorLabel - задание основного цвета шрифта текстовых меток.
FilterGridStartPeriodFactor - множитель начального периода сетки фильтров. По умолчанию равен 1, можно менять в исследовательских целях по всей совокупности индикаторов.
IncreaseFilterOrder - при значении параметра true - переход к фильтрам четвертого порядка.

Глобальные переменные.

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


Рис.1.3. Область глобальных переменных торгового терминала

С помощью системы глобальных переменных задаются следующие параметры:

GV_Block - признак блокировки торговли на глобальном уровне при значении 1;
GV_GlobalAccountNumber - номер торгового счета. Рассчитывается, чтобы выдать предупреждение о необходимости редактирования глобальных переменных при смене торгового счета;
GV_LeverageLimits - ограничение кредитного плеча, установленное трейдером. Например, брокер предоставляет кредитное плечо 1:200, а трейдер решил разрешить торговлю до уровня 1:20.
GV_ProfitLevel - цель прибыли по эквити, при достижении которой все открытые торговые позиции по всем инструментам закрываются;
GV_ProfitLevelPerc - шаг для расчета следующего уровня GV_ProfitLevel. Следующий уровень рассчитывается при нулевом значении цели по прибыли, а также при достижении ранее установленного значения. Если GV_ProfitLevelPerc=0, то автоматический расчет новых целей прибыли не производится, однако можно установить цели вручную, при достижении которой устанавливается значение GV_Block=1, блокирующее дальнейшую торговлю до разрешения трейдера.
GV_StopLevel - уровень стопа по эквити, при достижении которого все открытые торговые позиции по всем инструментам закрываются, и устанавливается значение GV_Block=1, блокирующее дальнейшую торговлю до разрешения трейдера.

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



Рис.1.4. Предупреждение о необходимости проверить установку глобальных переменных торгового терминала при смене торгового счета


2. Параметры состояния.


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

В первой строке таблицы содержатся следующие данные:
Allow To Trade - параметр, который указывает, что может делать робот в текущей ситуации. Это параметр принимает три значения:
- BUY - покупать;
- SELL - продавать;
- NO - не предпринимать никаких действий.
Trend Direction - направление совокупного тренда, определяемое в соотвествии с выбранной торговой стратегий:
- UP - вверх;
- DN - вниз;
- NO - не определено.
Ready To Trade - готовность к сделке в направлении:
- UP - вверх;
- DN - вниз;
- NO - не готов.

ContrTrend - параметр во второй строке таблицы - показывает выбранный режим торговли относительно тренда, определяемого в соответствии с выбранной торговой стратегией. При значении параметра 0 торговля ведется в направлении тренда, при значении параметра 1 - против тренда и строка подсвечивается красным цветом.
RevReadyToTrade - значение параметра ReverseReadyToTrade. При значении параметра 1 строка подсвечивается красным цветом.

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

Следующая строка комбинированная и содержит три параметра: параметр блокировки торговли BlckN количество открытых позиций, L - при значение 1 включено разрешение покупать, S - при значении 1 включено разрешение продаж.
Параметр блокировки комбинированный - трехразрядное целое число, старший третий разряд которого при значении 1 при остальных нулевых разрядах указывает на блокировку торговли через область глобальных переменных. Второй разряд при значении 1 показывает, что заблокировано открытие новых позиций по инструменту из-за превышения разрешенного лимита риска.  Младший разряд при значении 1 показывает, что блокировка идет из-за превышения разрешенного размера кредитного плеча.
При блокировке по любой причине торговли строка подсвечивается красным цветом.

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

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

В строке Profit| Equity отображаются плавающая прибыль по данному инструменту и эквити торгового счета.

Следующая группа параметров - параметры управления торговыми стратегиями и учитываемыми трендами. Basic, Long, Medium, Short, Weekly, Daily, IDay, Hourly - комбинированные индикаторы, знак которых показывает состояние фильтров трендов и направление движения по каждому тренду.
Каждый индикатор содержит три трехзначных числа. Второе число особых пояснений не требует - это номер торговой стратегии, в ситуации, представленной на рисунке это стратегия номер 101.
Что касается первого числа, то на нем остановимся подробнее.
Значение 0 означает, что данный тренд в рамках стратегии не учитывается.
При ненулевом значении знак и старший разряд трехзначного числа показывают:
- знак - направление движения по данному тренду: плюс - вверх, минус - вниз;
- 1 - коррекция;
- 2 - тренд.
Т.е. минус 2 означает нисходящий тренд, а минус единица - нисходящую коррекцию.

Второй разряд трехзначного числа равен нулю, если в рамках правил определенной торговой стратегии тренд по состоянию рынка не учитывается при движении рынка по остальным трендам вверх.
Третий разряд равен нулю, если в рамках правил определенной торговой стратегии тренд по состоянию рынка не учитывается при движении рынка по остальным трендам вниз.
Стратегия 101 не делает исключений для трендов в зависимости от ситуации. поэтому все три разряда в ситуации. представленной на рисунке, одинаковы.
Красная подсветка чисел указывает на то, что при определении направления тренда используется нулевая задержка.
Включение или выключение отдельных трендов может проводиться в векторном режиме, когда задается номер старшего из учитываемых трендом, а все младшие тренды учитываются без всяких исключений. Или в раздельном режиме, когда учет того или иного из трендов метода производится по решению трейдера. Этот режим более гибкий, но допускает больший произвол и субъективность в оценке рыночной ситуации.

Следующая строка определяет параметры расчета объема сделки AutoMM и LotsM. 
AutoMM при значении 1 определяет автоматическое определение объема сделки в зависимости от принимаемого риска, указанного в процентах в следующей строчке - параметр Risk. Если расчетный объем меньше минимально допустимого, то робот устанавливает минимально допустимый объем сделки.  Если расчетный объем больше максимально допустимого, то робот устанавливает максимально допустимый объем сделки. При значении параметра AutoMM равном 0 объем сделки определяется значением LotsM, устанавливаемым вручную, а строка подсвечивается красным цветом.

В следующей строчке отображаются параметры BreakEvenEquity, включающего режим закрытия позиций при выходе из зоны прибыли, если количество открытых позиций больше 2, Profit, показывающего значение плавающей прибыли в процентах от эквити, при котором все открытые позиции будут автоматически закрыты, и Risk, показывающего значение риска на сделку в процентах. Если значение параметра Profit, равно нулю, то позиции закрываются ордерами стоп-лосс, тейк-профит или по торговым сигналам. Если значение параметра BreakEvenEquity равно 1, то срока подсвечивается красным цветом.

Строка параметров ChPrStMov показывает соответственно тип (канальный либо по волатильности) и значение ордеров стоп-лосс и тейк-профит в соответствии с принятыми обозначениями и включенный режим подтягивания стопа за ценой, при изменении его значения (при Mov=1).

Строка параметров ATrSSizeMan показывает тип и значение трейлинг-стопа.
При значении параметра ATrS равном 1 устанавливается адаптивный трейлинг-стоп размера Size, зависящего от волатильности рынка. Если значение параметра равно нулю, то трейлинг стоп определяется значением Man, задаваемым вручную. При ATrS=0 и Man=0 трейлинг-стоп отключен.

Следующие параметры - группа параметров сеточного алгоритма:
GridS тип алгоритма, при значении 0 сеточный алгоритм отключен, при значении 1 позиции сетки открываются только при действующем разрешении на торговлю Allow To Trade, при значении 2 позиции сетки открываются независимо от разрешения на торговлю. Значения 3 и 4 аналогичны значениям 1 и 2 соответственно, только после закрытия позиций по эквити расчетные уровни сетки сбрасываются в ноль;
SF - множитель шага сетки, по умолчанию принимается равным единице;
Step - шаг сетки, равный 0.1 от волатильности недельного тренда, умноженной на множитель шага сетки.

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

И две последних строки отображают вспомогательные параметры настройки:
CtrlM - при значении параметра единица обрабатывает роботом позиции. открытые вручную;
T-Out - интервал таймаут блокировки повторного открытия позиций торговым алгоритмом в минутах, не распространяется на позиции сеточного алгоритма;
TVF - множитель стоимости тика для компенсации ошибок торгового сервера;
FPF - служебный параметр настройки частот фильтров SWT-метода. Менять его нет необходимости, если только не стоят задачи модификации метода или проведения дополнительных исследований;
IFO - параметр перехода от полосовых фильтров второго порядка к фильтрам четвертого порядка (при значении 1), тоже исследовательский параметр.

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

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