Ошибка в примере SamplesSMA
Atom Ответить
18.05.2010


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

Теги:


Спасибо:




9 Ответов
Mikhail Sukhov

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


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

Спасибо:

Константин

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


как прикрепить рисунок не знаю.
вот код
foreach (var candle in candles)
{
_longSmaSeries.DataPoints.Add(new DataPoint { XValue = candle.Time,
YValue = _strategy.LongSma.Value });
_shortSmaSeries.DataPoints.Add(new DataPoint { XValue = candle.Time,
YValue = _strategy.ShortSma.Value });

_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. Не, и свечки и линии берутся из файла + квика. Историия (все что до
сегодняшнего дня) берется из файла. Начиная с текущей сессии - из
Квика... Я не совсем понял. Вы нашли проблему? В чем она?

Спасибо:

Константин

Фотография
Дата: 20.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