diff --git a/rqalpha/api/api_future.py b/rqalpha/api/api_future.py index 5d63489d1..d28d93c74 100644 --- a/rqalpha/api/api_future.py +++ b/rqalpha/api/api_future.py @@ -21,9 +21,8 @@ from __future__ import division import six -from collections import Iterable -from .api_base import assure_order_book_id, decorate_api_exc, instruments +from .api_base import decorate_api_exc, instruments from ..execution_context import ExecutionContext from ..model.order import Order, MarketOrder, LimitOrder, OrderStyle from ..const import EXECUTION_PHASE, SIDE, POSITION_EFFECT, ORDER_TYPE @@ -32,7 +31,6 @@ from ..utils.logger import user_log from ..utils.i18n import gettext as _ from ..utils.arg_checker import apply_rules, verify_that -from ..environment import Environment __all__ = [ diff --git a/rqalpha/core/default_matcher.py b/rqalpha/mod/simulation/matcher.py similarity index 96% rename from rqalpha/core/default_matcher.py rename to rqalpha/mod/simulation/matcher.py index 830eb5ed4..6f1aa38fc 100644 --- a/rqalpha/core/default_matcher.py +++ b/rqalpha/mod/simulation/matcher.py @@ -16,14 +16,14 @@ from collections import defaultdict -from ..utils.i18n import gettext as _ -from ..const import ORDER_TYPE, SIDE, BAR_STATUS -from ..model.trade import Trade -from ..environment import Environment -from ..events import Events +from ...utils.i18n import gettext as _ +from ...const import ORDER_TYPE, SIDE, BAR_STATUS +from ...model.trade import Trade +from ...environment import Environment +from ...events import Events -class DefaultMatcher(object): +class Matcher(object): def __init__(self, deal_price_decider, bar_limit=True, diff --git a/rqalpha/mod/simulation/mod.py b/rqalpha/mod/simulation/mod.py index c51499a7b..ac168550f 100644 --- a/rqalpha/mod/simulation/mod.py +++ b/rqalpha/mod/simulation/mod.py @@ -14,14 +14,15 @@ # See the License for the specific language governing permissions and # limitations under the License. - from rqalpha.interface import AbstractMod -from rqalpha.events import Events from .simulation_broker import SimulationBroker from .simulation_event_source import SimulationEventSource class SimulationMod(AbstractMod): + def __init__(self): + self._env = None + def start_up(self, env, mod_config): self._env = env self._env.set_broker(SimulationBroker(self._env)) diff --git a/rqalpha/mod/simulation/simulation_broker.py b/rqalpha/mod/simulation/simulation_broker.py index 3d3d40c8d..2046fc86a 100644 --- a/rqalpha/mod/simulation/simulation_broker.py +++ b/rqalpha/mod/simulation/simulation_broker.py @@ -16,7 +16,6 @@ import jsonpickle -from rqalpha.core.default_matcher import DefaultMatcher from rqalpha.interface import AbstractBroker, Persistable from rqalpha.utils import get_account_type from rqalpha.utils.i18n import gettext as _ @@ -27,6 +26,7 @@ from rqalpha.environment import Environment from .stock_account import StockAccount from .future_account import FutureAccount +from .matcher import Matcher def init_accounts(env): @@ -55,10 +55,10 @@ class SimulationBroker(AbstractBroker, Persistable): def __init__(self, env): self._env = env if env.config.base.matching_type == MATCHING_TYPE.CURRENT_BAR_CLOSE: - self._matcher = DefaultMatcher(lambda bar: bar.close, env.config.validator.bar_limit) + self._matcher = Matcher(lambda bar: bar.close, env.config.validator.bar_limit) self._match_immediately = True else: - self._matcher = DefaultMatcher(lambda bar: bar.open, env.config.validator.bar_limit) + self._matcher = Matcher(lambda bar: bar.open, env.config.validator.bar_limit) self._match_immediately = False self._accounts = None diff --git a/tests/outs/time.csv b/tests/outs/time.csv index d66c26c36..bc04364dc 100644 --- a/tests/outs/time.csv +++ b/tests/outs/time.csv @@ -2,3 +2,4 @@ date_time,time_spend 2017-02-22 11:19:09.672697,25.548931 2017-02-22 11:21:49.141829,24.767031 2017-02-22 11:27:18.907992,26.539639 +2017-02-22 11:37:34.984080,25.417706