Kolossi пишет:Пардон, кроме записи в файл, я никакой обработки не заметил.
Посмотрите поля trade_data["order_num"] и trade_data["trade_num"]
Ну и мы понимаем конечно, что функция вызывается по каждой сделке с таким order_num до исполнения заявки.
Что тут незаметного key,v in pairs( ) - это ведь обработка элементов таблицы, впрочем неважно
Вообщем ни черта не пойму - добавил в свой скрипт еще функции OnOrder и OnTransReply
function OnOrder (neworder)
ordn=neworder.order_num
end
function OnTransReply (transorder)
if transorder.order_num == ordn then
tnsid = transorder.trans_id
end
end
function OnTrade(trade_data)
if trade_data.trans_id == tnsid then
....
OnOrder вызывается ведь при отправке заявки в систему правильно? В ней я узнаю номер заявки order_num
OnTransReply вызывается как ответ систему на получение заявки и происхождении любых событий с ней - правильно?
Получаю пользовательский идентификатор транзакции tnsid = transorder.trans_id
и уже в функции OnTrade сверяю идентификатор транзакции с полученным из OnTransReply
Так получается надо делать? Вообще не работает так у меня, что то неправильно
и вообще нехитрым способом я проверил что происходит, передалал скрипт примерно таким образом
function Oninit ()
n=0
end
function OnOrder (neworder)
file = io.open("C:\\FinamJunior\\logs\\res_onorder.txt", "a")
n=n+1
file:write(tostring (n).."\n")
file:close()
end
function OnTransReply (transorder)
file = io.open("C:\\FinamJunior\\logs\\res_ontransreply.txt", "a")
n=n+1
file:write(tostring (n).."\n")
file:close()
end
function OnTrade(trade_data)
file = io.open("C:\\FinamJunior\\logs\\res_ontrade.txt", "a")
n=n+1
file:write(tostring (n).."\n")
file:close()
end
Далее делаю следующее - формирую завку на покупку одного лота некоторых акций по рыночной цене, чтобы заявка быстро была выполнена, и отправляю ее и вижу следующий результат:
функция OnTrade выполняется первой, причем три раза, в файле res_ontrade.txt я увидел 1 2 3
Затем выполняется два раза функция OnOrder, два раза - в res_onorder.txt я увидел 4 5
Функция OnTransReply вообще не была выполнена ни разу - в файле res_ontransreply.txt пусто