Skip to content

Commit 1b49e0a

Browse files
committed
Add test for indicator scaling.
1 parent ec64e47 commit 1b49e0a

File tree

2 files changed

+6
-3
lines changed

2 files changed

+6
-3
lines changed

backtesting/lib.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -549,8 +549,7 @@ def run(self, **kwargs) -> pd.Series:
549549

550550
indicators = result['_strategy']._indicators
551551
for indicator in indicators:
552-
is_overlay = indicator._opts['overlay']
553-
if np.all(is_overlay):
552+
if indicator._opts['overlay']:
554553
indicator /= self._fractional_unit
555554

556555
return result

backtesting/test/_test.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -934,10 +934,14 @@ def test_FractionalBacktest(self):
934934
self.assertEqual(stats['# Trades'], 41)
935935
trades = stats['_trades']
936936
self.assertEqual(len(trades), 41)
937-
first_trade = trades[['Size', 'EntryPrice', 'ExitPrice']].head(1)
937+
first_trade = trades[['Size', 'EntryPrice', 'ExitPrice', 'EntryBar']].head(1)
938938
self.assertEqual(first_trade['Size'][0], -0.422493) # Fractional value -422493
939939
self.assertAlmostEqual(first_trade['EntryPrice'][0], 236.69) # Fractional value 0.000236689
940940
self.assertAlmostEqual(first_trade['ExitPrice'][0], 261.7) # Fractional value 0.000261699
941+
indicators = stats['_strategy']._indicators
942+
self.assertEqual(len(indicators), 2)
943+
self.assertAlmostEqual(indicators[0][first_trade['EntryBar'][0]], 234.14, places=2) # Fractional value 0.000234139
944+
self.assertAlmostEqual(indicators[1][first_trade['EntryBar'][0]], 237.07, places=2) # Fractional value 0.000237067
941945

942946
def test_MultiBacktest(self):
943947
btm = MultiBacktest([GOOG, EURUSD, BTCUSD], SmaCross, cash=100_000)

0 commit comments

Comments
 (0)