Автор |
Сообщение |
Serg
Зарегистрирован: 04.08.2010
Сообщения: 14
|
Огромное вам спасибо Олег!!!
Может у вас есть какая нибуть литературка для начинающих АФЛ-щиков, то скиньте пожалуйста на sery18_ms@mail.ru
Спасибо. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Увы. Если бы было я бы выложил... |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Serg
Зарегистрирован: 04.08.2010
Сообщения: 14
|
000 писал(а): |
Увы. Если бы было я бы выложил... |
Очень жаль..(((. Могу предложить вам написать ее, т.к. опыта у вас много. С примерами, было бы класно)))) |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Это серьёзная работа. Я не готов просто так такую работу делать... |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
cyber2003
Зарегистрирован: 10.04.2012
Сообщения: 52
|
Цитата: |
Если надо чтобы сделка закрывалась на следующий день после открытия в конце дня, то так
Код: |
EndDay = Day() != Ref(Day(),1);
Buy = DayOfWeek() == 2;
pos = Ref(Flip(Buy, EndDay), -1);
Sell = pos == 0 AND EndDay;
|
|
А если система открывает и шортовые сделки тоже, как их закрывать на следующий день наряду с лонговыми? Спасибо! |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Код: |
EndDay = Day() != Ref(Day(),1);
Buy = DayOfWeek() == 1;
Short = DayOfWeek() == 4;
pos = Ref(Flip(Buy OR Short, EndDay), -1);
Sell = pos == 0 AND EndDay;
Cover = pos == 0 AND EndDay; |
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
cyber2003
Зарегистрирован: 10.04.2012
Сообщения: 52
|
000 писал(а): |
Код: |
EndDay = Day() != Ref(Day(),1);
Buy = DayOfWeek() == 1;
Short = DayOfWeek() == 4;
pos = Ref(Flip(Buy OR Short, EndDay), -1);
Sell = pos == 0 AND EndDay;
Cover = pos == 0 AND EndDay; |
|
да, спасибо, работает.
пришла в голову мысль сделать код для закрытия через N дней, в конце дня, в 23.50.
хочу закрыться через N дней именно после открытия, а не после последнего сигнала.
сделал так:
Код: |
evening = TimeNum()==234900;
Cover = Sum(evening, BarsSince( Short ) ) == N;
Sell = Sum(evening, BarsSince( Buy ) ) == N;
|
не работает. закрывает когда попало.
добавил Exrem:
Код: |
evening = TimeNum()==234900;
Cover = Sum(evening, BarsSince( Short ) ) == N;
Sell = Sum(evening, BarsSince( Buy ) ) == N;
Buy = ExRem( Buy, Sell );
Sell = ExRem( Sell, Buy );
Short = ExRem(Short, Cover);
Cover = ExRem(Cover, Short);
|
После этого сильно упала доходность системы на тесте, уменьшилось количество сделок.
Хотя этого вроде не должно было быть. Количество сделок должно было сохраниться. В чем ошибка?
Если можно, то как это реализовать без циклов? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Если надо несколько дней и игнорировать не исполняемые сигналы, то проще цикл
Код: |
EndDay = Day() != Ref(Day(),1);
Buy = DayOfWeek() == 1;
Short = DayOfWeek() == 4;
pos = 0;
j = 0; // счетчик дней
N = 3;
for( i = 1; i < BarCount; i++ )
{
if(pos == 0)
{
if(Buy[i])
pos = 1;
else if(Short[i])
pos = -1;
}
else if(pos == 1)
{
Buy[i] = 0;
if(EndDay[i])
{
j++;
if(j == N)
{
j = 0;
pos = 0;
Sell[i] = 1;
}
}
}
else if(pos == -1)
{
Short[i] = 0;
if(EndDay[i])
{
j++;
if(j == N)
{
j = 0;
pos = 0;
Cover[i] = 1;
}
}
}
}
|
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
cyber2003
Зарегистрирован: 10.04.2012
Сообщения: 52
|
000 писал(а): |
Если надо несколько дней и игнорировать не исполняемые сигналы, то проще цикл
|
Дело в том что с циклом есть 2 проблемы:
1. цикл дает почему-то результат отличный от нециклового решения
2. при тестировании тормозит жутко.
А без цикла все-таки реально?
И что все-таки с Exrem? Почему меняется кол-во сделок? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
С циклом максимально точно. Гарантированно игнорируются не исполняемые сигналы.
Подумаю сегодня. Может и придумаю как без цикла. Пока идей нет. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
cyber2003
Зарегистрирован: 10.04.2012
Сообщения: 52
|
000 писал(а): |
С циклом максимально точно. Гарантированно игнорируются не исполняемые сигналы.
Подумаю сегодня. Может и придумаю как без цикла. Пока идей нет. |
В любом случае - спасибо за помощь! |
|
|
Посмотреть профиль Отправить личное сообщение |
|
|