Skip to content

Commit eca775a

Browse files
committed
fix rsi division by zero corner case
1 parent d6ac7ea commit eca775a

File tree

1 file changed

+5
-1
lines changed
  • pub/bfx/src/Bfx/Indicator

1 file changed

+5
-1
lines changed

pub/bfx/src/Bfx/Indicator/Rsi.hs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,11 @@ mkRsiConduit mkCandle (RsiPeriod natPer) =
8585
let nextAvgLoss = (prevAvgLoss * (fixPer - 1) + loss) / fixPer
8686
let nextAvgGain = (prevAvgGain * (fixPer - 1) + gain) / fixPer
8787
let rs = nextAvgGain / nextAvgLoss
88-
let rsi = Rsi $ 100 - (100 / (1 + rs))
88+
let rsi =
89+
Rsi
90+
$ if nextAvgLoss == 0
91+
then 100
92+
else 100 - (100 / (1 + rs))
8993
C.yield (c, rsi)
9094
pure $ Left (nextAvgLoss, nextAvgGain)
9195
)

0 commit comments

Comments
 (0)