-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathcheckAdjustedClose.py
55 lines (40 loc) · 1.46 KB
/
checkAdjustedClose.py
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
from datetime import date, time
import backtrader as bt
from nsepy import get_history
from tradingschedule import lastclosingtime
nsepyclose = get_history(symbol="NIFTY 50",
start=date(2022, 4, 6),
end=date(2022, 4, 8),
index=True)["Close"].values[-1]
adjustedClose = False
fromdate = todate = lastclosingtime.date()
sessionstart = time(hour=9, minute=15)
sessionend = time(hour=15, minute=30)
class TestSt2(bt.Strategy):
def next(self):
self.cerebro.runstop()
def stop(self):
global adjustedClose, nsepyclose
if self.datas[0].close[0] == nsepyclose:
adjustedClose = True
tickers = ["NIFTY50_IND_NSE"]
while tickers:
t = tickers[:50]
tickers = tickers[50:]
cerebro = bt.Cerebro(runonce=False)
cerebro.addstrategy(TestSt2)
cerebro.addcalendar("NSE")
store = bt.stores.IBStore(port=7497, _debug=False)
cerebro.setbroker(store.getbroker())
for ticker in t:
data0 = store.getdata(dataname=ticker, fromdate=fromdate, todate=todate,
sessionstart=sessionstart,
sessionend=sessionend,
historical=True, timeframe=bt.TimeFrame.Days)
cerebro.adddata(data0)
try:
thestrats = cerebro.run(stdstats=False)
except Exception as e:
print(t[0])
if __name__ == '__main__':
print("Close Adjusted", adjustedClose)