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



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

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

Столкнулся с такой проблемой - если цена достигает stop loss или take profit на баре входа, то робот зацикливается (выставление заявок через amisharp в quik).

При этом в коде ставлю
SetOption("AllowSameBarExit", true);
SetOption("ActivateStopsImmediately", true);

Чтобы разрешить выход на баре входа.
Если этого не ставить, то все нормально и не каких зацикливаний не происходит, но за 1 бар может много разного произойти и из малого стопа может получить большой т.к закроется позиция только через бар.

Cлучаи зацикливания были редкостью либо я думал что я исправил их. Но вчера роботу быстро дали профита и он стал его фиксировать. Получилось что откупал шорт, потом снова продавал в шорт, потом снова откупал и так пока я не заметил. Нагенировал комиссии и убытка (вместо прибыли).

Для stop loss и take profit использую ApplyStop и equity(1,0);

Что можно сделать чтобы и стопы с профитом можно было ставить на баре входа сделку и чтобы не было таких зацикливаний когда short и cover (или buy и sell)?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

http://www.amisite.ru/afl/exp/0003.htm
В конце вариант решения.

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



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

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

000 писал(а):
http://www.amisite.ru/afl/exp/0003.htm
В конце вариант решения.


Если честно, то не особо получается пока применить.

Взял для примера простую систему чтобы сигналов было много и быстро увидеть глюк

SetBarsRequired(sbrAll, sbrAll);
SetChartOptions(0,chartShowArrows|chartShowDates);
InitialEquity = 30000; //Начальная сумма
SetOption("InitialEquity", InitialEquity);
SetOption("AllowPositionShrinking", True);
SetOption("MaxOpenPositions",1);
SetOption("AllowSameBarExit", true);
SetOption("ActivateStopsImmediately", true);
SetOption("CommissionMode", 3);
SetOption("CommissionAmount",2.45);
SetPositionSize(1,spsShares);

RoundLotSize = 1;

slip=0;

//Стоп
st=0.1;

//Профит
prof=0.1;

BuyPrice = Min(H,open+slip);
SellPrice = Max(L,open-slip);
ShortPrice = Max(L,open-slip);
CoverPrice = Min(H,open+slip);


Sell = 0;
Cover = 0;

Buy = ref(open,-1)<ref(close,-1);
Short= ref(open,-1)>ref(close,-1);

ApplyStop(stopTypeloss,stopModePercent,st, True);
ApplyStop(stopTypeprofit,stopModePercent,prof, True);

equity(1,0);

Plot(C,"Close",paramcolor("Color",colorblack),stylenotitle | paramstyle("Style") | getpricestyle() );

plotshapes(IIf(Cover,shapeuparrow,0),6,0,CoverPrice,-20);
plotshapes(IIf(Buy,shapeuparrow,0),5,0,BuyPrice,-20);
plotshapes(IIf(Sell,shapedownarrow,0),6,0,SellPrice,-20);
plotshapes(IIf(Short,shapedownarrow,0),4,0,ShortPrice,-20);
Посмотреть профиль Отправить личное сообщение
Sergg



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

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

Добавлял еще что-то типа этого и все-равно его ключит. Может не правильно понимаю смысл. Это для стопа, для take profit тоже добавлял.

Buy = Buy[BarCount - 1] AND L[BarCount - 1] > O[BarCount - 1]*(1 - st/100);
Sell = Sell[BarCount - 1];
Short = Short[BarCount - 1] AND H[BarCount - 1] < O[BarCount - 1]*(1 + st/100);
Cover = Cover[BarCount - 1];
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Вт Мар 19, 2013 10:48 pm Ответить с цитатой Вернуться к началу

Не понял. В начале вроде речь шла о роботе, а теперь вижу код для теста... Все таки это разные задачи...

Я правда совсем не знаю как работает робот на amisharp...

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


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

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

Хм.
Попробуй так.
Ниже Equity(1, 0);
Напиши типа
Buy = Buy AND Sell == 0;
...

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



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

СообщениеДобавлено: Чт Мар 21, 2013 4:17 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Хм.
Попробуй так.
Ниже Equity(1, 0);
Напиши типа
Buy = Buy AND Sell == 0;
...


У меня до этого стояла такая же конструкция, но до Equity(1, 0);
И я думал что она работает, до того момента как не заметил зацикливание.

Сейчас по вашему совету поставил после Equity. Вроде зацикливаний не происходит. Правда сейчас на графике не поймешь где какой сигнал, т.е как только вошли в сделку то я вижу допустим "красную стрелочку" в Short, а если наступил Cover на этом же баре, то красная стрелочка от шорта уже изчезает и я вижу только стрелочку от Cover.
Т.е чисто визуальные неудобства.

А в Quik сделки идут нормально.
Посмотреть профиль Отправить личное сообщение
Виталий



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

СообщениеДобавлено: Чт Апр 08, 2021 1:44 pm Ответить с цитатой Вернуться к началу

Я правильно понимаю, что случай выбивания по стопу на баре входа нереализуем в одной формуле и для тестера и для робота? Если мы снимаем сигнал после отстопа и до закрытия бара, идущего за сигнальным, то на этом баре сигнала не будет совсем. Или есть какое то решение? Я для тестера реализовал и маркеры расставляются верно и сделки в тестере считаются правильно. А под робота допилить не соображу как, чтоб тестерный код не пострадал.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Чт Апр 08, 2021 2:53 pm Ответить с цитатой Вернуться к началу

Только переходить на меньший фрейм.

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



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

СообщениеДобавлено: Чт Апр 08, 2021 3:37 pm Ответить с цитатой Вернуться к началу

Я, видимо, еще никак философию Амиброкера не вкурю. Пошел прогуляться, чтоб мозг не вскипел. Иду и думаю, а зачем мне вообще в роботе все эти циклы, массивы, прогоны... Маркеры на чарте у меня рисуются от реальных сделок, они все в файле лежат. Рассчитанные маркеры на истории мне не нужны на работающем роботе. Мне нужны сигналы в моменте и цены открытия/закрытия позы, все равно заявка маркетом уходит. Т.е. робот мой простой как три копейки выходит в сравнении с тестером. Никаких циклов, а только сигнал в моменте. Пральна?

Отвечаю сам себе - нипральна ))
т.е. в большинстве нипральна
пральна для реверсивных безстоповых роботов.

Но я развил твою идею сдвига сигналов (по ссылке выше). И должно получиться без смены фрейма
Посмотреть профиль Отправить личное сообщение
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen