Ошибки в SampleSMA версия 2.0
Atom Ответить
14.06.2010


Первый вопрос:
класс MainWindow в функции private void DrawSma() отсутствуют две
строчки

foreach (var candle in candles)
{
ОТСУТСТВУЕТ!
_strategy.LongSma.Add(candle);
ОТСУТСТВУЕТ!
_strategy.ShortSma.Add(candle);

_longSmaSeries.DataPoints.Add(new DataPoint { XValue =
candle.Time, YValue = _strategy.LongSma.Value });
_shortSmaSeries.DataPoints.Add(new DataPoint { XValue =
candle.Time, YValue = _strategy.ShortSma.Value });
}
Это так должно быть в версии 2.0? В версии 1.8 в примерах и в доке в
2.0 эти строчки есть.

Второй вопрос:
класс SmaStrategy в функции protected override bool OnProcess()

// получаем сформированную свечку
var candle = _candleManager.GetTimeFrameCandle(base.Security,
base.Interval, _nextTime - base.Interval);

// если свечки не существует (не было ни одной сделке в тайм-
фрейме), то ждем окончания следующей свечки.
if (candle == null)
return true;

_nextTime += base.Interval;

Часть кода _nextTime += base.Interval; находится после проверки cadle
== null. У меня такой вариант не работает, потому-что допустим
стратегия начала работать в 10:00 часов, свечей еще нет, соотв.
_nextTime не увеличивается и постоянно равно 10:00, соотв candle
всегда будет равно нулл. Я перенес итерацию _nextTime выше проверки
candle == null. Так работает. Вопрос как должно быть правильно?

Спасибо. Апи супер!

Теги:


Спасибо:




1 Ответов
Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 15.06.2010
Ответить


1. Рекомендую обновиться до 2.0.1 Багов меньше. В частности, я фиксил
и этом примере. Так я уже не помню, что для чего было сделано.
2. Эта проверка - как гарант того, что есть полностью сформированная
свечка (путем получения свечки на тайм-фрейм больше). Если Вы
перенесете код выше проверки, то у _nextTime будет увеличиваться не
зависимо, нужно или нет.

Спасибо:


Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy