股票回测代码
时间: 2023-07-02 13:16:27 浏览: 182
股票回测的代码可以分为两部分:数据获取和回测策略实现。
数据获取部分可以使用各种金融数据API,例如聚宽、TuShare等。这里以聚宽API为例,代码如下:
```
import jqdatasdk as jq
jq.auth('账号', '密码')
# 获取沪深300指数的历史行情数据
def get_data(start_date, end_date):
index_code = '000300.XSHG'
q = jq.query(jq.finance.STK_EXCHANGE_TRADE_INFO.code, jq.finance.STK_EXCHANGE_TRADE_INFO.date,
jq.finance.STK_EXCHANGE_TRADE_INFO.open, jq.finance.STK_EXCHANGE_TRADE_INFO.high,
jq.finance.STK_EXCHANGE_TRADE_INFO.low, jq.finance.STK_EXCHANGE_TRADE_INFO.close,
jq.finance.STK_EXCHANGE_TRADE_INFO.volume, jq.finance.STK_EXCHANGE_TRADE_INFO.money)
q = q.filter(jq.finance.STK_EXCHANGE_TRADE_INFO.code == index_code)
q = q.filter(jq.finance.STK_EXCHANGE_TRADE_INFO.date >= start_date)
q = q.filter(jq.finance.STK_EXCHANGE_TRADE_INFO.date <= end_date)
df = jq.finance.run_query(q)
df.set_index('date', inplace=True)
return df
```
回测策略实现部分可以使用各种工具,例如backtrader、vnpy等。这里以backtrader为例,代码如下:
```
import backtrader as bt
class MyStrategy(bt.Strategy):
def __init__(self):
self.sma = bt.indicators.SimpleMovingAverage(self.data.close, period=20)
def next(self):
if self.data.close[0] > self.sma[0]:
self.buy()
elif self.data.close[0] < self.sma[0]:
self.sell()
start_date = '2010-01-01'
end_date = '2019-12-31'
data = bt.feeds.PandasData(dataname=get_data(start_date, end_date))
cerebro = bt.Cerebro()
cerebro.addstrategy(MyStrategy)
cerebro.adddata(data)
cerebro.run()
```
以上代码实现了一个简单的均线策略,当股票价格上穿20日均线时买入,下穿20日均线时卖出。回测时间段为2010年到2019年。
阅读全文
相关推荐
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![ipynb](https://img-home.csdnimg.cn/images/20250102104920.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)