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


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

СообщениеДобавлено: Вс Май 25, 2014 10:49 am Ответить с цитатой Вернуться к началу

Надо смотреть почему так.
Сначала берешь список сделок из отчета и сравниваешь с сигналами. Находишь Сигналы которые не привели к открытию позиции. Потом переключаешь отчет тестера на детальный и смотришь был ли сигнал в тестере. Если был, то начинаешь разбираться почему поза не открылась.
Как то так.

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



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

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

возможно глючит из за SetTradeDelays(1,1,1,1);

кстати, что с этой функцией происходит на реале, она работает?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

В смысле "на реале"?
Эта функция работает ТОЛЬКО в тестере или совместно с функцией Equity().
Глюков за ней не замечал.

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



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

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

Я короче методом тыка заставил тестер перестать гнать фуфло, в итоге:

Код:


Buy = buyCond1 AND buyCond2;
Short = shortCond1 AND shortCond2;
Cover = Buy;
Sell = Short;

ApplyStop( stopTypeLoss, stopModePoint, 250, 0);
ApplyStop( stopTypeProfit, stopModePoint, 250, 0);

BuyPrice=ValueWhen(Buy,O);
SellPrice=C;
ShortPrice=ValueWhen(Short,O);
CoverPrice=C;


BuySignal = LastValue(Buy);
SellSignal = LastValue(Sell);
ShortSignal = LastValue(Short);
CoverSignal = LastValue(Cover);


Plot( Close, "Price", colorBlack, styleCandle );
PlotShapes( IIf( Buy, shapeUpArrow, shapeNone), IIf( Buy, colorBlue, shapeNone ), 0, IIf( Buy, BuyPrice, shapeNone ) );
PlotShapes( IIf( Short, shapeDownArrow, shapeNone), IIf( Short, colorYellow, shapeNone ), 0, IIf( Short, ShortPrice, shapeNone ) );

GraphXSpace = 5;


ApplyStop() это мега заглюченая функция.

Код:

BuyPrice=ValueWhen(Buy,O);
SellPrice=C;   
ShortPrice=ValueWhen(Short,O);
CoverPrice=C;


Вот при таких настройках тестер будет открывать позиции по BuyPrice и ShortPrice

А ApplyStop() будет срабатывать по SellPrice и CoverPrice

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


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

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

Вот такой код
Код:

Buy = buyCond1 AND buyCond2;
Short = shortCond1 AND shortCond2;
Cover = Buy;
Sell = Short;

BuyPrice=O;
SellPrice=C;
ShortPrice=O;
CoverPrice=C;

ApplyStop( stopTypeLoss, stopModePoint, 250, 0);
ApplyStop( stopTypeProfit, stopModePoint, 250, 0);
// И ВСЕ !!!

Длжен работать в тестере идеально!

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



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

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

Код:


Buy = buyCond1 AND buyCond2;
Short = shortCond1 AND shortCond2;
Cover = Buy;
Sell = Short;

BuyPrice=O;
SellPrice=C;
ShortPrice=O;
CoverPrice=C;

ApplyStop( stopTypeLoss, stopModePoint, 250, 0);
ApplyStop( stopTypeProfit, stopModePoint, 250, 0);


Да! Результат идентичен...

Даже правильнее так как у тебя, ApplyStop() должен быть внизу!

Количество стрелок наконец совпадает!
Посмотреть профиль Отправить личное сообщение
moextrader



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

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

Реал пашет! Вроде все норм...

Интересно сколько будет скользняка в конце дня!
Посмотреть профиль Отправить личное сообщение
Astrobiolog



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

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

moextrader писал(а):
Реал пашет! Вроде все норм...

Интересно сколько будет скользняка в конце дня!

Это похоже, и есть камень преткновения, как и проскалбзывание вообще. Убираешь ли, например, первые секунды после начала торгов?
Посмотреть профиль Отправить личное сообщение
moextrader



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

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

Похоже всетаки ApplyStop() на реале не работает!
Посмотреть профиль Отправить личное сообщение
fujis84



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

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

moextrader писал(а):
возможно глючит из за SetTradeDelays(1,1,1,1);



ерунда! SetTradeDelays(1,1,1,1); работает отлично!


moextrader писал(а):


Код:

BuyPrice=ValueWhen(Buy,O);
SellPrice=C;   
ShortPrice=ValueWhen(Short,O);
CoverPrice=C;




это неправильно! Не используйте BuyPrice = ValueWhen(Buy, O) ... и т.д.

moextrader писал(а):
Похоже всетаки ApplyStop() на реале не работает!


неправильно. ApplyStop() работает!

ApplyStop -> Equity() -> evaluate Stops -> Plot ApplyStop

Цитата:
Using Equity( 1 ) evaluates stops and writes BACK
signals to sell/cover arrays. Equity(1) also removes
all extra signals.

Depending on kind of the stop various values
are written back to sell/cover array to enable you
to distinguish if given signal was generated by regular
rule or by stop.

1 - regular exit
2 - max. loss
3 - profit target
4 - trailing
5 - n-bar stop
6 - ruin stop

