Originally Posted By: ra81
вас не должен заботить метод данный. Озаботиться нужно наполнением данного метода. Вызов его за вас сделает программа.

совершенно верно, согласен полностью с вами я. Вызов Execute() происходит успешно, о чем и написал. Но забота о его наполнении, как ни странно, началась с вопроса о том как же этот метод будет использоваться, какие события будут инициировать запуск этого метода.

Запус Execute() на каждом тике (на реале) и один раз (во время тестов), создает проблемы с наполнением если хочется и потестировать и в бою применить. Вопрос в этом.

Например,
1)
вот этот код вижу в каждом примере на форуме
Code:
public void Execute(IContext ctx, ISecurity sec)
{
	int barsCount = source.Bars.Count;
	for (int i = 0; (i < source.Bars.Count); i++)
	{
		...
	}
}

но если запуск происходит на каждом тике и по стратегии нужнен анализ последних N баров, то зачем же все бары перебирать? А если заменить на
Code:
...
	for (int i = source.Bars.Count -N; (i < source.Bars.Count); i++)
...

то на тестах будут проблемы. Случай не безисходный, но извращатсья не хочется. Так же знаю что есть некая настройка в ТСлаб, указывающая сколько последних баров передавать в security, но она же константа

2) Во время локальных тестов, Execute запускается один раз и все переменные, объекты созданные в Execute сушествуют во время всего процесса тестирования.
На реальной торговле Execute запускается много раз и соответственно состояние параметров будет потеряно, поэтому используем кэш, файл...

и т.д.


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


Отредактировано user5 (Sat Nov 07 2015 11:30 PM)