python股票分析实验报告 (python如何获得股票实时数据)

目标:在中国的股票市场上盈利,每周都有单个股票盈利2%,月总盈利超过2%

计划实现方式:Pycharm + Anaconda3 + Python3 + Django + AKShare + MongoDB

目前采用的实现方式:Pycharm + Anaconda3 + Python3 + Flask + AKShare

以后可能会用到MongoDB , SQLAlchemy ,baostock ,Tushare

机器学习 会在以后的实践中逐步用到。

当前细分目标

1、获取A股列表

2、根据A股列表获得股票的历史数据

3、自动获取新的股票数据,并追加到已经获取的历史数据中

4、判断条件,目前有:

MACD ,股票当日收盘情况,成交量,股票所在地区,所属行业,其他待完善

5、根据判断条件使用历史数据进行测试,获得盈利概率

采集数据

具体请参考代码:

import akshare as ak
import threading
import datetime
import os

# 获得深圳主板A股列表,每天获取一次不重复获取
# file_path 需要全路径,以 | 进行间隔
# indicator 可选参数 "A股列表", "B股列表", "AB股列表", "上市公司列表", "主板", "中小企业板", "创业板" 
def get_sz_a(file_path, indicator="A股列表"):
    today = datetime.datetime.today()
    file_name = "sz_a_" + today.strftime('%Y%m%d') + ".csv"
    if not os.path.exists(file_path):  # 如果路径不存在则创建
        os.makedirs(file_path)
    if os.path.exists(file_path + file_name):
        print("今日已经获取无需再次获取," + today.strftime('%Y%m%d'))
        return
    stock_info_sz_df = ak.stock_info_sz_name_code(indicator=indicator)
    stock_info_sz_df.to_csv(file_path + file_name, sep="|")
    print('获取深圳主板A股列表并存储为CSV!' + today.strftime('%Y%m%d'))
    return file_path + file_name


# 根据股票代码获取股票历史数据
# symbol 股票代码 需要前缀 sh 上海  sz 深圳,例如:sz300846
def get_stock_daily(file_path, symbol):
    stock_zh_a_daily_hfq_df = ak.stock_zh_a_daily(symbol=symbol)  # 返回不复权的数据
    file_name = symbol + '.csv'
    stock_zh_a_daily_hfq_df.to_csv(file_path + file_name)
    return file_path + file_name


# 追加股票信息到文件
# symbol 股票代码 需要前缀 sh 上海  sz 深圳,例如:sz300846
def add_stock_daily(file_path_name, symbol, trade_date):
    stock_zh_a_tick_163_df = ak.stock_zh_a_tick_163(code=symbol, trade_date=trade_date)
    stock_zh_a_tick_163_df.to_csv(path_or_buf=file_path_name, mode="a")
    return