На
главную страницу
Описание
комбинированных и авто-переставляемых по тренду
стопов:
Все авто-стопы переносятся только по
тренду, иначе они остаются без изменений. Перенос
стопа заключается в задании ему новой стоп-цены и
при необходимости количества. Автоматическая
корректировка кол-ва в стопе позволяет
при любом изменении размера позиции в портфеле,
по какой-либо бумаге, автоматически
корректировать кол-во бумаг в стопе.
Поэтому при авто-переносе стопа контролируется
наличие только одного стопа для каждой бумаги в
портфеле, остальные стопы удаляются, а кол-во в
оставшемся стопе корректируется в соответствии
с кол-вом в портфеле. При переносе стопа ему
устанавливается новый срок действия, плюс 7 дней
от даты переноса. Кратко перечислю виды
авто-стопов и используемые для них параметры:
'ASimple' - простой, авто-переставляемый
по тренду стоп. Для его использования в функции
MoveMICEX_SHR нужно задавать отличные от нуля
параметры Stop%, и Add%Stop. В
параметре Add%Stop задается процент шага по
тренду. И при различии, на величину Add%Stop,
текущей биржевой Close-цены с прошлой Close-ценой
этого стоп-ордера он будет "передвинут" по
тренду. Т.е. будет переставлен с тем же параметром
Stop%, но уже от текущей биржевой
Close-цены. Прошлую биржевую Close-цену, от которой со
сдвигом в Stop% ранее устанавливался этот
стоп, я еще называю "восстановленной"
Close-ценой. Необходимость "восстановления"
этой цены вызвана тем, что в параметрах стопа не
хранится Close-цена заявки, от которой размещается
стоп-ордер, и я восстанавливаю эту цену,
используя стоп-цену стопа и значение Stop%.
(пример ASimple-стопа:
FNull:=If(FAlert OR Cum(1)=LastValue(Cum(1)),
ExtFml("Borisoff.MoveMICEX_SHR","хххх-ххх",х,х,х,0.75,ASimple,0.1,FAlert,1),
False);
^ ^
|
|
уровень размещения стопа от
интервал изменения текущей цены в %
последней Close-цены
при авто-перестановке стопа по тренду
для срабатывания авто-перестановки
стопа по тренду );
(пример BalanceASim-стопа:
FNull:=If(FAlert OR Cum(1)=LastValue(Cum(1)),
ExtFml("Borisoff.MoveMICEX_SHR","хххх-ххх",х,х,х,0.85,BalanceASim,0.45,FAlert,1),
False);
^
^
|
|
уровень размещения ASimple стопа от
последней Close-цены интервал
изменения текущей цены в %
при авто-перестановке стопа по тренду,
для срабатывания авто-перестановки
и
одновременно уровень срабатывания Balance-стопа
стопа по тренду);
'ARevers' - простой, авто-переставляемый
по тренду стоп, с количеством, больше имеющегося
в портфеле, чтобы при его срабатывании сразу
открывалась противоположная позиция. Этот вид
стопа всегда точно узнает заданные в параметрах
MoveMICEX_SHR значения MaxQuantInPortfel для Buy- и Sell-
заявок. Для его использования в функции MoveMICEX_SHR
нужно задавать отличные от нуля параметры Stop%,
и Add%Stop и правильные значения MaxQuantInPortfel
для Buy- и Sell- заявок. Алгоритм его
авто-перестановки аналогичен алгоритму
авто-перестановки 'ASimple'-стопа.
'BalanceASim' - комбинированный вид стопа,
объединяющий в себе 'Balance'-стоп и 'ASimple'-стоп.
Для его использования в функции MoveMICEX_SHR нужно
задавать отличные от нуля параметры Stop%,
и Add%Stop. При работе этого стопа
производится авто-перестановка 'ASimple'-стопа
по тренду, как описано выше, и в тоже время
контролируется условие срабатывания 'Balance'-стопа.
Конечно, если 'ASimple'-стоп будет
установлен и сработает, то вряд ли дело дойдет до
срабатывания 'Balance'-стопа, т.к. 'ASimple'-стоп
сработает раньше. Этот вид стопов может хорошо
заменить ARevers стоп.
'BalanceARev' - комбинированный вид стопа,
объединяющий в себе 'Balance'-стоп и 'ARevers'-стоп.
Для его использования в функции MoveMICEX_SHR нужно
задавать отличные от нуля параметры Stop%,
и Add%Stop и правильные значения MaxQuantInPortfel
для Buy- и Sell- заявок. При работе этого стопа
производится авто-перестановка 'ARevers'-стопа
по тренду, как описано выше, и в тоже время
контролируется условие срабатывания 'Balance'-стопа.
Конечно, если 'ARevers'-стоп будет
установлен и сработает, то вряд ли дело дойдет до
срабатывания 'Balance'-стопа, т.к. 'ARevers'-стоп
сработает раньше. Но тогда 'Balance'-стоп
начнет работать уже с новой балансовой ценой и с
новой противоположной позицией в портфеле!
При использовании авто-переносных стопов,
при каждом обновлении данных графика, происходит
отслеживание текущей биржевой Close-цены и
сравнение ее с "восстановленной"
Close-ценой стопа, т.е. ценой, от которой ранее, с
отклонением в Stop%, был размещен этот
стоп. Если текущая биржевая Close-цена, при
растущем тренде, больше
"восстановленной" Close-цены Sell-стопа на
заданный в параметре Add%Stop процент, то
производится автоматический перенос Sell-стопа
выше по тренду, с размещением стопа на
расстоянии, заданном в параметре Stop%, но
уже от текущей биржевой Close-цены. Для
падающего тренда все наоборот, и
авто-перемещение Buy-стопа вниз по тренду,
происходит если текущая биржевая Close-цена меньше
"восстановленной" Close-цены стопа на заданный
в параметре Add%Stop процент. При
авто-перестановке стопов применяется контроль
исполнения заявок на авто-перенос.
Обратите ВНИМАНИЕ, что при использовании
стопов с авто-переносом, т.е. 'ASimple', 'ARevers',
'BalanceASim', 'BalanceARev' параметр Add%Stop
для этих стопов используется только для указания
процента минимального изменения текущей
биржевой Close-цены для срабатывания авто-переноса
стопа по тренду.
У 'Simple' и 'Revers' стопов параметр Add%Stop
используется для задания уровня фиксации
профита. А у 'Trailing' стопа параметр Add%Stop
используется для задания уровня срабатывания
Trailing-стопа!
При применении всех
авто-переставляемых и балансовых стопов нужно
вызывать функцию MoveMICEX_SHR в Buy- и Sell- формулах не
только при сигнале на графике, но и на
последнем баре без сигнала, т.е. с
дополнительным условием в Buy/Sell-формулах : OR Cum(1)=LastValue(Cum(1)),
чтобы работала авто-перестановка стопов и
срабатывали балансовые стопы!
"FNull:=If((FBuy OR Cum(1)=LastValue(Cum(1)))...."
(!!!)Все авто-переставляемые
стопы переставляются только при
наличии позиций в портфеле, а также при
ненулевом размере позиции в параметрах функции
MoveMICEX_SHR (MoveFORTS)!!! Все авто-переставляемые
стопы переставляются также и при срабатывании
Buy/Sell-сигналов на графике. Авто-стопы реализованы
для рынков ММВБ и ФОРТС. Для
авто-переставляемых по тренду реверсивных
стопов делается контроль лимитов.
Балансовые стопы - 'Balance', а также 'BalanceASim' и
'BalanceARev', а также 'ARevers'-стоп рекомендуется
применять вместе с введением в условия их
срабатывания отстройки от зацикливания с Buy-
Sell-сигналами. Для авто-переставлямого 'ASimple'
стопа, можно не применять отстройку от
зацикливания. Замечу, что отстройка от
зацикливания между сигналом и балансовыми
стопами отличается от отстройки от зацикливания
между самими Buy- и Sell-сигналами. Для первого
случая требуется отстройка справа (Ref(+1))
и слева (Ref(-1)) от балансового стопа, а при
отстройке между Buy- и Sell-сигналами отстройка
требуется только справа (Ref(+1)) от Buy- или
Sell-сигнала.
Убрано авто-воссоздание 'ASimple', 'ARevers'
и 'BalanceARev' стопов! Ранее
эти стопы автоматически воссоздавались, если они
были указаны в параметрах функции, но по
какой-либо причине не создались ранее. Процедура
авто-воссоздания аналогична процедуре
авто-переставления, только при отсутствии стопа
вместо авто-переставления сначала выполняется
авто-воссоздание отсутствующего стопа. Это
позволяет автоматически формировать стоп к
любой позиции в портфеле, если такой стоп
прописан в параметрах функции MoveMICEX_SHR (MoveFORTS),
даже если просто вручную создать позицию в
портфеле, то стоп автоматически создастся для
этой позиции при срабатывании процедуры
авто-перестановки стопа (ВНИМАНИЕ: процедура
авто-воссоздания авто-стопов с версии v.57 удалена!).
(!!!) C v.57 изменен расчет величины проскальзывания
для всех видов стопов! Ранее это проскальзывание
равнялось разности Close-цены и цены размещения
стопа. Но в некоторых ситуациях такой
алгоритм задавал слишком малое проскальзывание
и активированный стоп не успевал срабатывать
даже при не очень сильных движениях цены. Теперь
величина проскальзывания рассчитывается как и
раньше, но в случает если разность Close-цены и
цены размещения стопа получится меньше
величины проскальзывания основной заявки, то
проскальзывание устанавливается равным
проскальзыванию основной заявки, к которой
создается стоп. Таким образом теперь
проскальзывание для стопов можно дополнительно
регулировать с помощью проскальзывания основной
заявки.