Skip to content

Commit e9eff83

Browse files
author
Siddharta Govindaraj
committed
Extract conditional to method
1 parent 72e5ead commit e9eff83

File tree

1 file changed

+16
-2
lines changed

1 file changed

+16
-2
lines changed

stock_alerter/stock.py

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,18 @@ def _get_closing_price_list(self, on_date, num_days):
4949
break
5050
return closing_price_list
5151

52+
def _is_short_term_crossover_below_to_above(self, prev_short_term_ma,
53+
prev_long_term_ma,
54+
short_term_ma,
55+
long_term_ma):
56+
return prev_long_term_ma > prev_short_term_ma and long_term_ma < short_term_ma
57+
58+
def _is_short_term_crossover_above_to_below(self, prev_short_term_ma,
59+
prev_long_term_ma,
60+
short_term_ma,
61+
long_term_ma):
62+
return prev_long_term_ma < prev_short_term_ma and long_term_ma > short_term_ma
63+
5264
def get_crossover_signal(self, on_date):
5365
NUM_DAYS = self.LONG_TERM_TIMESPAN + 1
5466
closing_price_list = self._get_closing_price_list(on_date, NUM_DAYS)
@@ -70,10 +82,12 @@ def get_crossover_signal(self, on_date):
7082
prev_short_term_ma = sum([update.price
7183
for update in prev_short_term_series])/self.SHORT_TERM_TIMESPAN
7284

73-
if prev_long_term_ma > prev_short_term_ma and long_term_ma < short_term_ma:
85+
if self._is_short_term_crossover_below_to_above(prev_short_term_ma, prev_long_term_ma,
86+
short_term_ma, long_term_ma):
7487
return StockSignal.buy
7588

76-
if prev_long_term_ma < prev_short_term_ma and long_term_ma > short_term_ma:
89+
if self._is_short_term_crossover_above_to_below(prev_short_term_ma, prev_long_term_ma,
90+
short_term_ma, long_term_ma):
7791
return StockSignal.sell
7892

7993
return StockSignal.neutral

0 commit comments

Comments
 (0)