1

Тема: Использование последовательностей символов в таблицах вроде "%q+"

Здравствуйте! Только начал изучать lua по книге Роберто  Иерусалимского и у него сразу пошло, без обьяснения, использование неких последовательностей символов в таблицах вроде "%q+" или "%w+" или "%a+" или все тоже самое но без плюса, растолкуйте мне пожалуйста что они значат, имеет ли значение буква после % или нет и что дает добавление знака плюс?

2

Re: Использование последовательностей символов в таблицах вроде "%q+"

Добрый день!
Могли бы вы привести пример кода программы, где такие символы используются?
Из вашего сообщения не понятно о чем речь, признаться. Что за "символы в таблицах"? в каких таблицах?

3

Re: Использование последовательностей символов в таблицах вроде "%q+"

Здравствуйте. Где узнать торговый счет?
Как узнать id бумаги, по которой совершилась сделка? в OnTrade(trade_data)

4

Re: Использование последовательностей символов в таблицах вроде "%q+"

bitsotik пишет:

Как узнать id бумаги, по которой совершилась сделка? в OnTrade(trade_data)

trade_data.sec_code

bitsotik пишет:

Здравствуйте. Где узнать торговый счет?

Торговый счет чего?
Уточните, речь про спот-рынок или про срочный?

5

Re: Использование последовательностей символов в таблицах вроде "%q+"

Здравствуйте. swer, спасибо вам что помогаете.
Разобрался, что кал бек функция OnTrade очень много умеет, в том числе присылает и id аккаунда. Код бумаги как и класс узнал оттуда. Очень удивился что функция реагирует на событие 3 раза одинаково. Пофиксил этот баг так:
Fix = nil
function OnTrade(trade_data)
    order_num = trade_data.order_num
  if order_num == Fix then return
  else
  Fix = order_num
  SendOrder(type, qty, price)
  end

Также добавил звучки, подключив библиотеку:
-- подключить библиотеку w32
local w32 = require("w32")

Функция отправки транзакции что-то ведь возвращает?!
  local res = sendTransaction(trans)
Как узнать что у меня в переменной res ?

Функция getOrderByNumber работает непосредственно с заданным ордером - здесь все понятно.
Как узнать состояние всех выставленных ордеров, включая стоп заявки?

Как я понял - для удаления заявки используется функция отправки транзакции. То есть она же может удалить любой ордер будь то лимит или стоп?

6

Re: Использование последовательностей символов в таблицах вроде "%q+"

Да, есть такая проблема, что многие callback-функции вызываются по несколько раз, потому как callback вызывается "при изменении параметров", а не только при возникновении новой сущности (например, новой сделки).
Но часто несколько вызовов происходят и при идентичных параметрах в каждом вызове.

Если это критично - приходится как-то объезжать.

Ваш метод не совсем удачный вот почему: сделок может быть несколько, причем от разных заявок (если у вас может быть несколько активных заявок одновременно). А вы сохраняете только один номер заявки для проверки.

Вам спасибо, что заходите wink

PS
В папке с QUIK у вас есть файл qlua.chm, в нём справка по QLua с параметрами, примерами и т.д. Примеры, правда, совершенно бестолковые в смысле торг. роботов.

7

Re: Использование последовательностей символов в таблицах вроде "%q+"

bitsotik пишет:

Функция отправки транзакции что-то ведь возвращает?!
  local res = sendTransaction(trans)
Как узнать что у меня в переменной res ?

result – строка, содержащая текст ошибки, если она случилась при обработке транзакции
Результат транзакции можно получить, воспользовавшись функцией обратного вызова OnTransReply.

bitsotik пишет:

Как я понял - для удаления заявки используется функция отправки транзакции. То есть она же может удалить любой ордер будь то лимит или стоп?

Да, всё так
С форматом заполнения полей только не просто для разных операций, надо выискивать.