'config.dir'] = "/Users/zhang/PycharmProjects/strategy_engine_v2/interface" # 如果没有日志目录的话,则创建 if not os.path.exists("log"): os.makedirs("log") from se import BeanContainer, AccountRepo from se.domain2.account.account import AbstractAccount import pandas as pd from trading_calendars import get_calendar from se.domain2.engine.engine import Engine, Scope from strategies.strategy import TestStrategy2 engine = Engine() scope = Scope(["SPCE_STK_USD_SMART"], trading_calendar=get_calendar("NYSE")) strategy = TestStrategy2(scope) # 回测 start = pd.Timestamp("2021-02-01", tz='Asia/Shanghai') end = pd.Timestamp("2021-02-18", tz='Asia/Shanghai') result = engine.run_backtest(strategy, start, end, 10000, "test60", "ibAdjustedDailyBar") print("done") # 查看结果 # repo: AccountRepo = BeanContainer.getBean(AccountRepo) # account: AbstractAccount = repo.find_one("test56") # s = pd.Series(account.history_net_value) # s.plot() # print("done")
buy_order = LimitOrder(self.code, OrderDirection.BUY, dest_quantity - hold_quantity, current_time, down_price) account.place_order(buy_order) def __init__(self, scope: Scope, n=5, p=0.02): super().__init__(scope) self.n = n self.p = p self.code = scope.codes[0] # from trading_calendars import get_calendar # scope = Scope(codes=['CCL_STK_USD_SMART'], trading_calendar=get_calendar("NYSE")) # start = Timestamp("2020-01-01", tz='Asia/Shanghai') # end = Timestamp("2020-01-30", tz='Asia/Shanghai') # Engine().run_backtest(TestStrategy1(scope), start, end, 10000, "test3") if __name__ == "__main__": # 计算策略的回报序列 from trading_calendars import get_calendar import pandas as pd calendar = get_calendar("NYSE") engine = Engine() scope = Scope(['CCL_STK_USD_SMART'], calendar) st = TestStrategy1(scope, n=5, p=0.01) start = pd.Timestamp("2020-01-01", tz='Asia/Shanghai') end = pd.Timestamp("2020-01-30", tz='Asia/Shanghai') result = engine.run_backtest(st, start, end, 10000, "test16") print("done")
from se.strategies.strategy import TestStrategy2 import pandas as pd engine = Engine() scope = Scope(["SPCE_STK_USD_SMART"], trading_calendar=get_calendar("NYSE")) strategy = TestStrategy2(scope) # 初始化配置 config_file_name = 'config.ini' config = ConfigParser() config.read(config_file_name) # 回测 start = pd.Timestamp("2020-01-01", tz='Asia/Shanghai') end = pd.Timestamp("2020-12-01", tz='Asia/Shanghai') result = engine.run_backtest(strategy, start, end, 10000, "test55") print("done") # 实盘测试 # acc = IBAccount("ib_test1", 10000) # # # acc_repo: AccountRepo = BeanContainer.getBean(AccountRepo) # # acc = acc_repo.find_one("ib_test1") # # # acc.with_order_callback(strategy).with_client(config.get('ib', 'host'), config.getint('ib', 'port'), # config.getint('ib', 'client_id')) # # # def mocked_event_generator(event_definition: EventDefinition): # if isinstance(event_definition.time_rule, MarketOpen): # t = Timestamp("2021-01-21 22:30:00", tz='Asia/Shanghai')