darelikz / mts_lstm_a_stock

将其中的多因子模型(multiple-factor model)作为股票的额外特征引入到股票价格预测中, 建立了一个基于多变量的长短期记忆网络(multi-variable LSTM)股票价格预测模型, 用以提升只基于单一价格序列, 也即单变量长短期记忆网络(univariate LSTM)的股票价格预测模型的准确性以及鲁棒性. LSTM:是一个循环神经网络,能够处理长期依赖关系。 时间序列分析:时间序列表示基于时间顺序的一系列数据。 MTS_LSTM: **基于 lstm 的 时间序列分析**
9 stars 1 forks source link

csv文件怎么获取的 #1

Open cc798 opened 2 months ago

cc798 commented 2 months ago

作者方便透露a股数据怎么获取到的吗

darelikz commented 1 month ago

获取全部股票的日K线数据

import baostock as bs import pandas as pd import os import datetime

def mkdir(directory): if not os.path.exists(directory): os.makedirs(directory)

class Downloader(object): def init(self, output_dir, date_start='1990-01-01'): self._bs = bs bs.login() self.date_start = date_start self.date_end = datetime.datetime.now().strftime("%Y-%m-%d") self.output_dir = output_dir self.fields = "date,code,open,high,low,close,volume,amount," \ "adjustflag,turn,tradestatus,pctChg,peTTM," \ "pbMRQ,psTTM,pcfNcfTTM,isST"

def exit(self):
    bs.logout()

def get_codes_by_date(self, date):
    stock_rs = bs.query_all_stock(date)
    stock_df = stock_rs.get_data()
    print(stock_df)
    return stock_df

def run(self):
    stock_df = self.get_codes_by_date(self.date_end)
    for index, row in stock_df.iterrows():
        if 'bj' in row["code"]:
            break
        print(f'processing {row["code"]} {row["code_name"]}')
        df_code = bs.query_history_k_data_plus(row["code"], self.fields,
                                               start_date=self.date_start,
                                               end_date=self.date_end).get_data()
        df_code.to_csv(f'{self.output_dir}/{row["code"]}.{row["code_name"]}.csv', `index=False)`
    self.exit()

if name == 'main':

获取全部股票的日K线数据

mkdir('./stockdata/')
OUTPUT = './stockdata'
downloader = Downloader('./stockdata', date_start='2000-01-01')
downloader.run()