вас не должен заботить метод данный. Озаботиться нужно наполнением данного метода. Вызов его за вас сделает программа.
совершенно верно, согласен полностью с вами я. Вызов Execute() происходит успешно, о чем и написал. Но забота о его наполнении, как ни странно, началась с вопроса о том как же этот метод будет использоваться, какие события будут инициировать запуск этого метода.
Запус Execute() на каждом тике (на реале) и один раз (во время тестов), создает проблемы с наполнением если хочется и потестировать и в бою применить. Вопрос в этом.
Например,
1)
вот этот код вижу в каждом примере на форуме
public void Execute(IContext ctx, ISecurity sec)
{
int barsCount = source.Bars.Count;
for (int i = 0; (i < source.Bars.Count); i++)
{
...
}
}
но если запуск происходит на каждом тике и по стратегии нужнен анализ последних N баров, то зачем же все бары перебирать? А если заменить на
...
for (int i = source.Bars.Count -N; (i < source.Bars.Count); i++)
...
то на тестах будут проблемы. Случай не безисходный, но извращатсья не хочется. Так же знаю что есть некая настройка в ТСлаб, указывающая сколько последних баров передавать в security, но она же константа
2) Во время локальных тестов, Execute запускается один раз и все переменные, объекты созданные в Execute сушествуют во время всего процесса тестирования.
На реальной торговле Execute запускается много раз и соответственно состояние параметров будет потеряно, поэтому используем кэш, файл...
и т.д.
Понимаю что проблемы эти, впринципе, решаемы, но была надежда на возможность одинакового запуска Execute на реале и локально.