Exemplo n.º 1
0
 def __init__(self, eventEngine, gatewayName='LHANG'):
     """Constructor"""
     super(LhangGateway, self).__init__(eventEngine, gatewayName)
     
     self.api = LhangApi(self)
     
     self.fileName = self.gatewayName + '_connect.json'
     self.filePath = getJsonPath(self.fileName, __file__)             
Exemplo n.º 2
0
 def __init__(self, eventEngine, gatewayName='LHANG'):
     """Constructor"""
     super(LhangGateway, self).__init__(eventEngine, gatewayName)
     
     self.api = LhangApi(self)
     
     self.fileName = self.gatewayName + '_connect.json'
     self.filePath = getJsonPath(self.fileName, __file__)             
Exemplo n.º 3
0
class LhangGateway(VtGateway):
    """链行接口"""

    #----------------------------------------------------------------------
    def __init__(self, eventEngine, gatewayName='LHANG'):
        """Constructor"""
        super(LhangGateway, self).__init__(eventEngine, gatewayName)
        
        self.api = LhangApi(self)
        
        self.fileName = self.gatewayName + '_connect.json'
        self.filePath = getJsonPath(self.fileName, __file__)             
        
    #----------------------------------------------------------------------
    def connect(self):
        """连接"""
        # 载入json文件
        try:
            f = file(self.filePath)
        except IOError:
            log = VtLogData()
            log.gatewayName = self.gatewayName
            log.logContent = '读取连接配置出错,请检查'
            self.onLog(log)
            return
        
        # 解析json文件
        setting = json.load(f)
        try:
            accessKey = str(setting['apiKey'])
            secretKey = str(setting['secretKey'])
            interval = setting['interval']
            debug = setting['debug']
        except KeyError:
            log = VtLogData()
            log.gatewayName = self.gatewayName
            log.logContent = '连接配置缺少字段,请检查'
            self.onLog(log)
            return            
        
        # 初始化接口
        self.api.connect(accessKey, secretKey, interval, debug)
        self.writeLog('接口初始化成功')
        
        # 启动查询
        self.initQuery()
        self.startQuery()
        
    #----------------------------------------------------------------------
    def writeLog(self, content):
        """发出日志"""
        log = VtLogData()
        log.gatewayName = self.gatewayName
        log.logContent = content
        self.onLog(log)        
    
    #----------------------------------------------------------------------
    def subscribe(self, subscribeReq):
        """订阅行情,自动订阅全部行情,无需实现"""
        pass
        
    #----------------------------------------------------------------------
    def sendOrder(self, orderReq):
        """发单"""
        self.api.sendOrder(orderReq)
        
    #----------------------------------------------------------------------
    def cancelOrder(self, cancelOrderReq):
        """撤单"""
        self.api.cancel(cancelOrderReq)
        
    #----------------------------------------------------------------------
    def qryAccount(self):
        """查询账户资金"""
        pass
        
    #----------------------------------------------------------------------
    def qryPosition(self):
        """查询持仓"""
        pass
        
    #----------------------------------------------------------------------
    def close(self):
        """关闭"""
        self.api.exit()
        
    #----------------------------------------------------------------------
    def initQuery(self):
        """初始化连续查询"""
        if self.qryEnabled:
            self.qryFunctionList = [self.api.queryPrice,
                                    self.api.queryWorkingOrders,
                                    self.api.queryAccount]
            self.startQuery()  
    
    #----------------------------------------------------------------------
    def query(self, event):
        """注册到事件处理引擎上的查询函数"""
        for function in self.qryFunctionList:
            function()
                
    #----------------------------------------------------------------------
    def startQuery(self):
        """启动连续查询"""
        self.eventEngine.register(EVENT_TIMER, self.query)
    
    #----------------------------------------------------------------------
    def setQryEnabled(self, qryEnabled):
        """设置是否要启动循环查询"""
        self.qryEnabled = qryEnabled
Exemplo n.º 4
0
 def __init__(self, eventEngine, gatewayName='LHANG'):
     """Constructor"""
     super(LhangGateway, self).__init__(eventEngine, gatewayName)
     
     self.api = LhangApi(self)
Exemplo n.º 5
0
class LhangGateway(VtGateway):
    """链行接口"""

    #----------------------------------------------------------------------
    def __init__(self, eventEngine, gatewayName='LHANG'):
        """Constructor"""
        super(LhangGateway, self).__init__(eventEngine, gatewayName)
        
        self.api = LhangApi(self)
        
        self.fileName = self.gatewayName + '_connect.json'
        self.filePath = getJsonPath(self.fileName, __file__)             
        
    #----------------------------------------------------------------------
    def connect(self):
        """连接"""
        # 载入json文件
        try:
            f = file(self.filePath)
        except IOError:
            log = VtLogData()
            log.gatewayName = self.gatewayName
            log.logContent = u'读取连接配置出错,请检查'
            self.onLog(log)
            return
        
        # 解析json文件
        setting = json.load(f)
        try:
            accessKey = str(setting['apiKey'])
            secretKey = str(setting['secretKey'])
            interval = setting['interval']
            debug = setting['debug']
        except KeyError:
            log = VtLogData()
            log.gatewayName = self.gatewayName
            log.logContent = u'连接配置缺少字段,请检查'
            self.onLog(log)
            return            
        
        # 初始化接口
        self.api.connect(accessKey, secretKey, interval, debug)
        self.writeLog(u'接口初始化成功')
        
        # 启动查询
        self.initQuery()
        self.startQuery()
        
    #----------------------------------------------------------------------
    def writeLog(self, content):
        """发出日志"""
        log = VtLogData()
        log.gatewayName = self.gatewayName
        log.logContent = content
        self.onLog(log)        
    
    #----------------------------------------------------------------------
    def subscribe(self, subscribeReq):
        """订阅行情,自动订阅全部行情,无需实现"""
        pass
        
    #----------------------------------------------------------------------
    def sendOrder(self, orderReq):
        """发单"""
        self.api.sendOrder(orderReq)
        
    #----------------------------------------------------------------------
    def cancelOrder(self, cancelOrderReq):
        """撤单"""
        self.api.cancel(cancelOrderReq)
        
    #----------------------------------------------------------------------
    def qryAccount(self):
        """查询账户资金"""
        pass
        
    #----------------------------------------------------------------------
    def qryPosition(self):
        """查询持仓"""
        pass
        
    #----------------------------------------------------------------------
    def close(self):
        """关闭"""
        self.api.exit()
        
    #----------------------------------------------------------------------
    def initQuery(self):
        """初始化连续查询"""
        if self.qryEnabled:
            self.qryFunctionList = [self.api.queryPrice,
                                    self.api.queryWorkingOrders,
                                    self.api.queryAccount]
            self.startQuery()  
    
    #----------------------------------------------------------------------
    def query(self, event):
        """注册到事件处理引擎上的查询函数"""
        for function in self.qryFunctionList:
            function()
                
    #----------------------------------------------------------------------
    def startQuery(self):
        """启动连续查询"""
        self.eventEngine.register(EVENT_TIMER, self.query)
    
    #----------------------------------------------------------------------
    def setQryEnabled(self, qryEnabled):
        """设置是否要启动循环查询"""
        self.qryEnabled = qryEnabled
Exemplo n.º 6
0
 def __init__(self, eventEngine, gatewayName='LHANG'):
     """Constructor"""
     super(LhangGateway, self).__init__(eventEngine, gatewayName)
     
     self.api = LhangApi(self)