Vitaliy (Автор тем)

Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Прошу пояснений про получение цены
 

Добрый день, прошу помочь с пониманием процесса получения цены.

1) Пробовал использовать getParamEx(class_code, sec_code, "last").param_valueЧем не устроил: выдает цену с задержкой (разнообразной). Я вызываю его раз в секунду, цена на графике уже изменилась, а getParamEx возвращает старое значение. Если запустить на выходных, выдает старую цену игнорируя изменения цены в не торговой сессии. Т.е. на графике инструмента у меня 10,14, но getParamEx выдает 9,98, как было во время торгов. Почему?

Стал разбираться с CreateDataSource. Почитал форум, возникли вопросы и хотелось бы ответов: правильно я понял или нет.

2) Чтобы один раз получить актуальные данные (при закрытых графиках) достаточно только

Код
ds_sber, error_desc = CreateDataSource("TQBR","SBER", INTERVAL_M5);

или это не правильно, на удачу?

3) Чтобы в ds_sber ВСЕГДА были актуальные данные, нужно ОДИН РАЗ, именно из main() надо вызвать CreateDataSource+ SetEmptyCallback

Код
function main()ds_sber, error_desc = CreateDataSource("TQBR","SBER", INTERVAL_M5);ds_sber:SetEmptyCallback();sleep(5000); --ждем пока данные прилетятwhile IsRun doprice_sber=ds_sber:C(ds:Size());-- далее обработка цены-- т.к. подписаны, то будем всегда иметь актуальный набор свечей?sleep(1000);end;ds_sber:Close();end;

после этого в любой момент работаю с последними данными в ds_sber? Все верно?

4) Какие будут последствия если при завершении скрипта не делать ds_sber:Close()

5) Можно как-то определять для интервала, например М30, что свеча закрылась и началась новая свеча?

6) У меня в цикле 1сек обсчитываются 10-20 инструментов ( массив ), инструменты меняются, т.е. статичные ds не сделать. Как правильно организовать запрос данных (свечей) в таком случае ?

Страницы: 1
Наверх