def run_example(run_optimization=False): universe = ['000300.zicn'] start_date = dt.datetime(2005, 1, 1) end_date = dt.datetime(2017, 4, 13) window_min_max = config('GX_WINDOW_MIN_MAX', default=215, cast=int) window_ma = config('GX_WINDOW_MA', default=7, cast=int) vol_diff_slice = config('GX_VOL_DIFF_SLICE', default=True, cast=bool) if run_optimization: params_set, params_name = parameters_generator() run_param_grid_search(strat=GXRPS, universe=universe, start_date=start_date, end_date=end_date, params_set=params_set, params_name=params_name) else: strategyRunner(userStrategy=GXRPS, strategyParameters=(window_min_max, window_ma, vol_diff_slice), symbolList=universe, startDate=start_date, endDate=end_date, benchmark='000300.zicn', logLevel='info', saveFile=True, portfolioType=PortfolioType.CashManageable, plot=True, freq='D')
def run_example(): indexes = ['000016.zicn', '000300.zicn', '000905.zicn'] # futures to trade ihs = ['ih15%02d' % i for i in range(4, 13)] ifs = ['if15%02d' % i for i in range(4, 13)] ics = ['ic15%02d' % i for i in range(4, 13)] futures = ihs + ifs + ics universe = indexes + futures initialCapital = 75000.0 startDate = dt.datetime(2015, 4, 22) endDate = dt.datetime(2015, 11, 13) strategyRunner(userStrategy=MovingAverageCrossStrategy, initialCapital=initialCapital, symbolList=universe, startDate=startDate, endDate=endDate, dataSource=DataSource.DataYes, saveFile=True, plot=False, benchmark='000300.zicn', portfolioType=PortfolioType.FullNotional)
def run_example(): indexes = ['000016.zicn', '000300.zicn', '000905.zicn'] # futures to trade ihs = ['ih15%02d' % i for i in range(4, 13)] ifs = ['if15%02d' % i for i in range(4, 13)] ics = ['ic15%02d' % i for i in range(4, 13)] futures = ihs + ifs + ics universe = indexes + futures initialCapital = 75000.0 startDate = dt.datetime(2015, 4, 22) endDate = dt.datetime(2015, 11, 19) strategyRunner(userStrategy=MovingAverageCrossStrategy, initialCapital=initialCapital, symbolList=universe, startDate=startDate, endDate=endDate, dataSource=DataSource.DataYes, saveFile=True, plot=True, benchmark='000300.zicn', portfolioType=PortfolioType.FullNotional)
def run_example(): stocks = set_universe('000300.zicn') futures = ['if15%02d' % i for i in range(4, 13)] universes = stocks + futures strategyRunner(userStrategy=MovingAverageCrossStrategy, symbolList=universes, startDate=dt.datetime(2015, 4, 22), endDate=dt.datetime(2015, 11, 30), benchmark='000300.zicn')
def run_example(): csvDir = "data" universe = ['aapl', 'msft', 'ibm'] initialCapital = 1000000.0 strategyRunner(userStrategy=MovingAverageCrossStrategy, initialCapital=initialCapital, symbolList=universe, dataSource=DataSource.CSV, csvDir=csvDir, saveFile=False, plot=True)
def run_example(): universe = ['aapl', 'msft', 'ibm'] initialCapital = 100000.0 startDate = dt.datetime(1990, 1, 1) endDate = dt.datetime(2015, 9, 15) strategyRunner(userStrategy=MovingAverageCrossStrategy, initialCapital=initialCapital, symbolList=universe, startDate=startDate, endDate=endDate, dataSource=DataSource.YAHOO, saveFile=False)
def run_example(): universe = set_universe('000300.zicn')[:20] startDate = dt.datetime(2006, 1, 1) endDate = dt.datetime(2015, 10, 1) strategyRunner(userStrategy=MovingAverageCrossStrategy, symbolList=universe, startDate=startDate, endDate=endDate, dataSource=DataSource.DataYes, benchmark='000300.zicn', logLevel='info', saveFile=True, plot=True)
def run_example(): universe = set_universe('000300.zicn') initialCapital = 100000.0 startDate = dt.datetime(2006, 1, 1) endDate = dt.datetime(2015, 10, 1) strategyRunner(userStrategy=MovingAverageCrossStrategy, initialCapital=initialCapital, symbolList=universe, startDate=startDate, endDate=endDate, dataSource=DataSource.DataYes, freq=0, benchmark='000300.zicn', saveFile=False, plot=True)
def run_param_grid_search(strat, universe, start_date, end_date, params_set, params_name, **kwargs): universe = universe start_date = start_date end_date = end_date benchmark = kwargs.get('benchmark', universe[0]) log_level = kwargs.get('logLevel', 'critical') ptf_type = kwargs.get('portfolioType', PortfolioType.CashManageable) freq = kwargs.get('freq', 'D') record = pd.DataFrame() for params in params_set: result = strategyRunner(userStrategy=strat, strategyParameters=params, symbolList=universe, startDate=start_date, endDate=end_date, benchmark=benchmark, logLevel=log_level, portfolioType=ptf_type, freq=freq, plot=False, saveFile=False)['perf_metric'] row = pd.Series(index=params_name, data=np.array(params)) row_to_append = pd.concat([result['metrics'], row], axis=0) record = pd.concat([record, row_to_append], axis=1) record = record.T record.to_csv('optimizing_result.csv')
def run_example(): universe = ['600000.xshg', '000300.zicn'] initialCapital = 1e5 startDate = dt.datetime(2014, 12, 1) endDate = dt.datetime(2015, 11, 1) strategyRunner(userStrategy=MonitoringIndexStrategy, initialCapital=initialCapital, symbolList=universe, startDate=startDate, endDate=endDate, dataSource=DataSource.DXDataCenter, freq=0, benchmark='000300.zicn', logLevel="warning", saveFile=True, plot=True)
def run_example(): universe = ['000905.zicn'] start_date = dt.datetime(2016, 1, 1) end_date = dt.datetime(2017, 4, 24) alpha = config('GF_LLT_ALPHA', default=2.0/61, cast=float) strategyRunner(userStrategy=GFLLT, strategyParameters=[alpha], symbolList=universe, startDate=start_date, endDate=end_date, benchmark='000300.zicn', logLevel='info', saveFile=True, portfolioType=PortfolioType.CashManageable, plot=True, freq='D')
def run_example(): universe = ['000300.zicn'] start_date = dt.datetime(2005, 1, 1) end_date = dt.datetime(2017, 1, 1) ma_short = config('GF_MA_SHORT', default=20, cast=int) ma_long = config('GF_MA_LONG', default=90, cast=int) strategyRunner(userStrategy=GFMovingAverageCrossStrategy, strategyParameters=(ma_short, ma_long), symbolList=universe, startDate=start_date, endDate=end_date, benchmark='000300.zicn', dataSource=DataSource.WIND, logLevel='info', saveFile=True, portfolioType=PortfolioType.CashManageable, plot=True, freq='D')
def run_example(): universe = ["600000.xshg", "000300.zicn"] initialCapital = 1e5 startDate = dt.datetime(2014, 12, 1) endDate = dt.datetime(2015, 11, 1) strategyRunner( userStrategy=MonitoringIndexStrategy, initialCapital=initialCapital, symbolList=universe, startDate=startDate, endDate=endDate, dataSource=DataSource.DXDataCenter, freq=0, benchmark="000300.zicn", logLevel="warning", saveFile=True, plot=True, )
def test_gf_llt_strat(self): for i in range(len(self._data)): data = self._data[i] perf = strategyRunner(userStrategy=GFLLT, strategyParameters=(data['alpha'],), symbolList=data['universe'], dataSource=DataSource.CSV, csvDir=data['csv_dir'], saveFile=False, portfolioType=PortfolioType.CashManageable, plot=False )['perf_metric'] assert_frame_equal(perf, self._expected[i])
def run_example(): universe = ['510300.xshg', '510500.xshg', '511010.xshg', '518880.xshg'] assets = { '510300.xshg': { 'target_weight': 0.0, 'default_weight': 0.075 }, '510500.xshg': { 'target_weight': 0.0, 'default_weight': 0.075 }, '511010.xshg': { 'target_weight': 0.0, 'default_weight': 0.75 }, '518880.xshg': { 'target_weight': 0.0, 'default_weight': 0.1 } } start_date = dt.datetime(2013, 8, 1) end_date = dt.datetime(2017, 2, 28) window = config('RISKPARITY_WINDOW', cast=int) tiaocang_freq = config('RISKPARITY_TIAOCANG_FREQ', cast=int) print strategyRunner(userStrategy=RISKPARITY, strategyParameters=(window, assets, tiaocang_freq), symbolList=universe, startDate=start_date, endDate=end_date, benchmark='000300.zicn', dataSource=DataSource.WIND, logLevel='info', saveFile=True, portfolioType=PortfolioType.CashManageable, plot=True, freq='D', priceAdj='F')
def test_gx_rps_strat(self): for i in range(len(self._data)): data = self._data[i] perf = strategyRunner(userStrategy=GXRPS, strategyParameters=(data['window_min_max'], data['window_ma'], data['vol_diff_slice']), symbolList=data['universe'], dataSource=DataSource.CSV, csvDir=data['csv_dir'], saveFile=False, portfolioType=PortfolioType.CashManageable, plot=False)['perf_metric'] assert_frame_equal(perf, self._expected[i])
def run_example(): # universe = ['if15%02d.ccfx' % i for i in range(1, 13)] universe = ['if15%02d.ccfx' % i for i in range(10, 13) ] + ['if16%02d.ccfx' % i for i in range(1, 4)] start_date = dt.datetime(2015, 11, 10) end_date = dt.datetime(2016, 2, 1) window_up = config('DT_WINDOW_UP', cast=float) multi_up = config('DT_MULTI_UP', cast=float) window_down = config('DT_WINDOW_DOWN', cast=float) multi_down = config('DT_MULTI_DOWN', cast=float) strategyRunner(userStrategy=DualThrust, strategyParameters=(window_up, multi_up, window_down, multi_down), symbolList=universe, startDate=start_date, endDate=end_date, benchmark='000300.zicn', dataSource=DataSource.WIND, logLevel='info', saveFile=True, plot=True, freq='min5')
def test_risk_parity_strat(self): for i in range(len(self._data)): data = self._data[i] perf = strategyRunner(userStrategy=RISKPARITY, strategyParameters=(data['window'], data['assets'], data['tiaocang_freq'], data['weight_type']), symbolList=data['universe'], dataSource=DataSource.CSV, csvDir=data['csv_dir'], saveFile=False, portfolioType=PortfolioType.CashManageable, plot=False)['perf_metric'] assert_frame_equal(perf, self._expected[i])