... your rules...
ApplyStop( stopTypeTrail, stopModePercent, 10, True );
Equity( 1 );
WriteIf( sell == 1, "Regular exit",
WriteIf( sell == 4, "Trailing stop", "" ) );


Код:
http://www.amibroker.com/kb/2007/03/24/how-to-plot-a-trailing-stop-in-the-price-chart
Посмотреть профиль Отправить личное сообщение
moextrader



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

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

я короче оканчательно запутался Laughing

Код:

Buy = buyCond1 AND buyCond2;
Short = shortCond1 AND shortCond2;
Cover = Buy;
Sell = Short;

BuyPrice=O;
SellPrice=C;
ShortPrice=O;
CoverPrice=C;

ApplyStop( stopTypeLoss, stopModePoint, 250, 0);
ApplyStop( stopTypeProfit, stopModePoint, 250, 0);

BuySignal = LastValue(Buy);
SellSignal = LastValue(Sell);
ShortSignal = LastValue(Short);
CoverSignal = LastValue(Cover);



В тестере все ок вот с такой конструкцией, на реале сделки не кроются...

точнее скажу так, не кроются по ApplyStop() , а разворотом кроются...
Посмотреть профиль Отправить личное сообщение
fujis84



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

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

Код:

// http://www.amibroker.com/guide/afl/applystop.html
SetOption( "ActivateStopsImmediately", True );

Buy = Ref( Cross( C, MA( C, 50 ) ), - 1 );
Short = Ref( Cross( MA( C, 50 ), C ), - 1 );
Cover = Buy;
Sell = Short;

BuyPrice = O;
SellPrice = O;
ShortPrice = O;
CoverPrice = O;

ApplyStop ( stopTypeLoss, stopModePoint, 20*Ticksize, exitatstop = 1, volatile = False, rentrydelay = 0 );
ApplyStop ( stopTypeProfit, stopModePoint, 20*Ticksize, exitatstop = 1, volatile = False, rentrydelay = 0 );

/*
ExitAtStop

ExitAtStop = 0 - means check stops using only trade price and exit at regular trade price(1)
(if you are trading on close it means that only close price will be checked for exits and exit will be done at close price)
ExitAtStop = 1 - check High-Low prices and exit intraday on price equal to stop level on the same bar when stop was triggered
ExitAtStop = 2 - check High-Low prices but exit NEXT BAR on regular trade price.

volatile -
decides if amount (or distance) (3rd parameter) is sampled at the trade entry and remains fixed during the trade (Volatile = FALSE - old behaviour) or if can vary during the trade (Volatile = TRUE) (allows single line Chandelier exit implementation)(2)

ReEntryDelay -
how many bars to wait till entering the same stock is allowed.

(1) ExitAtStop = 0 uses SellPrice/CoverPrice variables in backtestRegular mode only, in other modes it uses trade prices from the Settings dialog (not overridable via SellPrice/CoverPrice)


(2) Volatile stops (Volatile=True) work only in backtestRegular mode
*/

if ( Status( "ActionEx" ) == actionExplore )
{
    Equity( Flags = 1, RangeType = 0 );

    Filter = ( Buy OR Sell Or Short Or Cover ) AND Status( "LastBarInRange" ); // last value output

    AddTextColumn( WriteIf( Buy, "Buy", "" ), "Buy Signal", 1, colorDefault, colorDefault, 80 );
    AddTextColumn( WriteIf( Sell == 1, "Regular exit",
                   WriteIf( Sell == 2, "Max Loss",
                   WriteIf( Sell == 3, "Profit Target", "" ))), "Sell Signal", 1, colorDefault, colorDefault, 80 );
    AddTextColumn( WriteIf( Short, "Short", "" ), "Short Signal", 1, colorDefault, colorDefault, 80 );
    AddTextColumn( WriteIf( Cover == 1, "Regular exit",
                   WriteIf( Cover == 2, "Max Loss",
                   WriteIf( Cover == 3, "Profit Target", "" ))) , "Cover Signal", 1, colorDefault, colorDefault, 80 );
}


Image


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



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

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

Код:

BuyPrice = O;
SellPrice = O;
ShortPrice = O;
CoverPrice = O;


Ну во первых вот так нельзя делать, у тебя будет в тестере фуфлогон.

Стропы должны срабатывать по цене Close!

А во вторых у тебя ни одного стоплося не видно, в тестере кстати все прекрасно срабатывает у меня.

А Equity(1) я добавил, поглядим...
Посмотреть профиль Отправить личное сообщение
fujis84



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

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

moextrader писал(а):
Код:

BuyPrice = O;
SellPrice = O;
ShortPrice = O;
CoverPrice = O;


Ну во первых вот так нельзя делать, у тебя будет в тестере фуфлогон.

Стропы должны срабатывать по цене Close!

А во вторых у тебя ни одного стоплося не видно, в тестере кстати все прекрасно срабатывает у меня.

А Equity(1) я добавил, поглядим...



пойдите на кухню!


Последний раз редактировалось: fujis84 (Пн Май 26, 2014 2:53 pm), всего редактировалось 1 раз
Посмотреть профиль Отправить личное сообщение
fujis84



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

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

другой символ

Image
Посмотреть профиль Отправить личное сообщение
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen