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



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

СообщениеДобавлено: Ср Окт 22, 2014 12:05 am Ответить с цитатой Вернуться к началу

Здравствуй Олег. Думаю для Вас это очень легко. Системка простая вроде...Код Омеги:

If t>1015 and t < 1800 then buy next bar at highw(0) stop;
if t>1015 and t< 1800 then sell next bar at loww(0) stop;
if t=1300 then begin
exitlong at c;
exitshort at c;
end;
setstoploss(200);

можно даже в общем, я потом допилю)
оригинал отсюда http://smart-lab.ru/blog/206229.php

спасибо
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Ср Окт 22, 2014 12:51 am Ответить с цитатой Вернуться к началу

Цитата:

Алгоритм


во время основной торговой сессии фортс с 10:15 до 18:00 входим в пробой текущего недельного минимума или максимума. Позиция удерживается до 12-13 часов московского времени следующего дня с стопом 200п. повторных входов, если позиция уже есть — не осуществляется. это все.

код для омеги

If t>1015 and t < 1800 then buy next bar at highw(0) stop;
if t>1015 and t< 1800 then sell next bar at loww(0) stop;
if t=1300 then begin
exitlong at c;
exitshort at c;
end;
setstoploss(200);

Лучше бы дал описание, но хоть ссылку. Я в коде омеги нифига не понимаю.
Типа как то так
Код:

TimeCond = TimeNum() >= 101500 AND TimeNum() < 180000;

NW = DayOfWeek() < Ref(DayOfWeek(), -1);
ND = DayOfWeek() != Ref(DayOfWeek(), -1);
WH = HHV(H, BarsSince(NW)+1);
WL = LLV(L, BarsSince(NW)+1);

Buy = H > Ref(WH, -1) AND TimeCond;
Short = L < Ref(WL, -1) AND TimeCond;

BuyPrice = Max(Ref(WH, -1), O);
ShortPrice = Min(Ref(WL, -1), O);
SellPrice = CoverPrice = C;

EntryDay = Flip(Buy OR Short, ND);

Sell = Cover = TimeNum() == 130000 AND EntryDay == 0;

ApplyStop(stopTypeLoss, stopModePoint, 200, ExitAtStop = 1);

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.

Последний раз редактировалось: 000 (Ср Окт 22, 2014 1:17 am), всего редактировалось 1 раз
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Orange2000



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

СообщениеДобавлено: Ср Окт 22, 2014 1:08 am Ответить с цитатой Вернуться к началу

Ух спасибо огромное. Даже не так просто оказалось, я бы сам не сделал) Сегодня уже поздно, завтра погоняю код и отпишусь!
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Ср Окт 22, 2014 1:17 am Ответить с цитатой Вернуться к началу

Я там кое что добавил. Сразу забыл а ща вспомнил... ))))

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



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

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

Доброе утро Олег.
Прогнал код. Работает. Но есть выходы иногда раньше 13-00. я так понял срабатывает условие на шорт если лонг и он закрывает и встает в шорт.

а по системе выход строго по стопу или в 13-00)
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Ну так может в настройках тестера выключить опцию "закрывать позицию при поступлении противоположного сигнала"? Laughing

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



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

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

000 писал(а):
Ну так может в настройках тестера выключить опцию "закрывать позицию при поступлении противоположного сигнала"? Laughing


ааа) точно, совсем затупил, сорри! Все отличноработает, буду экспериментировать. Еще раз огромное спасибо)
Посмотреть профиль Отправить личное сообщение
Orange2000



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

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

что то не так. не сразу заметил. Позиция в 1/3 случаев держится несколько дней. 2-3-6 дней. На след день почему-то не всегда закрывается.

пытался найти причину, не смог)
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Попробуй вот эту строку
Sell = Cover = TimeNum() == 130000 AND EntryDay == 0;
заменить на
Sell = Cover = TimeNum() > 130000 AND EntryDay == 0;

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



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

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

000 писал(а):
Попробуй вот эту строку
Sell = Cover = TimeNum() == 130000 AND EntryDay == 0;
заменить на
Sell = Cover = TimeNum() > 130000 AND EntryDay == 0;


то же самое только выходы теперь в 13-05, но в те же дни...т.е. иногда через пару дней, черз 4 дня..или неделю



с EntryDay что то. Из условия закрытия я убрал EntryDay==0 и система выходит в 13-00, но косяк в том что если входила утром до 13, то выходит в этот же день))
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Orange2000 писал(а):
000 писал(а):
Попробуй вот эту строку
Sell = Cover = TimeNum() == 130000 AND EntryDay == 0;
заменить на
Sell = Cover = TimeNum() > 130000 AND EntryDay == 0;


то же самое только выходы теперь в 13-05, но в те же дни...т.е. иногда через пару дней, черз 4 дня..или неделю



с EntryDay что то. Из условия закрытия я убрал EntryDay==0 и система выходит в 13-00, но косяк в том что если входила утром до 13, то выходит в этот же день))

Угу. Для того и ввел EntryDay.
О, бля, понял. Если система в позе, но поступают сигналы, то тестер их игнорирует, а на EntryDay они один хрен влияют и включают его заново. Ща не досуг, позже подумаю и исправлю.

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



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

СообщениеДобавлено: Ср Окт 22, 2014 5:38 pm Ответить с цитатой Вернуться к началу

Буду очень признателен)
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

СообщениеДобавлено: Ср Окт 22, 2014 5:56 pm Ответить с цитатой Вернуться к началу

Типа так
Код:

TimeCond = TimeNum() >= 101500 AND TimeNum() < 180000;
TN = TimeNum();

NW = DayOfWeek() < Ref(DayOfWeek(), -1);
ND = DayOfWeek() != Ref(DayOfWeek(), -1);
WH = HHV(H, BarsSince(NW)+1);
WL = LLV(L, BarsSince(NW)+1);

Buy = H > Ref(WH, -1) AND TimeCond;
Short = L < Ref(WL, -1) AND TimeCond;

BuyPrice = Max(Ref(WH, -1), O);
ShortPrice = Min(Ref(WL, -1), O);
SellPrice = CoverPrice = C;

pos = ED = 0;
for( i = 0; i < BarCount; i++ )
{
   if(pos == 0)
   {
      if(Buy[i] OR Short[i])
      {
         pos = 1;
         ED = 1;
      }
   }
   else if(pos == 1)
   {
      Buy[i] = 0;
      Short[i] = 0;
      if(ND[i] == 1)
         ED = 0;
      else if(TN[i] == 130000 AND ED == 0)
      {
         pos = 0;
         Sell[i] = Cover[i] = 1;
      }
   }
}

ApplyStop(stopTypeLoss, stopModePoint, 200, ExitAtStop = 1);

Наверняка это не самый лучший код, но так мне проще.

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



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

СообщениеДобавлено: Ср Окт 22, 2014 9:11 pm Ответить с цитатой Вернуться к началу

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


 Перейти:   



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


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

File Attachment © by Meik Sievertsen