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



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

СообщениеДобавлено: Ср Сен 25, 2013 9:35 am Ответить с цитатой Вернуться к началу

У меня есть N тикеров, которые нужно торговать каждый день, при этом может быть открыта только 1 лонговая и 1 шортовая позиции. Выход на следующем баре. Входы и выходы по ценам закрытия.

Пробовал так:

SetOption("MaxOpenPositions", 2);
SetOption("MaxOpenLong", GetOption("MaxOpenPositions") / 2);
SetOption("MaxOpenShort", GetOption("MaxOpenPositions") / 2);


Buy = Short = True;
Sell = Ref(Buy, -1);
Cover = Ref(Short, -1);

PositionScore = 50 - RSI(50);

не работает. Бэктестер выдает неправильные результаты. AllowSameBarExit тоже не помогает.
Пробовал с ApplyStop(stopTypeNBar, stopModeBars, 1), но та же фигня.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

А конкретно что не так?

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



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

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

Один день тестер лонгует, на следующий только шортит и так по кругу через день. А нужно чтобы каждый день и лонг был и шорт.

Вообще столкнулся впервые с таким геморроем. Вроде бы тривиальная задача. Всего-то надо каждый день на дневках лонговать одну позу и шортить одну позу и выходить на след. день. Как это реализовать без Custom Backtester Interface, пока не придумаль.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Интересно то, что у меня твой код только лонгует.
В общем 2 ошибки.
1. Ты не задал сайз и тестер все бабло тратит на первую сделку. Таким образом на вторую денег все равно не остается.
2. У тебя одновременно сигналы и лонг и шорт на каждый тикер.

Попробуй типа так
Код:

SetOption("MaxOpenLong", 1);
SetOption("MaxOpenShort", 1);


Buy = mtRandomA() >= 0.5;
Short = mtRandomA() < 0.5;
Sell = 0;
Cover = 0;

ApplyStop(stopTypeNBar, stopModeBars, 1);
SetPositionSize(1, 4);

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



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

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

Нет, сайз я задал, просто не написал тут.
Да, сигналы одновременно на лонг и шорт на каждом баре и Амиброкер должен ранжировать их через PositionScore и шортнуть тикер с низшим рейтингом и лонгануть в высшим. И так каждый день.

Твой вариант я уже пробовал, но дело в том, чтопри таком раскладе могут быть дни, когда не будут ни лонгов ни шортов. Т.е. нужно чтобы buy = short = true. Походу придется через CBI делать. Штатными методами не выходит, ибо амиброкеру не нравиться когда одновременно условия на лонг и шорт стоят в true.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

А ты тогда сделай шорт если PositionScore < 0 и лонг если >

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



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

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

Я так и сделал.
А чем отличается ApplyStop от Ref(short, -1)?
Результаты получаются разные, но логика вроде одна и та-же.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Вроде не должно быть разницы.

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen