예제 #1
0
def main(args):
    mode = args.mode
    # mode = 'test'
    # codes = args.codes
    codes = ["600036"]
    # codes = ["AU88", "RB88", "CU88", "AL88"]
    # codes = ["T9999"]
    market = args.market
    # market = 'future'
    # episode = args.episode
    episode = 200
    # training_data_ratio = 0.5
    training_data_ratio = args.training_data_ratio

    model_name = os.path.basename(__file__).split('.')[0]

    env = Market(
        codes,
        start_date="2008-01-01",
        end_date="2019-07-19",
        **{
            "market": market,
            # "use_sequence": True,
            # "mix_index_state": True,
            "logger": generate_market_logger(model_name),
            "training_data_ratio": training_data_ratio,
        })

    algorithm = Algorithm(
        tf.Session(config=config), env, env.trader.action_space, env.data_dim,
        **{
            "mode":
            mode,
            "episodes":
            episode,
            "enable_saver":
            True,
            "learning_rate":
            0.003,
            "enable_summary_writer":
            True,
            "logger":
            generate_algorithm_logger(model_name),
            "save_path":
            os.path.join(CHECKPOINTS_DIR, "RL", model_name, market, "model"),
            "summary_path":
            os.path.join(CHECKPOINTS_DIR, "RL", model_name, market, "summary"),
        })

    algorithm.run()
    algorithm.eval()
    algorithm.plot()
예제 #2
0
파일: model.py 프로젝트: hicode/quant_ml
    def __init__(self, session, env, **options):
        self.session = session
        self.env = env
        self.total_step = 0
        try:
            self.learning_rate_decay = options['learning_rate_decay']
        except KeyError:
            self.learning_rate_decay = 0.99

        try:
            self.learning_rate = options['learning_rate']
        except KeyError:
            self.learning_rate = 0.001

        try:
            self.batch_size = options['batch_size']
        except KeyError:
            self.batch_size = 32

        try:
            self.logger = options['logger']
        except KeyError:
            self.logger = generate_algorithm_logger('model')

        try:
            self.enable_saver = options["enable_saver"]
        except KeyError:
            self.enable_saver = False

        try:
            self.enable_summary_writer = options['enable_summary_writer']
        except KeyError:
            self.enable_summary_writer = False

        try:
            self.save_path = options["save_path"]
        except KeyError:
            self.save_path = None

        try:
            self.summary_path = options["summary_path"]
        except KeyError:
            self.summary_path = None

        try:
            self.mode = options['mode']
        except KeyError:
            self.mode = 'train'
예제 #3
0
    def __init__(self, session, env, **options):
        self.session = session
        self.env = env
        self.total_step = 0

        try:
            self.learning_rate = options['learning_rate']
        except KeyError:
            self.learning_rate = 0.001

        try:
            self.batch_size = options['batch_size']
        except KeyError:
            self.batch_size = 32

        try:
            self.logger = options['logger']
        except KeyError:
            self.logger = generate_algorithm_logger('model')

        try:
            self.enable_saver = options["enable_saver"]
        except KeyError:
            self.enable_saver = False

        try:
            self.enable_summary_writer = options['enable_summary_writer']
        except KeyError:
            self.enable_summary_writer = False

        try:
            self.save_path = options["save_path"] # lstm中,在Algorithm的初始化的时候传入了"save_path":os.path.join(CHECKPOINTS_DIR, "SL", model_name, market, "model"
        except KeyError:
            self.save_path = None

        try:
            self.summary_path = options["summary_path"]
        except KeyError:
            self.summary_path = None

        try:
            self.mode = options['mode']
        except KeyError:
            self.mode = 'train'
예제 #4
0
def main(args):
    mode = args.mode
    #mode = 'test'
    codes = args.codes
    #codes = ["600036"]
    #codes = ["eos_usdt"]
    # codes = ["600036", "601998"]
    # codes = ["AU88", "RB88", "CU88", "AL88"]
    # codes = ["T9999"]
    market = 'k15m'
    #market = args.market
    # market = 'future'
    # episode = args.episode
    episode = 1000
    training_data_ratio = 0.95
    # training_data_ratio = args.training_data_ratio

    #pdb.set_trace()

    model_name = os.path.basename(__file__).split('.')[0]

    #env = Market(codes, start_date="2018-06-04", end_date="2018-06-12", **{
    env = Market(codes, start_date=args.start, end_date=args.end, **{
        "market": market,
        "mix_index_state": False,
        "logger": generate_market_logger(model_name),
        "training_data_ratio": training_data_ratio,
    })

    algorithm = Algorithm(tf.Session(config=config), env, env.trader.action_space, env.data_dim, **{
        "mode": mode,
        "episodes": episode,
        "enable_saver": True,
        "learning_rate": 0.003,
        "enable_summary_writer": True,
        "logger": generate_algorithm_logger(model_name),
        "save_path": os.path.join(CHECKPOINTS_DIR, "RL", model_name, market, "model"),
        "summary_path": os.path.join(CHECKPOINTS_DIR, "RL", model_name, market, "summary"),
    })

    algorithm.run()
    algorithm.eval()
    algorithm.plot()
예제 #5
0
    def generator(code, start_date, end_date, market="stock", mode='trade'):
        training_data_ratio = 0.8
        episode = 500

        env = Market(
            code,
            start_date=start_date,
            end_date=end_date,
            **{
                "market": market,
                # "use_sequence": True,
                "logger": generate_market_logger(model_name),
                "training_data_ratio": training_data_ratio,
            })

        return Algorithm(
            tf.Session(config=config), env, env.trader.action_space,
            env.data_dim, **{
                "mode":
                mode,
                "episodes":
                episode,
                "enable_saver":
                True,
                "learning_rate":
                0.003,
                "enable_summary_writer":
                True,
                "logger":
                generate_algorithm_logger(model_name),
                "save_path":
                os.path.join(CHECKPOINTS_DIR, "RL", model_name, market,
                             "model"),
                "summary_path":
                os.path.join(CHECKPOINTS_DIR, "RL", model_name, market,
                             "summary"),
            })
예제 #6
0
def main():
    # mode = args.mode
    mode = 'test'  #'train'
    # codes = args.codes
    codes = ["AU88", "RB88", "CU88", "AL88"]
    # codes = ["T9999"]
    # market = args.market
    market = 'future'
    # episode = args.episode
    episode = 2000
    training_data_ratio = 0.5
    # training_data_ratio = args.training_data_ratio

    model_name = os.path.basename(__file__).split('.')[0]

    df = pd.read_csv('TXF1_5m.csv', parse_dates=[['Date', 'Time']])
    df = df.iloc[-10001:]
    df.reset_index(drop=True, inplace=True)
    df = df.rename(columns={'Date_Time': 'datetime'})
    df['serial_number'] = df.index
    # df['serial_number'] = df['serial_number'] - df['serial_number'].iloc[0]
    env = trading_env.make(
        env_id='training_v1',
        obs_data_len=1,
        step_len=1,
        df=df,
        fee=2,
        max_position=1,
        deal_col_name='Price',
        feature_names=[
            'Price',
            'Volume',  # 'datetime' ,
            'Open',
            'serial_number',
            'High',
            'Low'
        ],
        fluc_div=100.0)
    # env = Market(codes, start_date="2012-01-01", end_date="2018-01-01", **{
    #     "market": market,
    #     # "use_sequence": True,
    #     "logger": generate_market_logger(model_name),
    #     "training_data_ratio": training_data_ratio,
    # })

    algorithm = Algorithm(
        tf.Session(config=config), env, 1, 5, **{
            "mode":
            mode,
            "episodes":
            episode,
            "enable_saver":
            True,
            "learning_rate":
            0.003,
            "batch_size":
            1320,
            "enable_summary_writer":
            True,
            "logger":
            generate_algorithm_logger(model_name),
            "save_path":
            os.path.join(CHECKPOINTS_DIR, "RL", model_name, market, "model"),
            "summary_path":
            os.path.join(CHECKPOINTS_DIR, "RL", model_name, market, "summary"),
        })

    algorithm.run()
    algorithm.eval()