File size: 1,481 Bytes
9a42782
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import yfinance as yf
from backtesting import Backtest

from strategies import SMC_test, SMC_ema, SMCStructure

def fetch(symbol, period, interval):
    df = yf.download(symbol, period=period, interval=interval)
    df.columns =df.columns.get_level_values(0)
    return df

def smc_plot_backtest(data, filename, swing_hl, **kwargs):
    bt = Backtest(data, SMC_test, **kwargs)
    bt.run(swing_hl=swing_hl)
    return bt.plot(filename=filename, open_browser=False)

def smc_ema_plot_backtest(data, filename, ema1, ema2, closecross, **kwargs):
    bt = Backtest(data, SMC_ema, **kwargs)
    bt.run(ema1=ema1, ema2=ema2, close_on_crossover=closecross)
    return bt.plot(filename=filename, open_browser=False)

def smc_structure_plot_backtest(data, filename, swing_hl, **kwargs):
    bt = Backtest(data, SMCStructure, **kwargs)
    bt.run(swing_window=swing_hl)
    return bt.plot(filename=filename, open_browser=False)

def smc_backtest(data, swing_hl, **kwargs):
    return Backtest(data, SMC_test, **kwargs).run(swing_hl=swing_hl)

def smc_ema_backtest(data, ema1, ema2, closecross, **kwargs):
    return Backtest(data, SMC_ema, **kwargs).run(ema1=ema1, ema2=ema2, close_on_crossover=closecross)

def smc_structure_backtest(data, swing_hl, **kwargs):
    return Backtest(data, SMCStructure, **kwargs).run(swing_hl=swing_hl)

if __name__ == "__main__":
    # data = fetch('RELIANCE.NS', period='1y', interval='15m')
    df = yf.download('RELIANCE.NS', period='1yr', interval='15m')