Евгений, добрый день!
Дело в том, что такая конструкция не работает и не должна:
Код |
---|
orderNum=OnTransReply(order_num)
|
Поскольку OnTransReply является функцией обратного вызова, правильное ее использование будет выглядеть примерно вот так:
Код |
---|
function OnTransReply(reply)
orderNum = reply.order_num
end |
Один из вариантов решения вашей задачи - создать глобальную переменную orderNum, присвоить ей значение в OnTransReply и, после этого, снять заявку с ее помощью.
Рабочий пример:
Код |
---|
stopped = false
function OnStop()
stopped = true
return 5000
end
function main()
Pokup()
sleep(5000)
SnZ()
end
function Pokup()
--Покупка лимитка
A = {ACTION='NEW_ORDER',
ACCOUNT='NL0011100043',
OPERATION='B',
CLASSCODE='QJSIM',
SECCODE='MAIL',
PRICE='2230,6',
QUANTITY='1',
TRANS_ID='1002',
TYPE='L'
}
local Err_A = sendTransaction(A)
end
function SnZ()
Sn = {ACTION='KILL_ORDER',
ACCOUNT='NL0011100043',
CLASSCODE='QJSIM',
SECCODE='MAIL',
TRANS_ID='989',
ORDER_KEY=tostring(orderNum)
}
Err_Sn = sendTransaction(Sn)
end
function OnTransReply(reply)
orderNum = reply.order_num
end
|
Касательно TRANS_ID - это пользовательский идентификатор транзакции (именно транзакции, не заявки/сделки), который используется только внутри терминала. Торговая система о нем ничего не знает.