def __init__(self): ma = self.p.movav(self.data, period=self.p.avglength) over = btind.SumN(self.data > ma, period=self.p.sumlength) under = btind.SumN(self.data < ma, period=self.p.sumlength) self.lines.momentum = (over - under) / self.p.sumlength self.lines.slope = self.lines.momentum(0) - self.lines.momentum(-1) self.lines.zero = bt.LineNum(0)
def __init__(self): price = (self.data.close + self.data.high + self.data.low) / 3 vol_price = btind.SumN( price * self.data.volume, period=self.p.sumlength) / btind.SumN( self.data.volume + 1, period=self.p.sumlength) r2 = price + self.data.high - self.data.low s2 = price - self.data.high + self.data.low rslope = r2(0) - r2(-1) sslope = s2(0) - s2(-1) diff = vol_price(0) - vol_price(-1) resistance = btind.MovingAverageWilder(rslope, period=self.p.avglength) support = btind.MovingAverageWilder(sslope, period=self.p.avglength) difference = btind.MovingAverageWilder(diff, period=self.p.avglength) self.lines.final = (resistance + support + difference * 5) / 3 # self.lines.final = difference self.lines.zero = bt.LineNum(0)
def __init__(self): self.rsi = bt.ind.RSI(self.data.close, period=self.p.period) self.buy_sig = bt.indicators.CrossOver(self.rsi, bt.LineNum(self.p.upper)) self.sell_sig = bt.indicators.CrossDown(self.rsi, bt.LineNum(self.p.lower))
def __init__(self) -> None: super().__init__() self.rsi = StochRSI(self.data, period=30) self.crossover = bt.indicators.CrossOver(self.rsi, bt.LineNum(0.7)) self.crossdown = bt.indicators.CrossDown(self.rsi, bt.LineNum(0.3))
def __init__(self): c = self.data.close o = self.data.open self.k = (c > o) - (o > c) self.lines.count = bt.LineNum(0)