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



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

СообщениеДобавлено: Ср Июн 17, 2015 4:59 pm Ответить с цитатой Вернуться к началу

Добрый день!
мой код выглядит так:

Buy = Cond1 and Cond2;
BuyPrice = C;
s1 = ... (расчетный стоп для лонга);
Sell = 0;
ApplyStop( stopTypeProfit , stopModePercent, 1, exitatstop = 1 , volatile = False, ReEntryDelay = 0 ); // тейк-профит 1%
ApplyStop( stopTypeLoss, stopModePoint, s1, ExitAtStop = 1, volatile = False, ReEntryDelay = 0); // стоп-лосс расчетный


Short = Cond2 and Cond3;
ShortPrice = L;
s2 = ... (расчетный стоп для шорта);
Cover = 0;
ApplyStop( stopTypeProfit , stopModePercent, 1, exitatstop = 1 , volatile = False, ReEntryDelay = 0 ); // тейк-профит 1%
ApplyStop( stopTypeLoss, stopModePoint, s2, ExitAtStop = 1, volatile = False, ReEntryDelay = 0); // стоп-лосс расчетный

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

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


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

СообщениеДобавлено: Ср Июн 17, 2015 6:03 pm Ответить с цитатой Вернуться к началу

Проверь в настройках тестера опцию Reverse entry signal forces exit
http://www.amisite.ru/begin/bk_set2.php
Скорее всего у тебя включена. Выключи.

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



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

СообщениеДобавлено: Чт Июн 18, 2015 12:13 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Проверь в настройках тестера опцию Reverse entry signal forces exit
http://www.amisite.ru/begin/bk_set2.php
Скорее всего у тебя включена. Выключи.


Проверял эту опцию конечно...не помогает.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Чт Июн 18, 2015 1:06 pm Ответить с цитатой Вернуться к началу

Включи в настройках тестера опцию Detailed log
http://www.amisite.ru/begin/bk_set5.php
и посмотри что за сигнал (его тип) заставляет закрывать позу. Это здорово поможет решить проблему.

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



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

СообщениеДобавлено: Чт Июн 18, 2015 1:34 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Включи в настройках тестера опцию Detailed log
http://www.amisite.ru/begin/bk_set5.php
и посмотри что за сигнал (его тип) заставляет закрывать позу. Это здорово поможет решить проблему.


Запустил. Написано, что тип сигнала "Sell" (Exit long). По коду видно, что у меня выход либо по стоп-лоссу, либо по тейку. Стоп-лосс s1 я вывожу на график и видно, что в этом трейде он правильно рассчитывается ( руками проверял), но сделка в итоге проходит по неправильной цене. Попробовал убрать шорты и протестировать только для лонгов - все отлично, размер стопа совпадает и выход в итоге по тейку. Но как только добавляю код для шортов, то все...
Причем хочу заметить, что этот неправильный выход случается на том же баре и в такое же время, что и вход, хотя такого быть не должно. Размерность базы часовки, закачиваю тоже часовые данные, то есть с этим все ок..
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Чт Июн 18, 2015 2:17 pm Ответить с цитатой Вернуться к началу

Сигнал "Sell" (Exit long) это не стоп, стоп там как то по другому обзывается. Поскольку у тебя в коде Sell = 0; значит он может образоваться только из сигнала Short.
Очень похоже, что опция Reverse entry signal forces exit всетаки включена, проверь. На всяки пожарный выключи еще Allow same bar exit (single bar trade).

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



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

СообщениеДобавлено: Чт Июн 18, 2015 4:46 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Сигнал "Sell" (Exit long) это не стоп, стоп там как то по другому обзывается. Поскольку у тебя в коде Sell = 0; значит он может образоваться только из сигнала Short.
Очень похоже, что опция Reverse entry signal forces exit всетаки включена, проверь. На всяки пожарный выключи еще Allow same bar exit (single bar trade).


Проверил ещё раз, это все выключено.
Я думаю, что все-таки что-то в коде. Например, когда тестирую только лонговые сделки путем установки в Backtester settings/General/ Positions - Long, то у системы один результат. А если я дополнительно к этому ещё и убираю из кода всё, что связано с шортами и оставляю только лонговый блок и тестирую его, то результат абсолютно другой. Буду думать...
Посмотреть профиль Отправить личное сообщение
SPR



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

СообщениеДобавлено: Чт Июн 18, 2015 5:03 pm Ответить с цитатой Вернуться к началу

Да, проблема именно в коде. Почему-то в некоторых лонговых сделках ( когда в настройках Backtester стоит только Long, но в коде присутствует шортовый блок) он выходит по стопу s2, а не s1, как должен.

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


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

СообщениеДобавлено: Чт Июн 18, 2015 5:29 pm Ответить с цитатой Вернуться к началу

Ааа, бля. Вот я дурак. Конечно. Ами не различает ApplyStop на лонговый и шортовый. Поэтому когда у тебя лонг и шортовые стопы тоже активированы. Wink

Надо делать так
Код:
s1 = ... (расчетный стоп для лонга);
Sell = 0;

Short = Cond2 and Cond3;
ShortPrice = L;
s2 = ... (расчетный стоп для шорта);
Cover = 0;


ss = Iif(Buy, s1, s2);

ApplyStop( stopTypeProfit , stopModePercent, 1, exitatstop = 1 , volatile = False, ReEntryDelay = 0 ); // тейк-профит 1%
ApplyStop( stopTypeLoss, stopModePoint, ss, ExitAtStop = 1, volatile = False, ReEntryDelay = 0); // стоп-лосс расчетный

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



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

СообщениеДобавлено: Чт Июн 18, 2015 6:22 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Ааа, бля. Вот я дурак. Конечно. Ами не различает ApplyStop на лонговый и шортовый. Поэтому когда у тебя лонг и шортовые стопы тоже активированы. Wink

Надо делать так
Код:
s1 = ... (расчетный стоп для лонга);
Sell = 0;

Short = Cond2 and Cond3;
ShortPrice = L;
s2 = ... (расчетный стоп для шорта);
Cover = 0;


ss = Iif(Buy, s1, s2);

ApplyStop( stopTypeProfit , stopModePercent, 1, exitatstop = 1 , volatile = False, ReEntryDelay = 0 ); // тейк-профит 1%
ApplyStop( stopTypeLoss, stopModePoint, ss, ExitAtStop = 1, volatile = False, ReEntryDelay = 0); // стоп-лосс расчетный


Кто здесь дурак, дак это я! Я просматривал эту функцию, но не допер, что её можно применить тут=) Спасибо, Олег!
Посмотреть профиль Отправить личное сообщение
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen