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


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

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

Не очень понял. Шорт - ковер - шорт ковер и так каждый бар?

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



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

СообщениеДобавлено: Вс Окт 27, 2013 3:41 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Не очень понял. Шорт - ковер - шорт ковер и так каждый бар?

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


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

СообщениеДобавлено: Вс Окт 27, 2013 4:02 pm Ответить с цитатой Вернуться к началу

1.
Код:

Short = Cover = 0;

pos = 0;
for(i = 1; i < arCount; i++)
{
  if(pos == 0)
  {
    Short[i] = 1;
    pos = 1;
  }
  else if(pos == 1)
  {
    Cover[i] = 1;
    pos = 0;
  }
}


2.
Код:

Short = frac(BarIndex()/2) > 0.4;
Cover = frac(BarIndex()/2) < 0.1;

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



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

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

000 писал(а):
1.
Код:

Short = Cover = 0;

pos = 0;
for(i = 1; i < arCount; i++)
{
  if(pos == 0)
  {
    Short[i] = 1;
    pos = 1;
  }
  else if(pos == 1)
  {
    Cover[i] = 1;
    pos = 0;
  }
}


2.
Код:

Short = frac(BarIndex()/2) > 0.4;
Cover = frac(BarIndex()/2) < 0.1;


спасибо. наверное, стоило упомянуть, что условия должны срабатывать в роботе. в риалтайм срабатывает только short, видимо, из-за BarIndex и BarCount.

но та моя конструкция сверху исправно клацает туда-сюда)
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

В роботе зависит от робота. Это может быть и гораздо проще и сложнее.

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



Зарегистрирован: 11.01.2013
Сообщения: 19
Откуда: Санкт-Петербург

СообщениеДобавлено: Вт Окт 29, 2013 12:26 pm Ответить с цитатой Вернуться к началу

000 писал(а):
Для начала неплохо бы определиться с трендом. Самый простой и классический способ бросить на линии мувинги. Чем дольше нет пересечения со средней, тем дольше линия в тренде. Ну а дальше по моему все просто. Узнаем сколько баров прошло от пересечения, берем меньшее из двух значений (от двух линий) и умножаем разницу на это число.

Спасибо, так и сделал. Практической пользы не извлёк, но глаз потешил Very Happy
я использовал вот такую кодину для счёта бара.. Она их считает все. А если мне нужно задать условие счёта (например, q>0), это условие нужно писать раньше счётчика?
Код:
uptrendQ=Cross(q,MAq);
dwtrendQ=Cross(MAq,q);
Qex=Flip(uptrendQ,dwtrendQ);
upcountQ=BarsSince(uptrendQ);
dwcountQ=BarsSince(dwtrendQ);
CountQ=IIf(Qex,upcountQ,dwcountQ);


спасибо!

_________________
Не ходи за мной, я сам заблудился.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

Ну типа как то так.
Код:
up = q > MAq AND q > 0;
uptrendQ = up AND Ref(up, -1) < 1;

dw = q < MAq AND q < 0;
dwtrendQ = dw AND Ref(dw, -1) < 1;


Это моменты начала трендов вверх и вниз
Только имей ввиду, что теперь есть не 2 состояния в вверх или вниз, но и третье (не то и не другое) типа флет.

Соответственно тренд вверх должен заканчиваться не в момент когда начинается тренд вниз.

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



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

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

в AFL есть ф-ция goto или похожая?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

goto нету. Считается, что использовать goto даже там где он есть это плохой стиль.

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



Зарегистрирован: 29.04.2010
Сообщения: 729
Откуда: Moscow

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

Согласен. Хоть глобальные переменные оставили и на том спасибо Smile
Посмотреть профиль Отправить личное сообщение ICQ Number
A181AA



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

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

Хочу расчитать просадку за месяц. Правильно ли я делаю?

Код:
Депо_с_начала_месяца = Equity(0, 3, (10000*(Year()-1900)+100*Month()+1, 0);
Депо_на_начало_месяца = Equity()-Депо_с_начала_месяца;
Просадка_за_месяц = Депо_с_начала_месяца/Депо_на_начало_месяца;


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


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

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

В тестере считается только то, что там заранее предусмотрено.
Можно прогнать стратегию в тестере, при этом эквити этой стратегии появиться в списке бумаг и ее можно будет открыть и посмотреть как любой тикер. В принципе ничто не мешает написать соответствующий индикатор который будет показывать просадку так, как нужно.

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



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

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

Ну да, это понятно. Вопрос собственно по коду. Как мне правильно расчитать просадку за месяц? То как это будет реализовываться - второй вопрос. Вкратце про стратегию скажу: если просадка за месяц достигает какого-то порога, то новые сделки не открываются до начала следующего месяца.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


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

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

УУУ. Это довольно сложно.
Для начала надо спросить торгуется портфель ли одна бумага?

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



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

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

Код:
Депо_с_начала_месяца = Equity(0, 3, (10000*(Year()-1900)+100*Month()+1), 0);


Похоже дело в этой строке, конкретно параметр 4...
В справке написано: equity( Flags = 0, RangeType = -1, From = 0, To = 0 )

1-й параметр = 0 // Я так понимаю нужен для портфельных стратегий. У меня один инструмент
2-й параметр = 3 // From/To dates
3-й параметр = (10000*(Year()-1900)+100*Month()+1) // Рассчитываю начало месяца
4-й параметр = 0 // Здесь мне не совсем понятно. Может поставить что-то наподобие DateNum(LastBar)?
Посмотреть профиль Отправить личное сообщение
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



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


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

File Attachment © by Meik Sievertsen