Initial commit
This commit is contained in:
235
QUIK/lua/qscallbacks.lua
Normal file
235
QUIK/lua/qscallbacks.lua
Normal file
@@ -0,0 +1,235 @@
|
||||
--~ Copyright (c) 2014-2020 QUIKSharp Authors https://github.com/finsight/QUIKSharp/blob/master/AUTHORS.md. All rights reserved.
|
||||
--~ Licensed under the Apache License, Version 2.0. See LICENSE.txt in the project root for license information.
|
||||
|
||||
package.path = package.path..";"..".\\?.lua;"..".\\?.luac"
|
||||
|
||||
local qscallbacks = {}
|
||||
|
||||
local function CleanUp()
|
||||
closeLog()
|
||||
end
|
||||
|
||||
function OnQuikSharpDisconnected()
|
||||
-- TODO any recovery or risk management logic here
|
||||
end
|
||||
|
||||
function OnError(message)
|
||||
if is_connected then
|
||||
local msg = {}
|
||||
msg.t = timemsec()
|
||||
msg.cmd = "lua_error"
|
||||
msg.data = "Lua error: " .. message
|
||||
sendCallback(msg)
|
||||
end
|
||||
end
|
||||
|
||||
function OnDisconnected()
|
||||
local msg = {}
|
||||
msg.cmd = "OnDisconnected"
|
||||
msg.t = timemsec()
|
||||
msg.data = ""
|
||||
sendCallback(msg)
|
||||
end
|
||||
|
||||
function OnConnected()
|
||||
local msg = {}
|
||||
msg.cmd = "OnConnected"
|
||||
msg.t = timemsec()
|
||||
msg.data = ""
|
||||
sendCallback(msg)
|
||||
end
|
||||
|
||||
function OnAllTrade(alltrade)
|
||||
if is_connected then
|
||||
local msg = {}
|
||||
msg.t = timemsec()
|
||||
msg.cmd = "OnAllTrade"
|
||||
msg.data = alltrade
|
||||
sendCallback(msg)
|
||||
end
|
||||
end
|
||||
|
||||
function OnClose()
|
||||
if is_connected then
|
||||
local msg = {}
|
||||
msg.cmd = "OnClose"
|
||||
msg.t = timemsec()
|
||||
msg.data = ""
|
||||
sendCallback(msg)
|
||||
end
|
||||
CleanUp()
|
||||
end
|
||||
|
||||
function OnInit(script_path)
|
||||
if is_connected then
|
||||
local msg = {}
|
||||
msg.cmd = "OnInit"
|
||||
msg.t = timemsec()
|
||||
msg.data = script_path
|
||||
sendCallback(msg)
|
||||
end
|
||||
log("QUIK# is initialized from "..script_path, 0)
|
||||
end
|
||||
|
||||
function OnOrder(order)
|
||||
local msg = {}
|
||||
msg.t = timemsec()
|
||||
msg.id = nil
|
||||
msg.data = order
|
||||
msg.cmd = "OnOrder"
|
||||
sendCallback(msg)
|
||||
end
|
||||
|
||||
function OnQuote(class_code, sec_code)
|
||||
if is_connected then
|
||||
local msg = {}
|
||||
msg.cmd = "OnQuote"
|
||||
msg.t = timemsec()
|
||||
local server_time = getInfoParam("SERVERTIME")
|
||||
local status, ql2 = pcall(getQuoteLevel2, class_code, sec_code)
|
||||
if status then
|
||||
msg.data = ql2
|
||||
msg.data.class_code = class_code
|
||||
msg.data.sec_code = sec_code
|
||||
msg.data.server_time = server_time
|
||||
sendCallback(msg)
|
||||
else
|
||||
OnError(ql2)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function OnStop(s)
|
||||
is_started = false
|
||||
|
||||
if is_connected then
|
||||
local msg = {}
|
||||
msg.cmd = "OnStop"
|
||||
msg.t = timemsec()
|
||||
msg.data = s
|
||||
sendCallback(msg)
|
||||
end
|
||||
log("QUIK# stopped. You could keep script running when closing QUIK and the script will start automatically the next time you start QUIK", 1)
|
||||
CleanUp()
|
||||
-- send disconnect
|
||||
return 1000
|
||||
end
|
||||
|
||||
function OnTrade(trade)
|
||||
local msg = {}
|
||||
msg.t = timemsec()
|
||||
msg.id = nil
|
||||
msg.data = trade
|
||||
msg.cmd = "OnTrade"
|
||||
sendCallback(msg)
|
||||
end
|
||||
|
||||
function OnTransReply(trans_reply)
|
||||
local msg = {}
|
||||
msg.t = timemsec()
|
||||
msg.id = nil
|
||||
msg.data = trans_reply
|
||||
msg.cmd = "OnTransReply"
|
||||
sendCallback(msg)
|
||||
end
|
||||
|
||||
function OnStopOrder(stop_order)
|
||||
local msg = {}
|
||||
msg.t = timemsec()
|
||||
msg.data = stop_order
|
||||
msg.cmd = "OnStopOrder"
|
||||
sendCallback(msg)
|
||||
end
|
||||
|
||||
function OnParam(class_code, sec_code)
|
||||
local msg = {}
|
||||
msg.cmd = "OnParam"
|
||||
msg.t = timemsec()
|
||||
local dat = {}
|
||||
dat.class_code = class_code
|
||||
dat.sec_code = sec_code
|
||||
msg.data = dat
|
||||
sendCallback(msg)
|
||||
end
|
||||
|
||||
function OnAccountBalance(acc_bal)
|
||||
local msg = {}
|
||||
msg.t = timemsec()
|
||||
msg.data = acc_bal
|
||||
msg.cmd = "OnAccountBalance"
|
||||
sendCallback(msg)
|
||||
end
|
||||
|
||||
function OnAccountPosition(acc_pos)
|
||||
local msg = {}
|
||||
msg.t = timemsec()
|
||||
msg.data = acc_pos
|
||||
msg.cmd = "OnAccountPosition"
|
||||
sendCallback(msg)
|
||||
end
|
||||
|
||||
function OnDepoLimit(dlimit)
|
||||
local msg = {}
|
||||
msg.t = timemsec()
|
||||
msg.data = dlimit
|
||||
msg.cmd = "OnDepoLimit"
|
||||
sendCallback(msg)
|
||||
end
|
||||
|
||||
function OnDepoLimitDelete(dlimit_del)
|
||||
local msg = {}
|
||||
msg.t = timemsec()
|
||||
msg.data = dlimit_del
|
||||
msg.cmd = "OnDepoLimitDelete"
|
||||
sendCallback(msg)
|
||||
end
|
||||
|
||||
function OnFirm(firm)
|
||||
local msg = {}
|
||||
msg.t = timemsec()
|
||||
msg.data = firm
|
||||
msg.cmd = "OnFirm"
|
||||
sendCallback(msg)
|
||||
end
|
||||
|
||||
function OnFuturesClientHolding(fut_pos)
|
||||
local msg = {}
|
||||
msg.t = timemsec()
|
||||
msg.data = fut_pos
|
||||
msg.cmd = "OnFuturesClientHolding"
|
||||
sendCallback(msg)
|
||||
end
|
||||
|
||||
function OnFuturesLimitChange(fut_limit)
|
||||
local msg = {}
|
||||
msg.t = timemsec()
|
||||
msg.data = fut_limit
|
||||
msg.cmd = "OnFuturesLimitChange"
|
||||
sendCallback(msg)
|
||||
end
|
||||
|
||||
function OnFuturesLimitDelete(lim_del)
|
||||
local msg = {}
|
||||
msg.t = timemsec()
|
||||
msg.data = lim_del
|
||||
msg.cmd = "OnFuturesLimitDelete"
|
||||
sendCallback(msg)
|
||||
end
|
||||
|
||||
function OnMoneyLimit(mlimit)
|
||||
local msg = {}
|
||||
msg.t = timemsec()
|
||||
msg.data = mlimit
|
||||
msg.cmd = "OnMoneyLimit"
|
||||
sendCallback(msg)
|
||||
end
|
||||
|
||||
function OnMoneyLimitDelete(mlimit_del)
|
||||
local msg = {}
|
||||
msg.t = timemsec()
|
||||
msg.data = mlimit_del
|
||||
msg.cmd = "OnMoneyLimitDelete"
|
||||
sendCallback(msg)
|
||||
end
|
||||
|
||||
return qscallbacks
|
||||
Reference in New Issue
Block a user