Врач-бондиатОр
Врач-бондиатОр личный блог
28 августа 2020, 23:11

Amibroker - как из бэктеста удалить дни?

Всем привет!

Если есть знатоки afl, то подскажите плиз как в скрипте прописать удаление определенных дней недели на бэктесте?
4 Комментария
  • eDoK
    29 августа 2020, 00:04
    я конечно еще тот знаток afl, но можно фильтром исключить дни недели, например исключение понедельника:
    dayofweekCurrent = DayOfWeek();// Текущий день недели
    .....
    for(i = 0; i<BarCount; i++)
    {
    ...
    if (dayofweekCurrent[i] != 1)
    {
    … //Основная процедура
    }
    else
    {
    ...
    }
    }

    Примечание:
    SYNTAX dayofweek()
    RETURNS ARRAY
    FUNCTION Returns the array with day of week (0-6):
    0 — Sunday
    1 — Monday
    ...
    5 — Friday
    6- Saturday
    EXAMPLE buy = dayofweek() == 1; // buy on Monday
    sell = dayofweek() == 5; // sell on Friday


  • Eugene Bright
    29 августа 2020, 01:05
    Исключения стандартных выходных (или любых других, но регулярно исключаемых) дней устанавливаются в настройках базы для Amibroker.
    Но лучше всего запрогать скриптом бэктест прямо в QUIK.
    У меня сделано так. Польза одна: при любом изменении базы-источника данных в QUIK бэктест пересчитает вовремя стратегию. Ну, и неразрывность процесса «тест-робот».
  • Kapeks
    29 августа 2020, 15:30
    KoDe правильно написал.
    Но если ты сам не смог до этого допереть, или хотя бы хелп по афл прочитать, или хотя бы гугл спросить, то алготорговля не для тебя.
  • quant_trader
    31 августа 2020, 13:07
    KoDe написал правильно но в неоптимальной не основной для Ами практике языка.

    no_trade=dayofweek()==1 or dayofweek()<2;
    Buy=Ref(c==hhv(c,10) and no_trade==0,-1);

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн