backtesting.py
1.0.0
استراتيجيات تداول الاختبار مع بيثون.
موقع المشروع + وثائق
$ 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
Kelly Criterion 0.6134
_strategy SmaCross(n1=10, n2=20)
_equity_curve Equ...
_trades Size EntryB...
dtype: object
ابحث عن المزيد من أمثلة الاستخدام في الوثائق.
قبل الإبلاغ عن الأخطاء أو النشر إلى لوحة المناقشة ، يرجى قراءة الإرشادات المساهمة ، وخاصة القسم المتعلق بصياغة تقارير الأخطاء المفيدة و ``` -تكوين الكود الخاص بك. نشكر لك!
انظر البدائل.