[Mod]处理部分FutuOpenD的Python3兼容性问题

This commit is contained in:
vn.py 2018-06-18 21:20:24 +08:00
parent 0f2a28dc14
commit a7f5e8307b
3 changed files with 9 additions and 23 deletions

View File

@ -3,5 +3,5 @@
"port": 11111, "port": 11111,
"market": "HK", "market": "HK",
"password": "123123", "password": "123123",
"env": 1 "env": "REAL"
} }

View File

@ -12,15 +12,10 @@ from datetime import datetime
from copy import copy from copy import copy
import futuquant as ft import futuquant as ft
from futuquant import (RET_ERROR, RET_OK, PriceRegularMode, from futuquant import (RET_ERROR, RET_OK, TrdEnv,
StockQuoteHandlerBase, OrderBookHandlerBase, StockQuoteHandlerBase, OrderBookHandlerBase,
TradeOrderHandlerBase, TradeDealHandlerBase) TradeOrderHandlerBase, TradeDealHandlerBase)
#from futuquant.open_context import (RET_ERROR, RET_OK, PriceRegularMode,
#StockQuoteHandlerBase, OrderBookHandlerBase,
#USTradeOrderHandlerBase, USTradeDealHandlerBase,
#HKTradeOrderHandlerBase, HKTradeDealHandlerBase)
from vnpy.trader.vtGateway import * from vnpy.trader.vtGateway import *
from vnpy.trader.vtConstant import GATEWAYTYPE_INTERNATIONAL from vnpy.trader.vtConstant import GATEWAYTYPE_INTERNATIONAL
from vnpy.trader.vtFunction import getJsonPath from vnpy.trader.vtFunction import getJsonPath
@ -182,15 +177,11 @@ class FutuGateway(VtGateway):
# 连接交易接口 # 连接交易接口
if self.market == 'US': if self.market == 'US':
self.tradeCtx = ft.OpenUSTradeContext(self.host, self.port) self.tradeCtx = ft.OpenUSTradeContext(self.host, self.port)
OrderHandlerBase = USTradeOrderHandlerBase
DealHandlerBase = USTradeDealHandlerBase
else: else:
self.tradeCtx = ft.OpenHKTradeContext(self.host, self.port) self.tradeCtx = ft.OpenHKTradeContext(self.host, self.port)
OrderHandlerBase = HKTradeOrderHandlerBase
DealHandlerBase = HKTradeDealHandlerBase
# 继承实现处理器类 # 继承实现处理器类
class OrderHandler(OrderHandlerBase): class OrderHandler(TradeOrderHandlerBase):
"""委托处理器""" """委托处理器"""
gateway = self # 缓存Gateway对象 gateway = self # 缓存Gateway对象
@ -201,7 +192,7 @@ class FutuGateway(VtGateway):
self.gateway.processOrder(content) self.gateway.processOrder(content)
return RET_OK, content return RET_OK, content
class DealHandler(DealHandlerBase): class DealHandler(TradeDealHandlerBase):
"""订单簿处理器""" """订单簿处理器"""
gateway = self gateway = self
@ -223,11 +214,6 @@ class FutuGateway(VtGateway):
# 启动交易接口 # 启动交易接口
self.tradeCtx.start() self.tradeCtx.start()
# 订阅委托推送
self.tradeCtx.subscribe_order_deal_push([],
order_deal_push=True,
envtype=self.env)
self.writeLog(u'交易接口连接成功') self.writeLog(u'交易接口连接成功')
#---------------------------------------------------------------------- #----------------------------------------------------------------------
@ -306,7 +292,7 @@ class FutuGateway(VtGateway):
#---------------------------------------------------------------------- #----------------------------------------------------------------------
def qryAccount(self): def qryAccount(self):
"""查询账户资金""" """查询账户资金"""
code, data = self.tradeCtx.accinfo_query(self.env) code, data = self.tradeCtx.accinfo_query(trd_env=self.env, acc_id=0)
if code: if code:
self.writeError(code, u'查询账户资金失败:%s' %data) self.writeError(code, u'查询账户资金失败:%s' %data)
@ -327,7 +313,7 @@ class FutuGateway(VtGateway):
#---------------------------------------------------------------------- #----------------------------------------------------------------------
def qryPosition(self): def qryPosition(self):
"""查询持仓""" """查询持仓"""
code, data = self.tradeCtx.position_list_query(envtype=self.env) code, data = self.tradeCtx.position_list_query(trd_env=self.env, acc_id=0)
if code: if code:
self.writeError(code, u'查询持仓失败:%s' %data) self.writeError(code, u'查询持仓失败:%s' %data)
@ -356,7 +342,7 @@ class FutuGateway(VtGateway):
#---------------------------------------------------------------------- #----------------------------------------------------------------------
def qryOrder(self): def qryOrder(self):
"""查询委托""" """查询委托"""
code, data = self.tradeCtx.order_list_query("", envtype=self.env) code, data = self.tradeCtx.order_list_query("", trd_env=self.env)
if code: if code:
self.writeError(code, u'查询委托失败:%s' %data) self.writeError(code, u'查询委托失败:%s' %data)

View File

@ -1144,7 +1144,7 @@ class ContractMonitor(BasicMonitor):
"""显示所有合约数据""" """显示所有合约数据"""
l = self.mainEngine.getAllContracts() l = self.mainEngine.getAllContracts()
d = {'.'.join([contract.exchange, contract.symbol]):contract for contract in l} d = {'.'.join([contract.exchange, contract.symbol]):contract for contract in l}
l2 = d.keys() l2 = list(d.keys())
l2.sort(reverse=True) l2.sort(reverse=True)
self.setRowCount(len(l2)) self.setRowCount(len(l2))