Skip to content

Commit

Permalink
refactor booking
Browse files Browse the repository at this point in the history
  • Loading branch information
Cuizi7 committed Aug 30, 2018
1 parent ced17be commit 72e8ea2
Show file tree
Hide file tree
Showing 15 changed files with 257 additions and 605 deletions.
18 changes: 18 additions & 0 deletions rqalpha/api/api_base.py
Original file line number Diff line number Diff line change
Expand Up @@ -904,3 +904,21 @@ def current_snapshot(id_or_symbol):

# PT、实盘直接取最新快照,忽略 frequency, dt 参数
return env.data_proxy.current_snapshot(order_book_id, frequency, dt)


@export_as_api
def get_positions():
booking = Environment.get_instance().booking
if not booking:
raise RuntimeError(_("Booking has not been set, please check your broker configuration."))
return booking.get_positions()


@export_as_api
@apply_rules(verify_that('direction').is_in([POSITION_DIRECTION.LONG, POSITION_DIRECTION.SHORT]))
def get_position(order_book_id, direction):
booking = Environment.get_instance().booking
if not booking:
raise RuntimeError(_("Booking has not been set, please check your broker configuration."))

return booking.get_position(order_book_id, direction)
1 change: 1 addition & 0 deletions rqalpha/environment.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ def __init__(self, config):
self.user_detail_log = user_detail_log
self.event_bus = EventBus()
self.portfolio = None
self.booking = None
self.benchmark_portfolio = None
self.calendar_dt = None
self.trading_dt = None
Expand Down
18 changes: 18 additions & 0 deletions rqalpha/interface.py
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,19 @@ def transaction_cost(self):
raise NotImplementedError


class AbstractBookingPosition(with_metaclass(abc.ABCMeta)):

@property
@abc.abstractmethod
def order_book_id(self):
raise NotImplementedError

@property
@abc.abstractmethod
def direction(self):
raise NotImplementedError


class AbstractPosition(with_metaclass(abc.ABCMeta)):
"""
仓位接口,主要用于构建仓位信息
Expand Down Expand Up @@ -512,6 +525,11 @@ def get_portfolio(self):
:return: Portfolio
"""
raise NotImplementedError

@abc.abstractmethod
def get_booking(self):
raise NotImplementedError

@abc.abstractmethod
def submit_order(self, order):
Expand Down
6 changes: 6 additions & 0 deletions rqalpha/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -229,6 +229,12 @@ def run(config, source_code=None, user_funcs=None):
broker = env.broker
assert broker is not None
env.portfolio = broker.get_portfolio()

try:
env.booking = broker.get_booking()
except NotImplementedError:
pass

env.benchmark_portfolio = create_benchmark_portfolio(env)

event_source = env.event_source
Expand Down
1 change: 0 additions & 1 deletion rqalpha/mod/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,5 @@ def tear_down(self, *args):
"sys_simulation",
"sys_stock_realtime",
"sys_incremental",
"sys_booking",
"sys_transaction_cost"
]
22 changes: 0 additions & 22 deletions rqalpha/mod/rqalpha_mod_sys_booking/README.rst

This file was deleted.

25 changes: 0 additions & 25 deletions rqalpha/mod/rqalpha_mod_sys_booking/__init__.py

This file was deleted.

128 changes: 0 additions & 128 deletions rqalpha/mod/rqalpha_mod_sys_booking/api_booking.py

This file was deleted.

Loading

0 comments on commit 72e8ea2

Please sign in to comment.