Скользящий механический стоп для Amibroker

  • Автор темы empenoso
  • Дата начала

empenoso

New member
Как можно для Amibroker прописать скользящий механический стоп?

Для MetaStock найдено следующее:
Скользящие стопы для механических торговых систем MetaStock:
Пример скользящего стопа для длинных позиций, который добавляется к уже разработанным условиям открытия и закрытия позиций:
Код:
Step := 0.02 ;
Maxm := 0.2 ;
Enter.signal := {условия открытия позиции торговой системой} ;
Close.signal := {условия закрытия позиции торговой системой} ;
Start := BarsSince( Enter.signal) < BarsSince( Close.signal) AND Ref( BarsSince( Enter.signal), -1) > Ref( BarsSince( Close.signal), -1) ; {определяет первый бар открытой позиции}
Enter.Point := ValueWhen( 1, Start, Сlose)) ; {определяет цену закрытия первого бара открытой позции}
SIP := Enter. Point - 3 * ATR( 5) ; {точка начального размещения скользящего стопа удалена от цены закрытия первого бара на утроенный средний торговый диапазон последних пяти баров}
HighestSince.Enter := HighestSince( 1, Start, Close) ; {определяет последний наибольший максимум достигнутый ценой в ходе данного трейда}
cum.para.sar := Cum( If( HighestSince.Enter <> Ref( HighestSince.Enter, -1), step, 0)) ; {если достигнут новый максимум, добавляется значение шага}
AF.st := step + (cum.para.sar - ValueWhen( 1, Start, cum.para.sar)) ; {вычисляется значение фактора акселерации}
AF := If( AF.st > maxm,maxm, AF.st) ; {проверяется не превысил ли фактор акселерации допустимого максимального значения, если превысил - то приравнивается к максимально допустимому значению}
ParaSAR.1 := If( Start, SIP, PREV + AF * ( HighestSince.Enter - PREV)) ; {вычисляется значение скользящего стопа}
ParaSAR.1
Как правильно поставить стоп-лосс
стоп-лосс для длинных позиций:
Код:
Enter.trade := условия открытия длинных позиций ;
Close.trade := условия закрытия длинных позиций ;
Position := HighestBars( Close.trade) >= HighestBars( Enter.trade) ; 
Open.Price := ValueWhen( 1, Position = 1 and ref( Position, -1) = 0, Close) ;
Full.Price := Open.Price * ( 100 + значение комиссии в %) / 100 ;
Close< Full.Price * (( 100 - opt1) / 100)
стоп-лосс для коротких позиций:
Код:
Enter.trade := условия открытия коротких позиций ;
Close.trade := условия закрытия коротких позиций ;
Position := HighestBars( Close.trade) >= HighestBars( Enter.trade) ; 
Open.Price := ValueWhen( 1, Position = 1 and ref( Position, -1) = 0, Close) ;
Full.Price := Open.Price * ( 100 - значение комиссии в %) / 100 ;
Close> Full.Price * (( 100 - opt1) / 100)
В Amibroker как это можно реализовать?
 

empenoso

New member
Код:
ParaSAR.1 := If( Start, SIP, PREV + AF * ( HighestSince.Enter - PREV)) ; {вычисляется значение скользящего стопа}
А предыдущее значение (PREV из Metastock) как получить? Надо цикл?

Как можно соединить скользящий механический стоп с автоматом Амиброкер+Квик? То есть чтобы условием продажи Sell и был механический скользящий стоп?
 

mehanizator1

New member
Код:
ParaSAR.1 := If( Start, SIP, PREV + AF * ( HighestSince.Enter - PREV)) ; {вычисляется значение скользящего стопа}
А предыдущее значение (PREV из Metastock) как получить? Надо цикл?

Как можно соединить скользящий механический стоп с автоматом Амиброкер+Квик? То есть чтобы условием продажи Sell и был механический скользящий стоп?
Ref(...,-1)

можно. Sell=L<=stop;

а вообще, по-моему в первой формуле описан Parabolic SAR, который в амиброкере и так есть, функция SAR
 
Your email address will not be publicly visible. We will only use it to contact you to confirm your post.
Сверху