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



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

СообщениеДобавлено: Пт Июн 08, 2012 9:42 am Ответить с цитатой Вернуться к началу

Подскажите. Есть код для теста. Перевертыш, то есть всегда в рынке.
Если я тестирую на истории, то получается, что он учитывает прибыль/убытки по гэпу. Что не очень правильно.
Какую куда строчку можно добавить, чтобы независимо от текущей позиции лонг/шорт, выходили из позы и фиксировали прибыль/убыток в 23:50 ?
Посмотреть профиль Отправить личное сообщение
Mechanic



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

СообщениеДобавлено: Пт Июн 08, 2012 9:46 am Ответить с цитатой Вернуться к началу

Sell = Cover = TimeNum() == 235000;
Посмотреть профиль Отправить личное сообщение ICQ Number
roma095



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

СообщениеДобавлено: Пт Июн 08, 2012 1:13 pm Ответить с цитатой Вернуться к началу

Спасибо. У меня было sell=cover=0. Оставляю только вашу строчку?
Посмотреть профиль Отправить личное сообщение
Mechanic



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

СообщениеДобавлено: Пт Июн 08, 2012 3:05 pm Ответить с цитатой Вернуться к началу

Ну да. В 23.50 все открытые позиции будут закрываться. Правда, тут один нюанс есть: в истории может быть дыра в данных, и свечки со временем 23.50 может не оказаться... Чтобы защититься от таких дыр, лучше вот так написать:

Sell = Cover = TimeNum() >= 235000 OR DateTime() != Ref(DateTime(), -1);

С таким кодом позиции по любому в конце дня закроются, даже если есть пропуски баров.
Посмотреть профиль Отправить личное сообщение ICQ Number
belin



Зарегистрирован: 09.09.2009
Сообщения: 230
Откуда: wealth-lab user

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

Так писать нельзя
Sell = Cover = DateTime() != Ref(DateTime(), -1);
они на каждом баре не равны из-за времени и закрытие будет тут же.
Если использовать
Sell = Cover = DateNum() != Ref(DateNum(), -1);
то закрытие будет на первом баре следующего дня, тоже не дело.
А как сделать сам тоже думаю. Пробовал через 235000-100*Interval()/60, но это не для всех ТФ, пример -3 минуты - последний бар начинается в 23-48. И от проблемы дыры в данных это не спасёт.
Только если для теста заглянуть в будущее
Sell = Cover = DateNum() != Ref(DateNum(), 1);
Посмотреть профиль Отправить личное сообщение
Mechanic



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

СообщениеДобавлено: Сб Июн 09, 2012 3:00 am Ответить с цитатой Вернуться к началу

belin писал(а):
Так писать нельзя
Sell = Cover = DateTime() != Ref(DateTime(), -1);
они на каждом баре не равны из-за времени и закрытие будет тут же.
Если использовать
Sell = Cover = DateNum() != Ref(DateNum(), -1);
то закрытие будет на первом баре следующего дня, тоже не дело.
А как сделать сам тоже думаю. Пробовал через 235000-100*Interval()/60, но это не для всех ТФ, пример -3 минуты - последний бар начинается в 23-48. И от проблемы дыры в данных это не спасёт.
Только если для теста заглянуть в будущее
Sell = Cover = DateNum() != Ref(DateNum(), 1);

Тьфу, ёлки, конечно же DateNum(), опечатка. Спасибо за поправку.

Sell = Cover = TimeNum() >= 235000 OR DateNum() != Ref(DateNum(), -1);

От дыр в данных эта конструкция защищает на все сто, позиции гарантированно будет закрыты в интервале между 23:50 и началом следующих суток (на первой же имеющейся в этом интервале свече).

Но если речь идёт не о круглосуточных рынках - тогда да, только через заглядывание в будущее:

Sell = Cover = TimeNum() >= 235000 OR DateNum() != Ref(DateNum(), 1);
Посмотреть профиль Отправить личное сообщение ICQ Number
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen