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


я решительно не понимаю, как мне получить свечку за прошедшее время. мой код 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 минуты. Просветите нуба!


Теги:


Спасибо:


1 2  >
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. Вот как он работает:

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

Если время, прошедшее между действиями 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
Ответить


используйте 4.1.2

Спасибо:
1 2  >

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

loading
clippy