
今天我突发奇想,想用Python写一个最简单的股票量化交易策略,只闻其声,未见其影,总是听人们说量化交易代码什么什么的,感觉很神秘的样子,现在让我们看看它的庐山真面目吧:
import pandas as pd
import yfinance as yf
# 下载股票数据
data = yf.download(“AAPL”, start=”2020-01-01″, end=”2021-12-31″)
# 计算股票收益率和移动平均线
data[‘returns’] = data[‘Adj Close’].pct_change()
data[‘ma50’] = data[‘Adj Close’].rolling(window=50).mean()
data[‘ma200’] = data[‘Adj Close’].rolling(window=200).mean()
# 定义交易信号
def get_signal(row):
if row[‘ma50’] > row[‘ma200’]:
return 1
else:
return -1
# 计算交易信号
data[‘signal’] = data.apply(get_signal, axis=1)
# 计算每天的收益率
data[‘strategy_returns’] = data[‘signal’].shift(1) * data[‘returns’]
# 计算累计收益率和基准收益率
data[‘cum_strategy_returns’] = (data[‘strategy_returns’] + 1).cumprod()
data[‘cum_returns’] = (data[‘returns’] + 1).cumprod()
# 绘制累计收益曲线和基准收益曲线
data[[‘cum_strategy_returns’, ‘cum_returns’]].plot()
下面我对以上代码做个简要的说明:
代码实现了一个简单的股票交易策略,基于股票的50日和200日移动平均线,当短期均线上穿长期均线时,产生买入信号,当短期均线下穿长期均线时,产生卖出信号。运用这个策略,我们可以计算出每天的收益率,并绘制出策略累计收益曲线和基准收益曲线,以便于策略的评估和比较。
当然,这只是一个简单的示例,如果您对量化交易感兴趣,可以深入的学习一下。

发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/80981
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!