Цитата |
---|
Серж пишет:
Цитата |
---|
Alexey K пишет: почему у меня в этой части скрипта выдает ноль? А вот если бы указал trade=getItem("trades", getNumberOf("trades")-1) то получил бы номер заявки предыдущей сделки |
Потому что в хранилище Квика сделка попадает после отработки колбека. Поэтому внутри колбека getNumberOf возвращает количество сделок без учёта последней. И взять её значение из таблицы функцией getItem невозможно. Но вот почему у вас ноль, а не nil - вот это вопрос. |
Момент записи сделки в хранилище не имеет никакого значения в данном случае.
--------------------------------
В данном колбеке:
------------------------------------
function OnTrade(trade_data)
trade=getItem("trades", getNumberOf("trades"))
message(tostring(trade["order_num"]),1)
end
------------------------
обрабатывается не последняя совершенная сделка,
а сделка, которая находится после в таблице в ячейке getNumberOf("trades")
----------------------------------------------------------
т е trade_data никакого отношения не имеет к следующим операторам:
trade=getItem("trades", getNumberOf("trades"))
message(tostring(trade["order_num"]),1)
--------------------------------
Т е message выводит в сообщение номер сделки в пустой ячейке таблицы.
(см. мой комент выше)
---------------------------------------
А эта запись:
------------------------------
function OnTrade(trade_data) message(tostring(trade_data["order_num"]),1) end
--------------------------------
обращается не к хранилищу, а к полученной таблице с параметрами сделки.
Хранилище здесь тоже не имеет никакого значения.
---------------------------------------------------
ноль очевидно потому, что trade_data.order_num=0.