Ejemplo n.º 1
0
    # 기간 필터링
    training_data = training_data[(training_data['date'] >= '2017-07-01')
                                  & (training_data['date'] <= '2018-06-29')]
    training_data = training_data.dropna()

    # 차트 데이터 분리
    features_chart_data = ['date', 'open', 'high', 'low', 'close', 'volume']
    chart_data = training_data[features_chart_data]

    # 학습 데이터 분리
    features_training_data = [
        'open_lastclose_ratio', 'high_close_ratio', 'low_close_ratio',
        'close_lastclose_ratio', 'volume_lastvolume_ratio', 'close_ma5_ratio',
        'volume_ma5_ratio', 'close_ma10_ratio', 'volume_ma10_ratio',
        'close_ma20_ratio', 'close_ma60_ratio', 'volume_ma60_ratio',
        'number_of_RA_patinets', 'number_of_HC_patients', 'number_of_articles'
    ]
    training_data = training_data[features_training_data]

    # 비 학습 투자 시뮬레이션 시작
    policy_learner = PolicyLearner(stock_code=stock_code,
                                   chart_data=chart_data,
                                   training_data=training_data,
                                   min_trading_unit=1,
                                   max_trading_unit=3)
    policy_learner.trade(balance=10000000,
                         model_path=os.path.join(
                             settings.BASE_DIR, 'models/{}/model_{}.h5'.format(
                                 stock_code, model_ver)))
Ejemplo n.º 2
0
    # 학습 데이터 분리
    features_training_data = [
        'open_lastclose_ratio', 'high_close_ratio', 'low_close_ratio',
        'close_lastclose_ratio', 'volume_lastvolume_ratio', 'close_ma5_ratio',
        'volume_ma5_ratio', 'close_ma10_ratio', 'volume_ma10_ratio',
        'close_ma20_ratio', 'volume_ma20_ratio', 'close_ma60_ratio',
        'volume_ma60_ratio', 'close_ma120_ratio', 'volume_ma120_ratio'
    ]
    # 학습데이터 분리
    training_data = training_data[features_training_data]

    # 강화학습 시작
    policy_learner = PolicyLearner(stock_code=stock_code,
                                   chart_data=chart_data,
                                   training_data=training_data,
                                   min_trading_unit=1,
                                   max_trading_unit=2,
                                   delayed_reward_threshold=.2,
                                   lr=.001)
    policy_learner.fit(balance=10000000,
                       num_epoches=1000,
                       discount_factor=0,
                       start_epsilon=.5)

    # 정책 신경망을 파일로 저장
    model_dir = os.path.join(settings.BASE_DIR, 'models/%s' % stock_code)
    if not os.path.isdir(model_dir):
        os.makedirs(model_dir)
    model_path = os.path.join(model_dir, 'model_%s.h5' % timestr)
    policy_learner.policy_network.save_model(model_path)
Ejemplo n.º 3
0
    coin_chart = data_manager.load_chart_data(os.path.join(settings.BASE_DIR,'data/chart_data/{}.csv'.format(coin_code)))
    prep_data = data_manager.preprocess_min(coin_chart)
    training_data = data_manager.build_training_data(prep_data)

    start_date = '2018-10-13 00:00:00'
    end_date = '2018-10-14 00:00:00'
    training_data = training_data[(training_data['date'] >= start_date)&(training_data['date'] < end_date)]
    training_data = training_data.dropna()

    features_chart_data = ['date', 'open', 'high', 'low', 'close', 'volume']
    coin_chart = training_data[features_chart_data]

    features_training_data = [
        'open_lastclose_ratio', 'high_close_ratio', 'low_close_ratio',
        'close_lastclose_ratio', 'volume_lastvolume_ratio',
        'close_ma5_ratio', 'volume_ma5_ratio',
        'close_ma10_ratio', 'volume_ma10_ratio',
        'close_ma20_ratio', 'volume_ma20_ratio',
        'close_ma60_ratio', 'volume_ma60_ratio',
        'close_ma120_ratio', 'volume_ma120_ratio']

    training_data = training_data[features_training_data]

    policy_learner = PolicyLearner(
        coin_code=COIN, coin_chart=coin_chart, training_data=training_data,
        min_trading_unit=0.001, max_trading_unit=0.01,start_date=start_date, end_date=end_date)

    policy_learner.trade(balance=BALANCE,
                         model_path=os.path.join(settings.BASE_DIR, 'models/{}/model_{}.h5'.format(COIN,MODEL)))