Список форумов AmiSite.ru AmiSite.ru
Форум по Ами
 FAQ  •  Поиск  •  Пользователи  •  Группы   •  Регистрация  •  Профиль  •  Войти и проверить личные сообщения  •  Вход
 Парный трейдинг - ApplyStop Следующая тема
Предыдущая тема
Начать новую тему  Ответить на тему
Автор Сообщение
Nergal



Зарегистрирован: 04.09.2012
Сообщения: 92
Откуда: ЕС

СообщениеДобавлено: Сб Сен 20, 2014 6:56 pm Ответить с цитатой Вернуться к началу

Кто знает, почему Profit target ApplyStop не работает? NBar Stop работает правильно.



Код:

// sOpen, sHigh, sLow, sClose - OHLC of the spread

// replace OHLC with spread's OHLC
Open = sOpen;
High = sHigh;
Low = sLow;
Close = sClose;

// replace trade prices with spread's close
BuyPrice = ShortPrice = SellPrice = CoverPrice = Close;

Buy = BuyPrice <= MA(Close, 10) * (1 - 0.02);
Short = ShortPrice >= MA(Close, 10) * (1 + 0.02);
Sell = Cover = TimeNum() >= 120000;

// apply stops to the spread
ApplyStop(stopTypeProfit, stopModePercent, 1.1, 0, False, 0);
ApplyStop(stopTypeNBar, stopModeBars, 10, 0, False, 0);

Equity(1, 0); // remove excess signals and calculate stops

// restore price arrays
RestorePriceArrays(1);

sCondBuy = Buy;
sCondShort = Short;
sCondSell = Sell;
sCondCover = Cover;

BuyPrice = ShortPrice = SellPrice = CoverPrice = Close;

if (Name() == SymbolA) {
   Buy = sCondBuy;
   Short = sCondShort;
   Sell = sCondSell;
   Cover = sCondCover;
   SetPositionSize(100, spsShares);
} else if (Name() == SymbolB) {
   Buy = sCondShort;
   Short = sCondBuy;
   Sell = sCondCover;
   Cover = sCondSell;
   SetPositionSize(100, spsShares);
} else {
   Buy = Short = Sell = Cover = False;
}


Последний раз редактировалось: Nergal (Вс Сен 21, 2014 2:12 pm), всего редактировалось 1 раз
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Вс Сен 21, 2014 11:30 am Ответить с цитатой Вернуться к началу

Это мне подумать надо. Сегодня вечером напишу. Мне ни разу не приходило в голову использовать AplyStop на искуственом ценовом ряду.

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Nergal



Зарегистрирован: 04.09.2012
Сообщения: 92
Откуда: ЕС

СообщениеДобавлено: Вс Сен 21, 2014 2:11 pm Ответить с цитатой Вернуться к началу

Я просто торгую еще и пары, поэтому решил прикрутить стопы для бектестинга, а тут траблы такие. Прикол в том еще, что Buy, Short, Sell, Cover массивы в Exploration и в бектестинге - разные. Толи баг, толи я чего-то упустил.

При использовании NBar стопа, все работает правильно. Exploration совпадает с Backtest:

Image
Image

А вот при использовании стоп-лосса, результат неправильный. В Exploration стопов нет, но в бектестинге одна акция закрывается по стопу, а другая нет:

Image
Image
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Вс Сен 21, 2014 9:21 pm Ответить с цитатой Вернуться к началу

Хм. Вроде должно работать. В принципе такая схема у меня работает.

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Вс Сен 21, 2014 9:28 pm Ответить с цитатой Вернуться к началу

Даже не в принципе, а вообще прекрасно все работает.
С Exploration не смотрел, тест отрабатывает на ура.

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Nergal



Зарегистрирован: 04.09.2012
Сообщения: 92
Откуда: ЕС

СообщениеДобавлено: Вс Сен 21, 2014 9:59 pm Ответить с цитатой Вернуться к началу

Блин, а в чем тогда может быть причина то? У меня версия 5.80.3
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Вс Сен 21, 2014 11:26 pm Ответить с цитатой Вернуться к началу

И у меня. Может на второй бумаге нет бара на котором сработал стоп?

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
fujis84



Зарегистрирован: 07.01.2014
Сообщения: 56

СообщениеДобавлено: Пн Сен 22, 2014 1:13 am Ответить с цитатой Вернуться к началу

Nergal писал(а):
Кто знает, почему Profit target ApplyStop не работает? NBar Stop работает правильно.



Stops работает правильно.

Код:
futuresmode = 1;

StopLevel = 20 * TickSize;
TgtLevel = 20 * TickSize;

delay = 0;
if ( delay > 0 )
{
    entryprice = Open;
    immediatestop = 1;
}
else
{
    entryprice = Close;
    immediatestop = 0;
}

SetOption( "FuturesMode", futuresmode );
SetOption( "ActivateStopsImmediately", immediatestop );

Buycond = Cross( MACD(), Signal() );
Buy = Ref( Buycond, -delay );
BuyPrice = ShortPrice = entryprice;
Short = 0;

Sell = Cover = 0;
ApplyStop( stopTypeLoss, stopModePoint, StopLevel, exitatstop = 1, volatile = False, rentrydelay = 0 );
ApplyStop( stopTypeProfit, stopModePoint, TgtLevel, exitatstop = 1, volatile = False, rentrydelay = 0 );


