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



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

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

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

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


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



Ref( .., -1)

Trade delay!!!!!!!!!!!!!!!!!!!!!!!!!!!!

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

// 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;

.
.
..






пойдите на кухню!
держаться подальше от программирования
Посмотреть профиль Отправить личное сообщение
moextrader



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

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

возможно я не прав, не хотел вас обидеть...
Посмотреть профиль Отправить личное сообщение
moextrader



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

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

Код:

//http://www.amibroker.com/guide/afl/applystop.html

Scenario 4:
you trade on today's close and want to exit only when today's close price hits the stop level

Correct settings:
ActivateStopsImmediately turned OFF
ExitAtStop = 0
Trade delays set to zero
Trade price set to close


По вашей же ссылке указано!

в ходе тестирования пока не подтвердилось, так что ... Вы судя по всему работаете по другому сценарию!
Посмотреть профиль Отправить личное сообщение
MrDrJOKER



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

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

fujis84 писал(а):

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

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


ApplyStop() как не курил доки, не захотел у меня в реале работать.
Да и Олег не советовал на реале юзать.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

ApplyStop() при работе использует тестер. В случае любого глюка или некорректных настроек тестера стоп не сработает.

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



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

СообщениеДобавлено: Вт Май 27, 2014 4:02 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, False,1);
ApplyStop( stopTypeProfit, stopModePoint, 250, 0,False,1);

BuySignal = LastValue(Buy);
SellSignal = LastValue(Ref(Sell,-1));
ShortSignal = LastValue(Short);
CoverSignal = LastValue(Ref(Cover,-1));



Срабатывает идентично с тестером на закрытии следующего бара, если он пересек линию стопа.

Это опять же под сценарий 4 - ExitAtStop = 0

Насчет сбоев, это да, если инет даст сбой будет не очень...

Но можно ставить просто жесткий стоп от краха... и работать по ApplyStop()
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Если это для робота, то так не пойдет.
Не уверен как в роботе будет работать вот это
Код:

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

Не вижу функцию Equity()
По моему лучше сделать так http://www.amisite.ru/afl/exp/0003.htm

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



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

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

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

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

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


ApplyStop() как не курил доки, не захотел у меня в реале работать.
Да и Олег не советовал на реале юзать.


ApplyStop прекрасно всегда работает. Логика Амиброкера НИКОГДА не ошибается. Никаких глюков там нет. Если не работает - ищите ошибки в человеческом факторе (в голове кодера))
Посмотреть профиль Отправить личное сообщение
moextrader



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

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

000 писал(а):
Если это для робота, то так не пойдет.
Не уверен как в роботе будет работать вот это

Код:

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


робот вот это не использует.... это использует тестер, чтобы открывать позы по цене О а крыть по цене С через ApplyStop(), а так же эти значения использует PlotShapes

Робот просто считывает сигналы Buy,Sell,Short,Cover и входит или выходит по рынку.

кстати, АА запускать нельзя когда работает такой код, иначе он перестает работать

Я сегодня весь день тестировал, все работает.

Просто я через Quik не торгую... мне было легче написать свою конструкцию.

Equity() там тоже есть, вот так для точности..

Код:

SetOption("ActivateStopsImmediately", False);
ApplyStop( stopTypeLoss, stopModePoint, stoploss, 0,False,1);
ApplyStop( stopTypeProfit, stopModePoint, takeprofit, 0,False,1);
Equity(1);


Стрелки рисуются, сделки совпадают... Может это и не правильно, но я пока только начал разбираться Laughing
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Это не неправильно. Просто так надо внимательнее следить.
Пример возможного косяка.
Не установил размер позиции для тестера. Тестер вызываемый функцией Equity() в любом случае прогонит доступную историю. Может так получиться, что она даст убыточный результат, при этом, если не указан сайз, то тестер будет "торговать" на все. В итоге, когда поступит сигнал на открытие сделки у тестера не хватит денег даже на одну бумагу и он заблокирует сигнал.
Да,
это маловероятный сценарий, но он возможен. Я могу еще напридумывать...
Вот поэтому.

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



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

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

Да, я в общем понял что в Ами из за косвенной связи между разными функциями и настройками можно очень легко
накосячить. Я вроде с тестером разобрался кажется он показывает все как надо, и похоже что сделки совпадают
с реалом, но точно сказать пока не могу, надо хотя бы пару недель откатать.
Посмотреть профиль Отправить личное сообщение
moextrader



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

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

Я наконец понял как сделать правильно, и тогда любая система гарантом льет Wink

Код:

//adjusted for slippage
BuyPrice=BuyPrice+20;
SellPrice=SellPrice-20; 
ShortPrice=ShortPrice-20;    
CoverPrice=CoverPrice+20; 
Посмотреть профиль Отправить личное сообщение
moextrader



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

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

000 писал(а):

По моему лучше сделать так http://www.amisite.ru/afl/exp/0003.htm


Слушай Олег, а я правильно понял что этого робота надо в данной конфигурации
Код:

if(Name() == "LKOH") { // Символ как он называется в Ами
  SecCode = "LKOH";
  Class = "EQBR";
  Lots = 5;
  TickS = 0.1; // Минимальный шаг цены торгуемой бумаги
  Stop = 1; // стоп в %
  Otstup = 20; // Заявка будет выставлена хуже текущей цены на Otstup рублей }
else if(Name() == "SBER") { // Символ как он называется в Ами   
  SecCode = "SBER03";
  Class = "EQBR";
  Lots = 2;
  TickS = 0.01; // Минимальный шаг цены торгуемой бумаги Stop = 2; // стоп в %
  Otstup = 1; // Заявка будет выставлена хуже текущей цены на Otstup рублей
}



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


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

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

Нет. Не правильно. Его надо использовать вот так

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



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

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

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


 Перейти:   



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


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

File Attachment © by Meik Sievertsen