|
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__": |
|
|
|
df = yf.download('RELIANCE.NS', period='1yr', interval='15m') |