Exemple #1
0
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')
Exemple #2
0
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')
Exemple #5
0
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)
Exemple #6
0
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)
Exemple #8
0
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')
Exemple #12
0
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')
Exemple #13
0
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])
Exemple #15
0
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')
Exemple #16
0
 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')
Exemple #18
0
 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])