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



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

СообщениеДобавлено: Вс Авг 08, 2010 4:22 pm Ответить с цитатой Вернуться к началу

Огромное вам спасибо Олег!!!
Может у вас есть какая нибуть литературка для начинающих АФЛ-щиков, то скиньте пожалуйста на sery18_ms@mail.ru
Спасибо.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Вс Авг 08, 2010 4:43 pm Ответить с цитатой Вернуться к началу

Увы. Если бы было я бы выложил...

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



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

СообщениеДобавлено: Вс Авг 08, 2010 9:21 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Увы. Если бы было я бы выложил...



Очень жаль..(((. Могу предложить вам написать ее, т.к. опыта у вас много. С примерами, было бы класно))))
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Вс Авг 08, 2010 9:57 pm Ответить с цитатой Вернуться к началу

Это серьёзная работа. Я не готов просто так такую работу делать... Laughing

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



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

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

Цитата:

Если надо чтобы сделка закрывалась на следующий день после открытия в конце дня, то так
Код:

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

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

Код:
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

СообщениеДобавлено: Вт Май 07, 2013 2:26 am Ответить с цитатой Вернуться к началу

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

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

Если надо несколько дней и игнорировать не исполняемые сигналы, то проще цикл
Код:

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

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

000 писал(а):
Если надо несколько дней и игнорировать не исполняемые сигналы, то проще цикл

Дело в том что с циклом есть 2 проблемы:
1. цикл дает почему-то результат отличный от нециклового решения
2. при тестировании тормозит жутко.
А без цикла все-таки реально?
И что все-таки с Exrem? Почему меняется кол-во сделок?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

С циклом максимально точно. Гарантированно игнорируются не исполняемые сигналы.
Подумаю сегодня. Может и придумаю как без цикла. Пока идей нет.

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



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

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

000 писал(а):
С циклом максимально точно. Гарантированно игнорируются не исполняемые сигналы.
Подумаю сегодня. Может и придумаю как без цикла. Пока идей нет.

В любом случае - спасибо за помощь!
Посмотреть профиль Отправить личное сообщение
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen