股票浙商银行的探索性使用至少2种Python量化投资技术(一种趋势型如SMA、EMA,一种均值回归型如RSI、MFI)对数据进行测试的代码是
时间: 2024-02-22 16:01:36 浏览: 130
金色银行卡背景的浙商银行PPT模板
好的,以下是使用Python量化投资库backtrader进行探索性回测的代码示例,包括SMA和RSI两种指标,以浙商银行股票(股票代码为601916)为例:
```python
import backtrader as bt
import backtrader.feeds as btfeeds
from datetime import datetime
# 创建策略类
class MyStrategy(bt.Strategy):
params = (
('sma_period', 20), # SMA指标的时间周期
('rsi_period', 14), # RSI指标的时间周期
)
def __init__(self):
self.sma = bt.indicators.SMA(period=self.params.sma_period) # 创建SMA指标
self.rsi = bt.indicators.RSI(period=self.params.rsi_period) # 创建RSI指标
def next(self):
if self.sma > self.data.close:
self.buy() # 当SMA上穿股价时买入
elif self.sma < self.data.close:
self.sell() # 当SMA下穿股价时卖出
if self.rsi > 70:
self.sell() # 当RSI超过70时卖出
elif self.rsi < 30:
self.buy() # 当RSI低于30时买入
# 加载数据
cerebro = bt.Cerebro()
data = btfeeds.YahooFinanceData(dataname='601916.SS', fromdate=datetime(2010, 1, 1), todate=datetime(2021, 1, 1))
cerebro.adddata(data)
# 添加策略
cerebro.addstrategy(MyStrategy)
# 设置初始资金100000人民币
cerebro.broker.setcash(100000.0)
# 设置交易手续费为0.1%
cerebro.broker.setcommission(commission=0.001)
# 运行回测
cerebro.run()
# 输出回测结果
print('Final Portfolio Value: %.2f' % cerebro.broker.getvalue())
cerebro.plot()
```
在上面的代码中,使用了backtrader库来加载浙商银行股票数据、创建策略和运行回测。策略类中,使用了SMA和RSI两种指标进行交易决策。在回测时,设置了初始资金和交易手续费,并输出了回测结果和图表。
阅读全文