Stockcxx / src /classes /ScreenipyTA.py
jarvisx17's picture
Upload 46 files
9bf26a6 verified
import numpy as np
import os
if 'STREAMLIT_APP' in os.environ:
import pandas_ta as talib
print('[+] Importing pandas_ta as we are running on Streamlit cloud app')
else:
try:
import talib
except ImportError:
import pandas_ta as talib
class ScreenerTA:
@staticmethod
def EMA(close, timeperiod):
try:
return talib.ema(close,timeperiod)
except Exception as e:
return talib.EMA(close,timeperiod)
@staticmethod
def SMA(close, timeperiod):
try:
return talib.sma(close,timeperiod)
except Exception as e:
return talib.SMA(close,timeperiod)
@staticmethod
def MA(close, timeperiod):
try:
return talib.ma(close,timeperiod)
except Exception as e:
return talib.MA(close,timeperiod)
@staticmethod
def MACD(close, fast, slow, signal):
try:
return talib.macd(close,fast,slow,signal)
except Exception as e:
return talib.MACD(close,fast,slow,signal)
@staticmethod
def RSI(close, timeperiod):
try:
return talib.rsi(close,timeperiod)
except Exception as e:
return talib.RSI(close,timeperiod)
@staticmethod
def CCI(high, low, close, timeperiod):
try:
return talib.cci(high, low, close,timeperiod)
except Exception as e:
return talib.CCI(high, low, close,timeperiod)
@staticmethod
def CDLMORNINGSTAR(open, high, low, close):
try:
try:
return talib.cdl_pattern(open,high,low,close,'morningstar').tail(1).values[0][0] != 0
except Exception as e:
return talib.CDLMORNINGSTAR(open,high,low,close).tail(1).item() != 0
except AttributeError:
return False
@staticmethod
def CDLMORNINGDOJISTAR(open, high, low, close):
try:
try:
return talib.cdl_pattern(open,high,low,close,'morningdojistar').tail(1).values[0][0] != 0
except Exception as e:
return talib.CDLMORNINGDOJISTAR(open,high,low,close).tail(1).item() != 0
except AttributeError:
return False
@staticmethod
def CDLEVENINGSTAR(open, high, low, close):
try:
try:
return talib.cdl_pattern(open,high,low,close,'eveningstar').tail(1).values[0][0] != 0
except Exception as e:
return talib.CDLEVENINGSTAR(open,high,low,close).tail(1).item() != 0
except AttributeError:
return False
@staticmethod
def CDLEVENINGDOJISTAR(open, high, low, close):
try:
try:
return talib.cdl_pattern(open,high,low,close,'eveningdojistar').tail(1).values[0][0] != 0
except Exception as e:
return talib.CDLEVENINGDOJISTAR(open,high,low,close).tail(1).item() != 0
except AttributeError:
return False
@staticmethod
def CDLLADDERBOTTOM(open, high, low, close):
try:
try:
return talib.cdl_pattern(open,high,low,close,'ladderbottom').tail(1).values[0][0] != 0
except Exception as e:
return talib.CDLLADDERBOTTOM(open,high,low,close).tail(1).item() != 0
except AttributeError:
return False
@staticmethod
def CDL3LINESTRIKE(open, high, low, close):
try:
try:
return talib.cdl_pattern(open,high,low,close,'3linestrike').tail(1).values[0][0] != 0
except Exception as e:
return talib.CDL3LINESTRIKE(open,high,low,close).tail(1).item() != 0
except AttributeError:
return False
@staticmethod
def CDL3BLACKCROWS(open, high, low, close):
try:
try:
return talib.cdl_pattern(open,high,low,close,'3blackcrows').tail(1).values[0][0] != 0
except Exception as e:
return talib.CDL3BLACKCROWS(open,high,low,close).tail(1).item() != 0
except AttributeError:
return False
@staticmethod
def CDL3INSIDE(open, high, low, close):
try:
try:
return talib.cdl_pattern(open,high,low,close,'3inside').tail(1).values[0][0] != 0
except Exception as e:
return talib.CDL3INSIDE(open,high,low,close).tail(1).item() != 0
except AttributeError:
return False
@staticmethod
def CDL3OUTSIDE(open, high, low, close):
try:
try:
return talib.cdl_pattern(open,high,low,close,'3outside').tail(1).values[0][0]
except Exception as e:
return talib.CDL3OUTSIDE(open,high,low,close).tail(1).item() != 0
except AttributeError:
return False
@staticmethod
def CDL3WHITESOLDIERS(open, high, low, close):
try:
try:
return talib.cdl_pattern(open,high,low,close,'3whitesoldiers').tail(1).values[0][0] != 0
except Exception as e:
return talib.CDL3WHITESOLDIERS(open,high,low,close).tail(1).item() != 0
except AttributeError:
return False
@staticmethod
def CDLHARAMI(open, high, low, close):
try:
try:
return talib.cdl_pattern(open,high,low,close,'harami').tail(1).values[0][0] != 0
except Exception as e:
return talib.CDLHARAMI(open,high,low,close).tail(1).item() != 0
except AttributeError:
return False
@staticmethod
def CDLHARAMICROSS(open, high, low, close):
try:
try:
return talib.cdl_pattern(open,high,low,close,'haramicross').tail(1).values[0][0] != 0
except Exception as e:
return talib.CDLHARAMICROSS(open,high,low,close).tail(1).item() != 0
except AttributeError:
return False
@staticmethod
def CDLMARUBOZU(open, high, low, close):
try:
try:
return talib.cdl_pattern(open,high,low,close,'marubozu').tail(1).values[0][0] != 0
except Exception as e:
return talib.CDLMARUBOZU(open,high,low,close).tail(1).item() != 0
except AttributeError:
return False
@staticmethod
def CDLHANGINGMAN(open, high, low, close):
try:
try:
return talib.cdl_pattern(open,high,low,close,'hangingman').tail(1).values[0][0] != 0
except Exception as e:
return talib.CDLHANGINGMAN(open,high,low,close).tail(1).item() != 0
except AttributeError:
return False
@staticmethod
def CDLHAMMER(open, high, low, close):
try:
try:
return talib.cdl_pattern(open,high,low,close,'hammer').tail(1).values[0][0] != 0
except Exception as e:
return talib.CDLHAMMER(open,high,low,close).tail(1).item() != 0
except AttributeError:
return False
@staticmethod
def CDLINVERTEDHAMMER(open, high, low, close):
try:
try:
return talib.cdl_pattern(open,high,low,close,'invertedhammer').tail(1).values[0][0] != 0
except Exception as e:
return talib.CDLINVERTEDHAMMER(open,high,low,close).tail(1).item() != 0
except AttributeError:
return False
@staticmethod
def CDLSHOOTINGSTAR(open, high, low, close):
try:
try:
return talib.cdl_pattern(open,high,low,close,'shootingstar').tail(1).values[0][0] != 0
except Exception as e:
return talib.CDLSHOOTINGSTAR(open,high,low,close).tail(1).item() != 0
except AttributeError:
return False
@staticmethod
def CDLDRAGONFLYDOJI(open, high, low, close):
try:
try:
return talib.cdl_pattern(open,high,low,close,'dragonflydoji').tail(1).values[0][0] != 0
except Exception as e:
return talib.CDLDRAGONFLYDOJI(open,high,low,close).tail(1).item() != 0
except AttributeError:
return False
@staticmethod
def CDLGRAVESTONEDOJI(open, high, low, close):
try:
try:
return talib.cdl_pattern(open,high,low,close,'gravestonedoji').tail(1).values[0][0] != 0
except Exception as e:
return talib.CDLGRAVESTONEDOJI(open,high,low,close).tail(1).item() != 0
except AttributeError:
return False
@staticmethod
def CDLDOJI(open, high, low, close):
try:
try:
return talib.cdl_pattern(open,high,low,close,'doji').tail(1).values[0][0] != 0
except Exception as e:
return talib.CDLDOJI(open,high,low,close).tail(1).item() != 0
except AttributeError:
return False
@staticmethod
def CDLENGULFING(open, high, low, close):
try:
try:
return talib.cdl_pattern(open,high,low,close,'engulfing').tail(1).values[0][0]
except Exception as e:
return talib.CDLENGULFING(open,high,low,close).tail(1).item() != 0
except AttributeError:
return False