Ошибка в примере SamplesSMA


в функции DrawSma будут рисоваться прямые линии, равные последнему значению индикатора.


Теги:


Спасибо:


Mikhail Sukhov

Фотография
Дата: 18.05.2010
Ответить


Не понял. Можно рисунок?

Спасибо:

Константин

Фотография
Дата: 18.05.2010
Ответить


как прикрепить рисунок не знаю. вот код foreach (var candle in candles) { _longSmaSeries.DataPoints.Add(new DataPoint ); _shortSmaSeries.DataPoints.Add(new DataPoint );

_strategy.LongSma.Value и _strategy.ShortSma.Value всегда будут равны последнему значению индикатора. там нужно получать значение по дате-времени свечи. как это сделать я не знаю

Спасибо:

Mikhail Sukhov

Фотография
Дата: 18.05.2010
Ответить


Не должны они равняться последнему значению индикатора. Это значение, вычисляемое по формуле. Что-то не так. Видимо данные не заполняются из Квика. Посмотрите, правильные ли данные в Sma.Add

Спасибо:

artemox

Фотография
Дата: 18.05.2010
Ответить


_strategy.LongSma.Value содержит последнее значение (т.е. значение последней добавленной свечи) поэтому надо заполнять _longSmaSeries по мере поступления свечей, предварительно пересчитав значение в индикаторе (SMA) т.е. так - добавил свечу в стратегию, затем добавил пересчитанное значение индикатора в longSmaSeries

Спасибо:

Константин

Фотография
Дата: 20.05.2010
Ответить


Спасибо:

Mikhail Sukhov

Фотография
Дата: 20.05.2010
Ответить


Ок, понятно. Посмотрите в метод Sma.Add. По всей видимости туда приходит одно и то же значение.

Спасибо:

Константин

Фотография
Дата: 20.05.2010
Ответить


расчет SMA по историческим данным возможен только после загрузки текстового файла, из Квика данные, даже если есть, не используются. т.е. свечки отрисовались по квику, а данные для SMA из текстового файла. Если подождать н-цать минут линии конечно пойдут :(

Спасибо:

Mikhail Sukhov

Фотография
Дата: 20.05.2010
Ответить


  1. Так Вы не из текстового файла берете историю? А откуда берете?
  2. Какие данные из Квик не используются?
  3. Не, и свечки и линии берутся из файла + квика. Историия (все что до сегодняшнего дня) берется из файла. Начиная с текущей сессии - из Квика... Я не совсем понял. Вы нашли проблему? В чем она?
Спасибо:

Константин

Фотография
Дата: 21.05.2010
Ответить


Это в общем-то мои умозрительные заключения после беглого просмотра. Сейчас запустил, проверил что история подгружается - результат тот же. Единственное, сильно уменьшил период SMA что бы было видно

http://groups.google.ru/group/stocksharp/web/sma2.jpg

При запуске программы (старте обмена по DDE) рисуются только свечки, индикаторы не рисуются, т.к. переменная _isTodaySmaDrawn установлена в false. При загрузке истории из квика вот этот код sma тоже не рисует, т.к. _isTodaySmaDrawn == false

                           _candleManager.NewCandles += (token, candles) =>
                            {
                                    DrawCandles(candles.Keys);

                                   // если скользящие за сегодняшний день отрисованы, то рисуем в

реальном времени текущие скользящие if (_isTodaySmaDrawn) DrawSma(); };

Включается _isTodaySmaDrawn по кнопке запускающей стратегию. Но для "исторических" свечек значение индикатора уже будет равно значению в последней свечке! то о чем я и писал в третьем сообщении.

Спасибо:


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

loading
clippy