Transaq
СБО "Transaq" => Подсистема ATF => Topic started by: fable on Февраля 09, 2013, 10:55:21 pm
-
подскажите пожалуйста как правильно применять statline.getparam(param) - получить параметр param для текущей бумаги.
если можно с примером. у меня она почемуто глючит, при использовании statline.getparam(param) функция начинает выполнятья не один раз а произвольное количество раз, и если писать данные в массив то массив раздувается до гиганских размеров.
-
Не очень понятно что вы имеете ввиду. Можете привести ваш код? Пока ничего не понятно.
-
подскажите пожалуйста как правильно применять statline.getparam(param) - получить параметр param для текущей бумаги.
если можно с примером. у меня она почемуто глючит, при использовании statline.getparam(param) функция начинает выполнятья не один раз а произвольное количество раз, и если писать данные в массив то массив раздувается до гиганских размеров.
Примерно так:
//************************* _test_Statline *************************
//------------------------------------------------------------------------------------
#line 0 solid blue
//------------------------------------------------------------------------------------
static secStat = 0; static openpositions = 0;
//------------------------------------------------------------------------------------
function init()
{
secStat = new_object("statline");
secStat.subscribe();
}
//------------------------------------------------------------------------------------
function calc()
{
openpositions = secStat.getparam(param_openpositions);
line[0] = openpositions;
}
//------------------------------------------------------------------------------------
function onNewCandle()
{
var a = secStat.getparam(param_open); var b = secStat.getparam(param_waprice);
signal::notify("Показатели торгов " + getFormattedDateTime(getServerTime()),
"Цена первой сделки: " + a + "; " + "Средневзвешенная цена: " + b + "; "
+ "\nКол-во лотов на покупку по лучшей цене: " + secStat.getparam(param_biddepth) + "; "
+ "Кол-во лотов на продажу по лучшей цене: " + secStat.getparam(param_biddepth) + "; "
+ "\nСовокупный спрос: " + secStat.getparam(param_biddeptht) + "; "
+ "Совокупное предложение: " + secStat.getparam(param_offerdeptht) + "\netc.");
}
//------------------------------------------------------------------------------------
Уважаемый Heller, поправьте если я не прав...
-
bugem, да, всё так.
-
Еще поэкспериментировал со statline
1. Время заключения последней сделки +4 часа к Мск для фьючей и +4 часа к Мск 1970г. для фондового.
2. Состояние торговой сессии по инструменту возвращает некие цифры 49 для срочки и 84 для фонды. Что это?
3. Для срочки - "планки"?
4. Для срочки - Дней до погашения?
-
bugem, для статуса эти цифры - в общем-то баг. Это код состояния торгов, который обычно принято обозначать буквой. Можно привести к буквенному виду с помощью функции num2chr в принципе, хотя в последней сборке это уже исправлено.
Остальные вопросы я не понял.
-
bugem, для статуса эти цифры - в общем-то баг. Это код состояния торгов, который обычно принято обозначать буквой. Можно привести к буквенному виду с помощью функции num2chr в принципе, хотя в последней сборке это уже исправлено.
Остальные вопросы я не понял.
по статусу понятно, спасибо. В общем то меня интересовала возможность отслеживать клиринг на срочке.
по п1 - если в таблице Финансовые инструменты время сейчас 18:39:00 то из АТФ возвращает 22:39:00 сегодняшней даты для срочки и 01.01.1970 для фондового
п.3 и 4 эти параметры хотелось бы получать в АТФ
-
Можно привести к буквенному виду с помощью функции num2chr в принципе
возвращает - Число не является ANSI-кодом (num2chr)
-
Правим. В ближайшей сборке будет нормально.
-
Помогите пожалуйста:
Необходимо сравнивать цены двух ирнструментов.
Пытаюсь использовать statline.getparam(shortname, market, param) .
С param все ясно.
Не получается венедрять в эту конструкцию shortname и market .
Откуда и как их получать, можно ли указать их строкой.?
Пример будет лучшим ответом.
-
Имя бумаги можно получить функцией getISIN() либо подсмотреть в xml-файле при сохранении конфигурации. Идентификатор рынка - опять же либо в xml-файле, либо получив данные по рынку функцией getMarket() и затем посмотрев в этом хеше ключ "id". Ну и прежде чем звать getparam, надо на все бумаги, по которым вы планируете получать данные, подписаться. Вот простой пример:
static statline;
function init()
{
statline = new_object("statline");
statline.subscribe("LKOH", 4);
}
function onKeyDown(var id)
{
signal::outputMultiple(statline.getparam("LKOH", 4, param_last));
}
id рынка и shortname бумаги в xml-файле в троке, которая выглядит примерно так:
<security scale="0.800000" lag="0.000000" axis="right" color="#000000" price_style="candles"
line_style="solid" price_type="close" multiplier="1.000000" ncandles="100" market="4" isin="LKOH" />
Послежние два параметра тут - это то что вам надо.
-
Еще поэкспериментировал со statline
...
3. Для срочки - "планки"?
...
п.3 и 4 эти параметры хотелось бы получать в АТФ
Все-таки так и не прозвучало, можно эти планки получить или нет.
Если можно, то как?
-
Все-таки так и не прозвучало, можно эти планки получить или нет.
Если можно, то как?
Отвечу за разработчиков.
В версии 1.18 - нет. Судя по тому, что было в доках по 1.19 - тоже нет.
-
Да, пока еще не успели. В 1.21 постараюсь сделать.
-
Отвечу за разработчиков.
В версии 1.18 - нет. Судя по тому, что было в доках по 1.19 - тоже нет.
Да, пока еще не успели. В 1.21 постараюсь сделать.
Будем ждать.
Это очень полезная штука.
-
Реализована ли в настоящее время возможность получать в ATF планки и время до экспирации?
-
Нет.