初步完成dataRecord的全过程时序
This commit is contained in:
parent
e8059cfc4b
commit
12b1e10c51
@ -1,14 +1,18 @@
|
|||||||
@startuml
|
@startuml
|
||||||
|
|
||||||
|
class EClient
|
||||||
|
class EClientSocket
|
||||||
abstract class EWrapper
|
abstract class EWrapper
|
||||||
class IbWrapper
|
class IbWrapper
|
||||||
class VnIbApi
|
class VnIbApi
|
||||||
class IbApiWrap
|
class IbApiWrap
|
||||||
class IbApi
|
class IbApi
|
||||||
|
|
||||||
|
EClient <|-- EClientSocket
|
||||||
|
|
||||||
EWrapper <|-- IbWrapper
|
EWrapper <|-- IbWrapper
|
||||||
IbWrapper *-- VnIbApi
|
IbWrapper *-- VnIbApi
|
||||||
|
EClientSocket *-- VnIbApi
|
||||||
IbWrapper --* VnIbApi
|
IbWrapper --* VnIbApi
|
||||||
VnIbApi <|-- IbApiWrap : Boost.python封装
|
VnIbApi <|-- IbApiWrap : Boost.python封装
|
||||||
note right
|
note right
|
||||||
@ -23,7 +27,19 @@ Python的程序对接使用此类型。
|
|||||||
end note
|
end note
|
||||||
|
|
||||||
|
|
||||||
|
class EClient {
|
||||||
|
}
|
||||||
|
note right
|
||||||
|
IB提供的C++源代码。
|
||||||
|
此类定义了应用程序向IB网关发起请求的主动函数。
|
||||||
|
end note
|
||||||
|
|
||||||
|
class EClientSocket {
|
||||||
|
}
|
||||||
|
note right
|
||||||
|
IB提供的C++源代码。
|
||||||
|
此类定义了应用程序向IB网关发起请求的主动函数。
|
||||||
|
end note
|
||||||
|
|
||||||
abstract class EWrapper {
|
abstract class EWrapper {
|
||||||
}
|
}
|
||||||
|
@ -6,4 +6,4 @@
|
|||||||
NO | 场景 | vnpy入口源代码文件 | UML文件名
|
NO | 场景 | vnpy入口源代码文件 | UML文件名
|
||||||
---|---------------|------------------|-----------
|
---|---------------|------------------|-----------
|
||||||
1| 实时市场数据采集 | example/DataRecording/runDataRecording.py| dataRecord.puml
|
1| 实时市场数据采集 | example/DataRecording/runDataRecording.py| dataRecord.puml
|
||||||
|
2|IB API封装方法 | vnpy/api/ib/vnib/vnib/vnib.cpp .h/ |IbApi.puml
|
@ -15,6 +15,7 @@ participant Queue as eeq
|
|||||||
participant TimerThread as eetm
|
participant TimerThread as eetm
|
||||||
participant "ibGateway:vtGateway" as gw
|
participant "ibGateway:vtGateway" as gw
|
||||||
participant "IbWrapper:IbApi" as wrap
|
participant "IbWrapper:IbApi" as wrap
|
||||||
|
participant "IB Gateway/IB TWS" as ib
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -94,7 +95,7 @@ run->me ++ : addGateway(ibGateway)
|
|||||||
** 内部变量初始化为空
|
** 内部变量初始化为空
|
||||||
** 获取连接IB G/W的信息
|
** 获取连接IB G/W的信息
|
||||||
end note
|
end note
|
||||||
gw->wrap ** : Create IbWrap(self)
|
gw->wrap ** : Create IbWrapper(self)
|
||||||
note right
|
note right
|
||||||
IbApi是基于Boost.python的封装。
|
IbApi是基于Boost.python的封装。
|
||||||
用C++实现,但是可以提供给Python程序使用。
|
用C++实现,但是可以提供给Python程序使用。
|
||||||
@ -126,6 +127,7 @@ run->me ++ : addApp()
|
|||||||
订阅设置到字典对象
|
订阅设置到字典对象
|
||||||
end note
|
end note
|
||||||
dr->ee++:register(TICK, handler)
|
dr->ee++:register(TICK, handler)
|
||||||
|
note right: 登记EVENT_TICK事件
|
||||||
return
|
return
|
||||||
dr-->dr -- :
|
dr-->dr -- :
|
||||||
dr-->me--: object
|
dr-->me--: object
|
||||||
@ -148,9 +150,50 @@ run->ee: ee.regiser() 注册日志处理事件
|
|||||||
run->me++: me.Connect(IB)
|
run->me++: me.Connect(IB)
|
||||||
note right: 连接IB网关
|
note right: 连接IB网关
|
||||||
me->gw ++ : gw.connect()
|
me->gw ++ : gw.connect()
|
||||||
gw-> wrap ++ : wrap.eConnect(host, port, clientId, false)
|
gw-> wrap ++ : ibwrapper.eConnect(host, port, clientId, false)
|
||||||
|
wrap-\ib ++ : 调用IB的C++代码,发送连接请求数据包到IB网关
|
||||||
|
return
|
||||||
|
return
|
||||||
|
|
||||||
|
|
||||||
|
gw->wrap ++ : ibwrapper.reqCurrentTime()
|
||||||
|
wrap->ib ++: 调用IB的C++代码,发送服务器时间查询数据包到IB网关
|
||||||
|
return
|
||||||
|
return
|
||||||
|
|
||||||
|
return
|
||||||
|
|
||||||
|
ib-/ wrap ++ : connectAck()\nIB网关发回响应数据包到IB的C++代码,该代码回调函数
|
||||||
|
return
|
||||||
|
|
||||||
|
ib->wrap ++ : currentTime()\nIB网关发回响应数据包到IB的C++代码,该代码回调函数
|
||||||
|
wrap->gw ++ : 修改连接状态\ngateway.conntected=true
|
||||||
|
return
|
||||||
|
|
||||||
|
wrap->gw ++ : 订阅市场行情\nsubscribe(subscribeReq)
|
||||||
|
gw->wrap ++ : 请求合约详细\nreqContractDetails(self.tickerId, contract)
|
||||||
|
return
|
||||||
|
gw->wrap ++ : 请求市场数据\nreqMktData(self.tickerId, contract, '', False, TagValueList())
|
||||||
|
return
|
||||||
|
|||
|
||||||
|
return
|
||||||
|
|||
|
||||||
|
return
|
||||||
|
|
||||||
|
ib->wrap ++ : contractDetails(reqId, contractDetails)\nIB网关响应的合约信息通过回调函数传入
|
||||||
|
wrap -> gw ++ : OnContract(contract)\n推送事件
|
||||||
|
gw->ee ++ : ee.put(event(EVENT_CONTRACT, contract))
|
||||||
|
return
|
||||||
return
|
return
|
||||||
return
|
return
|
||||||
|
|
||||||
|
ib->wrap ++ : tickPrice(tickerId, field, price, canAutoExecute)\nIB网关响应的合约信息通过回调函数传入
|
||||||
|
wrap -> gw ++ : OnTick(tick)\n推送事件
|
||||||
|
gw->ee ++ : ee.put(event(EVENT_TICK, tick))
|
||||||
|
return
|
||||||
|
return
|
||||||
|
return
|
||||||
|
|
||||||
me->me ++ : dbConnect()
|
me->me ++ : dbConnect()
|
||||||
me->db ++ : MongoClient()
|
me->db ++ : MongoClient()
|
||||||
return dbClinet
|
return dbClinet
|
||||||
|
Loading…
Reference in New Issue
Block a user