打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
轻松学习Python数据分析,在A股市场中创建强大的交易策略
userphoto

2023.05.23 湖北

关注

以下是一个使用Python获取A股历史股价数据、计算指标并进行分析的简单示例:

import tushare as ts

import pandas as pd

import numpy as np

import matplotlib.pyplot as plt

# 获取股票历史价格数据

symbol = '600036.SH' # 以招商银行为例

start_date = '2010-01-01'

end_date = '2022-12-31'

df = ts.get_k_data(symbol, start=start_date, end=end_date)

# 计算移动平均线

n = 20 # 移动平均线周期

df['SMA'] = df['close'].rolling(n).mean()

# 计算指标

df['RSI'] = talib.RSI(df['close'].values, timeperiod=14)

df['MACD'], df['MACDsignal'], df['MACDhist'] = talib.MACD(df['close'].values, fastperiod=12, slowperiod=26, signalperiod=9)

# 生成交易信号

df['Signal'] = np.where(df['MACD'] > df['MACDsignal'], 1, -1)

df['Trade'] = df['Signal'].diff()

# 计算收益

df['Ret'] = np.log(df['close'] / df['close'].shift(1))

df['Strategy Ret'] = df['Ret'] * df['Trade'].shift(1)

df['Cumulative Ret'] = np.exp(df['Strategy Ret'].cumsum())

# 绘制资产曲线和指标图表

fig, ax = plt.subplots(2, 1, figsize=[12, 8])

ax[0].plot(df['date'], df['close'], label='股票价格')

ax[0].plot(df['date'], df['SMA'], label='20日移动平均线')

ax[1].plot(df['date'], df['RSI'], label='相对强弱指标(RSI)')

ax[2].plot(df['date'], df['MACD'], label='移动平均散度(MACD)')

ax[2].plot(df['date'], df['MACDsignal'], label='MACD信号线')

ax[2].bar(df['date'], df['MACDhist'], label='MACD柱状图')

ax[3].plot(df['date'], df['Cumulative Ret'], label='策略收益')

plt.legend()

plt.show()

这个代码块获取了招商银行的历史价格数据,并计算了几个基本指标(20日移动平均线、相对强弱指标、移动平均散度)。最后,该示例以移动平均散度指标为依据进行买卖决策,并绘制策略收益的资产曲线。请注意,这个示例仅仅是一个简单的演示,具体的交易策略需要更加复杂的算法以及对市场状况的精确分析。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
50题Matplotlib从入门到精通
利用 Python 分析了某化妆品企业的销售情况,我得出的结论是?
常见的8个概率分布公式和可视化
用Python语言对股票进行技术分析
Matplotlib数据可视化:柱状图与直方图
一次性掌握所有 Python 画图基础操作
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服