【DS】Python FinTech

目录

  1. 简介
  2. 金融相关
  3. 股票

1.简介

(1)量化金融分类

  • 金融量化策略建模
三大模块:选股/择时/风控
分析方法:定性(调研)+定量(成本低/但有数据得不到)
  • 金融产品建模(期权/债券/股票/贷款/信用欺诈)

(2)金融数据分析流程

  • 数据采集
A股:上交所(公司报告-年报-财务报告)/深交所/Tushare/万矿
美股:USSEC/Nasdaq/google/yahoo/quandl/SimFin
其他API: AlphaVantage
爬虫
  • 数据预处理
  • 数据可视化
  • 数据分析
  • 决策
量化平台:优矿/RiceQuant/万矿

(3)复盘思路

问题->建模->看是否数据遗漏有无影响->复盘->找专家,找出问题是什么->建模->提升

2.金融相关

(1)金融理论

  • 现代组合理论MPT
  • 马科维茨有效前沿图形
无风险+有风险效用最大化
风险+风险效用最大化
风险+风险最小风险
无风险+双风险最优组合

(2)三大报表

  • 损益表Profit&Loss Statement
一段时期内收到多少钱
  • 资产负债表Balance Sheet
资产=负债+所有者权益
  • 现金流量表Cash Flow Statement
一段时期内现金流

(3)标准报表 vs 精细化报表

标准化报表(会损失数据)

精细化原始报表(SEC或SinFinFuse)

3.股票

# 所有依赖包
!pip install tushare
import tushare as ts
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import pickle

# 行列显示设置
%matplotlib inline
plt.style.use('ggplot')
pd.set_option('display.max_columns',999)
pd.set_option('display.width',999)

# 设置选的股票总个数
selected_stocks_num = 10

(1)一只股票

获取数据: close价,成交量

好 = 价格高,成交量高
不好(买的人少,大部分人不认可高价,卖不出去) = 价格高,成交量低

分析: 七日移动平均

# 七日移动平均
df['ma7'] = df['close'].rolling(window=7).mean()

显示: 趋势图(close/七日移动平均),条形图(成交量),灯烛图(成交量)

# 趋势图
df['close'].plot()
df['ma7'].plot()

# 条形图
plt.bar(df.index,df['volume'])

# 灯烛图
from mpl_finance import candlestick_ohlc
candlestick_ohlc(axis,values,width,colordown,colorup,alpha)

存储/读取: csv

# 存储
df.to_csv('xx.csv')

# 读取
df = pd.read_csv('xx.csv',parse_dates=True,inde_col=0)

(2)多只股票(综合指数成分股信息)

几种方式:
中证指数看 成份列表/权重列表
爬虫获取沪深300
看基金经理买的股票分析出策略

获取数据: 沪深300股票合并大表(第一列日期,其他各列为股票close价格)

# get hs 300 list
def get_300_list():
    hs300_df = ts.get_hs300s()
    hs300_list = hs300_df['code'].tolist()
    # print(hs300_list[:selected_stocks_num])
    return hs300_list

# get all stocks data
def get_300_hisdata_close(hs300_list):
    df_300 = pd.DataFrame()
    for i in hs300_list[:selected_stocks_num]:
        print(i)
        df_temp = ts.get_hist_data(i)
        df_temp.rename(columns={'close':i},inplace=True)
        df_temp.drop(columns=['open', 'high', 'low', 'volume', 'price_change', 'p_change','ma5', 'ma10', 'ma20', 'v_ma5', 'v_ma10', 'v_ma20'],inplace=True)
        if df_300.empty:
            df_300 = df_temp
        else:
            df_300 = df_300.join(df_temp,how='outer')
    # save 300 stock data to csv
    # df_300.to_pickle('df_300.pkl')
    df_300.to_csv("df_300.csv")
    return df_300

# Method1: get newest list and history data
# df_300 = get_300_hisdata_close(get_300_list())

# Method2: read last time data from file
df_300 = pd.read_csv("df_300.csv",parse_dates=True,index_col=0)

分析: 分散投资(找Pearson相关性小的股票)

Pearson Correlation Coefficient:
0<r<1 x和y正相关关系, -1<r<0 和y负相关关系
r=1 x和y完全正相关, r=-1 x和y完全负相关, r=0 x和y不相关
0.8-1.0 极强相关, 0.6-0.8 强相关,
0.4-0.6 中等程度相关, 0.2-0.4 弱相关,
0.0-0.2 极弱相关或无相关

显示:热力图

利用热力图颜色代表股票之间的相关性
# plot trend
df_300.plot()

# plot heatmap
df_300_corr = df_300.corr()
# print(df_300_corr)
f, ax1 = plt.subplots(figsize = (6,4))
cmap = sns.cubehelix_palette(start = 1.5, rot = 3, gamma=0.8, as_cmap = True)
sns.heatmap(df_300_corr, linewidths = 0.05, ax = ax1, vmax=1, vmin=-1, cmap=cmap)
选出的前十个股票相关性热力图图示

  • 29
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在数据结构与算法中,DS算法通常指的是使用Python编写的数据结构和算法代码。Python是一种简洁而强大的编程语言,广泛应用于数据科学、机器学习和人工智能等领域。在Python中,有许多内置的数据结构和算法库,例如列表(list)、字典(dictionary)、集合(set)、排序算法、查找算法等等。 要学习DS算法的Python编程,你可以从以下几个方面入手: 1. 熟悉Python的基本语法和常用的数据结构,例如列表、字典等。这将为你在编写DS算法时提供基础。 2. 学习Python中的算法和数据结构库,例如numpy、pandas和scikit-learn等。这些库提供了许多高效的算法和数据结构实现,可以帮助你更快地解决问题。 3. 阅读和理解常见的数据结构和算法的Python实现。例如,你可以学习二叉树、链表、堆栈、队列等数据结构,以及排序算法、查找算法、图算法等。 4. 练习编写和调试DS算法的Python代码。可以通过在线编程平台、算法竞赛和编程练习题来提高自己的编程技能。 通过不断学习和实践,你将能够掌握DS算法的Python编程技巧,并提高自己的编码能力。希望以上信息对你有所帮助!<span class="em">1</span> #### 引用[.reference_title] - *1* [leetcode中国-DS-Algorithms-Python:DS-算法-Python](https://download.csdn.net/download/weixin_38603219/19905640)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值