好的,以下是一个使用Python实现股票均线策略案例的简单示例:
import pandas as pd
import yfinance as yf
# 读取股票历史数据
stock_data = yf.download("AAPL", start="2020-01-01", end="2022-12-31")
# 计算每日收益率
stock_data["Return"] = stock_data["Close"].pct_change()
# 定义交易策略
def trading_strategy(data, stock_name, initial_investment):
# 计算短期和长期移动平均线
short_window = 50
long_window = 200
short_moving_average = data["Close"].rolling(window=short_window).mean()
long_moving_average = data["Close"].rolling(window=long_window).mean()
# 判断买入信号
if short_moving_average > long_moving_average:
if data["Cash"] > 0:
# 购买股票
data["Cash"] -= stock_data[stock_name].tail(1)["Close"][-1] * 0.01
data["Stock"] += stock_data[stock_name].tail(1)["Close"][-1] * 0.01
else:
pass
# 判断卖出信号
elif short_moving_average < long_moving_average:
if data["Stock"] > 0:
# 卖出股票
data["Cash"] += stock_data[stock_name].tail(1)["Close"][-1] * 0.01
data["Stock"] -= stock_data[stock_name].tail(1)["Close"][-1] * 0.01
else:
pass
# 模拟交易
for i in range(len(stock_data)-1):
# 计算每日收益
daily_return = (stock_data["Close"][i+1] - stock_data["Close"][i]) / stock_data["Close"][i]
# 更新模拟盘
trading_strategy(stock_data.iloc[i+1], "AAPL", initial_investment)
# 计算现金和股票余额
cash = stock_data.iloc[i+1]["Cash"]
stock = stock_data.iloc[i+1]["Stock"]
# 打印余额
print("Day {}: Cash = {}, Stock = {}".format(i+1, cash, stock))
# 计算总收益
total_return = (initial_investment + cash) / initial_investment
print("Total Return: {:.2%}".format(total_return))
在这个示例中,我们首先使用yfinance库下载了苹果公司的股票历史数据,然后计算了每日收益率。我们还定义了一个交易策略,该策略计算了短期和长期移动平均线,如果短期移动平均线高于长期移动平均线,则买入股票;如果短期移动平均线低于长期移动平均线,则卖出股票。最后,我们使用这个交易策略模拟交易,并计算了总收益。
请注意,这只是一个简单的示例,实际的股票交易可能需要考虑更多的因素,例如交易费用、滑点、市场波动性等。此外,这个示例也没有考虑任何风险控制策略,例如止损订单、对冲等。