Передача таблиц lua в QUIK.

Страницы: 1
RSS
Передача таблиц lua в QUIK., Технические детали.
 
Довольно часто на форумах вижу код вида:
Код
function SendLimitOrder (ClassCode,SecCode,Operation,OrderPrice,Lots)

Trans_ID = Trans_ID + 1

  local trans = {
          ["ACTION"] = "NEW_ORDER",
          ["CLASSCODE"] = ClassCode,
          ["SECCODE"] = SecCode,
          ["ACCOUNT"] = Account,
          ["OPERATION"] = Operation,
          ["PRICE"] = tostring(OrderPrice),
          ["QUANTITY"] = tostring(Lots),
          ["TRANS_ID"] = tostring(Trans_ID)
                }
  local res = sendTransaction(trans)
  CurrentOrderPrice = OrderPrice
end


В связи с этим возникают вопросы:
1) функции, передающие таблицы lua в quik (sendTransaction и подобные) не меняют содержимое таблиц-параметров?
2) то есть таблицы-параметры не нужно создавать каждый раз заново, а можно использовать повторно? Разумеется, обновив значения её полей.
3) будут ли функции sendTransaction и ей подобные корректно работать с таблицей с дополнительными полями, не описанными в документации? Например, если добавить поле "__type" или даже "@#$ ~*!$%" для введения подтипов таблиц во внутренней логике скрипта?
4) будут ли функции sendTransaction и ей подобные корректно работать с таблицей с установленной метатаблицей (устанавливаемой ф-цией setmetetable)?  
5) будут ли в переданных в Quik таблицах работать метаметоды, например "__index"? Зависит ли это от способа определения метаметода (например, "__index" может быть таблицей или функцией)?
 
Здравствуйте,
Цитата
Vladimir написал:
1) функции, передающие таблицы lua в quik (sendTransaction и подобные) не меняют содержимое таблиц-параметров?
2) то есть таблицы-параметры не нужно создавать каждый раз заново, а можно использовать повторно? Разумеется, обновив значения её полей.

Таблицу не нужно создавать каждый раз заново. Можете смело использовать повторно.
Цитата
Vladimir написал:
3) будут ли функции sendTransaction и ей подобные корректно работать с таблицей с дополнительными полями, не описанными в документации? Например, если добавить поле "__type" или даже "@#$ ~*!$%" для введения подтипов таблиц во внутренней логике скрипта?
4) будут ли функции sendTransaction и ей подобные корректно работать с таблицей с установленной метатаблицей (устанавливаемой ф-цией setmetetable)?  
5) будут ли в переданных в Quik таблицах работать метаметоды, например "__index"? Зависит ли это от способа определения метаметода (например, "__index" может быть таблицей или функцией)?

нет, не будут.
таблица должна содержать пары типа string-string (ключ - значение). Ошибки скорее всего не случится, но транзакция не отправится.
если попадутся поля, которые не описаны для этой транзакции, то будет реджект со стороны терминала.
Страницы: 1
Читают тему
Наверх