OnurKerimoglu commited on
Commit
5df6537
·
1 Parent(s): f680f62

technical_analysis: minor bug fixes, return df

Browse files
Files changed (1) hide show
  1. src/technical_analysis.py +12 -9
src/technical_analysis.py CHANGED
@@ -32,10 +32,6 @@ class TechnicalAnalysis():
32
  debug : bool, optional, default: False
33
  whether run in debug mode, so that logging should be produced at debug level
34
  """
35
- self.ticker = ticker
36
- self.fetchperiodinweeks = fetchperiodinweeks
37
- self.plot_ta = plot_ta
38
-
39
  # set up logging
40
  if debug:
41
  self.logger_level = logging.DEBUG
@@ -44,6 +40,11 @@ class TechnicalAnalysis():
44
  self.logger = logging.getLogger(__name__)
45
  logging.basicConfig(level=self.logger_level) # filename='TechnicalAnalysis.log',
46
 
 
 
 
 
 
47
  def run(
48
  self
49
  ) -> None:
@@ -69,7 +70,7 @@ class TechnicalAnalysis():
69
  'Indices': ['RSI', 'StochOsc'],
70
  'Trend': ['MACD', 'MACDsig', 'MACDdif']}
71
  )
72
-
73
 
74
  def fetch_data(
75
  self
@@ -93,7 +94,7 @@ class TechnicalAnalysis():
93
  """
94
 
95
  period_start = dt.datetime.now() - dt.timedelta(weeks=self.fetchperiodinweeks)
96
- self.logger.info(f'Fetching price data for {ticker}')
97
  try:
98
  df = yf.download(
99
  self.ticker,
@@ -110,9 +111,9 @@ class TechnicalAnalysis():
110
  # get rid of the redundant ticker column
111
  df.columns = df.columns.droplevel('Ticker')
112
  self.logger.debug(df.head(10))
113
- self.logger.info(f'Fetched {df.shape[0]} rows for {ticker}')
114
  else:
115
- raise Exception(f'Failed to fetch data for {ticker}')
116
 
117
  return df
118
 
@@ -213,6 +214,7 @@ class TechnicalAnalysis():
213
  colstoplot)
214
  plt.tight_layout()
215
  plt.savefig(os.path.join('plots', f'{self.ticker}.png'))
 
216
 
217
  def plot_stock_metrics_ax(
218
  self,
@@ -272,6 +274,7 @@ class TechnicalAnalysis():
272
 
273
  if __name__ == '__main__':
274
  ticker = 'GOOG'
275
- ta = TechnicalAnalysis(ticker, debug=False).run()
 
276
 
277
 
 
32
  debug : bool, optional, default: False
33
  whether run in debug mode, so that logging should be produced at debug level
34
  """
 
 
 
 
35
  # set up logging
36
  if debug:
37
  self.logger_level = logging.DEBUG
 
40
  self.logger = logging.getLogger(__name__)
41
  logging.basicConfig(level=self.logger_level) # filename='TechnicalAnalysis.log',
42
 
43
+ self.ticker = ticker
44
+ self.fetchperiodinweeks = fetchperiodinweeks
45
+ self.plot_ta = plot_ta
46
+ self.logger.info(f'Initialized TechnicalAnalysis object for ticker: {ticker}')
47
+
48
  def run(
49
  self
50
  ) -> None:
 
70
  'Indices': ['RSI', 'StochOsc'],
71
  'Trend': ['MACD', 'MACDsig', 'MACDdif']}
72
  )
73
+ return self.df
74
 
75
  def fetch_data(
76
  self
 
94
  """
95
 
96
  period_start = dt.datetime.now() - dt.timedelta(weeks=self.fetchperiodinweeks)
97
+ self.logger.info(f'Fetching price data for {self.ticker}')
98
  try:
99
  df = yf.download(
100
  self.ticker,
 
111
  # get rid of the redundant ticker column
112
  df.columns = df.columns.droplevel('Ticker')
113
  self.logger.debug(df.head(10))
114
+ self.logger.info(f'Fetched {df.shape[0]} rows for {self.ticker}')
115
  else:
116
+ raise Exception(f'Failed to fetch data for {self.ticker}')
117
 
118
  return df
119
 
 
214
  colstoplot)
215
  plt.tight_layout()
216
  plt.savefig(os.path.join('plots', f'{self.ticker}.png'))
217
+ plt.close()
218
 
219
  def plot_stock_metrics_ax(
220
  self,
 
274
 
275
  if __name__ == '__main__':
276
  ticker = 'GOOG'
277
+ df = TechnicalAnalysis(ticker, debug=False).run()
278
+ print(f'columns: {df.columns}')
279
 
280