Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?
Августа 10, 2022, 07:44:52 pm
Начало Помощь Поиск Войти Регистрация
Новости:

Transaq  |  СБО "Transaq"  |  Подсистема ATF  |  Topic: getActiveOrderIDs() примеры « предыдущая тема следующая тема »
Страниц: [1] Печать
Автор Тема: getActiveOrderIDs() примеры  (Прочитано 6588 раз)
AAAbbb
Newbie
*
Сообщений: 11


Просмотр профиля Email
« : Октября 27, 2011, 12:21:18 pm »

Здравствуйте, приведите пожалуйста примеры по getActiveOrderIDs().  Что требуется передать в скобках? В каком виде возвращаются значения функции?
Цель: перед выполнением кода проверить есть ли заявки, если есть то ни чего не делать.
В Теме от nxz указали что текущая версия Транзак 1.12, а выложен уже 1.8. Какая версия текущая?
Записан
Shubert
Full Member
***
Сообщений: 109



Просмотр профиля Email
« Ответ #1 : Октября 27, 2011, 03:03:37 pm »

Отвечать начну с конца.

В Теме от nxz указали что текущая версия Транзак 1.12, а выложен уже 1.8. Какая версия текущая?

Текущие версии ATF в Intra и Trader - 1.12, которые новее версии 1.8. getActiveOrderIDs() поддерживается, судя по документации с 1.12. 1.13 в разработке (документация есть).

Что требуется передать в скобках? В каком виде возвращаются значения функции?

Учимся внимательно читать:

Quote from: Документация
http://transaq.ru/docs/atf/functions
getActiveOrderIDs() -- Получить массив идентификаторов всех активных заявок по данной бумаге и активному клиенту. (ver. 1.12)

А отсутствие параметра в скобках указывает на вызов функции без передачи ей аргументов. Идентификаторы - целые числа.

Здравствуйте, приведите пожалуйста примеры по getActiveOrderIDs().Цель: перед выполнением кода проверить есть ли заявки, если есть то ни чего не делать.

Пожалуйста, написан за 5 мин.

Code: [Select]
#samewindow
#line 0 nodraw

static Order;
static ActiveOrderIDs;

function init()
{
setInitCandles(1);
Order = new_object("hash");
ActiveOrderIDs = new_object("array");
}

function calc()
{
var i; var j; var m;
ActiveOrderIDs = getActiveOrderIDs();
m = ActiveOrderIDs.size(); i -= i;
while (i < m) {
j = ActiveOrderIDs.shift();
Order = getOrder(j);
signal::outputMultiple("TransaqID:" + as_string(Order["trnid"]) +
" OrderNo:" + as_string(Order["orderno"]) + " price:" + as_string(Order["price"]));
i += 1;
}
}

Пример отображает активные (OS_ACTIVE) заявки на бирже в окне вывода ATF. Выводятся одной строкой:
  • Идентификатор заявки на сервере Transaq;
  • Идентификатор заявки на биржевом сервере;
  • Цена заявки.
Записан
AAAbbb
Newbie
*
Сообщений: 11


Просмотр профиля Email
« Ответ #2 : Октября 27, 2011, 03:11:10 pm »

Большое спасибо.
Еще вопросик пожалуйста в строке,
 m = ActiveOrderIDs.size(); i -= i;
выдает Line 18:синтаксическая ошибка неожиданый индефикатор.
Что исправить?
Записан
Shubert
Full Member
***
Сообщений: 109



Просмотр профиля Email
« Ответ #3 : Октября 27, 2011, 03:49:35 pm »

Большое спасибо.
Еще вопросик пожалуйста в строке,
 m = ActiveOrderIDs.size(); i -= i;
выдает Line 18:синтаксическая ошибка неожиданый индефикатор.
Что исправить?

Вошел в Intra, выставил пару заявок. Скопировал, вставил как новый скрипт, ошибок нет.
Всё работает:
Code: [Select]
TransaqID:2201 OrderNo:1309818160 price:8.218
TransaqID:2211 OrderNo:1309818447 price:8

1. Версия ATF какая?
2. Строки 5 и 16 не потеряли при копировании или вставке? ;)
Записан
AAAbbb
Newbie
*
Сообщений: 11


Просмотр профиля Email
« Ответ #4 : Октября 27, 2011, 03:59:04 pm »

Тож копировал ctrl+c   ctrl+v все перенес буква в букву. дважды перепроверил. все строки в тч 5, 16 в наличии.
версия 1.8 на финаме менял екзешный фаил для работы со стаканом.
Записан
Shubert
Full Member
***
Сообщений: 109



Просмотр профиля Email
« Ответ #5 : Октября 27, 2011, 04:21:47 pm »

Проверил на Trader ver.5.03.283.00, rev.50, ATF 1.12 с реальным подключением к боевому серверу. Всё работает нормально, как и описано выше, видит заявки.

Может дело в версии 1.8 ? (На сервере Финама 1.8?)
В whatsnew про ошибки исправленные в ATF 1.12 ничего не написано.
Записан
AAAbbb
Newbie
*
Сообщений: 11


Просмотр профиля Email
« Ответ #6 : Октября 27, 2011, 04:30:06 pm »

у Финама Intra 5.02.272.4 rev 48 atf 1.7
попробую попробывать скрипт там, разберу на опыты...
Но часа через два логин и парол на почте у Рамблера, аон выключил почтовый сервис, во как.
В принципе я понял как применять что предварительно подготовить для вызова getActiveOrderIDs() пример достаточно полный и информативный
« Последнее редактирование: Октября 27, 2011, 04:34:41 pm от AAAbbb » Записан
Shubert
Full Member
***
Сообщений: 109



Просмотр профиля Email
« Ответ #7 : Октября 27, 2011, 05:15:00 pm »

у Финама Intra 5.02.272.4 rev 48 atf 1.7
попробую попробывать скрипт там, разберу на опыты...

Хмм...
А зачем старую финамовскую версию использовать? Intra есть на http://transaq.ru/overview , там же и ссылки на клиент и пароли для демонстрационных счетов. У них стоит Intra 5.03.285.00 rev 50 ATF 1.12.
Записан
AAAbbb
Newbie
*
Сообщений: 11


Просмотр профиля Email
« Ответ #8 : Октября 28, 2011, 05:52:26 am »

недавно  только установил Транзак еще не все возможности, способы подключения и тд изучил. Попробую скрипты на клиенте Интра по Вашей ссылке. У Финама планирую реал счет открывать. Благодарю за помощь.
Записан
Страниц: [1] Печать 
Transaq  |  СБО "Transaq"  |  Подсистема ATF  |  Topic: getActiveOrderIDs() примеры « предыдущая тема следующая тема »
Перейти в:  


Войти

Powered by MySQL Powered by PHP Powered by SMF 2.0.10 | SMF © 2006-2008, Simple Machines LLC Valid XHTML 1.0! Valid CSS!