目录标题
- 内容
- 说明
- 解题
- 量化金融的含义
- 量化交易策略
- 点击直接资料领取
内容
1·解释量化金融的含义,调研并给出至少 5种量化交易的策略或方法
2.完成Tushare Pro 的安装、注册,获取自己的 Token,查阅网站内的接口讲解和示例;
3通过Python 编程完成以下数据的统计:
(1)使用stock_basic 接口获取当前所有正常上市交易的股票列表,保存到“股票列表命名的excel文件中;
(2)分别调用平安银行、万科至少5年历史数据,并保存到 pingan、wanke 命名的excel 文件中,查阅为开盘价 High-最高价,Close-收盘价,Low-最低价Volume-成交量,Code-股票代码
(3)将日期设为行索引,用收盘价作为当天价格,分别绘制平安银行、万科股价走势图;
(4)将DataFrame格式的二维股票数据表格转换为Numpy格式的二维数组
(5)在一张画布中绘制两个子图
(6)在第一个子图中,通过 candlestick_ochl0)函数分别绘制平安银行、万科的K线图,设置图片标题为“K线图”,分别为横轴及纵轴添加标签
(7)在上一步K线图里,添加均线图,补上5日均线和10日均线图
(8)在第二个子图中,绘制成交量柱状图
说明
这是一位粉丝的作业,虽然现在现在java使用的多。为了避免对python知识的遗忘,我来做做看。
解题
现根据这个手册安装注册 https://tushare.pro/document/1?doc_id=38
ps:这个不同的结果有账户积分限制
量化金融的含义
量化金融是应用数学、统计学和计算机科学方法来解决金融问题的学科。它涉及到构建数学模型来分析市场行为、评估风险、定价证券、制定投资策略等。量化分析师通常使用历史数据和复杂的算法来预测市场趋势和价值。
量化交易策略
动量交易:基于历史价格和/或成交量的趋势来买卖证券。
配对交易:找到两个历史上价格走势相关的股票,当它们的价格偏离时买入一个卖出另一个,等待它们回归正常关系。
算法交易:使用算法和数学模型来执行大量订单,优化交易成本。
统计套利:识别并利用市场价格不一致的机会。
因子投资:基于预先确定的风险因素(如价值、规模、动量)来选择股票。
import tushare as ts
import pandas as pd# 设置Tushare token,您需要替换为您自己的token
token = 'YOUR_TUSHARE_TOKEN'
ts.set_token(token)
pro = ts.pro_api()# 获取股票列表
df_stock_list = pro.stock_basic(exchange='', list_status='L', fields='ts_code,symbol,name,area,industry,list_date')
df_stock_list.to_excel('股票列表.xlsx', index=False)
获取平安银行和万科的历史数据并保存
start_date = '20170101' # 设置开始日期
end_date = '20221231' # 设置结束日期# 获取平安银行的数据
df_pingan = pro.daily(ts_code='000001.SZ', start_date=start_date, end_date=end_date)
df_pingan.to_excel('pingan.xlsx', index=False)# 获取万科的数据
df_wanke = pro.daily(ts_code='000002.SZ', start_date=start_date, end_date=end_date)
df_wanke.to_excel('wanke.xlsx', index=False)
绘制股价走势图
import matplotlib.pyplot as plt
import matplotlib.dates as mdates# 为了绘图,将日期转换为datetime对象
df_pingan['trade_date'] = pd.to_datetime(df_pingan['trade_date'])
df_wanke['trade_date'] = pd.to_datetime(df_wanke['trade_date'])plt.figure(figsize=(10, 6))
plt.subplot(2, 1, 1)
plt.plot(df_pingan['trade_date'], df_pingan['close'], label='平安银行')
plt.title('平安银行股价走势')
plt.xlabel('日期')
plt.ylabel('收盘价')
plt.legend()plt.subplot(2, 1, 2)
plt.plot(df_wanke['trade_date'], df_wanke['close'], label='万科')
plt.title('万科股价走势')
plt.xlabel('日期')
plt.ylabel('收盘价')
plt.legend()plt.tight_layout()
plt.show()
DataFrame转换为Numpy数组
import numpy as np# 转换为Numpy数组
pingan_array = df_pingan.to_numpy()
wanke_array = df_wanke.to_numpy()
由于绘制K线图。以下是一个简化
import mplfinance as mpf# 设置日期为索引
df_pingan.set_index('trade_date', inplace=True)
df_wanke.set_index('trade_date', inplace=True)# 绘制平安银行的K线图
mpf.plot(df_pingan, type='candle', mav=(5, 10), volume=True, title='平安银行K线图', style='charles')# 绘制万科的K线图(在新窗口)
mpf.plot(df_wanke, type='candle', mav=(5, 10), volume=True, title='万科K线图', style='charles')
点击直接资料领取
如果你在学习python或者Java哪怕是C遇到问题都可以来给我留言,因为在学习初期新手总会走很多弯路,这个时候如果没有有个人来帮一把的话很容易就放弃了。身边很多这样的例子许多人学着学着就转了专业换了方向,不仅是自身问题还是没有正确的学习。所以作为一个过来人我希望有问题给我留言,说不上是帮助就是顺手敲几行字的事情。
这里有python,Java学习资料还有有有趣好玩的编程项目,更有难寻的各种资源。反正看看也不亏。