background

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++)
This website uses cookies. By continuing to use this website, you consent to our Privacy Policy. OK