OvcharenkoVI
|
Дата: 28.06.2012
|
|
|
|
Спасибо:
|
|
|
|
|
|
tantin
|
Дата: 28.06.2012
почему в candle_lkoh не записываеться историческая свечка?(в данном случае предпоследняя, то есть уже должна быть сформирована), может я вообще не понимаю принципов получения исторических свечей? такое ощущение что видит только свечки, которые сформировались за время работы программы.
|
|
|
|
Спасибо:
|
|
|
|
|
|
Доктор Сальватор
|
Дата: 28.06.2012
Дело в том, что для получения исторических свечей, необходимо сначала написать ваш код, а затем запустить экспорт таблицы всех сделок по DDE. В этом случае вы получите все исторические свечки с начала дня.
Если же вы сначала запустите экспорт таблицы всех сделок по DDE и только потом напишете ваш код, то часть свечей может не записаться в серию candle_lkoh.
Посмотрите в программе, когда вы запускаете экспорт?
|
|
|
|
Спасибо:
|
|
|
|
|
|
OvcharenkoVI
|
Дата: 29.06.2012
tantin:
почему в candle_lkoh не записываеться историческая свечка?(в данном случае предпоследняя, то есть уже должна быть сформирована), может я вообще не понимаю принципов получения исторических свечей? такое ощущение что видит только свечки, которые сформировались за время работы программы.
Так и есть. Свечки строятся по сделкам в реал-тайме. В квике нет возможности получения исторических свечек с сервера. Пользуйтесь гидрой и примером SampleSMA(там показано, как из файла создать свечки)
|
|
|
|
Спасибо:
|
|
|
|
|
|
tantin
|
Дата: 29.06.2012
|
|
|
|
|
спасибо, заодно тогда по гидре вопрос, мне что нужно постоянно скачивать данные за последние несколько часов? Я думал гидра только для массовой выгрузки котировок, для удобности тестирования на больших временных промежутках. И вообще как вы, прожженные ребята, делаете в том случае, если вам нужны для робота котировки за последние несколько часов? Не ругайте меня, потому что манами гидры пока не знакомился даже, просто хочется побыстрее получить ответ.
Доктор Сальватор:
Дело в том, что для получения исторических свечей, необходимо сначала написать ваш код, а затем запустить экспорт таблицы всех сделок по DDE. В этом случае вы получите все исторические свечки с начала дня.
Если же вы сначала запустите экспорт таблицы всех сделок по DDE и только потом напишете ваш код, то часть свечей может не записаться в серию candle_lkoh.
Посмотрите в программе, когда вы запускаете экспорт?
так можно или нельзя? Да и как я буду обращаться к тому чего еще нет? Во всех примерах сначала экспорт а потом уже работа с данными. Как это я сначала возьму свечу а потом экспорт запущу?
|
|
|
|
Спасибо:
|
|
|
|
|
|
OvcharenkoVI
|
Дата: 30.06.2012
Доктор Сальватор тоже истину глаголит. Я использую Альфа-Директ, тут можно выгрузить свечи с сервера. По поводу старта экспорта - он, наверно, имел ввиду старт серии до старта экспорта сделок, хотя метод корявый. Попробуйте со скриптом на qpile
|
|
|
|
Спасибо:
|
|
|
|
|
|
Доктор Сальватор
|
Дата: 30.06.2012
|
|
|
|
|
По поводу старта экспорта - он, наверно, имел ввиду старт серии до старта экспорта сделок
Да, это я и имел ввиду.
tantin, обратите внимание на пример SampleCandles. Вот как он работает:
- Подключаемся
- Запускаем экспорт DDE командой _trader.StartExport(new[] { _trader.SecuritiesTable, _trader.TradesTable }); То есть начинаем экспорт таблицы инструментов и таблицы всех сделок.
- Выбираем инструмент, тип свечи и таймфрейм.
- Вызываем окно с графиком.
Если время, прошедшее между действиями 2 и 4 составит секунд 5-10, то график, который начинается с 10:00, вы не увидите. Он начнётся с 11:00 или более позднего времени. Это происходит от того, что экспорт таблицы всех сделок начался до того, как вы дадите команду _candleManager.Start(series) в методе ShowChartClick.
я решительно не понимаю, как мне получить свечку за прошедшее время
Поэтому, если вы хотите получить свечку за сегодняшний день, то я бы сделал так:
_candleManager_lkoh = new CandleManager(_trader);
_trader.StartExport(new[] );
/* Здесь надо разместить код, который присвоит переменной Instrument значение инструмента, с которым вы хотите работать.
Это значение можно получить из таблицы инструментов, экспорт которой вы запустили*/
series_lkoh = new CandleSeries(typeof(TimeFrameCandle), Instrument, _timeFrame);
_candleManager_lkoh.Start(series_lkoh);
_trader.StartExport(new[] );
var candle_lkoh = series_lkoh.GetCandle(1);
MessageBox.Show(candle_lkoh.ClosePrice.ToString());
Если же вы хотите получить свечку за вчерашний или позавчерашний день, то вам надо использовать либо Гидру - посмотрите в документации раздел Свечки/Склеивание свечек, история+реалтайм. Либо используйте текстовый файл с котировками как в примере SampleSma.
Подозреваю, что есть более удачные варианты, чем предложил я. Буду рад услышать мнения других участников.
|
|
|
|
Спасибо:
|
|
|
|
|
|
esper
|
Дата: 30.06.2012
Доктор Сальватор:
Если время, прошедшее между действиями 2 и 4 составит секунд 5-10, то график, который начинается с 10:00, вы не увидите. Он начнётся с 11:00 или более позднего времени. Это происходит от того, что экспорт таблицы всех сделок начался до того, как вы дадите команду _candleManager.Start(series) в методе ShowChartClick.
Попробуйте вместо _candleManager.Start(series) вызвать _candleManager.Start(series, DateTime.Today, DateTime.Max), т.е. явно указать за какой период нужны свечки.
|
|
|
|
Спасибо:
|
|
|
|
|
|
Доктор Сальватор
|
Дата: 30.06.2012
esper:
Попробуйте вместо _candleManager.Start(series) вызвать _candleManager.Start(series, DateTime.Today, DateTime.Max), т.е. явно указать за какой период нужны свечки.
Сегодня работает резервный сервер QUIK в Новосибирске, поэтому я попробовал сделать замену, предложенную вами, в примере SampleCandles. Не получилось. Котировки не закачиваются с 10:00.
|
|
|
|
Спасибо:
|
|
|
|
|
|
Alexander
|
Дата: 30.06.2012
|
|
|
|
Спасибо:
|
|
|
|
|