Начать новую тему Ответить на тему |
Список форумов AmiSite.ru » Вопросы по AFL |
На страницу Пред. 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 След. |
Автор |
Сообщение |
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Не очень понял. Шорт - ковер - шорт ковер и так каждый бар? |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
MrDrJOKER
Зарегистрирован: 22.06.2009
Сообщения: 489
|
000 писал(а): |
Не очень понял. Шорт - ковер - шорт ковер и так каждый бар? |
через бар. бар - шорт, бар - ковер.
у меня какое-то кривое чередование выходит) |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
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
|
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
|
В роботе зависит от робота. Это может быть и гораздо проще и сложнее. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
Kukulkan
Зарегистрирован: 11.01.2013
Сообщения: 19
Откуда: Санкт-Петербург
|
000 писал(а): |
Для начала неплохо бы определиться с трендом. Самый простой и классический способ бросить на линии мувинги. Чем дольше нет пересечения со средней, тем дольше линия в тренде. Ну а дальше по моему все просто. Узнаем сколько баров прошло от пересечения, берем меньшее из двух значений (от двух линий) и умножаем разницу на это число. |
Спасибо, так и сделал. Практической пользы не извлёк, но глаз потешил
я использовал вот такую кодину для счёта бара.. Она их считает все. А если мне нужно задать условие счёта (например, 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
|
Ну типа как то так.
Код: |
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
|
в AFL есть ф-ция goto или похожая? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
goto нету. Считается, что использовать goto даже там где он есть это плохой стиль. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
spitfire
Зарегистрирован: 29.04.2010
Сообщения: 729
Откуда: Moscow
|
Согласен. Хоть глобальные переменные оставили и на том спасибо |
|
|
Посмотреть профиль Отправить личное сообщение ICQ Number |
|
A181AA
Зарегистрирован: 21.01.2014
Сообщения: 8
|
Хочу расчитать просадку за месяц. Правильно ли я делаю?
Код: |
Депо_с_начала_месяца = Equity(0, 3, (10000*(Year()-1900)+100*Month()+1, 0);
Депо_на_начало_месяца = Equity()-Депо_с_начала_месяца;
Просадка_за_месяц = Депо_с_начала_месяца/Депо_на_начало_месяца; |
Если правильно, данный код будет расчитывать каждый месяц в тестере, или же только текущий? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
В тестере считается только то, что там заранее предусмотрено.
Можно прогнать стратегию в тестере, при этом эквити этой стратегии появиться в списке бумаг и ее можно будет открыть и посмотреть как любой тикер. В принципе ничто не мешает написать соответствующий индикатор который будет показывать просадку так, как нужно. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
A181AA
Зарегистрирован: 21.01.2014
Сообщения: 8
|
Ну да, это понятно. Вопрос собственно по коду. Как мне правильно расчитать просадку за месяц? То как это будет реализовываться - второй вопрос. Вкратце про стратегию скажу: если просадка за месяц достигает какого-то порога, то новые сделки не открываются до начала следующего месяца. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
УУУ. Это довольно сложно.
Для начала надо спросить торгуется портфель ли одна бумага? |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
A181AA
Зарегистрирован: 21.01.2014
Сообщения: 8
|
Код: |
Депо_с_начала_месяца = 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)? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
|
Начать новую тему Ответить на тему |
Список форумов AmiSite.ru » Вопросы по AFL |
На страницу Пред. 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 След. |
|
Следующая тема
Предыдущая тема
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы не можете скачивать файлы
|
|