if( Status( "action" ) == actionExplore )
{
    Equity( 1, 0 ); // evaluate stops, all quotes
   
    /*
    1 - regular exit
    2 - max. loss
    3 - profit target
    4 - trailing
    5 - n-bar stop
    6 - ruin stop
    */
    SLstop = Sell == 2;
    TGTstop = Sell == 3; 

   width     = 70;
   Colfont   = colorLightYellow;
   Colcell   = colorBlack;

   SetOption( "NoDefaultColumns", True );
   SetSortColumns( 2 );

   AddTextColumn( Name(), "Ticker", 1.0, Colfont, Colcell, width );
   AddColumn( DateTime(), "Date/Time", formatDateTime, Colfont, Colcell, 120 );
   AddColumn( Buy, "Buy", 1, Colfont, Colcell, width );
   AddColumn( SLstop, "Short Stop", 1, Colfont, Colcell, width );
   AddColumn( TGTstop, "Profit Stop", 1, Colfont, Colcell, width ); 
   
   AddSummaryRows( 17, 1 );

   Filter = Buy OR SLstop OR TGTstop;
}
Посмотреть профиль Отправить личное сообщение
fujis84



Зарегистрирован: 07.01.2014
Сообщения: 56

СообщениеДобавлено: Пн Сен 22, 2014 1:16 am Ответить с цитатой Вернуться к началу

Nergal писал(а):


Код:



Equity(1, 0); // remove excess signals and calculate stops

// restore price arrays
RestorePriceArrays(1);

 


?????
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Пн Сен 22, 2014 1:23 am Ответить с цитатой Вернуться к началу

fujis84 писал(а):
Nergal писал(а):
Кто знает, почему Profit target ApplyStop не работает? NBar Stop работает правильно.



Stops работает правильно.

Код:
futuresmode = 1;

StopLevel = 20 * TickSize;
TgtLevel = 20 * TickSize;

delay = 0;
if ( delay > 0 )
{
    entryprice = Open;
    immediatestop = 1;
}
else
{
    entryprice = Close;
    immediatestop = 0;
}

SetOption( "FuturesMode", futuresmode );
SetOption( "ActivateStopsImmediately", immediatestop );

Buycond = Cross( MACD(), Signal() );
Buy = Ref( Buycond, -delay );
BuyPrice = ShortPrice = entryprice;
Short = 0;

Sell = Cover = 0;
ApplyStop( stopTypeLoss, stopModePoint, StopLevel, exitatstop = 1, volatile = False, rentrydelay = 0 );
ApplyStop( stopTypeProfit, stopModePoint, TgtLevel, exitatstop = 1, volatile = False, rentrydelay = 0 );


if( Status( "action" ) == actionExplore )
{
    Equity( 1, 0 ); // evaluate stops, all quotes
   
    /*
    1 - regular exit
    2 - max. loss
    3 - profit target
    4 - trailing
    5 - n-bar stop
    6 - ruin stop
    */
    SLstop = Sell == 2;
    TGTstop = Sell == 3; 

   width     = 70;
   Colfont   = colorLightYellow;
   Colcell   = colorBlack;

   SetOption( "NoDefaultColumns", True );
   SetSortColumns( 2 );

   AddTextColumn( Name(), "Ticker", 1.0, Colfont, Colcell, width );
   AddColumn( DateTime(), "Date/Time", formatDateTime, Colfont, Colcell, 120 );
   AddColumn( Buy, "Buy", 1, Colfont, Colcell, width );
   AddColumn( SLstop, "Short Stop", 1, Colfont, Colcell, width );
   AddColumn( TGTstop, "Profit Stop", 1, Colfont, Colcell, width ); 
   
   AddSummaryRows( 17, 1 );

   Filter = Buy OR SLstop OR TGTstop;
}

Не понял. При чем тут все это?

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
fujis84



Зарегистрирован: 07.01.2014
Сообщения: 56

СообщениеДобавлено: Пн Сен 22, 2014 1:26 am Ответить с цитатой Вернуться к началу

000 писал(а):

Не понял. При чем тут все это?


Image

https://www.amibroker.com/guide/afl/applystop.html
Посмотреть профиль Отправить личное сообщение
fujis84



Зарегистрирован: 07.01.2014
Сообщения: 56

СообщениеДобавлено: Пн Сен 22, 2014 1:30 am Ответить с цитатой Вернуться к началу

....
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Пн Сен 22, 2014 2:27 am Ответить с цитатой Вернуться к началу

Ну вроде как вопрос был не о том....

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Пн Сен 22, 2014 8:09 am Ответить с цитатой Вернуться к началу

Вот что подумал.
Речь идет только о тестировании.
Ты обрабатываешь пару символов. Соответственно и спред строится 2 раза. Сначала один символ базовый а второй внешний, затем они меняются местами. Думаю тут собака и порылась. Получаются разные спреды и не "конгруэнтные" сигналы. Проверь.

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Nergal



Зарегистрирован: 04.09.2012
Сообщения: 92
Откуда: ЕС

СообщениеДобавлено: Пн Сен 22, 2014 8:14 am Ответить с цитатой Вернуться к началу

fujis84 писал(а):
Nergal писал(а):


Код:

Equity(1, 0); // remove excess signals and calculate stops

// restore price arrays
RestorePriceArrays(1);
 


?????

Здесь удаляем лишние сигналы на спреде и восстанавливаем OHLC массивы. До этого они были заменены искусственными, чтобы стопы посчитать.
Посмотреть профиль Отправить личное сообщение
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



Следующая тема
Предыдущая тема
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы не можете скачивать файлы


Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme :: Часовой пояс: GMT + 3

File Attachment © by Meik Sievertsen