[增强] 增加风控引擎入口,增加获取当前价格,增加获取自定义合约
This commit is contained in:
parent
d977f04f0f
commit
c323e20b0b
@ -55,6 +55,8 @@ class MainEngine:
|
|||||||
self.apps = {}
|
self.apps = {}
|
||||||
self.exchanges = []
|
self.exchanges = []
|
||||||
|
|
||||||
|
self.rm_engine = None
|
||||||
|
|
||||||
os.chdir(TRADER_DIR) # Change working directory
|
os.chdir(TRADER_DIR) # Change working directory
|
||||||
self.init_engines() # Initialize function engines
|
self.init_engines() # Initialize function engines
|
||||||
|
|
||||||
@ -90,6 +92,9 @@ class MainEngine:
|
|||||||
self.apps[app.app_name] = app
|
self.apps[app.app_name] = app
|
||||||
|
|
||||||
engine = self.add_engine(app.engine_class)
|
engine = self.add_engine(app.engine_class)
|
||||||
|
if app.app_name == "RiskManager":
|
||||||
|
self.rm_engine = engine
|
||||||
|
|
||||||
return engine
|
return engine
|
||||||
|
|
||||||
def init_engines(self):
|
def init_engines(self):
|
||||||
@ -376,6 +381,8 @@ class OmsEngine(BaseEngine):
|
|||||||
self.positions = {}
|
self.positions = {}
|
||||||
self.accounts = {}
|
self.accounts = {}
|
||||||
self.contracts = {}
|
self.contracts = {}
|
||||||
|
self.custom_contracts = {}
|
||||||
|
self.prices = {}
|
||||||
|
|
||||||
self.active_orders = {}
|
self.active_orders = {}
|
||||||
|
|
||||||
@ -386,6 +393,7 @@ class OmsEngine(BaseEngine):
|
|||||||
"""Add query function to main engine."""
|
"""Add query function to main engine."""
|
||||||
self.main_engine.get_tick = self.get_tick
|
self.main_engine.get_tick = self.get_tick
|
||||||
self.main_engine.get_order = self.get_order
|
self.main_engine.get_order = self.get_order
|
||||||
|
self.main_engine.get_price = self.get_price
|
||||||
self.main_engine.get_trade = self.get_trade
|
self.main_engine.get_trade = self.get_trade
|
||||||
self.main_engine.get_position = self.get_position
|
self.main_engine.get_position = self.get_position
|
||||||
self.main_engine.get_account = self.get_account
|
self.main_engine.get_account = self.get_account
|
||||||
@ -397,6 +405,7 @@ class OmsEngine(BaseEngine):
|
|||||||
self.main_engine.get_all_accounts = self.get_all_accounts
|
self.main_engine.get_all_accounts = self.get_all_accounts
|
||||||
self.main_engine.get_all_contracts = self.get_all_contracts
|
self.main_engine.get_all_contracts = self.get_all_contracts
|
||||||
self.main_engine.get_all_active_orders = self.get_all_active_orders
|
self.main_engine.get_all_active_orders = self.get_all_active_orders
|
||||||
|
self.main_engine.get_all_custom_contracts = self.get_all_custom_contracts
|
||||||
|
|
||||||
def register_event(self):
|
def register_event(self):
|
||||||
""""""
|
""""""
|
||||||
@ -412,6 +421,9 @@ class OmsEngine(BaseEngine):
|
|||||||
tick = event.data
|
tick = event.data
|
||||||
self.ticks[tick.vt_symbol] = tick
|
self.ticks[tick.vt_symbol] = tick
|
||||||
|
|
||||||
|
if tick.last_price:
|
||||||
|
self.prices[tick.vt_symbol] = tick.last_price
|
||||||
|
|
||||||
def process_order_event(self, event: Event):
|
def process_order_event(self, event: Event):
|
||||||
""""""
|
""""""
|
||||||
order = event.data
|
order = event.data
|
||||||
@ -450,6 +462,14 @@ class OmsEngine(BaseEngine):
|
|||||||
"""
|
"""
|
||||||
return self.ticks.get(vt_symbol, None)
|
return self.ticks.get(vt_symbol, None)
|
||||||
|
|
||||||
|
def get_price(self, vt_symbol):
|
||||||
|
"""
|
||||||
|
get the lastest price by vt_symbol
|
||||||
|
:param vt_symbol:
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
return self.prices.get(vt_symbol, None)
|
||||||
|
|
||||||
def get_order(self, vt_orderid):
|
def get_order(self, vt_orderid):
|
||||||
"""
|
"""
|
||||||
Get latest order data by vt_orderid.
|
Get latest order data by vt_orderid.
|
||||||
@ -532,6 +552,17 @@ class OmsEngine(BaseEngine):
|
|||||||
]
|
]
|
||||||
return active_orders
|
return active_orders
|
||||||
|
|
||||||
|
def get_all_custom_contracts(self):
|
||||||
|
"""
|
||||||
|
获取所有自定义合约
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
if len(self.custom_contracts) == 0:
|
||||||
|
c = CustomContract()
|
||||||
|
self.custom_contracts = c.get_contracts()
|
||||||
|
return self.custom_contracts
|
||||||
|
|
||||||
|
|
||||||
class CustomContract(object):
|
class CustomContract(object):
|
||||||
"""
|
"""
|
||||||
定制合约
|
定制合约
|
||||||
|
Loading…
Reference in New Issue
Block a user