Автор |
Сообщение |
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Надо смотреть почему так.
Сначала берешь список сделок из отчета и сравниваешь с сигналами. Находишь Сигналы которые не привели к открытию позиции. Потом переключаешь отчет тестера на детальный и смотришь был ли сигнал в тестере. Если был, то начинаешь разбираться почему поза не открылась.
Как то так. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
moextrader
Зарегистрирован: 27.04.2014
Сообщения: 62
|
возможно глючит из за SetTradeDelays(1,1,1,1);
кстати, что с этой функцией происходит на реале, она работает? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
В смысле "на реале"?
Эта функция работает ТОЛЬКО в тестере или совместно с функцией Equity().
Глюков за ней не замечал. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
moextrader
Зарегистрирован: 27.04.2014
Сообщения: 62
|
Я короче методом тыка заставил тестер перестать гнать фуфло, в итоге:
Код: |
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
|
Вот такой код
Код: |
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
|
Код: |
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
|
Реал пашет! Вроде все норм...
Интересно сколько будет скользняка в конце дня! |
|
|
Посмотреть профиль Отправить личное сообщение |
|
Astrobiolog
Зарегистрирован: 27.01.2013
Сообщения: 66
|
moextrader писал(а): |
Реал пашет! Вроде все норм...
Интересно сколько будет скользняка в конце дня! |
Это похоже, и есть камень преткновения, как и проскалбзывание вообще. Убираешь ли, например, первые секунды после начала торгов? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
moextrader
Зарегистрирован: 27.04.2014
Сообщения: 62
|
Похоже всетаки ApplyStop() на реале не работает! |
|
|
Посмотреть профиль Отправить личное сообщение |
|
fujis84
Зарегистрирован: 07.01.2014
Сообщения: 56
|
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
|
я короче оканчательно запутался
Код: |
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
|
Код: |
// 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 );
} |
Exploration
|
|
|
Посмотреть профиль Отправить личное сообщение |
|
moextrader
Зарегистрирован: 27.04.2014
Сообщения: 62
|
Код: |
BuyPrice = O;
SellPrice = O;
ShortPrice = O;
CoverPrice = O;
|
Ну во первых вот так нельзя делать, у тебя будет в тестере фуфлогон.
Стропы должны срабатывать по цене Close!
А во вторых у тебя ни одного стоплося не видно, в тестере кстати все прекрасно срабатывает у меня.
А Equity(1) я добавил, поглядим... |
|
|
Посмотреть профиль Отправить личное сообщение |
|
fujis84
Зарегистрирован: 07.01.2014
Сообщения: 56
|
moextrader писал(а): |
Код: |
BuyPrice = O;
SellPrice = O;
ShortPrice = O;
CoverPrice = O;
|
Ну во первых вот так нельзя делать, у тебя будет в тестере фуфлогон.
Стропы должны срабатывать по цене Close!
А во вторых у тебя ни одного стоплося не видно, в тестере кстати все прекрасно срабатывает у меня.
А Equity(1) я добавил, поглядим... |
пойдите на кухню! |
Последний раз редактировалось: fujis84 (Пн Май 26, 2014 2:53 pm), всего редактировалось 1 раз |
|
Посмотреть профиль Отправить личное сообщение |
|
fujis84
Зарегистрирован: 07.01.2014
Сообщения: 56
|
другой символ
|
|
|
Посмотреть профиль Отправить личное сообщение |
|
|
|
Следующая тема
Предыдущая тема
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы не можете скачивать файлы
|
|