помогите со свечками

помогите со свечками
Atom
6/28/2012


я решительно не понимаю, как мне получить свечку за прошедшее время.
мой код
private QuikTrader _trader;
private readonly TimeSpan _timeFrame = TimeSpan.FromMinutes(1);

_candleManager_lkoh = new CandleManager(_trader);
series_lkoh = new CandleSeries(typeof(TimeFrameCandle), _lkoh, _timeFrame);
_candleManager_lkoh.Start(series_lkoh);
var candle_lkoh = series_lkoh.GetCandle(1);
MessageBox.Show(candle_lkoh.ClosePrice.ToString());
выдает неверные данные в течение 1 минуты. Просветите нуба!

Tags:


Thanks:


1 2  >
OvcharenkoVI

Avatar
Date: 6/28/2012
Reply


что то вопрос не понятен
Thanks:

tantin

Avatar
Date: 6/28/2012
Reply


почему в candle_lkoh не записываеться историческая свечка?(в данном случае предпоследняя, то есть уже должна быть сформирована), может я вообще не понимаю принципов получения исторических свечей? такое ощущение что видит только свечки, которые сформировались за время работы программы.
Thanks:

Доктор Сальватор

Avatar
Date: 6/28/2012
Reply


Дело в том, что для получения исторических свечей, необходимо сначала написать ваш код, а затем запустить экспорт таблицы всех сделок по DDE. В этом случае вы получите все исторические свечки с начала дня.
Если же вы сначала запустите экспорт таблицы всех сделок по DDE и только потом напишете ваш код, то часть свечей может не записаться в серию candle_lkoh.
Посмотрите в программе, когда вы запускаете экспорт?
Thanks:

OvcharenkoVI

Avatar
Date: 6/29/2012
Reply


tantin Go to
почему в candle_lkoh не записываеться историческая свечка?(в данном случае предпоследняя, то есть уже должна быть сформирована), может я вообще не понимаю принципов получения исторических свечей? такое ощущение что видит только свечки, которые сформировались за время работы программы.


Так и есть. Свечки строятся по сделкам в реал-тайме. В квике нет возможности получения исторических свечек с сервера. Пользуйтесь гидрой и примером SampleSMA(там показано, как из файла создать свечки)
Thanks:

tantin

Avatar
Date: 6/29/2012
Reply


спасибо, заодно тогда по гидре вопрос, мне что нужно постоянно скачивать данные за последние несколько часов? Я думал гидра только для массовой выгрузки котировок, для удобности тестирования на больших временных промежутках. И вообще как вы, прожженные ребята, делаете в том случае, если вам нужны для робота котировки за последние несколько часов? Не ругайте меня, потому что манами гидры пока не знакомился даже, просто хочется побыстрее получить ответ.
Доктор Сальватор Go to
Дело в том, что для получения исторических свечей, необходимо сначала написать ваш код, а затем запустить экспорт таблицы всех сделок по DDE. В этом случае вы получите все исторические свечки с начала дня.
Если же вы сначала запустите экспорт таблицы всех сделок по DDE и только потом напишете ваш код, то часть свечей может не записаться в серию candle_lkoh.
Посмотрите в программе, когда вы запускаете экспорт?

так можно или нельзя? Да и как я буду обращаться к тому чего еще нет? Во всех примерах сначала экспорт а потом уже работа с данными. Как это я сначала возьму свечу а потом экспорт запущу?
Thanks:

OvcharenkoVI

Avatar
Date: 6/30/2012
Reply


Доктор Сальватор тоже истину глаголит. Я использую Альфа-Директ, тут можно выгрузить свечи с сервера. По поводу старта экспорта - он, наверно, имел ввиду старт серии до старта экспорта сделок, хотя метод корявый. Попробуйте со скриптом на qpile
Thanks:

Доктор Сальватор

Avatar
Date: 6/30/2012
Reply


Quote:
По поводу старта экспорта - он, наверно, имел ввиду старт серии до старта экспорта сделок

Да, это я и имел ввиду.
tantin, обратите внимание на пример SampleCandles. Вот как он работает:
1. Подключаемся
2. Запускаем экспорт DDE командой _trader.StartExport(new[] { _trader.SecuritiesTable, _trader.TradesTable }); То есть начинаем экспорт таблицы инструментов и таблицы всех сделок.
3. Выбираем инструмент, тип свечи и таймфрейм.
4. Вызываем окно с графиком.

Если время, прошедшее между действиями 2 и 4 составит секунд 5-10, то график, который начинается с 10:00, вы не увидите. Он начнётся с 11:00 или более позднего времени. Это происходит от того, что экспорт таблицы всех сделок начался до того, как вы дадите команду _candleManager.Start(series) в методе ShowChartClick.

Quote:
я решительно не понимаю, как мне получить свечку за прошедшее время

Поэтому, если вы хотите получить свечку за сегодняшний день, то я бы сделал так:

_candleManager_lkoh = new CandleManager(_trader);
_trader.StartExport(new[] { _trader.SecuritiesTable });

/* Здесь надо разместить код, который присвоит переменной Instrument значение инструмента, с которым вы хотите работать.
Это значение можно получить из таблицы инструментов, экспорт которой вы запустили*/

series_lkoh = new CandleSeries(typeof(TimeFrameCandle), Instrument, _timeFrame);
_candleManager_lkoh.Start(series_lkoh);
_trader.StartExport(new[] { _trader.TradesTable });

var candle_lkoh = series_lkoh.GetCandle(1);
MessageBox.Show(candle_lkoh.ClosePrice.ToString());

Если же вы хотите получить свечку за вчерашний или позавчерашний день, то вам надо использовать либо Гидру - посмотрите в документации раздел Свечки/Склеивание свечек, история+реалтайм. Либо используйте текстовый файл с котировками как в примере SampleSma.

Подозреваю, что есть более удачные варианты, чем предложил я. Буду рад услышать мнения других участников.
Thanks:

esper

Avatar
Date: 6/30/2012
Reply


Доктор Сальватор Go to
Если время, прошедшее между действиями 2 и 4 составит секунд 5-10, то график, который начинается с 10:00, вы не увидите. Он начнётся с 11:00 или более позднего времени. Это происходит от того, что экспорт таблицы всех сделок начался до того, как вы дадите команду _candleManager.Start(series) в методе ShowChartClick.

Попробуйте вместо _candleManager.Start(series) вызвать _candleManager.Start(series, DateTime.Today, DateTime.Max), т.е. явно указать за какой период нужны свечки.
Thanks:

Доктор Сальватор

Avatar
Date: 6/30/2012
Reply


esper Go to
Попробуйте вместо _candleManager.Start(series) вызвать _candleManager.Start(series, DateTime.Today, DateTime.Max), т.е. явно указать за какой период нужны свечки.

Сегодня работает резервный сервер QUIK в Новосибирске, поэтому я попробовал сделать замену, предложенную вами, в примере SampleCandles. Не получилось. Котировки не закачиваются с 10:00.
Thanks:

Alexander

Avatar
Date: 6/30/2012
Reply


используйте 4.1.2
Thanks:
1 2  >

Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy