编写一段由5日均线与10日均线组合而成的量化交易程序
时间: 2023-03-02 22:08:36 浏览: 356
以下是一个简单的Python程序,它使用5日和10日均线交叉来进行交易决策:
```
import yfinance as yf
# 获取股票数据
stock = yf.Ticker('AAPL')
df = stock.history(period='1y')
# 计算5日均线和10日均线
df['MA5'] = df['Close'].rolling(window=5).mean()
df['MA10'] = df['Close'].rolling(window=10).mean()
# 初始化交易状态
has_position = False
# 开始循环交易
for i in range(10, len(df)):
# 获取当前股价和均线数据
current_price = df['Close'][i]
previous_price = df['Close'][i-1]
ma5 = df['MA5'][i]
ma10 = df['MA10'][i]
previous_ma5 = df['MA5'][i-1]
previous_ma10 = df['MA10'][i-1]
# 如果5日均线上穿10日均线,买入股票
if (ma5 > ma10) and (previous_ma5 <= previous_ma10) and not has_position:
print('Buy at', current_price)
has_position = True
# 如果5日均线下穿10日均线,卖出股票
elif (ma5 < ma10) and (previous_ma5 >= previous_ma10) and has_position:
print('Sell at', current_price)
has_position = False
```
此程序使用Yahoo Finance的Python API获取AAPL(苹果公司)的股票历史数据,并计算5日均线和10日均线。然后,它通过循环遍历每个交易日的股价和均线数据来执行交易决策。如果5日均线上穿10日均线并且当前没有持仓,则会买入股票。如果5日均线下穿10日均线并且当前持有头寸,则会卖出股票。程序输出交易时的股价和交易类型(买入或卖出)。请注意,此程序没有考虑手续费、滑点等交易成本因素,因此实际交易中可能需要进一步改进。
阅读全文