使用Python回测交易策略
项目描述
Backtesting.py
使用 Python 进行回测交易策略。
安装
$ pip install backtesting
用法
from backtesting import Backtest, Strategy
from backtesting.lib import crossover
from backtesting.test import SMA, GOOG
class SmaCross(Strategy):
    def init(self):
        price = self.data.Close
        self.ma1 = self.I(SMA, price, 10)
        self.ma2 = self.I(SMA, price, 20)
    def next(self):
        if crossover(self.ma1, self.ma2):
            self.buy()
        elif crossover(self.ma2, self.ma1):
            self.sell()
bt = Backtest(GOOG, SmaCross, commission=.002,
              exclusive_orders=True)
stats = bt.run()
bt.plot()
结果
Start                     2004-08-19 00:00:00
End                       2013-03-01 00:00:00
Duration                   3116 days 00:00:00
Exposure Time [%]                       94.27
Equity Final [$]                     68935.12
Equity Peak [$]                      68991.22
Return [%]                             589.35
Buy & Hold Return [%]                  703.46
Return (Ann.) [%]                       25.42
Volatility (Ann.) [%]                   38.43
Sharpe Ratio                             0.66
Sortino Ratio                            1.30
Calmar Ratio                             0.77
Max. Drawdown [%]                      -33.08
Avg. Drawdown [%]                       -5.58
Max. Drawdown Duration      688 days 00:00:00
Avg. Drawdown Duration       41 days 00:00:00
# Trades                                   93
Win Rate [%]                            53.76
Best Trade [%]                          57.12
Worst Trade [%]                        -16.63
Avg. Trade [%]                           1.96
Max. Trade Duration         121 days 00:00:00
Avg. Trade Duration          32 days 00:00:00
Profit Factor                            2.13
Expectancy [%]                           6.91
SQN                                      1.78
_strategy              SmaCross(n1=10, n2=20)
_equity_curve                          Equ...
_trades                       Size  EntryB...
dtype: object
在 文档 中找到更多用法示例。
特性
- 简单、文档完善的 API
- 闪电般的执行速度
- 内置优化器
- 组合基础策略和工具库
- 指标库无关
- 支持任何带有蜡烛图数据的金融工具
- 详细的输出结果
- 交互式可视化
替代方案
有关替代 Python 回测框架和相关软件包的列表,请参阅 alternatives.md。
项目详情
    
       关闭
    
      
        
    
    
  
Backtesting-0.3.3.tar.gz的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | b2511993ae16596c06d3cfd3d42a662ca69d51a95a604b85705fb1a900e3a798 | |
| MD5 | 7efd9206aa6c08eaf58e017e1bd4a293 | |
| BLAKE2b-256 | 9741fb91644ac11bfcd72212fcd187c5388d402b4f8f9ed4a35d0cd61c2c8e1a |