• 大小: 13KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-04-10
  • 语言: Python
  • 标签:

资源简介

使用多层LSTM单元的RNN模型 可选的多股票嵌入预测股票市场价格。

资源截图

代码片段和文件信息

“““
Fetch the daily stock prices from Google Finance for stocks in S & P 500.
@author: lilianweng
“““
import click
import os
import pandas as pd
import random
import time
import urllib2

from BeautifulSoup import BeautifulSoup
from datetime import datetime

DATA_DIR = “data“
RANDOM_SLEEP_TIMES = (1 5)

# This repo “github.com/datasets/s-and-p-500-companies“ has some other information about
# S & P 500 companies.
SP500_LIST_URL = “https://raw.githubusercontent.com/datasets/s-and-p-500-companies/master/data/constituents-financials.csv“
SP500_LIST_PATH = os.path.join(DATA_DIR “constituents-financials.csv“)


def _download_sp500_list():
    if os.path.exists(SP500_LIST_PATH):
        return

    f = urllib2.urlopen(SP500_LIST_URL)
    print “Downloading ...“ SP500_LIST_URL
    with open(SP500_LIST_PATH ‘w‘) as fin:
        print >> fin f.read()
    return


def _load_symbols():
    _download_sp500_list()
    df_sp500 = pd.read_csv(SP500_LIST_PATH)
    df_sp500.sort(‘Market Cap‘ ascending=False inplace=True)
    stock_symbols = df_sp500[‘Symbol‘].unique().tolist()
    print “Loaded %d stock symbols“ % len(stock_symbols)
    return stock_symbols


def fetch_prices(symbol out_name):
    “““
    Fetch daily stock prices for stock ‘symbol‘ since 1980-01-01.

    Args:
        symbol (str): a stock abbr. symbol like “GOOG“ or “AAPL“.

    Returns: a bool whether the fetch is succeeded.
    “““
    # Format today‘s date to match Google‘s finance history api.
    now_datetime = datetime.now().strftime(“%b+%d+%Y“)

    base_URL = “https://finance.google.com/finance/historical?output=csv&q={0}&startdate=Jan+1%2C+1980&enddate={1}“
    symbol_url = base_URL.format(
        urllib2.quote(symbol)
        urllib2.quote(now_datetime ‘+‘)
    )
    print “Fetching {} ...“.format(symbol)
    print symbol_url

    try:
        f = urllib2.urlopen(symbol_url)
        with open(out_name ‘w‘) as fin:
            print >> fin f.read()
    except urllib2.HTTPError:
        print “Failed when fetching {}“.format(symbol)
        return False

    data = pd.read_csv(out_name)
    if data.empty:
        print “Remove {} because the data set is empty.“.format(out_name)
        os.remove(out_name)
    else:
        dates = data.iloc[:0].tolist()
        print “# Fetched rows: %d [%s to %s]“ % (data.shape[0] dates[-1] dates[0])

    # Take a rest
    sleep_time = random.randint(*RANDOM_SLEEP_TIMES)
    print “Sleeping ... %ds“ % sleep_time
    time.sleep(sleep_time)
    return True


@click.command(help=“Fetch stock prices data“)
@click.option(‘--continued‘ is_flag=True)
def main(continued):
    random.seed(time.time())
    num_failure = 0

    # This is S&P 500 index
    #fetch_prices(‘INDEXSP%3A.INX‘)

    symbols = _load_symbols()
    for idx sym in enumerate(symbols):
        out_name = os.path.join(DATA_DIR sym + “.csv“)
        if continued and os.path.exists(out_name):
            print “Fetched“ sym
            continue

        succeeded = fetch_pri

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-03-13 07:08  stock-rnn-master\
     文件         117  2018-03-13 07:08  stock-rnn-master\.gitignore
     文件        2303  2018-03-13 07:08  stock-rnn-master\README.md
     目录           0  2018-03-13 07:08  stock-rnn-master\data\
     文件           0  2018-03-13 07:08  stock-rnn-master\data\.placeholder
     文件        3217  2018-03-13 07:08  stock-rnn-master\data_fetcher.py
     文件        2555  2018-03-13 07:08  stock-rnn-master\data_model.py
     文件        3849  2018-03-13 07:08  stock-rnn-master\main.py
     文件       13033  2018-03-13 07:08  stock-rnn-master\model_rnn.py
     目录           0  2018-03-13 07:08  stock-rnn-master\scripts\
     文件        2780  2018-03-13 07:08  stock-rnn-master\scripts\build_graph.py
     文件         659  2018-03-13 07:08  stock-rnn-master\scripts\config.py
     文件        1131  2018-03-13 07:08  stock-rnn-master\scripts\restore_model.py
     文件        4455  2018-03-13 07:08  stock-rnn-master\scripts\train_model.py

评论

共有 条评论