Tradematic Support Center
Guides, articles, videos and links for Tradematic users and developers.
Почему основной цикл for начинается с разных баров, а не с первого элемента?
45177РЕДАКТОР КОДА ЦИКЛ FOR НАЧАЛО БАР FIRSTVALIDVALUE FORПричина в том, что часто индикаторы требуют некоторое количество баров для рассчета перового значения. Поэтому логично и корректно считывать только существующие значения. Так же бывает, требуется в коде ссылка на цену 10 баров назад. На первых 10 барах, соответственно, этих значений не будет и програма выдаст ошибку. Поэтому, когда создаете стратегию через редактор кода, рассчитывате максимальный номер бара, когда все значения будут сформированы и начинайте цикл с данного элемент. В каких-то случаях ориентироваться можно по периоду индикатора, например, для SMA, а в некоторых все не так очевидно и тут можно воспользоватьсяполе FirstValidValue обьекта DataSeries, которое выдает первое корректное значение индикатора.
int firstValue=Math.Max(parameter0.ValueInt, SMA.Series(Close, parameter1.ValueInt).FirstValidValue); // Основной цикл for (int bar = firstValue; bar < Symbol.Count; bar++)