Я хочу реализовать код afl, чтобы найти ограничение на ежедневные потери во внутридневной торговле. Я буду использовать код для backtesting около 200 дней. У меня есть следующий код, но он с ошибками.Amibroker: Daily Loss Limit
// identify new day
dn = DateNum();
newDay = dn != Ref(dn,-1);
// Daily Loss Limit
dll = Optimize("dll", 0, 5, 10000, 5);
EquityCount = 10000;
for(i = 0; i < BarCount; i++)
{
// signals
Buy = ....;
Sell = ....;
diff = (Equity(1) - Ref(Equity(1), -1));
EquityCount = EquityCount + diff;
// allow only dll
Buy = Buy AND EquityCount > dll;
}
Любая помощь будет оценена по достоинству. Спасибо.
«Сначала ваш код совершенно неправильный». Если вы собираетесь сделать такое широкое заявление, было бы полезно проработать на нем. – ADyson
Руководство AmiBroker уже подробно объясняет это! Например, «Понимание того, как работает AFL» и «Ошибки общего кодирования в AFL ». Переменные покупки и продажи - это массивы, а функции Equity и Ref - это функции массива. Поэтому для доступа к элементам массивов вам необходимо применять индексы. – fxshrat
Итак, руководство объясняет это, но: а) вы не упомянули об этом в качестве справочного источника, и б) цель SO также заключается в создании хранилища знаний. Предоставьте ссылку на источник, а также сводку, сохраненную здесь, чтобы будущие читатели поняли - ссылки часто могут устаревать. См. Http://stackoverflow.com/help/referencing и http://stackoverflow.com/help/how-to-answer – ADyson