From 676c4c6d40d8216638df6eec47bf18054f5192d0 Mon Sep 17 00:00:00 2001 From: msincenselee Date: Mon, 19 Oct 2015 17:05:00 +0800 Subject: [PATCH] Merge remote-tracking branch 'refs/remotes/vnpy/master' Conflicts: .gitignore vn.trader/CTP_connect.json vn.trader/ContractData.vt vn.trader/LTS_connect.json vn.trader/ctaEngine.py vn.trader/ctaStrategies.py vn.trader/ctaStrategyTemplate.py vn.trader/ctpGateway.py vn.trader/ltsGateway.py vn.trader/uiBasicWidget.py vn.trader/uiCtaWidget.py vn.trader/uiMainWindow.py vn.trader/vtConstant.py vn.trader/vtEngine.py vn.trader/vtGateway.py --- .gitignore | 17 +- vn.ctp/CMakeLists.txt | 74 ++++ vn.ctp/readme.md | 30 ++ vn.data/mysqldb.sql | 2 +- vn.datayes/api.py | 3 +- vn.datayes/tests.py | 4 +- vn.lts/vnltstd/test/vnltstd.pyd | Bin 320000 -> 321024 bytes vn.lts/vnltstd/vnltstd/vnltstd.cpp | 15 +- vn.trader/CTA_setting.json | 14 + vn.trader/CTP_connect.json | 6 + vn.trader/IB_connect.json | 5 + vn.trader/LTS_connect.json | 6 + vn.trader/ctaEngine.py | 81 ++++ vn.trader/ctaStrategies.py | 9 +- vn.trader/ctaStrategyTemplate.py | 88 +++++ vn.trader/ctpGateway.py | 7 + vn.trader/ibGateway.py | 608 +++++++++++++++++++++++++++++ vn.trader/ltsGateway.py | 14 + vn.trader/uiBasicWidget.py | 168 ++++++++ vn.trader/uiCtaWidget.py | 247 ++++++++++++ vn.trader/uiMainWindow.py | 64 +++ vn.trader/vtConstant.py | 25 +- vn.trader/vtEngine.py | 28 +- vn.trader/vtGateway.py | 20 +- 24 files changed, 1524 insertions(+), 11 deletions(-) create mode 100644 vn.ctp/CMakeLists.txt create mode 100644 vn.ctp/readme.md create mode 100644 vn.trader/CTA_setting.json create mode 100644 vn.trader/IB_connect.json create mode 100644 vn.trader/ibGateway.py diff --git a/.gitignore b/.gitignore index cb93bd44..744e22d8 100644 --- a/.gitignore +++ b/.gitignore @@ -37,8 +37,23 @@ Release/ # 其他文件 *.dump *.vssettings +<<<<<<< HEAD vnpy.pyproj.user .idea/workspace.xml .idea/.name .idea/vnpy.iml -*.xml \ No newline at end of file +*.xml +======= + +<<<<<<< HEAD +# 不想同步的 +*.local +======= +vn.ctp/build/* +vn.lts/build/* +.idea +>>>>>>> 65aac25731772259bf2d4049e7adbe92750ea01d +>>>>>>> refs/remotes/vnpy/master +*.json +*.json +*.json diff --git a/vn.ctp/CMakeLists.txt b/vn.ctp/CMakeLists.txt new file mode 100644 index 00000000..9392bbe1 --- /dev/null +++ b/vn.ctp/CMakeLists.txt @@ -0,0 +1,74 @@ +cmake_minimum_required(VERSION 2.8) +project(vn_ctp_api) + +set(CMAKE_BUILD_TYPE "Release") +if (CMAKE_COMPILER_IS_GNUC OR CMAKE_COMPILER_IS_GNUCXX) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -std=c++11") +endif () + +set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin) +set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin) + +option(USE_64BITS "comiple 64bits" ON) +if (USE_64BITS) + add_definitions(-DUSE_64BITS) + #set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32") + #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32") +endif() + +set(CTPAPI_PATH ctpapi) +include_directories(${CTPAPI_PATH}) +set(CTPAPI_LIBRARY ) +find_library(CTPAPI_MD_LIBRARY + NAMES thostmduserapi + PATHS ${CTPAPI_PATH}) +find_library(CTPAPI_TD_LIBRARY + NAMES thosttraderapi + PATHS ${CTPAPI_PATH}) + +set (vnctpmd ) +set (vnctptd ) + +option(BUILD_CTP_MD "build ctp md" ON) +if (BUILD_CTP_MD) + add_definitions(-DBUILD_CTP_MD) + set(CTP_MD_PATH vnctpmd/vnctpmd) + include_directories(CTP_MD_PATH) + set(VN_CTP_MD_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/vnctpmd/vnctpmd/vnctpmd.cpp) + add_library(vnctpmd SHARED ${VN_CTP_MD_SOURCE}) +endif() +option(BUILD_CTP_TD "build ctp td" ON) +if (BUILD_CTP_TD) + add_definitions(-DBUILD_CTP_MD) + set(CTP_TD_PATH vnctptd/vnctptd) + include_directories(CTP_TD_PATH) + set(VN_CTP_TD_SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/vnctptd/vnctptd/vnctptd.cpp) + add_library(vnctptd SHARED ${VN_CTP_TD_SOURCE}) +endif() + + +set(PYTHON_INCLUDE_PATH C:/Python27/include) +set(PYTHON_LIBRARY ) +find_library(PYTHON_LIBRARY + NAMES python27 + PATHS C:/Python27/libs) +include_directories(${PYTHON_INCLUDE_PATH}) + +# 链接boost库,anaconda +set(Boost_USE_STATIC_LIBS ON) #链接boost静态库 +set(Boost_USE_MULTITHREADED ON) +find_package(Boost 1.57.0 COMPONENTS python thread date_time system chrono REQUIRED) # 如果boost库没有完全编译,需要将编译的库明确地指出,否者message(${Boost_LIBRARIES})会出错 +if(Boost_FOUND) + include_directories(${Boost_INCLUDE_DIRS}) +endif() + +target_link_libraries(vnctpmd ${Boost_LIBRARIES} ${PYTHON_LIBRARY} ${CTPAPI_MD_LIBRARY}) +set(MD_DLL "${LIBRARY_OUTPUT_PATH}/Release/vnctpmd.dll") +if (EXISTS ${MD_DLL}) + file(RENAME ${MD_DLL} ${LIBRARY_OUTPUT_PATH}/Release/vnctpmd.pyd) +endif() +target_link_libraries(vnctptd ${Boost_LIBRARIES} ${PYTHON_LIBRARY} ${CTPAPI_TD_LIBRARY}) +set(TD_DLL ${LIBRARY_OUTPUT_PATH}/Release/vnctptd.dll) +if (EXISTS ${TD_DLL}) + file(RENAME ${TD_DLL} ${LIBRARY_OUTPUT_PATH}/Release/vnctptd.pyd) +endif() diff --git a/vn.ctp/readme.md b/vn.ctp/readme.md new file mode 100644 index 00000000..6ad7996d --- /dev/null +++ b/vn.ctp/readme.md @@ -0,0 +1,30 @@ +# Ŀ¼DZCTP +--------------------- + +# Ŀ¼˵ +------------ +## vnctpmd: API + +# +---------- + +* 鰲װλϱһ£ȫװ32λͬʱ32λ +* cmake:װ°汾cmake,ñ뻷 +* [Boost1.57.0](http://sourceforge.net/projects/boost/files/boost/1.57.0/)⣺ķԲο[Boost Getting Started](http://www.boost.org/doc/libs/1_58_0/more/getting_started/)½ǵ +** ûeg: BOOST_ROOT = C:\boost_1_57_0 +** 32λ⻹64λѡ +** Ҫboost python, thread, system, chrono, date_time5⣺ȫ˷ѴʱӲ̿ռ䡣 +** boost pythonĶ̬64bitsܱ벻ɹѡaddress-model=64߱뾲̬ + +* [Anaconda1.9.2](http://repo.continuum.io/archive/index.html): ذPythonа +* 빤ߣwindowsѡvisual studio 2013linuxʹg++ + +# +------------- + +* vn.ctpĿ¼½ļУΪbuild, ʱļļ +* й룺cmake-gui .. cmakeý +* configure +* generateûдóɹ +* buildĿ¼˫vn_ctp_api.sln򿪽 +* 밴ť,release diff --git a/vn.data/mysqldb.sql b/vn.data/mysqldb.sql index b465e40a..96cf1c46 100644 --- a/vn.data/mysqldb.sql +++ b/vn.data/mysqldb.sql @@ -14,7 +14,7 @@ CREATE TABLE `TB_Trade` ( `fee` float DEFAULT '0', `profit` float DEFAULT '0', `profitRate` float DEFAULT '0' -) +) create table TB_Bar ( diff --git a/vn.datayes/api.py b/vn.datayes/api.py index a2f74e04..667df21f 100644 --- a/vn.datayes/api.py +++ b/vn.datayes/api.py @@ -39,8 +39,7 @@ class Config(object): toke_ = '44ebc0f058981f85382595f9f15f967' + \ '0c7eaf2695de30dd752e8f33e9022baa0' - token = '7c2e59e212dbff90ffd6b382c7afb57' + \ - 'bc987a99307d382b058af6748f591d723' + token = '575593eb7696aec7339224c0fac2313780d8645f68b77369dcb35f8bcb419a0b' body = { 'ssl': False, diff --git a/vn.datayes/tests.py b/vn.datayes/tests.py index 979dd4f6..452a8159 100644 --- a/vn.datayes/tests.py +++ b/vn.datayes/tests.py @@ -101,7 +101,7 @@ def test_mktbar_M1_get_interM(): if __name__ == '__main__': #test_config() - #test_mktbar_D1() + test_mktbar_D1() #test_bond_D1() #test_fut_D1() #test_fund_D1() @@ -116,4 +116,4 @@ if __name__ == '__main__': #test_mongod_get_all() #test_mktbar_M1_get_drudgery() #test_mktbar_M1_get_all() - test_mktbar_M1_get_interM() \ No newline at end of file + #test_mktbar_M1_get_interM() \ No newline at end of file diff --git a/vn.lts/vnltstd/test/vnltstd.pyd b/vn.lts/vnltstd/test/vnltstd.pyd index 7b548cda47d5aae59de6a5c601a882c40c8c5a12..3fe5e23631212e627dd91df0dc0e1413fe489462 100644 GIT binary patch literal 321024 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%0Ae5Qh9p@3s4x|9_d|N0tSy4W~ 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 diff --git a/vn.lts/vnltstd/vnltstd/vnltstd.cpp b/vn.lts/vnltstd/vnltstd/vnltstd.cpp index 791d9105..ba301ea7 100644 --- a/vn.lts/vnltstd/vnltstd/vnltstd.cpp +++ b/vn.lts/vnltstd/vnltstd/vnltstd.cpp @@ -1414,7 +1414,7 @@ int TdApi::reqOrderInsert(dict req, int nRequestID) CSecurityFtdcInputOrderField myreq = CSecurityFtdcInputOrderField(); memset(&myreq, 0, sizeof(myreq)); getChar(req, "ContingentCondition", &myreq.ContingentCondition); - getChar(req, "CombOffsetFlag", myreq.CombOffsetFlag); + //getChar(req, "CombOffsetFlag", myreq.CombOffsetFlag); getChar(req, "UserID", myreq.UserID); getChar(req, "LimitPrice", myreq.LimitPrice); getInt(req, "UserForceClose", &myreq.UserForceClose); @@ -1436,6 +1436,19 @@ int TdApi::reqOrderInsert(dict req, int nRequestID) getInt(req, "RequestID", &myreq.RequestID); getChar(req, "Direction", &myreq.Direction); + //CombOffsetFlag + if (req.has_key("CombOffsetFlag")) + { + object o2 = req["CombOffsetFlag"]; + extract x2(o2); + if (x2.check()) + { + string s2 = x2(); + const char *buffer2 = s2.c_str(); + myreq.CombOffsetFlag[0] = *buffer2; + } + } + int i = this->api->ReqOrderInsert(&myreq, nRequestID); return i; }; diff --git a/vn.trader/CTA_setting.json b/vn.trader/CTA_setting.json new file mode 100644 index 00000000..3e8805eb --- /dev/null +++ b/vn.trader/CTA_setting.json @@ -0,0 +1,14 @@ +{ + "Test1": { + "strategyClassName": "TestStrategy", + "vtSymbol": "IF1511" + }, + "Test3": { + "strategyClassName": "TestStrategy", + "vtSymbol": "IF1512" + }, + "Test2": { + "strategyClassName": "TestStrategy", + "vtSymbol": "IH1511" + } +} \ No newline at end of file diff --git a/vn.trader/CTP_connect.json b/vn.trader/CTP_connect.json index ede15644..8cebe175 100644 --- a/vn.trader/CTP_connect.json +++ b/vn.trader/CTP_connect.json @@ -1,7 +1,13 @@ { "brokerID": "9999", "tdAddress": "tcp://180.168.146.187:10000", +<<<<<<< HEAD "password": "19890624", "mdAddress": "tcp://180.168.212.228:41213", "userID": "000300" +======= + "password": "simnow申请", + "mdAddress": "tcp://180.168.212.228:41213", + "userID": "simnow申请" +>>>>>>> refs/remotes/vnpy/master } \ No newline at end of file diff --git a/vn.trader/IB_connect.json b/vn.trader/IB_connect.json new file mode 100644 index 00000000..f911cc5b --- /dev/null +++ b/vn.trader/IB_connect.json @@ -0,0 +1,5 @@ +{ + "host": "localhost", + "port": 7496, + "clientId": 888 +} \ No newline at end of file diff --git a/vn.trader/LTS_connect.json b/vn.trader/LTS_connect.json index c1fd187c..04b43df0 100644 --- a/vn.trader/LTS_connect.json +++ b/vn.trader/LTS_connect.json @@ -5,7 +5,13 @@ "mdAddress": "tcp://211.144.195.163:54513", "productInfo": "LTS-Test", "authCode": "N3EHKP4CYHZGM9VJ", +<<<<<<< HEAD "tdPassword": "150601", "mdPassword": "123", "userID": "020090002037" +======= + "tdPassword": "华宝证券申请", + "mdPassword": "华宝证券申请", + "userID": "华宝证券申请" +>>>>>>> refs/remotes/vnpy/master } \ No newline at end of file diff --git a/vn.trader/ctaEngine.py b/vn.trader/ctaEngine.py index 2dc54524..7bd733f1 100644 --- a/vn.trader/ctaEngine.py +++ b/vn.trader/ctaEngine.py @@ -6,7 +6,11 @@ from collections import OrderedDict from eventEngine import * from vtConstant import * +<<<<<<< HEAD from vtGateway import VtOrderReq, VtCancelOrderReq +======= +from vtGateway import VtSubscribeReq, VtOrderReq, VtCancelOrderReq, VtLogData +>>>>>>> refs/remotes/vnpy/master from ctaConstant import * from ctaStrategies import strategyClassDict @@ -137,6 +141,12 @@ class CtaEngine(object): self.stopOrderDict = {} # 停止单撤销后不会从本字典中删除 self.workingStopOrderDict = {} # 停止单撤销后会从本字典中删除 +<<<<<<< HEAD +======= + # 注册事件监听 + self.registerEvent() + +>>>>>>> refs/remotes/vnpy/master #---------------------------------------------------------------------- def sendOrder(self, vtSymbol, orderType, price, volume, strategy): """发单""" @@ -243,8 +253,14 @@ class CtaEngine(object): del self.workingStopOrderDict[so.stopOrderID] #---------------------------------------------------------------------- +<<<<<<< HEAD def procecssTick(self, tick): """处理行情推送""" +======= + def procecssTickEvent(self, event): + """处理行情推送""" + tick = event.dict_['data'] +>>>>>>> refs/remotes/vnpy/master # 收到tick行情后,先处理本地停止单(检查是否要立即发出) self.processStopOrder(tick) @@ -254,7 +270,12 @@ class CtaEngine(object): ctaTick = CtaTickData() d = ctaTick.__dict__ for key in d.keys(): +<<<<<<< HEAD d[key] = tick.__getattribute__(key) +======= + if key != 'datetime': + d[key] = tick.__getattribute__(key) +>>>>>>> refs/remotes/vnpy/master # 添加datetime字段 ctaTick.datetime = datetime.strptime(' '.join([tick.date, tick.time]), '%Y%m%d %H:%M:%S.%f') @@ -264,15 +285,29 @@ class CtaEngine(object): strategy.onTick(tick) #---------------------------------------------------------------------- +<<<<<<< HEAD def processOrder(self, order): """处理委托推送""" +======= + def processOrderEvent(self, event): + """处理委托推送""" + order = event.dict_['data'] + +>>>>>>> refs/remotes/vnpy/master if order.vtOrderID in self.orderStrategyDict: strategy = self.orderStrategyDict[order.vtOrderID] strategy.onOrder(order) #---------------------------------------------------------------------- +<<<<<<< HEAD def processTrade(self, trade): """处理成交推送""" +======= + def processTradeEvent(self, event): + """处理成交推送""" + trade = event.dict_['data'] + +>>>>>>> refs/remotes/vnpy/master if trade.vtOrderID in self.orderStrategyDict: strategy = self.orderStrategyDict[order.vtOrderID] strategy.onTrade(trade) @@ -280,9 +315,15 @@ class CtaEngine(object): #---------------------------------------------------------------------- def registerEvent(self): """注册事件监听""" +<<<<<<< HEAD self.eventEngine.register(EVENT_TICK, self.procecssTick) self.eventEngine.register(EVENT_ORDER, self.processOrder) self.eventEngine.register(EVENT_TRADE, self.processTrade) +======= + self.eventEngine.register(EVENT_TICK, self.procecssTickEvent) + self.eventEngine.register(EVENT_ORDER, self.processOrderEvent) + self.eventEngine.register(EVENT_TRADE, self.processTradeEvent) +>>>>>>> refs/remotes/vnpy/master #---------------------------------------------------------------------- def insertData(self, dbName, collectionName, data): @@ -338,7 +379,29 @@ class CtaEngine(object): """初始化策略""" # 防止策略重名 if name not in self.strategyDict: +<<<<<<< HEAD self.strategyDict[name] = strategyClass(self, paramDict) # 创建策略对象 +======= + # 创建策略对象 + strategy = strategyClass(self, name, paramDict) + self.strategyDict[name] = strategy + + # 保存Tick映射关系 + if strategy.vtSymbol in self.tickStrategyDict: + l = self.tickStrategyDict[strategy.vtSymbol] + else: + l = [] + self.tickStrategyDict[strategy.vtSymbol] = l + l.append(strategy) + + # 订阅合约 + contract = self.dataEngine.getContract(strategy.vtSymbol) + if contract: + req = VtSubscribeReq() + req.symbol = contract.symbol + req.exchange = contract.exchange + self.mainEngine.subscribe(req, contract.gatewayName) +>>>>>>> refs/remotes/vnpy/master else: self.writeCtaLog(u'存在策略对象重名:' + name) @@ -409,7 +472,11 @@ class CtaEngine(object): break #---------------------------------------------------------------------- +<<<<<<< HEAD def getStrategyVarialbe(self, name): +======= + def getStrategyVar(self, name): +>>>>>>> refs/remotes/vnpy/master """获取策略当前的变量字典""" if name in self.strategyDict: strategy = self.strategyDict[name] @@ -426,11 +493,16 @@ class CtaEngine(object): return None #---------------------------------------------------------------------- +<<<<<<< HEAD def getStrategyParameter(self, name): +======= + def getStrategyParam(self, name): +>>>>>>> refs/remotes/vnpy/master """获取策略的参数字典""" if name in self.strategyDict: strategy = self.strategyDict[name] d = strategy.__dict__ +<<<<<<< HEAD varDict = OrderedDict() for key in strategy.paramList: @@ -438,6 +510,15 @@ class CtaEngine(object): varDict[key] = d[key] return varDict +======= + paramDict = OrderedDict() + + for key in strategy.paramList: + if key in d: + paramDict[key] = d[key] + + return paramDict +>>>>>>> refs/remotes/vnpy/master else: self.writeCtaLog(u'策略对象不存在:' + name) return None diff --git a/vn.trader/ctaStrategies.py b/vn.trader/ctaStrategies.py index 0c5caf4a..3e4c692d 100644 --- a/vn.trader/ctaStrategies.py +++ b/vn.trader/ctaStrategies.py @@ -4,4 +4,11 @@ 在本文件中引入所有希望在系统中使用的策略类 ''' -strategyClassDict = {} \ No newline at end of file +<<<<<<< HEAD +strategyClassDict = {} +======= +from ctaStrategyTemplate import TestStrategy + +strategyClassDict = {} +strategyClassDict[u'TestStrategy'] = TestStrategy +>>>>>>> refs/remotes/vnpy/master diff --git a/vn.trader/ctaStrategyTemplate.py b/vn.trader/ctaStrategyTemplate.py index 549cf45f..f3056b96 100644 --- a/vn.trader/ctaStrategyTemplate.py +++ b/vn.trader/ctaStrategyTemplate.py @@ -1,5 +1,9 @@ # encoding: UTF-8 +<<<<<<< HEAD +======= +from vtConstant import * +>>>>>>> refs/remotes/vnpy/master from ctaConstant import * @@ -13,12 +17,22 @@ class CtaStrategyTemplate(object): paramList = ['vtSymbol'] # 变量列表,保存了变量的名称 +<<<<<<< HEAD varList = [] #---------------------------------------------------------------------- def __init__(self, ctaEngine, setting=None): """Constructor""" self.ctaEngine = ctaEngine +======= + varList = ['trading'] + + #---------------------------------------------------------------------- + def __init__(self, ctaEngine, name, setting=None): + """Constructor""" + self.ctaEngine = ctaEngine + self.name = name +>>>>>>> refs/remotes/vnpy/master self.vtSymbol = EMPTY_STRING # 交易的合约vt系统代码 @@ -153,12 +167,86 @@ class CtaStrategyTemplate(object): d = self.__dict__ for key in self.paramList: if key in setting: +<<<<<<< HEAD d[key] = paramDict[key] +======= + d[key] = setting[key] +>>>>>>> refs/remotes/vnpy/master #---------------------------------------------------------------------- def getToday(self): """查询当前日期""" return self.ctaEngine.getToday() +<<<<<<< HEAD +======= + #---------------------------------------------------------------------- + def writeCtaLog(self, content): + """记录CTA日志""" + self.ctaEngine.writeCtaLog(content) + + + +######################################################################## +class TestStrategy(CtaStrategyTemplate): + """测试策略""" + + #---------------------------------------------------------------------- + def __init__(self, ctaEngine, name, setting=None): + """Constructor""" + super(TestStrategy, self).__init__(ctaEngine, name, setting) + + self.strategyClassName = 'TestStrategy' + + self.author = u'用Python的交易员' # 作者 + + self.pos = EMPTY_INT # 持仓 + self.lastPrice = EMPTY_FLOAT # 最新价 + + # 参数和变量列表设置 + self.paramList.append(u'author') + + self.varList.append('pos') + self.varList.append('lastPrice') + + #---------------------------------------------------------------------- + def init(self): + """初始化策略(必须由用户继承实现)""" + self.writeCtaLog(u'测试策略%s初始化' %self.name) + + #---------------------------------------------------------------------- + def start(self): + """启动策略(必须由用户继承实现)""" + self.writeCtaLog(u'测试策略%s启动' %self.name) + + #---------------------------------------------------------------------- + def stop(self): + """停止策略(必须由用户继承实现)""" + self.writeCtaLog(u'测试策略%s停止' %self.name) + + #---------------------------------------------------------------------- + def onTick(self, tick): + """收到行情TICK推送(必须由用户继承实现)""" + self.writeCtaLog(u'测试策略%s收到Tick' %self.name) + self.lastPrice = tick.lastPrice + + #---------------------------------------------------------------------- + def onOrder(self, order): + """收到委托变化推送(必须由用户继承实现)""" + self.writeCtaLog(u'onOrder不会被调用') + + #---------------------------------------------------------------------- + def onTrade(self, trade): + """收到成交推送(必须由用户继承实现)""" + self.writeCtaLog(u'onTrade不会被调用') + + #---------------------------------------------------------------------- + def onBar(self, bar): + """收到Bar推送(必须由用户继承实现)""" + self.writeCtaLog(u'测试策略%s收到Bar' %self.name) + + + +>>>>>>> refs/remotes/vnpy/master \ No newline at end of file diff --git a/vn.trader/ctpGateway.py b/vn.trader/ctpGateway.py index edd06025..02156886 100644 --- a/vn.trader/ctpGateway.py +++ b/vn.trader/ctpGateway.py @@ -384,7 +384,14 @@ class CtpMdApi(MdApi): #---------------------------------------------------------------------- def subscribe(self, subscribeReq): """订阅合约""" +<<<<<<< HEAD self.subscribeMarketData(str(subscribeReq.symbol)) +======= + # 这里的设计是,如果尚未登录就调用了订阅方法 + # 则先保存订阅请求,登录完成后会自动订阅 + if self.loginStatus: + self.subscribeMarketData(str(subscribeReq.symbol)) +>>>>>>> refs/remotes/vnpy/master self.subscribedSymbols.add(subscribeReq) #---------------------------------------------------------------------- diff --git a/vn.trader/ibGateway.py b/vn.trader/ibGateway.py new file mode 100644 index 00000000..aa66beea --- /dev/null +++ b/vn.trader/ibGateway.py @@ -0,0 +1,608 @@ +# encoding: UTF-8 + +''' +ibpy的gateway接入 + +注意事项: +1. ib api只能获取和操作当前连接后下的单,并且每次重启程序后,之前下的单子收不到 +2. ib api的成交也只会推送当前连接后的成交 +3. ib api的持仓和账户更新可以订阅成主推模式,因此getAccount和getPosition就用不到了 +4. 目前只支持股票和期货交易,ib api里期权合约的确定是基于Contract对象的多个字段,比较复杂暂时没做 +5. 海外市场的交易规则和国内有很多细节上的不同,所以一些字段类型的映射可能不合理,如果发现问题欢迎指出 +''' + +import json +from time import sleep, strftime, localtime +from copy import copy + +from PyQt4 import QtGui, QtCore + +from ib.ext.Contract import Contract +from ib.ext.Order import Order +from ib.ext.EWrapper import EWrapper +from ib.ext.EClientSocket import EClientSocket + +from vtGateway import * + + +# 以下为一些VT类型和CTP类型的映射字典 +# 价格类型映射 +priceTypeMap = {} +priceTypeMap[PRICETYPE_LIMITPRICE] = 'LMT' +priceTypeMap[PRICETYPE_MARKETPRICE] = 'MKT' +priceTypeMapReverse = {v: k for k, v in priceTypeMap.items()} + +# 方向类型映射 +directionMap = {} +directionMap[DIRECTION_LONG] = 'BUY' +directionMap[DIRECTION_SHORT] = 'SSHORT' +directionMap[DIRECTION_SELL] = 'SELL' +directionMapReverse = {v: k for k, v in directionMap.items()} +directionMapReverse['BOT'] = DIRECTION_LONG +directionMapReverse['SLD'] = DIRECTION_SHORT + +# 交易所类型映射 +exchangeMap = {} +exchangeMap[EXCHANGE_SMART] = 'SMART' +exchangeMap[EXCHANGE_GLOBEX] = 'GLOBEX' +exchangeMap[EXCHANGE_IDEALPRO] = 'IDEALPRO' +exchangeMapReverse = {v:k for k,v in exchangeMap.items()} + +# 报单状态映射 +orderStatusMap = {} +orderStatusMap[STATUS_NOTTRADED] = 'Submitted' +orderStatusMap[STATUS_ALLTRADED] = 'Filled' +orderStatusMap[STATUS_CANCELLED] = 'Cancelled' +orderStatusMapReverse = {v:k for k,v in orderStatusMap.items()} +orderStatusMapReverse['PendingSubmit'] = STATUS_UNKNOWN # 这里未来视乎需求可以拓展vt订单的状态类型 +orderStatusMapReverse['PendingCancel'] = STATUS_UNKNOWN +orderStatusMapReverse['PreSubmitted'] = STATUS_UNKNOWN +orderStatusMapReverse['Inactive'] = STATUS_UNKNOWN + +# 合约类型映射 +productClassMap = {} +productClassMap[PRODUCT_EQUITY] = 'STK' +productClassMap[PRODUCT_FUTURES] = 'FUT' +productClassMap[PRODUCT_OPTION] = 'OPT' +productClassMap[PRODUCT_FOREX] = 'CASH' + +# 期权类型映射 +optionTypeMap = {} +optionTypeMap[OPTION_CALL] = 'CALL' +optionTypeMap[OPTION_PUT] = 'PUT' +optionTypeMap = {v:k for k,v in optionTypeMap.items()} + +# 货币类型映射 +currencyMap = {} +currencyMap[CURRENCY_USD] = 'USD' +currencyMap[CURRENCY_CNY] = 'CNY' +currencyMap = {v:k for k,v in currencyMap.items()} + +# Tick数据的Field和名称映射 +tickFieldMap = {} +tickFieldMap[0] = 'bidVolume1' +tickFieldMap[1] = 'bidPrice1' +tickFieldMap[2] = 'askPrice1' +tickFieldMap[3] = 'askVolume1' +tickFieldMap[4] = 'lastPrice' +tickFieldMap[5] = 'lastVolume' +tickFieldMap[6] = 'highPrice' +tickFieldMap[7] = 'lowPrice' +tickFieldMap[8] = 'volume' +tickFieldMap[14] = 'openPrice' +tickFieldMap[20] = 'openInterest' + +# Account数据Key和名称的映射 +accountKeyMap = {} +accountKeyMap['NetLiquidationByCurrency'] = 'balance' +accountKeyMap['NetLiquidation'] = 'balance' +accountKeyMap['UnrealizedPnL'] = 'positionProfit' +accountKeyMap['AvailableFunds'] = 'available' +accountKeyMap['MaintMarginReq'] = 'margin' + + +######################################################################## +class IbGateway(VtGateway): + """IB接口""" + + #---------------------------------------------------------------------- + def __init__(self, eventEngine, gatewayName='IB'): + """Constructor""" + super(IbGateway, self).__init__(eventEngine, gatewayName) + + self.host = EMPTY_STRING # 连接地址 + self.port = EMPTY_INT # 连接端口 + self.clientId = EMPTY_INT # 用户编号 + + self.tickerId = 0 # 订阅行情时的代码编号 + self.tickDict = {} # tick快照字典,key为tickerId,value为VtTickData对象 + + self.orderId = 0 # 订单编号 + self.orderDict = {} # 报单字典,key为orderId,value为VtOrderData对象 + + self.accountDict = {} # 账户字典 + + self.connected = False # 连接状态 + + self.wrapper = IbWrapper(self) # 回调接口 + self.connection = EClientSocket(self.wrapper) # 主动接口 + + #---------------------------------------------------------------------- + def connect(self): + """连接""" + # 载入json文件 + fileName = self.gatewayName + '_connect.json' + try: + f = file(fileName) + except IOError: + log = VtLogData() + log.gatewayName = self.gatewayName + log.logContent = u'读取连接配置出错,请检查' + self.onLog(log) + return + + # 解析json文件 + setting = json.load(f) + try: + self.host = str(setting['host']) + self.port = int(setting['port']) + self.clientId = int(setting['clientId']) + except KeyError: + log = VtLogData() + log.gatewayName = self.gatewayName + log.logContent = u'连接配置缺少字段,请检查' + self.onLog(log) + return + + # 发起连接 + self.connection.eConnect(self.host, self.port, self.clientId) + + # 查询服务器时间 + self.connection.reqCurrentTime() + + # 请求账户数据主推更新 + self.connection.reqAccountUpdates(True, '') + + #---------------------------------------------------------------------- + def subscribe(self, subscribeReq): + """订阅行情""" + # 订阅行情 + self.tickerId += 1 + + contract = Contract() + contract.m_symbol = str(subscribeReq.symbol) + contract.m_exchange = exchangeMap.get(subscribeReq.exchange, '') + contract.m_secType = productClassMap.get(subscribeReq.productClass, '') + contract.m_currency = currencyMap.get(subscribeReq.currency, '') + contract.m_expiry = subscribeReq.expiry + contract.m_strike = subscribeReq.strikePrice + contract.m_right = optionTypeMap.get(subscribeReq.optionType, '') + + self.connection.reqMktData(self.tickerId, contract, '', False) + + # 创建Tick对象并保存到字典中 + tick = VtTickData() + tick.symbol = subscribeReq.symbol + tick.exchange = subscribeReq.exchange + tick.vtSymbol = '.'.join([tick.symbol, tick.exchange]) + tick.gatewayName = self.gatewayName + self.tickDict[self.tickerId] = tick + + #---------------------------------------------------------------------- + def sendOrder(self, orderReq): + """发单""" + # 增加报单号1,最后再次进行查询 + # 这里双重设计的目的是为了防止某些情况下,连续发单时,nextOrderId的回调推送速度慢导致没有更新 + self.orderId += 1 + + # 创建合约对象 + contract = Contract() + contract.m_symbol = str(orderReq.symbol) + contract.m_exchange = exchangeMap.get(orderReq.exchange, '') + contract.m_secType = productClassMap.get(orderReq.productClass, '') + contract.m_currency = currencyMap.get(orderReq.currency, '') + + contract.m_expiry = orderReq.expiry + contract.m_strike = orderReq.strikePrice + contract.m_right = optionTypeMap.get(orderReq.optionType, '') + + # 创建委托对象 + order = Order() + order.m_orderId = self.orderId + order.m_clientId = self.clientId + + order.m_action = directionMap.get(orderReq.direction, '') + order.m_lmtPrice = orderReq.price + order.m_totalQuantity = orderReq.volume + order.m_orderType = priceTypeMap.get(orderReq.priceType, '') + + # 发送委托 + self.connection.placeOrder(self.orderId, contract, order) + + # 查询下一个有效编号 + self.connection.reqIds(1) + + #---------------------------------------------------------------------- + def cancelOrder(self, cancelOrderReq): + """撤单""" + self.connection.cancelOrder(cancelOrderReq.orderID) + + #---------------------------------------------------------------------- + def getAccount(self): + """查询账户资金""" + log = VtLogData() + log.gatewayName = self.gatewayName + log.logContent = u'IB接口账户信息提供主推更新,无需查询' + self.onLog(log) + + #---------------------------------------------------------------------- + def getPosition(self): + """查询持仓""" + log = VtLogData() + log.gatewayName = self.gatewayName + log.logContent = u'IB接口持仓信息提供主推更新,无需查询' + self.onLog(log) + + #---------------------------------------------------------------------- + def close(self): + """关闭""" + self.connection.eDisconnect() + + +######################################################################## +class IbWrapper(EWrapper): + """IB回调接口的实现""" + + #---------------------------------------------------------------------- + def __init__(self, gateway): + """Constructor""" + super(IbWrapper, self).__init__() + + self.connectionStatus = False # 连接状态 + + self.gateway = gateway # gateway对象 + self.gatewayName = gateway.gatewayName # gateway对象名称 + + self.tickDict = gateway.tickDict # tick快照字典,key为tickerId,value为VtTickData对象 + self.orderDict = gateway.orderDict # order字典 + self.accountDict = gateway.accountDict # account字典 + + #---------------------------------------------------------------------- + def tickPrice(self, tickerId, field, price, canAutoExecute): + """行情推送(价格相关)""" + if field in tickFieldMap: + tick = self.tickDict[tickerId] + key = tickFieldMap[field] + tick.__setattr__(key, price) + else: + print field + + #---------------------------------------------------------------------- + def tickSize(self, tickerId, field, size): + """行情推送(量相关)""" + if field in tickFieldMap: + tick = self.tickDict[tickerId] + key = tickFieldMap[field] + tick.__setattr__(key, size) + else: + print field + + #---------------------------------------------------------------------- + def tickOptionComputation(self, tickerId, field, impliedVol, delta, optPrice, pvDividend, gamma, vega, theta, undPrice): + """行情推送(期权数值)""" + pass + + #---------------------------------------------------------------------- + def tickGeneric(self, tickerId, tickType, value): + """行情推送(某些通用字段)""" + pass + + #---------------------------------------------------------------------- + def tickString(self, tickerId, tickType, value): + """行情推送,特殊字段相关""" + if tickType == 45: + lt = localtime(int(value)) + + tick = self.tickDict[tickerId] + tick.time = strftime('%H:%M:%S', lt) + tick.date = strftime('%Y%m%d') + + # 这里使用copy的目的是为了保证推送到事件系统中的对象 + # 不会被当前的API线程修改,否则可能出现多线程数据同步错误 + newtick = copy(tick) + self.gateway.onTick(newtick) + + #---------------------------------------------------------------------- + def tickEFP(self, tickerId, tickType, basisPoints, formattedBasisPoints, impliedFuture, holdDays, futureExpiry, dividendImpact, dividendsToExpiry): + """行情推送(合约属性相关)""" + pass + + #---------------------------------------------------------------------- + def orderStatus(self, orderId, status, filled, remaining, avgFillPrice, permId, parentId, lastFillPrice, clientId, whyHeld): + """报单成交回报""" + pass + orderId = str(orderId) + + if orderId in self.orderDict: + od = self.orderDict[orderId] + else: + od = VtOrderData() # od代表orderData + od.orderID = orderId + od.vtOrderID = '.'.join([self.gatewayName, orderId]) + od.gatewayName = self.gatewayName + self.orderDict[orderId] = od + + od.status = orderStatusMapReverse.get(status, STATUS_UNKNOWN) + od.tradedVolume = filled + + newod = copy(od) + self.gateway.onOrder(newod) + + #---------------------------------------------------------------------- + def openOrder(self, orderId, contract, order, orderState): + """报单信息推送""" + orderId = str(orderId) # orderId是整数 + + if orderId in self.orderDict: + od = self.orderDict[orderId] + else: + od = VtOrderData() # od代表orderData + od.orderID = orderId + od.vtOrderID = '.'.join([self.gatewayName, orderId]) + od.symbol = contract.m_symbol + od.exchange = exchangeMapReverse.get(contract.m_exchange, '') + od.vtSymbol = '.'.join([od.symbol, od.exchange]) + od.gatewayName = self.gatewayName + self.orderDict[orderId] = od + + od.direction = directionMapReverse.get(order.m_action, '') + od.price = order.m_lmtPrice + od.totalVolume = order.m_totalQuantity + + newod = copy(od) + self.gateway.onOrder(newod) + + #---------------------------------------------------------------------- + def openOrderEnd(self): + """ generated source for method openOrderEnd """ + pass + + #---------------------------------------------------------------------- + def updateAccountValue(self, key, value, currency, accountName): + """更新账户数据""" + # 仅逐个字段更新数据,这里对于没有currency的推送忽略 + if currency: + name = '.'.join([accountName, currency]) + + if name in self.accountDict: + account = self.accountDict[name] + else: + account = VtAccountData() + account.accountID = name + account.vtAccountID = name + account.gatewayName = self.gatewayName + self.accountDict[name] = account + + if key in accountKeyMap: + k = accountKeyMap[key] + account.__setattr__(k, float(value)) + + #---------------------------------------------------------------------- + def updatePortfolio(self, contract, position, marketPrice, marketValue, averageCost, unrealizedPNL, realizedPNL, accountName): + """持仓更新推送""" + pos = VtPositionData() + + pos.symbol = contract.m_symbol + pos.exchange = exchangeMapReverse.get(contract.m_exchange, contract.m_exchange) + pos.vtSymbol = '.'.join([pos.symbol, pos.exchange]) + pos.direction = DIRECTION_NET + pos.position = position + pos.price = averageCost + pos.vtPositionName = pos.vtSymbol + pos.gatewayName = self.gatewayName + + self.gateway.onPosition(pos) + + #---------------------------------------------------------------------- + def updateAccountTime(self, timeStamp): + """更新账户数据的时间""" + # 推送数据 + for account in self.accountDict.values(): + newaccount = copy(account) + self.gateway.onAccount(newaccount) + + #---------------------------------------------------------------------- + def accountDownloadEnd(self, accountName): + """ generated source for method accountDownloadEnd """ + pass + + #---------------------------------------------------------------------- + def nextValidId(self, orderId): + """下一个有效报单编号更新""" + self.gateway.orderId = orderId + + #---------------------------------------------------------------------- + def contractDetails(self, reqId, contractDetails): + """ generated source for method contractDetails """ + pass + + #---------------------------------------------------------------------- + def bondContractDetails(self, reqId, contractDetails): + """ generated source for method bondContractDetails """ + + #---------------------------------------------------------------------- + def contractDetailsEnd(self, reqId): + """ generated source for method contractDetailsEnd """ + pass + + #---------------------------------------------------------------------- + def execDetails(self, reqId, contract, execution): + """成交推送""" + trade = VtTradeData() + trade.gatewayName = self.gatewayName + trade.tradeID = execution.m_execId + trade.vtTradeID = '.'.join([self.gatewayName, trade.tradeID]) + + trade.symbol = contract.m_symbol + trade.exchange = exchangeMapReverse.get(contract.m_exchange, '') + trade.vtSymbol = '.'.join([trade.symbol, trade.exchange]) + + trade.orderID = str(execution.m_orderId) + trade.direction = directionMapReverse.get(execution.m_side, '') + trade.price = execution.m_price + trade.volume = execution.m_shares + trade.tradeTime = execution.m_time + + self.gateway.onTrade(trade) + + #---------------------------------------------------------------------- + def execDetailsEnd(self, reqId): + """ generated source for method execDetailsEnd """ + pass + + #---------------------------------------------------------------------- + def updateMktDepth(self, tickerId, position, operation, side, price, size): + """ generated source for method updateMktDepth """ + pass + + #---------------------------------------------------------------------- + def updateMktDepthL2(self, tickerId, position, marketMaker, operation, side, price, size): + """ generated source for method updateMktDepthL2 """ + pass + + #---------------------------------------------------------------------- + def updateNewsBulletin(self, msgId, msgType, message, origExchange): + """ generated source for method updateNewsBulletin """ + pass + + #---------------------------------------------------------------------- + def managedAccounts(self, accountsList): + """ generated source for method managedAccounts """ + pass + + #---------------------------------------------------------------------- + def receiveFA(self, faDataType, xml): + """ generated source for method receiveFA """ + pass + + #---------------------------------------------------------------------- + def historicalData(self, reqId, date, open, high, low, close, volume, count, WAP, hasGaps): + """ generated source for method historicalData """ + pass + + #---------------------------------------------------------------------- + def scannerParameters(self, xml): + """ generated source for method scannerParameters """ + pass + + #---------------------------------------------------------------------- + def scannerData(self, reqId, rank, contractDetails, distance, benchmark, projection, legsStr): + ''' generated source for method scannerData ''' + pass + + #---------------------------------------------------------------------- + def scannerDataEnd(self, reqId): + """ generated source for method scannerDataEnd """ + pass + + #---------------------------------------------------------------------- + def realtimeBar(self, reqId, time, open, high, low, close, volume, wap, count): + """ generated source for method realtimeBar """ + pass + + #---------------------------------------------------------------------- + def currentTime(self, time): + """ generated source for method currentTime """ + t = strftime('%H:%M:%S', localtime(time)) + + self.connectionStatus = True + self.gateway.connected = True + + log = VtLogData() + log.gatewayName = self.gatewayName + log.logContent = (u'IB接口连接成功,当前服务器时间%s' %t) + self.gateway.onLog(log) + + #---------------------------------------------------------------------- + def fundamentalData(self, reqId, data): + """ generated source for method fundamentalData """ + pass + + #---------------------------------------------------------------------- + def deltaNeutralValidation(self, reqId, underComp): + """ generated source for method deltaNeutralValidation """ + pass + + #---------------------------------------------------------------------- + def tickSnapshotEnd(self, reqId): + """ generated source for method tickSnapshotEnd """ + pass + + #---------------------------------------------------------------------- + def marketDataType(self, reqId, marketDataType): + """ generated source for method marketDataType """ + pass + + #---------------------------------------------------------------------- + def commissionReport(self, commissionReport): + """ generated source for method commissionReport """ + pass + + #---------------------------------------------------------------------- + def position(self, account, contract, pos, avgCost): + """ generated source for method position """ + pass + + #---------------------------------------------------------------------- + def positionEnd(self): + """ generated source for method positionEnd """ + pass + + #---------------------------------------------------------------------- + def accountSummary(self, reqId, account, tag, value, currency): + """ generated source for method accountSummary """ + pass + + #---------------------------------------------------------------------- + def accountSummaryEnd(self, reqId): + """ generated source for method accountSummaryEnd """ + pass + + #---------------------------------------------------------------------- + def error(self, id=None, errorCode=None, errorMsg=None): + """错误回报""" + err = VtErrorData() + err.gatewayName = self.gatewayName + err.errorID = errorCode + err.errorMsg = errorMsg + self.gateway.onError(err) + + #---------------------------------------------------------------------- + def error_0(self, strval=None): + """错误回报(单一字符串)""" + err = VtErrorData() + err.gatewayName = self.gatewayName + err.errorMsg = strval + self.gateway.onError(err) + + #---------------------------------------------------------------------- + def error_1(self, id=None, errorCode=None, errorMsg=None): + """错误回报(字符串和代码)""" + err = VtErrorData() + err.gatewayName = self.gatewayName + err.errorID = errorCode + err.errorMsg = errorMsg + self.gateway.onError(err) + + #---------------------------------------------------------------------- + def connectionClosed(self): + """连接断开""" + self.connectionStatus = False + self.gateway.connected = False + + log = VtLogData() + log.gatewayName = self.gatewayName + log.logContent = (u'IB接口连接断开') + self.gateway.onLog(log) + + \ No newline at end of file diff --git a/vn.trader/ltsGateway.py b/vn.trader/ltsGateway.py index 3bdffb90..b57884f7 100644 --- a/vn.trader/ltsGateway.py +++ b/vn.trader/ltsGateway.py @@ -393,7 +393,15 @@ class LtsMdApi(MdApi): req = {} req['InstrumentID'] = str(subscribeReq.symbol) req['ExchangeID'] = str(subscribeReq.exchange) +<<<<<<< HEAD self.subscribeMarketData(req) +======= + + # 这里的设计是,如果尚未登录就调用了订阅方法 + # 则先保存订阅请求,登录完成后会自动订阅 + if self.loginStatus: + self.subscribeMarketData(req) +>>>>>>> refs/remotes/vnpy/master self.subscribedSymbols.add(subscribeReq) @@ -565,10 +573,13 @@ class LtsTdApi(TdApi): #---------------------------------------------------------------------- def onRtnOrder(self, data): """报单回报""" +<<<<<<< HEAD print '-'*20 for k, v in data.items(): print k, ':', v +======= +>>>>>>> refs/remotes/vnpy/master # 更新最大报单编号 newref = data['OrderRef'] self.orderRef = max(self.orderRef, int(newref)) @@ -662,10 +673,13 @@ class LtsTdApi(TdApi): #---------------------------------------------------------------------- def onErrRtnOrderInsert(self, data, error): """发单错误回报(交易所)""" +<<<<<<< HEAD print '-'*20 for k, v in data.items(): print k, ':', v +======= +>>>>>>> refs/remotes/vnpy/master err = VtErrorData() err.gatewayName = self.gatewayName err.errorID = error['ErrorID'] diff --git a/vn.trader/uiBasicWidget.py b/vn.trader/uiBasicWidget.py index 69153348..d5dcf736 100644 --- a/vn.trader/uiBasicWidget.py +++ b/vn.trader/uiBasicWidget.py @@ -27,7 +27,14 @@ class BasicCell(QtGui.QTableWidgetItem): #---------------------------------------------------------------------- def setContent(self, text): """设置内容""" +<<<<<<< HEAD self.setText(text) +======= + if text == '0' or text == '0.0': + self.setText('') + else: + self.setText(text) +>>>>>>> refs/remotes/vnpy/master ######################################################################## @@ -533,7 +540,24 @@ class TradingWidget(QtGui.QFrame): EXCHANGE_DCE, EXCHANGE_CZCE, EXCHANGE_SSE, +<<<<<<< HEAD EXCHANGE_SZSE] +======= + EXCHANGE_SZSE, + EXCHANGE_SMART, + EXCHANGE_GLOBEX, + EXCHANGE_IDEALPRO] + + currencyList = [CURRENCY_CNY, + CURRENCY_USD] + + productClassList = [PRODUCT_UNKNOWN, + PRODUCT_EQUITY, + PRODUCT_FUTURES, + PRODUCT_OPTION] + + gatewayList = [''] +>>>>>>> refs/remotes/vnpy/master #---------------------------------------------------------------------- def __init__(self, mainEngine, eventEngine, dataEngine, parent=None): @@ -544,6 +568,12 @@ class TradingWidget(QtGui.QFrame): self.dataEngine = dataEngine self.symbol = '' +<<<<<<< HEAD +======= + + # 添加交易接口 + self.gatewayList.extend(mainEngine.gatewayDict.keys()) +>>>>>>> refs/remotes/vnpy/master self.initUi() self.connectSignal() @@ -565,6 +595,12 @@ class TradingWidget(QtGui.QFrame): labelVolume = QtGui.QLabel(u'数量') labelPriceType = QtGui.QLabel(u'价格类型') labelExchange = QtGui.QLabel(u'交易所') +<<<<<<< HEAD +======= + labelCurrency = QtGui.QLabel(u'货币') + labelProductClass = QtGui.QLabel(u'产品类型') + labelGateway = QtGui.QLabel(u'交易接口') +>>>>>>> refs/remotes/vnpy/master self.lineSymbol = QtGui.QLineEdit() self.lineName = QtGui.QLineEdit() @@ -588,7 +624,20 @@ class TradingWidget(QtGui.QFrame): self.comboPriceType.addItems(self.priceTypeList) self.comboExchange = QtGui.QComboBox() +<<<<<<< HEAD self.comboExchange.addItems(self.exchangeList) +======= + self.comboExchange.addItems(self.exchangeList) + + self.comboCurrency = QtGui.QComboBox() + self.comboCurrency.addItems(self.currencyList) + + self.comboProductClass = QtGui.QComboBox() + self.comboProductClass.addItems(self.productClassList) + + self.comboGateway = QtGui.QComboBox() + self.comboGateway.addItems(self.gatewayList) +>>>>>>> refs/remotes/vnpy/master gridleft = QtGui.QGridLayout() gridleft.addWidget(labelSymbol, 0, 0) @@ -599,6 +648,13 @@ class TradingWidget(QtGui.QFrame): gridleft.addWidget(labelVolume, 5, 0) gridleft.addWidget(labelPriceType, 6, 0) gridleft.addWidget(labelExchange, 7, 0) +<<<<<<< HEAD +======= + gridleft.addWidget(labelCurrency, 8, 0) + gridleft.addWidget(labelProductClass, 9, 0) + gridleft.addWidget(labelGateway, 10, 0) + +>>>>>>> refs/remotes/vnpy/master gridleft.addWidget(self.lineSymbol, 0, 1) gridleft.addWidget(self.lineName, 1, 1) gridleft.addWidget(self.comboDirection, 2, 1) @@ -607,6 +663,12 @@ class TradingWidget(QtGui.QFrame): gridleft.addWidget(self.spinVolume, 5, 1) gridleft.addWidget(self.comboPriceType, 6, 1) gridleft.addWidget(self.comboExchange, 7, 1) +<<<<<<< HEAD +======= + gridleft.addWidget(self.comboCurrency, 8, 1) + gridleft.addWidget(self.comboProductClass, 9, 1) + gridleft.addWidget(self.comboGateway, 10, 1) +>>>>>>> refs/remotes/vnpy/master # 右边部分 labelBid1 = QtGui.QLabel(u'买一') @@ -716,13 +778,25 @@ class TradingWidget(QtGui.QFrame): #---------------------------------------------------------------------- def updateSymbol(self): """合约变化""" +<<<<<<< HEAD symbol = unicode(self.lineSymbol.text()) exchange = unicode(self.comboExchange.currentText()) +======= + # 读取组件数据 + symbol = unicode(self.lineSymbol.text()) + exchange = unicode(self.comboExchange.currentText()) + currency = unicode(self.comboCurrency.currentText()) + productClass = unicode(self.comboProductClass.currentText()) + gatewayName = unicode(self.comboGateway.currentText()) + + # 查询合约 +>>>>>>> refs/remotes/vnpy/master if exchange: vtSymbol = '.'.join([symbol, exchange]) contract = self.dataEngine.getContract(vtSymbol) else: +<<<<<<< HEAD contract = self.dataEngine.getContract(symbol) if contract: @@ -770,6 +844,59 @@ class TradingWidget(QtGui.QFrame): # 更新组件当前交易的合约 self.symbol = contract.vtSymbol +======= + vtSymbol = symbol + contract = self.dataEngine.getContract(symbol) + + if contract: + gatewayName = contract.gatewayName + self.lineName.setText(contract.name) + exchange = contract.exchange # 保证有交易所代码 + + # 清空价格数量 + self.spinPrice.setValue(0) + self.spinVolume.setValue(0) + + # 清空行情显示 + self.labelBidPrice1.setText('') + self.labelBidPrice2.setText('') + self.labelBidPrice3.setText('') + self.labelBidPrice4.setText('') + self.labelBidPrice5.setText('') + self.labelBidVolume1.setText('') + self.labelBidVolume2.setText('') + self.labelBidVolume3.setText('') + self.labelBidVolume4.setText('') + self.labelBidVolume5.setText('') + self.labelAskPrice1.setText('') + self.labelAskPrice2.setText('') + self.labelAskPrice3.setText('') + self.labelAskPrice4.setText('') + self.labelAskPrice5.setText('') + self.labelAskVolume1.setText('') + self.labelAskVolume2.setText('') + self.labelAskVolume3.setText('') + self.labelAskVolume4.setText('') + self.labelAskVolume5.setText('') + self.labelLastPrice.setText('') + self.labelReturn.setText('') + + # 重新注册事件监听 + self.eventEngine.unregister(EVENT_TICK + self.symbol, self.signal.emit) + self.eventEngine.register(EVENT_TICK + vtSymbol, self.signal.emit) + + # 订阅合约 + req = VtSubscribeReq() + req.symbol = symbol + req.exchange = exchange + req.currency = currency + req.productClass = productClass + + self.mainEngine.subscribe(req, gatewayName) + + # 更新组件当前交易的合约 + self.symbol = vtSymbol +>>>>>>> refs/remotes/vnpy/master #---------------------------------------------------------------------- def updateTick(self, event): @@ -804,8 +931,17 @@ class TradingWidget(QtGui.QFrame): self.labelAskVolume5.setText(str(tick.askVolume5)) self.labelLastPrice.setText(str(tick.lastPrice)) +<<<<<<< HEAD rt = (tick.lastPrice/tick.preClosePrice)-1 self.labelReturn.setText(('%.2f' %(rt*100))+'%') +======= + + if tick.preClosePrice: + rt = (tick.lastPrice/tick.preClosePrice)-1 + self.labelReturn.setText(('%.2f' %(rt*100))+'%') + else: + self.labelReturn.setText('') +>>>>>>> refs/remotes/vnpy/master #---------------------------------------------------------------------- def connectSignal(self): @@ -815,13 +951,24 @@ class TradingWidget(QtGui.QFrame): #---------------------------------------------------------------------- def sendOrder(self): """发单""" +<<<<<<< HEAD symbol = str(self.lineSymbol.text()) exchange = str(self.comboExchange.currentText()) +======= + symbol = unicode(self.lineSymbol.text()) + exchange = unicode(self.comboExchange.currentText()) + currency = unicode(self.comboCurrency.currentText()) + productClass = unicode(self.comboProductClass.currentText()) + gatewayName = unicode(self.comboGateway.currentText()) + + # 查询合约 +>>>>>>> refs/remotes/vnpy/master if exchange: vtSymbol = '.'.join([symbol, exchange]) contract = self.dataEngine.getContract(vtSymbol) else: +<<<<<<< HEAD contract = self.dataEngine.getContract(symbol) if contract: @@ -834,6 +981,27 @@ class TradingWidget(QtGui.QFrame): req.priceType = unicode(self.comboPriceType.currentText()) req.offset = unicode(self.comboOffset.currentText()) self.mainEngine.sendOrder(req, contract.gatewayName) +======= + vtSymbol = symbol + contract = self.dataEngine.getContract(symbol) + + if contract: + gatewayName = contract.gatewayName + exchange = contract.exchange # 保证有交易所代码 + + req = VtOrderReq() + req.symbol = symbol + req.exchange = exchange + req.price = self.spinPrice.value() + req.volume = self.spinVolume.value() + req.direction = unicode(self.comboDirection.currentText()) + req.priceType = unicode(self.comboPriceType.currentText()) + req.offset = unicode(self.comboOffset.currentText()) + req.currency = currency + req.productClass = productClass + + self.mainEngine.sendOrder(req, gatewayName) +>>>>>>> refs/remotes/vnpy/master #---------------------------------------------------------------------- def cancelAll(self): diff --git a/vn.trader/uiCtaWidget.py b/vn.trader/uiCtaWidget.py index 91b9a218..3d209fe9 100644 --- a/vn.trader/uiCtaWidget.py +++ b/vn.trader/uiCtaWidget.py @@ -2,3 +2,250 @@ '''CTA模块相关的GUI控制组件''' +<<<<<<< HEAD +======= +from uiBasicWidget import QtGui, QtCore, BasicCell +from eventEngine import * + + +######################################################################## +class ValueMonitor(QtGui.QTableWidget): + """数值监控""" + signal = QtCore.pyqtSignal() + + #---------------------------------------------------------------------- + def __init__(self, parent=None): + """Constructor""" + super(ValueMonitor , self).__init__(parent) + + self.keyCellDict = {} + self.row = 0 + self.data = None + + self.initUi() + self.signal.connect(self.updateTable) + + #---------------------------------------------------------------------- + def initUi(self): + """初始化界面""" + self.setColumnCount(2) + + self.verticalHeader().setVisible(False) + self.horizontalHeader().setVisible(False) + + self.setEditTriggers(self.NoEditTriggers) + self.setAlternatingRowColors(True) + + #---------------------------------------------------------------------- + def updateData(self, data): + """更新数据""" + self.data = data + self.signal.emit() + + #---------------------------------------------------------------------- + def updateTable(self): + """更新表格""" + for key, value in self.data.items(): + if key in self.keyCellDict: + cell = self.keyCellDict[key] + cell.setText(unicode(value)) + else: + # 创建并保存单元格 + keyCell = BasicCell(unicode(key)) + cell = BasicCell(unicode(value)) + self.keyCellDict[key] = cell + + # 移动到下一行 + self.insertRow(self.row) + self.setItem(self.row, 0, keyCell) + self.setItem(self.row, 1, cell) + self.row += 1 + + +######################################################################## +class CtaStrategyManager(QtGui.QGroupBox): + """策略管理组件""" + + #---------------------------------------------------------------------- + def __init__(self, ctaEngine, eventEngine, name, parent=None): + """Constructor""" + super(CtaStrategyManager, self).__init__(parent) + + self.ctaEngine = ctaEngine + self.eventEngine = eventEngine + self.name = name + + self.initUi() + self.updateMonitor() + self.registerEvent() + + #---------------------------------------------------------------------- + def initUi(self): + """初始化界面""" + self.setTitle(self.name) + + paramLabel = QtGui.QLabel(u'参数') + varLabel = QtGui.QLabel(u'变量') + + self.paramMonitor = ValueMonitor(self) + self.varMonitor = ValueMonitor(self) + + buttonStart = QtGui.QPushButton(u'启动') + buttonStop = QtGui.QPushButton(u'停止') + buttonStart.clicked.connect(self.start) + buttonStop.clicked.connect(self.stop) + + hbox = QtGui.QHBoxLayout() + hbox.addWidget(buttonStart) + hbox.addWidget(buttonStop) + hbox.addStretch() + + vbox = QtGui.QVBoxLayout() + vbox.addLayout(hbox) + vbox.addWidget(paramLabel) + vbox.addWidget(self.paramMonitor) + vbox.addWidget(varLabel) + vbox.addWidget(self.varMonitor) + self.setLayout(vbox) + + #---------------------------------------------------------------------- + def updateMonitor(self, event=None): + """显示策略最新状态""" + paramDict = self.ctaEngine.getStrategyParam(self.name) + if paramDict: + self.paramMonitor.updateData(paramDict) + + varDict = self.ctaEngine.getStrategyVar(self.name) + if varDict: + self.varMonitor.updateData(varDict) + + #---------------------------------------------------------------------- + def registerEvent(self): + """注册事件监听""" + self.eventEngine.register(EVENT_TIMER, self.updateMonitor) + + #---------------------------------------------------------------------- + def start(self): + """启动策略""" + self.ctaEngine.startStrategy(self.name) + + #---------------------------------------------------------------------- + def stop(self): + """停止策略""" + self.ctaEngine.stopStrategy(self.name) + + + +######################################################################## +class CtaEngineManager(QtGui.QWidget): + """CTA引擎管理组件""" + signal = QtCore.pyqtSignal(type(Event())) + + #---------------------------------------------------------------------- + def __init__(self, ctaEngine, eventEngine, parent=None): + """Constructor""" + super(CtaEngineManager, self).__init__(parent) + + self.ctaEngine = ctaEngine + self.eventEngine = eventEngine + + self.strategyLoaded = False + + self.initUi() + self.registerEvent() + + # 记录日志 + self.ctaEngine.writeCtaLog(u'CTA引擎启动成功') + + #---------------------------------------------------------------------- + def initUi(self): + """初始化界面""" + self.setWindowTitle(u'CTA策略') + + # 按钮 + loadButton = QtGui.QPushButton(u'加载策略') + startAllButton = QtGui.QPushButton(u'全部启动') + stopAllButton = QtGui.QPushButton(u'全部停止') + + loadButton.clicked.connect(self.load) + startAllButton.clicked.connect(self.startAll) + stopAllButton.clicked.connect(self.stopAll) + + # 滚动区域,放置所有的CtaStrategyManager + self.scrollArea = QtGui.QScrollArea() + + # CTA组件的日志监控 + self.ctaLogMonitor = QtGui.QTextEdit() + self.ctaLogMonitor.setReadOnly(True) + + # 设置布局 + hbox2 = QtGui.QHBoxLayout() + hbox2.addWidget(loadButton) + hbox2.addWidget(startAllButton) + hbox2.addWidget(stopAllButton) + hbox2.addStretch() + + vbox = QtGui.QVBoxLayout() + vbox.addLayout(hbox2) + vbox.addWidget(self.scrollArea) + vbox.addWidget(self.ctaLogMonitor) + self.setLayout(vbox) + + #---------------------------------------------------------------------- + def initStrategyManager(self): + """初始化策略管理组件界面""" + w = QtGui.QWidget() + hbox = QtGui.QHBoxLayout() + + for name in self.ctaEngine.strategyDict.keys(): + strategyManager = CtaStrategyManager(self.ctaEngine, self.eventEngine, name) + hbox.addWidget(strategyManager) + + w.setLayout(hbox) + self.scrollArea.setWidget(w) + + #---------------------------------------------------------------------- + def startAll(self): + """全部启动""" + for name in self.ctaEngine.strategyDict.keys(): + self.ctaEngine.startStrategy(name) + + #---------------------------------------------------------------------- + def stopAll(self): + """全部停止""" + for name in self.ctaEngine.strategyDict.keys(): + self.ctaEngine.stopStrategy(name) + + #---------------------------------------------------------------------- + def load(self): + """加载策略""" + if not self.strategyLoaded: + self.ctaEngine.loadStrategySetting() + self.initStrategyManager() + self.strategyLoaded = True + self.ctaEngine.writeCtaLog(u'策略加载成功') + + #---------------------------------------------------------------------- + def updateCtaLog(self, event): + """更新CTA相关日志""" + log = event.dict_['data'] + content = '\t'.join([log.logTime, log.logContent]) + self.ctaLogMonitor.append(content) + + #---------------------------------------------------------------------- + def registerEvent(self): + """注册事件监听""" + self.signal.connect(self.updateCtaLog) + self.eventEngine.register(EVENT_CTA_LOG, self.signal.emit) + + + + + + + + + + + +>>>>>>> refs/remotes/vnpy/master diff --git a/vn.trader/uiMainWindow.py b/vn.trader/uiMainWindow.py index 67c801fb..10fe7216 100644 --- a/vn.trader/uiMainWindow.py +++ b/vn.trader/uiMainWindow.py @@ -3,7 +3,11 @@ import psutil from uiBasicWidget import * +<<<<<<< HEAD +======= +from uiCtaWidget import CtaEngineManager +>>>>>>> refs/remotes/vnpy/master ######################################################################## class MainWindow(QtGui.QMainWindow): @@ -77,6 +81,12 @@ class MainWindow(QtGui.QMainWindow): connectWindAction = QtGui.QAction(u'连接Wind', self) connectWindAction.triggered.connect(self.connectWind) +<<<<<<< HEAD +======= + connectIbAction = QtGui.QAction(u'连接IB', self) + connectIbAction.triggered.connect(self.connectIb) + +>>>>>>> refs/remotes/vnpy/master testAction = QtGui.QAction(u'测试', self) testAction.triggered.connect(self.testSubscribe) @@ -89,6 +99,12 @@ class MainWindow(QtGui.QMainWindow): contractAction = QtGui.QAction(u'查询合约', self) contractAction.triggered.connect(self.openContract) +<<<<<<< HEAD +======= + ctaAction = QtGui.QAction(u'CTA策略', self) + ctaAction.triggered.connect(self.openCta) + +>>>>>>> refs/remotes/vnpy/master # 创建菜单 menubar = self.menuBar() @@ -96,11 +112,19 @@ class MainWindow(QtGui.QMainWindow): sysMenu.addAction(connectCtpAction) sysMenu.addAction(connectLtsAction) sysMenu.addAction(connectWindAction) +<<<<<<< HEAD +======= + sysMenu.addAction(connectIbAction) +>>>>>>> refs/remotes/vnpy/master sysMenu.addAction(testAction) sysMenu.addAction(exitAction) functionMenu = menubar.addMenu(u'功能') functionMenu.addAction(contractAction) +<<<<<<< HEAD +======= + functionMenu.addAction(ctaAction) +>>>>>>> refs/remotes/vnpy/master helpMenu = menubar.addMenu(u'帮助') helpMenu.addAction(aboutAction) @@ -150,6 +174,7 @@ class MainWindow(QtGui.QMainWindow): self.mainEngine.connect('Wind') #---------------------------------------------------------------------- +<<<<<<< HEAD def testSubscribe(self): """测试订阅""" req = VtSubscribeReq() @@ -181,6 +206,33 @@ class MainWindow(QtGui.QMainWindow): req.symbol = 'SR1601' req.exchange = EXCHANGE_CZCE self.mainEngine.subscribe(req, 'Wind') +======= + def connectIb(self): + """连接Ib""" + self.mainEngine.connect('IB') + + #---------------------------------------------------------------------- + def testSubscribe(self): + """测试订阅""" + req = VtSubscribeReq() + req.symbol = 'GOOG' + req.productClass = PRODUCT_EQUITY + req.exchange = EXCHANGE_SMART + req.currency = CURRENCY_USD + self.mainEngine.subscribe(req, 'IB') + + req.symbol = 'AAPL' + self.mainEngine.subscribe(req, 'IB') + + req.symbol = 'YHOO' + self.mainEngine.subscribe(req, 'IB') + + req.symbol = 'MSFT' + self.mainEngine.subscribe(req, 'IB') + + req.symbol = 'GE' + self.mainEngine.subscribe(req, 'IB') +>>>>>>> refs/remotes/vnpy/master #---------------------------------------------------------------------- def openAbout(self): @@ -199,6 +251,18 @@ class MainWindow(QtGui.QMainWindow): except AttributeError: self.contractM = ContractMonitor(self.mainEngine.dataEngine) self.contractM.show() +<<<<<<< HEAD +======= + + #---------------------------------------------------------------------- + def openCta(self): + """打开CTA组件""" + try: + self.ctaM.show() + except AttributeError: + self.ctaM = CtaEngineManager(self.mainEngine.ctaEngine, self.eventEngine) + self.ctaM.show() +>>>>>>> refs/remotes/vnpy/master #---------------------------------------------------------------------- def closeEvent(self, event): diff --git a/vn.trader/vtConstant.py b/vn.trader/vtConstant.py index 10612119..c7b19845 100644 --- a/vn.trader/vtConstant.py +++ b/vn.trader/vtConstant.py @@ -12,6 +12,10 @@ DIRECTION_LONG = u'多' DIRECTION_SHORT = u'空' DIRECTION_UNKNOWN = u'未知' DIRECTION_NET = u'净' +<<<<<<< HEAD +======= +DIRECTION_SELL = u'卖出' # IB接口 +>>>>>>> refs/remotes/vnpy/master # 开平常量 OFFSET_NONE = u'无开平' @@ -34,6 +38,10 @@ PRODUCT_FUTURES = u'期货' PRODUCT_OPTION = u'期权' PRODUCT_INDEX = u'指数' PRODUCT_COMBINATION = u'组合' +<<<<<<< HEAD +======= +PRODUCT_FOREX = u'外汇' +>>>>>>> refs/remotes/vnpy/master PRODUCT_UNKNOWN = u'未知' # 价格类型常量 @@ -53,5 +61,20 @@ EXCHANGE_CFFEX = u'CFFEX' # 中金所 EXCHANGE_SHFE = u'SHFE' # 上期所 EXCHANGE_CZCE = u'CZCE' # 郑商所 EXCHANGE_DCE = u'DCE' # 大商所 +<<<<<<< HEAD EXCHANGE_UNKNOWN = 'UNKNOWN'# 未知交易所 -EXCHANGE_NONE = '' # 空交易所 \ No newline at end of file +EXCHANGE_NONE = '' # 空交易所 +======= + +EXCHANGE_UNKNOWN = 'UNKNOWN'# 未知交易所 +EXCHANGE_NONE = '' # 空交易所 + +EXCHANGE_SMART = u'SMART' # IB智能路由(股票、期权) +EXCHANGE_GLOBEX = u'GLOBEX' # CME电子交易平台 +EXCHANGE_IDEALPRO = u'IDEALPRO' # IB外汇ECN + +# 货币类型 +CURRENCY_USD = 'USD' # 美元 +CURRENCY_CNY = 'CNY' # 人民币 +CURRENCY_UNKNOWN = 'UNKNOWN' # 未知货币 +>>>>>>> refs/remotes/vnpy/master diff --git a/vn.trader/vtEngine.py b/vn.trader/vtEngine.py index 7cfaecd8..ea1cb5c7 100644 --- a/vn.trader/vtEngine.py +++ b/vn.trader/vtEngine.py @@ -1,6 +1,10 @@ # encoding: UTF-8 import shelve +<<<<<<< HEAD +======= +from collections import OrderedDict +>>>>>>> refs/remotes/vnpy/master from pymongo import MongoClient from pymongo.errors import ConnectionFailure @@ -8,9 +12,17 @@ from pymongo.errors import ConnectionFailure from eventEngine import * from ctpGateway import CtpGateway from ltsGateway import LtsGateway +<<<<<<< HEAD from windGateway import WindGateway from vtGateway import * import uiBasicWidget +======= +#from windGateway import WindGateway +from ibGateway import IbGateway +from vtGateway import * +import uiBasicWidget +from ctaEngine import CtaEngine +>>>>>>> refs/remotes/vnpy/master ######################################################################## @@ -29,7 +41,7 @@ class MainEngine(object): uiBasicWidget.NameCell.setDataEngine(uiBasicWidget.NameCell, self.dataEngine) # 将数据引擎对象传给NameCell # 用来保存接口对象的字典 - self.gatewayDict = {} + self.gatewayDict = OrderedDict() # 创建我们想要接入的接口对象 self.addGateway(CtpGateway, 'CTP') @@ -40,8 +52,18 @@ class MainEngine(object): #self.addGateway(WindGateway, 'Wind') # 没有Wind的请注释掉这一行 +<<<<<<< HEAD # MongoDB数据库相关 self.dbClient = None # MongoDB客户端对象 +======= + self.addGateway(IbGateway, 'IB') + + # MongoDB数据库相关 + self.dbClient = None # MongoDB客户端对象 + + # CTA引擎 + self.ctaEngine = CtaEngine(self, self.eventEngine, self.dataEngine) +>>>>>>> refs/remotes/vnpy/master #---------------------------------------------------------------------- def addGateway(self, gateway, gatewayName=None): @@ -56,7 +78,11 @@ class MainEngine(object): gateway.connect() else: self.writeLog(u'接口不存在:%s' %gatewayName) +<<<<<<< HEAD +======= + +>>>>>>> refs/remotes/vnpy/master #---------------------------------------------------------------------- def subscribe(self, subscribeReq, gatewayName): """订阅特定接口的行情""" diff --git a/vn.trader/vtGateway.py b/vn.trader/vtGateway.py index 1afaa8b6..b9a82b3b 100644 --- a/vn.trader/vtGateway.py +++ b/vn.trader/vtGateway.py @@ -164,7 +164,8 @@ class VtTickData(VtBaseData): # 成交数据 self.lastPrice = EMPTY_FLOAT # 最新成交价 - self.volume = EMPTY_INT # 最新成交量 + self.lastVolume = EMPTY_INT # 最新成交量 + self.volume = EMPTY_INT # 今天总成交量 self.openInterest = EMPTY_INT # 持仓量 self.time = EMPTY_STRING # 时间 11:20:56.5 self.date = EMPTY_STRING # 日期 20151009 @@ -370,6 +371,13 @@ class VtSubscribeReq: """Constructor""" self.symbol = EMPTY_STRING # 代码 self.exchange = EMPTY_STRING # 交易所 + + # 以下为IB相关 + self.productClass = EMPTY_UNICODE # 合约类型 + self.currency = EMPTY_STRING # 合约货币 + self.expiry = EMPTY_STRING # 到期日 + self.strikePrice = EMPTY_FLOAT # 行权价 + self.optionType = EMPTY_UNICODE # 期权类型 ######################################################################## @@ -387,6 +395,16 @@ class VtOrderReq: self.priceType = EMPTY_STRING # 价格类型 self.direction = EMPTY_STRING # 买卖 self.offset = EMPTY_STRING # 开平 +<<<<<<< HEAD +======= + + # 以下为IB相关 + self.productClass = EMPTY_UNICODE # 合约类型 + self.currency = EMPTY_STRING # 合约货币 + self.expiry = EMPTY_STRING # 到期日 + self.strikePrice = EMPTY_FLOAT # 行权价 + self.optionType = EMPTY_UNICODE # 期权类型 +>>>>>>> refs/remotes/vnpy/master ########################################################################