def __generate_technical_indicators(self, close_values, high_values, low_values, open_values, volume_values): features = pd.DataFrame() features['short_sma'] = talib.SMA(close_values, 5) features['long_sma'] = talib.SMA(close_values, 20) features['sma_diff'] = features.long_sma - features.short_sma features['stochf0'] = talib.STOCHF(high=high_values, low=low_values, close=close_values)[0] features['stochf1'] = talib.STOCHF(high=high_values, low=low_values, close=close_values)[1] features['rsi'] = talib.RSI(close_values, 20) features['ad'] = talib.AD(high=high_values, low=low_values, close=close_values, volume=volume_values) features['dema'] = talib.DEMA(close_values) features['ema'] = talib.EMA(close_values) features['ht_trendiline'] = talib.HT_TRENDLINE(close_values) features['kama'] = talib.KAMA(close_values) features['midpoint'] = talib.MIDPOINT(close_values) features['midprice'] = talib.MIDPRICE(high=high_values, low=low_values) features['sar'] = talib.SAR(high=high_values, low=low_values) features['sarext'] = talib.SAREXT(high=high_values, low=low_values) features['adx'] = talib.ADX(high=high_values, low=low_values, close=close_values) features['adxr'] = talib.ADXR(high=high_values, low=low_values, close=close_values) features['apo'] = talib.APO(close_values) features['aroon0'] = talib.AROON(high=high_values, low=low_values)[0] features['aroon1'] = talib.AROON(high=high_values, low=low_values)[1] features['aroonosc'] = talib.AROONOSC(high=high_values, low=low_values) features['bop'] = talib.BOP(open=open_values, high=high_values, low=low_values, close=close_values) features['cmo'] = talib.CMO(close_values) features['dx'] = talib.DX(high=high_values, low=low_values, close=close_values) features['macdfix0'] = talib.MACDFIX(close_values)[0] features['macdfix1'] = talib.MACDFIX(close_values)[1] features['macdfix2'] = talib.MACDFIX(close_values)[2] features['mfi'] = talib.MFI(high=high_values, low=low_values, close=close_values, volume=volume_values) features['minus_di'] = talib.MINUS_DI(high=high_values, low=low_values, close=close_values) features['minus_dm'] = talib.MINUS_DM(high=high_values, low=low_values) features['mom'] = talib.MOM(close_values) features['plus_di'] = talib.PLUS_DI(high=high_values, low=low_values, close=close_values) features['plus_dm'] = talib.PLUS_DM(high=high_values, low=low_values) features['ppo'] = talib.PPO(close_values) features['roc'] = talib.ROC(close_values) features['stochf0'] = talib.STOCHF(high=high_values, low=low_values, close=close_values)[0] features['stochf1'] = talib.STOCHF(high=high_values, low=low_values, close=close_values)[1] features['stochrsi0'] = talib.STOCHRSI(close_values)[0] features['stochrsi1'] = talib.STOCHRSI(close_values)[1] # data_set['trix'] = talib.TRIX(close_values) features['ultosc'] = talib.ULTOSC(high=high_values, low=low_values, close=close_values) features['willr'] = talib.WILLR(high=high_values, low=low_values, close=close_values) features['adosc'] = talib.ADOSC(high=high_values, low=low_values, close=close_values, volume=volume_values) features['obv'] = talib.OBV(close_values, volume_values) features['ht_dcperiod'] = talib.HT_DCPERIOD(close_values) features['ht_dcphase'] = talib.HT_DCPHASE(close_values) features['ht_phasor0'] = talib.HT_PHASOR(close_values)[0] features['ht_phasor1'] = talib.HT_PHASOR(close_values)[1] features['ht_sine0'] = talib.HT_SINE(close_values)[0] features['ht_sine1'] = talib.HT_SINE(close_values)[1] features['ht_trendmode'] = talib.HT_TRENDMODE(close_values) features['atr'] = talib.ATR(high=high_values, low=low_values, close=close_values) features['trange'] = talib.TRANGE(high=high_values, low=low_values, close=close_values) features['CDL2CROWS'] = talib.CDL2CROWS(open=open_values, high=high_values, low=low_values, close=close_values) features['CDL3BLACKCROWS'] = talib.CDL3BLACKCROWS(open=open_values, high=high_values, low=low_values, close=close_values) features['CDL3INSIDE'] = talib.CDL3INSIDE(open=open_values, high=high_values, low=low_values, close=close_values) features['CDL3LINESTRIKE'] = talib.CDL3LINESTRIKE(open=open_values, high=high_values, low=low_values, close=close_values) features['CDL3OUTSIDE'] = talib.CDL3OUTSIDE(open=open_values, high=high_values, low=low_values, close=close_values) features['CDL3STARSINSOUTH'] = talib.CDL3STARSINSOUTH(open=open_values, high=high_values, low=low_values, close=close_values) features['CDL3WHITESOLDIERS'] = talib.CDL3WHITESOLDIERS(open=open_values, high=high_values, low=low_values, close=close_values) features['CDLABANDONEDBABY'] = talib.CDLABANDONEDBABY(open=open_values, high=high_values, low=low_values, close=close_values) features['CDLADVANCEBLOCK'] = talib.CDLADVANCEBLOCK(open=open_values, high=high_values, low=low_values, close=close_values) features['CDLBELTHOLD'] = talib.CDLBELTHOLD(open=open_values, high=high_values, low=low_values, close=close_values) features['CDLBREAKAWAY'] = talib.CDLBREAKAWAY(open=open_values, high=high_values, low=low_values, close=close_values) features['CDLCLOSINGMARUBOZU'] = talib.CDLCLOSINGMARUBOZU(open=open_values, high=high_values, low=low_values, close=close_values) features['CDLCONCEALBABYSWALL'] = talib.CDLCONCEALBABYSWALL(open=open_values, high=high_values, low=low_values, close=close_values) features['CDLCOUNTERATTACK'] = talib.CDLCOUNTERATTACK(open=open_values, high=high_values, low=low_values, close=close_values) features['CDLDARKCLOUDCOVER'] = talib.CDLDARKCLOUDCOVER(open=open_values, high=high_values, low=low_values, close=close_values) features['CDLDOJI'] = talib.CDLDOJI(open=open_values, high=high_values, low=low_values, close=close_values) features['CDLDOJISTAR'] = talib.CDLDOJISTAR(open=open_values, high=high_values, low=low_values, close=close_values) features['CDLDRAGONFLYDOJI'] = talib.CDLDRAGONFLYDOJI(open=open_values, high=high_values, low=low_values, close=close_values) features['CDLENGULFING'] = talib.CDLENGULFING(open=open_values, high=high_values, low=low_values, close=close_values) features['CDLEVENINGDOJISTAR'] = talib.CDLEVENINGDOJISTAR(open=open_values, high=high_values, low=low_values, close=close_values) features['CDLEVENINGSTAR'] = talib.CDLEVENINGSTAR(open=open_values, high=high_values, low=low_values, close=close_values) features['CDLGAPSIDESIDEWHITE'] = talib.CDLGAPSIDESIDEWHITE(open=open_values, high=high_values, low=low_values, close=close_values) features['CDLGRAVESTONEDOJI'] = talib.CDLGRAVESTONEDOJI(open=open_values, high=high_values, low=low_values, close=close_values) features['CDLHAMMER'] = talib.CDLHAMMER(open=open_values, high=high_values, low=low_values, close=close_values) features['CDLHANGINGMAN'] = talib.CDLHANGINGMAN(open=open_values, high=high_values, low=low_values, close=close_values) features['CDLHARAMI'] = talib.CDLHARAMI(open=open_values, high=high_values, low=low_values, close=close_values) features['CDLHARAMICROSS'] = talib.CDLHARAMICROSS(open=open_values, high=high_values, low=low_values, close=close_values) features['CDLHIGHWAVE'] = talib.CDLHIGHWAVE(open=open_values, high=high_values, low=low_values, close=close_values) features['CDLHIKKAKE'] = talib.CDLHIKKAKE(open=open_values, high=high_values, low=low_values, close=close_values) features['CDLHIKKAKEMOD'] = talib.CDLHIKKAKEMOD(open=open_values, high=high_values, low=low_values, close=close_values) features['CDLHOMINGPIGEON'] = talib.CDLHOMINGPIGEON(open=open_values, high=high_values, low=low_values, close=close_values) features['CDLIDENTICAL3CROWS'] = talib.CDLIDENTICAL3CROWS(open=open_values, high=high_values, low=low_values, close=close_values) features['CDLINNECK'] = talib.CDLINNECK(open=open_values, high=high_values, low=low_values, close=close_values) features['CDLINVERTEDHAMMER'] = talib.CDLINVERTEDHAMMER(open=open_values, high=high_values, low=low_values, close=close_values) features['CDLKICKING'] = talib.CDLKICKING(open=open_values, high=high_values, low=low_values, close=close_values) features['CDLKICKINGBYLENGTH'] = talib.CDLKICKINGBYLENGTH(open=open_values, high=high_values, low=low_values, close=close_values) features['CDLLADDERBOTTOM'] = talib.CDLLADDERBOTTOM(open=open_values, high=high_values, low=low_values, close=close_values) features['CDLLONGLEGGEDDOJI'] = talib.CDLLONGLEGGEDDOJI(open=open_values, high=high_values, low=low_values, close=close_values) features['CDLLONGLINE'] = talib.CDLLONGLINE(open=open_values, high=high_values, low=low_values, close=close_values) features['CDLMARUBOZU'] = talib.CDLMARUBOZU(open=open_values, high=high_values, low=low_values, close=close_values) features['CDLMATCHINGLOW'] = talib.CDLMATCHINGLOW(open=open_values, high=high_values, low=low_values, close=close_values) features['CDLMATHOLD'] = talib.CDLMATHOLD(open=open_values, high=high_values, low=low_values, close=close_values) features['CDLMORNINGDOJISTAR'] = talib.CDLMORNINGDOJISTAR(open=open_values, high=high_values, low=low_values, close=close_values) features['CDLMORNINGSTAR'] = talib.CDLMORNINGSTAR(open=open_values, high=high_values, low=low_values, close=close_values) features['CDLONNECK'] = talib.CDLONNECK(open=open_values, high=high_values, low=low_values, close=close_values) features['CDLPIERCING'] = talib.CDLPIERCING(open=open_values, high=high_values, low=low_values, close=close_values) features['CDLRICKSHAWMAN'] = talib.CDLRICKSHAWMAN(open=open_values, high=high_values, low=low_values, close=close_values) features['CDLRISEFALL3METHODS'] = talib.CDLRISEFALL3METHODS(open=open_values, high=high_values, low=low_values, close=close_values) features['CDLSEPARATINGLINES'] = talib.CDLSEPARATINGLINES(open=open_values, high=high_values, low=low_values, close=close_values) features['CDLSHOOTINGSTAR'] = talib.CDLSHOOTINGSTAR(open=open_values, high=high_values, low=low_values, close=close_values) features['CDLSHORTLINE'] = talib.CDLSHORTLINE(open=open_values, high=high_values, low=low_values, close=close_values) features['CDLSPINNINGTOP'] = talib.CDLSPINNINGTOP(open=open_values, high=high_values, low=low_values, close=close_values) features['CDLSTALLEDPATTERN'] = talib.CDLSTALLEDPATTERN(open=open_values, high=high_values, low=low_values, close=close_values) features['CDLSTICKSANDWICH'] = talib.CDLSTICKSANDWICH(open=open_values, high=high_values, low=low_values, close=close_values) features['CDLTAKURI'] = talib.CDLTAKURI(open=open_values, high=high_values, low=low_values, close=close_values) features['CDLTASUKIGAP'] = talib.CDLTASUKIGAP(open=open_values, high=high_values, low=low_values, close=close_values) features['CDLTHRUSTING'] = talib.CDLTHRUSTING(open=open_values, high=high_values, low=low_values, close=close_values) features['CDLTRISTAR'] = talib.CDLTRISTAR(open=open_values, high=high_values, low=low_values, close=close_values) features['CDLUNIQUE3RIVER'] = talib.CDLUNIQUE3RIVER(open=open_values, high=high_values, low=low_values, close=close_values) features['CDLUPSIDEGAP2CROWS'] = talib.CDLUPSIDEGAP2CROWS(open=open_values, high=high_values, low=low_values, close=close_values) features['CDLXSIDEGAP3METHODS'] = talib.CDLXSIDEGAP3METHODS(open=open_values, high=high_values, low=low_values, close=close_values) return features
ohlc_df['CDLLADDERBOTTOM'] = ta.CDLLADDERBOTTOM( ohlc_df['open'], ohlc_df['high'], ohlc_df['low'], ohlc_df['close']) ohlc_df['CDLLONGLEGGEDDOJI'] = ta.CDLLONGLEGGEDDOJI( ohlc_df['open'], ohlc_df['high'], ohlc_df['low'], ohlc_df['close']) ohlc_df['CDLLONGLINE'] = ta.CDLLONGLINE(ohlc_df['open'], ohlc_df['high'], ohlc_df['low'], ohlc_df['close']) ohlc_df['CDLMARUBOZU'] = ta.CDLMARUBOZU(ohlc_df['open'], ohlc_df['high'], ohlc_df['low'], ohlc_df['close']) ohlc_df['CDLMATCHINGLOW'] = ta.CDLMATCHINGLOW( ohlc_df['open'], ohlc_df['high'], ohlc_df['low'], ohlc_df['close']) ohlc_df['CDLMATHOLD'] = ta.CDLMATHOLD(ohlc_df['open'], ohlc_df['high'], ohlc_df['low'], ohlc_df['close']) ohlc_df['CDLMORNINGDOJISTAR'] = ta.CDLMORNINGDOJISTAR( ohlc_df['open'], ohlc_df['high'], ohlc_df['low'], ohlc_df['close']) ohlc_df['CDLMORNINGSTAR'] = ta.CDLMORNINGSTAR( ohlc_df['open'], ohlc_df['high'], ohlc_df['low'], ohlc_df['close']) ohlc_df['CDLONNECK'] = ta.CDLONNECK(ohlc_df['open'], ohlc_df['high'], ohlc_df['low'], ohlc_df['close'])
def get_technical_indicators(dataset): # Create 7 and 21 days Moving Average dataset['ma7'] = dataset['Adj Close'].rolling(window=7).mean() dataset['ma21'] = dataset['Adj Close'].rolling(window=21).mean() # Create Exponential moving average dataset['ema'] = dataset['Adj Close'].ewm(com=0.5).mean() # Create MACD dataset['26ema'] = dataset['Adj Close'].ewm(span=26).mean() dataset['12ema'] = dataset['Adj Close'].ewm(span=12).mean() dataset['MACD'] = (dataset['12ema'] - dataset['26ema']) # Create Momentum dataset['momentum'] = dataset['Adj Close'] - 1 # Create Bollinger Bands dataset['20sd'] = dataset['Adj Close'].rolling(20).std() dataset['upper_band'] = dataset['ma21'] + (dataset['20sd'] * 2) dataset['lower_band'] = dataset['ma21'] - (dataset['20sd'] * 2) # Create RSI indicator dataset['RSI'] = ta.RSI(np.array(dataset['Adj Close'])) #Part I: Create Cycle Indicators #Create HT_DCPERIOD - Hilbert Transform - Dominant Cycle Period dataset['HT_DCPERIOD'] = ta.HT_DCPERIOD(np.array(dataset['Adj Close'])) #Create HT_DCPHASE - Hilbert Transform - Dominant Cycle Phase dataset['HT_DCPHASE'] = ta.HT_DCPHASE(np.array(dataset['Adj Close'])) #HT_TRENDMODE - Hilbert Transform - Trend vs Cycle Mode dataset['HT_TRENDMODE'] = ta.HT_TRENDMODE(np.array(dataset['Adj Close'])) #Part II: Create Volatility Indicators #Create Average True Range dataset['ATR'] = ta.ATR(np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close']), timeperiod=14) #Create NATR - Normalized Average True Range dataset['NATR'] = ta.NATR(np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close']), timeperiod=14) #Create TRANGE - True Range dataset['TRANGE'] = ta.TRANGE(np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close'])) #Part III Overlap Studies #Create DEMA - Double Exponential Moving Average dataset['DEMA'] = ta.DEMA(np.array(dataset['Adj Close']), timeperiod=30) #Create HT_TRENDLINE - Hilbert Transform - Instantaneous Trendline dataset['HT_TRENDLINE'] = ta.HT_TRENDLINE(np.array(dataset['Adj Close'])) #Create KAMA - Kaufman Adaptive Moving Average dataset['KAMA'] = ta.KAMA(np.array(dataset['Adj Close']), timeperiod=30) #Create MIDPOINT - MidPoint over period dataset['MIDPOINT'] = ta.MIDPOINT(np.array(dataset['Adj Close']), timeperiod=14) #Create MIDPRICE - Midpoint Price over period dataset['MIDPRICE'] = ta.MIDPRICE(np.array(dataset['High']), np.array(dataset['Low']), timeperiod=14) #Create SAR - Parabolic SAR dataset['SAR'] = ta.SAR(np.array(dataset['High']), np.array(dataset['Low']), acceleration=0, maximum=0) #Create SMA - Simple Moving Average dataset['SMA10'] = ta.SMA(np.array(dataset['Adj Close']), timeperiod=10) #Create T3 - Triple Exponential Moving Average (T3) dataset['T3'] = ta.T3(np.array(dataset['Adj Close']), timeperiod=5, vfactor=0) #Create TRIMA - Triangular Moving Average dataset['TRIMA'] = ta.TRIMA(np.array(dataset['Adj Close']), timeperiod=30) #Create WMA - Weighted Moving Average dataset['WMA'] = ta.WMA(np.array(dataset['Adj Close']), timeperiod=30) #PART IV Momentum Indicators #Create ADX - Average Directional Movement Index dataset['ADX14'] = ta.ADX(np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close']), timeperiod=14) dataset['ADX20'] = ta.ADX(np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close']), timeperiod=20) #Create ADXR - Average Directional Movement Index Rating dataset['ADXR'] = ta.ADXR(np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close']), timeperiod=14) #Create APO - Absolute Price Oscillator dataset['APO'] = ta.APO(np.array(dataset['Adj Close']), fastperiod=12, slowperiod=26, matype=0) #Create AROONOSC - Aroon Oscillator dataset['AROONOSC'] = ta.AROONOSC(np.array(dataset['High']), np.array(dataset['Low']), timeperiod=14) #Create BOP - Balance Of Power dataset['BOP'] = ta.BOP(np.array(dataset['Open']), np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close'])) #Create CCI - Commodity Channel Index dataset['CCI3'] = ta.CCI(np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close']), timeperiod=3) dataset['CCI5'] = ta.CCI(np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close']), timeperiod=5) dataset['CCI10'] = ta.CCI(np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close']), timeperiod=10) dataset['CCI14'] = ta.CCI(np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close']), timeperiod=14) #Create CMO - Chande Momentum Oscillator dataset['CMO'] = ta.CMO(np.array(dataset['Adj Close']), timeperiod=14) #Create DX - Directional Movement Index dataset['DX'] = ta.DX(np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close']), timeperiod=14) #Create MINUS_DI - Minus Directional Indicator dataset['MINUS_DI'] = ta.MINUS_DI(np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close']), timeperiod=14) #Create MINUS_DM - Minus Directional Movement dataset['MINUS_DM'] = ta.MINUS_DM(np.array(dataset['High']), np.array(dataset['Low']), timeperiod=14) #Create MOM - Momentum dataset['MOM3'] = ta.MOM(np.array(dataset['Adj Close']), timeperiod=3) dataset['MOM5'] = ta.MOM(np.array(dataset['Adj Close']), timeperiod=5) dataset['MOM10'] = ta.MOM(np.array(dataset['Adj Close']), timeperiod=10) #Create PLUS_DI - Plus Directional Indicator dataset['PLUS_DI'] = ta.PLUS_DI(np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close']), timeperiod=14) #Create PLUS_DM - Plus Directional Movement dataset['PLUS_DM'] = ta.PLUS_DM(np.array(dataset['High']), np.array(dataset['Low']), timeperiod=14) #Create PPO - Percentage Price Oscillator dataset['PPO'] = ta.PPO(np.array(dataset['Adj Close']), fastperiod=12, slowperiod=26, matype=0) #Create ROC - Rate of change : ((price/prevPrice)-1)*100 dataset['ROC'] = ta.ROC(np.array(dataset['Adj Close']), timeperiod=10) #Create ROCP - Rate of change Percentage: (price-prevPrice)/prevPrice dataset['ROCP'] = ta.ROCP(np.array(dataset['Adj Close']), timeperiod=10) #Create ROCR - Rate of change ratio: (price/prevPrice) dataset['ROCR'] = ta.ROCR(np.array(dataset['Adj Close']), timeperiod=10) #Create ROCR100 - Rate of change ratio 100 scale: (price/prevPrice)*100 dataset['ROCR100'] = ta.ROCR100(np.array(dataset['Adj Close']), timeperiod=10) #Create RSI - Relative Strength Index dataset['RSI5'] = ta.RSI(np.array(dataset['Adj Close']), timeperiod=5) dataset['RSI10'] = ta.RSI(np.array(dataset['Adj Close']), timeperiod=10) dataset['RSI14'] = ta.RSI(np.array(dataset['Adj Close']), timeperiod=14) #Create TRIX - 1-day Rate-Of-Change (ROC) of a Triple Smooth EMA dataset['TRIX'] = ta.TRIX(np.array(dataset['Adj Close']), timeperiod=30) #Create ULTOSC - Ultimate Oscillator dataset['ULTOSC'] = ta.ULTOSC(np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close']), timeperiod1=7, timeperiod2=14, timeperiod3=28) #Create WILLR - Williams' %R dataset['WILLR'] = ta.WILLR(np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close']), timeperiod=14) #Part V Pattern Recognition #Create CDL2CROWS - Two Crows dataset['CDL2CROWS'] = ta.CDL2CROWS(np.array(dataset['Open']), np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close'])) #Create CDL3BLACKCROWS - Three Black Crows dataset['CDL3BLACKCROWS'] = ta.CDL3BLACKCROWS( np.array(dataset['Open']), np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close'])) #Create CDL3INSIDE - Three Inside Up/Down dataset['CDL3INSIDE'] = ta.CDL3INSIDE(np.array(dataset['Open']), np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close'])) #Create CDL3LINESTRIKE - Three-Line Strike dataset['CDL3LINESTRIKE'] = ta.CDL3LINESTRIKE( np.array(dataset['Open']), np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close'])) #Create CDL3OUTSIDE - Three Outside Up/Down dataset['CDL3OUTSIDE'] = ta.CDL3OUTSIDE(np.array(dataset['Open']), np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close'])) #Create CDL3STARSINSOUTH - Three Stars In The South dataset['CDL3STARSINSOUTH '] = ta.CDL3STARSINSOUTH( np.array(dataset['Open']), np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close'])) #Create CDL3WHITESOLDIERS - Three Advancing White Soldiers dataset['CDL3WHITESOLDIERS'] = ta.CDL3WHITESOLDIERS( np.array(dataset['Open']), np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close'])) #Create CDLABANDONEDBABY - Abandoned Baby dataset['CDLABANDONEDBABY'] = ta.CDLABANDONEDBABY( np.array(dataset['Open']), np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close']), penetration=0) #Create CDLADVANCEBLOCK - Advance Block dataset['CDLADVANCEBLOCK'] = ta.CDLADVANCEBLOCK( np.array(dataset['Open']), np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close'])) #Create CDLBELTHOLD - Belt-hold dataset['CDLBELTHOLD'] = ta.CDLBELTHOLD(np.array(dataset['Open']), np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close'])) #Create CDLBREAKAWAY - Breakaway dataset['CDLBREAKAWAY'] = ta.CDLBREAKAWAY(np.array(dataset['Open']), np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close'])) #Create CDLCLOSINGMARUBOZU - Closing Marubozu dataset['CDLCLOSINGMARUBOZU'] = ta.CDLCLOSINGMARUBOZU( np.array(dataset['Open']), np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close'])) #Create CDLCONCEALBABYSWALL - Concealing Baby Swalnp.array(dataset['Low']) dataset['CDLCONCEALBABYSWALL'] = ta.CDLCONCEALBABYSWALL( np.array(dataset['Open']), np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close'])) #Create CDLCOUNTERATTACK - Counterattack dataset['CDLCOUNTERATTACK'] = ta.CDLCOUNTERATTACK( np.array(dataset['Open']), np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close'])) #Create CDLDARKCLOUDCOVER - Dark Cloud Cover dataset['CDLDARKCLOUDCOVER'] = ta.CDLDARKCLOUDCOVER( np.array(dataset['Open']), np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close']), penetration=0) #Create CDLDOJI - Doji dataset['CDLDOJI'] = ta.CDLDOJI(np.array(dataset['Open']), np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close'])) #Create CDLDOJISTAR - Doji Star dataset['CDLDOJISTAR'] = ta.CDLDOJISTAR(np.array(dataset['Open']), np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close'])) #Create CDLDRAGONFLYDOJI - Dragonfly Doji dataset['CDLDRAGONFLYDOJI'] = ta.CDLDRAGONFLYDOJI( np.array(dataset['Open']), np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close'])) #Create CDLENGULFING - Engulfing Pattern dataset['CDLENGULFING'] = ta.CDLENGULFING(np.array(dataset['Open']), np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close'])) #Create CDLEVENINGDOJISTAR - Evening Doji Star dataset['CDLEVENINGDOJISTAR'] = ta.CDLEVENINGDOJISTAR( np.array(dataset['Open']), np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close']), penetration=0) #Create CDLEVENINGSTAR - Evening Star dataset['CDLEVENINGSTAR'] = ta.CDLEVENINGSTAR(np.array(dataset['Open']), np.array(dataset['High']), np.array(dataset['Low']), np.array( dataset['Adj Close']), penetration=0) #Create CDLGAPSIDESIDEWHITE - Up/Down-gap side-by-side white lines dataset['CDLGAPSIDESIDEWHITE'] = ta.CDLGAPSIDESIDEWHITE( np.array(dataset['Open']), np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close'])) #Create CDLGRAVESTONEDOJI - Gravestone Doji dataset['CDLGRAVESTONEDOJI'] = ta.CDLGRAVESTONEDOJI( np.array(dataset['Open']), np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close'])) #Create CDLHAMMER - Hammer dataset['CDLHAMMER'] = ta.CDLHAMMER(np.array(dataset['Open']), np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close'])) #Create CDLHANGINGMAN - Hanging Man dataset['CDLHANGINGMAN'] = ta.CDLHANGINGMAN(np.array(dataset['Open']), np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close'])) #Create CDLHARAMI - Harami Pattern dataset['CDLHARAMI'] = ta.CDLHARAMI(np.array(dataset['Open']), np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close'])) #Create CDLHARAMICROSS - Harami Cross Pattern dataset['CDLHARAMICROSS'] = ta.CDLHARAMICROSS( np.array(dataset['Open']), np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close'])) #Create CDLHIGHWAVE - High-Wave Candle dataset['CDLHIGHWAVE'] = ta.CDLHIGHWAVE(np.array(dataset['Open']), np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close'])) #Create CDLHIKKAKE - Hikkake Pattern dataset['CDLHIKKAKE'] = ta.CDLHIKKAKE(np.array(dataset['Open']), np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close'])) #Create CDLHIKKAKEMOD - Modified Hikkake Pattern dataset['CDLHIKKAKEMOD'] = ta.CDLHIKKAKEMOD(np.array(dataset['Open']), np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close'])) #Create CDLHOMINGPIGEON - Homing Pigeon dataset['CDLHOMINGPIGEON'] = ta.CDLHOMINGPIGEON( np.array(dataset['Open']), np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close'])) #Create CDLIDENTICAL3CROWS - Identical Three Crows dataset['CDLIDENTICAL3CROWS'] = ta.CDLIDENTICAL3CROWS( np.array(dataset['Open']), np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close'])) #Create CDLINNECK - In-Neck Pattern dataset['CDLINNECK'] = ta.CDLINNECK(np.array(dataset['Open']), np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close'])) #Create CDLINVERTEDHAMMER - Inverted Hammer dataset['CDLINVERTEDHAMMER'] = ta.CDLINVERTEDHAMMER( np.array(dataset['Open']), np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close'])) #Create CDLKICKING - Kicking dataset['CDLKICKING'] = ta.CDLKICKING(np.array(dataset['Open']), np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close'])) #Create CDLKICKINGBYLENGTH - Kicking - bull/bear determined by the longer marubozu dataset['CDLKICKINGBYLENGTH'] = ta.CDLKICKINGBYLENGTH( np.array(dataset['Open']), np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close'])) #Create CDLLADDERBOTTOM - Ladder Bottom dataset['CDLLADDERBOTTOM'] = ta.CDLLADDERBOTTOM( np.array(dataset['Open']), np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close'])) #Create CDLLONGLEGGEDDOJI - Long Legged Doji dataset['CDLLONGLEGGEDDOJI'] = ta.CDLLONGLEGGEDDOJI( np.array(dataset['Open']), np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close'])) #Create CDLLONGLINE - Long Line Candle dataset['CDLLONGLINE'] = ta.CDLLONGLINE(np.array(dataset['Open']), np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close'])) #Create CDLMARUBOZU - Marubozu dataset['CDLMARUBOZU'] = ta.CDLMARUBOZU(np.array(dataset['Open']), np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close'])) #Create CDLMATCHINGLOW - Matching Low dataset['CDLMATCHINGLOW'] = ta.CDLMATCHINGLOW( np.array(dataset['Open']), np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close'])) #Create CDLMATHOLD - Mat Hold dataset['CDLMATHOLD'] = ta.CDLMATHOLD(np.array(dataset['Open']), np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close']), penetration=0) #Create CDLMORNINGDOJISTAR - Morning Doji Star dataset['CDLMORNINGDOJISTAR'] = ta.CDLMORNINGDOJISTAR( np.array(dataset['Open']), np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close']), penetration=0) #Create CDLMORNINGSTAR - Morning Star dataset['CDLMORNINGSTAR'] = ta.CDLMORNINGSTAR(np.array(dataset['Open']), np.array(dataset['High']), np.array(dataset['Low']), np.array( dataset['Adj Close']), penetration=0) #Create CDLONNECK - On-Neck Pattern dataset['CDLONNECK'] = ta.CDLONNECK(np.array(dataset['Open']), np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close'])) #Create CDLPIERCING - Piercing Pattern dataset['CDLPIERCING'] = ta.CDLPIERCING(np.array(dataset['Open']), np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close'])) #Create CDLRICKSHAWMAN - Rickshaw Man dataset['CDLRICKSHAWMAN'] = ta.CDLRICKSHAWMAN( np.array(dataset['Open']), np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close'])) #Create CDLRISEFALL3METHODS - Rising/Falling Three Methods dataset['CDLRISEFALL3METHODS'] = ta.CDLRISEFALL3METHODS( np.array(dataset['Open']), np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close'])) #Create CDLSEPARATINGLINES - Separating Lines dataset['CDLSEPARATINGLINES'] = ta.CDLSEPARATINGLINES( np.array(dataset['Open']), np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close'])) #Create CDLSHOOTINGSTAR - Shooting Star dataset['CDLSHOOTINGSTAR'] = ta.CDLSHOOTINGSTAR( np.array(dataset['Open']), np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close'])) #Create CDLSHORTLINE - Short Line Candle dataset['CDLSHORTLINE'] = ta.CDLSHORTLINE(np.array(dataset['Open']), np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close'])) #Create CDLSPINNINGTOP - Spinning Top dataset['CDLSPINNINGTOP'] = ta.CDLSPINNINGTOP( np.array(dataset['Open']), np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close'])) #Create CDLSTALLEDPATTERN - Stalled Pattern dataset['CDLSTALLEDPATTERN'] = ta.CDLSTALLEDPATTERN( np.array(dataset['Open']), np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close'])) #Create CDLSTICKSANDWICH - Stick Sandwich dataset['CDLSTICKSANDWICH'] = ta.CDLSTICKSANDWICH( np.array(dataset['Open']), np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close'])) #Create CDLTAKURI - Takuri (Dragonfly Doji with very long np.array(dataset['Low'])er shadow) dataset['CDLTAKURI'] = ta.CDLTAKURI(np.array(dataset['Open']), np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close'])) #Create CDLTASUKIGAP - Tasuki Gap dataset['CDLTASUKIGAP'] = ta.CDLTASUKIGAP(np.array(dataset['Open']), np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close'])) #Create CDLTHRUSTING - Thrusting Pattern dataset['CDLTHRUSTING'] = ta.CDLTHRUSTING(np.array(dataset['Open']), np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close'])) #Create CDLTRISTAR - Tristar Pattern dataset['CDLTRISTAR'] = ta.CDLTRISTAR(np.array(dataset['Open']), np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close'])) #Create CDLUNIQUE3RIVER - Unique 3 River dataset['CDLUNIQUE3RIVER'] = ta.CDLUNIQUE3RIVER( np.array(dataset['Open']), np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close'])) #Create CDLUPSIDEGAP2CROWS - Upside Gap Two Crows dataset['CDLUPSIDEGAP2CROWS'] = ta.CDLUPSIDEGAP2CROWS( np.array(dataset['Open']), np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close'])) #Create CDLXSIDEGAP3METHODS - Upside/Downside Gap Three Methods dataset['CDLXSIDEGAP3METHODS'] = ta.CDLXSIDEGAP3METHODS( np.array(dataset['Open']), np.array(dataset['High']), np.array(dataset['Low']), np.array(dataset['Adj Close'])) return dataset
def collectDATA(self, start_dt, end_dt, para_min, threshold): # 建立数据库连接,剔除已入库的部分 db = pymysql.connect(host='127.0.0.1', user='******', passwd='admin', db='stock', charset='utf8') cursor = db.cursor() if para_min == 'day': sql_done_set = "SELECT * FROM btc_day a where state_dt >= '%s' and state_dt <= '%s' order by state_dt asc" % ( start_dt, end_dt) else: sql_done_set = "SELECT * FROM btc_%smin a where state_dt >= '%s' and state_dt <= '%s' order by state_dt asc" % ( str(para_min), start_dt, end_dt) cursor.execute(sql_done_set) done_set = cursor.fetchall() if len(done_set) == 0: raise Exception self.date_seq = [] self.open_list = [] self.close_list = [] self.high_list = [] self.low_list = [] self.vol_list = [] self.amount_list = [] self.tor_list = [] self.vr_list = [] self.ma5_list = [] self.ma10_list = [] self.ma20_list = [] self.ma30_list = [] self.ma60_list = [] for i in range(len(done_set)): self.date_seq.append(done_set[i][0]) self.open_list.append(float(done_set[i][1])) self.close_list.append(float(done_set[i][2])) self.high_list.append(float(done_set[i][3])) self.low_list.append(float(done_set[i][4])) self.vol_list.append(float(done_set[i][6])) self.amount_list.append(float(done_set[i][5])) db.close() cdl_2crows = ta.CDL2CROWS(np.array(self.open_list), np.array(self.high_list), np.array(self.low_list), np.array(self.close_list)) cdl_3blackcrows = ta.CDL3BLACKCROWS(np.array(self.open_list), np.array(self.high_list), np.array(self.low_list), np.array(self.close_list)) cdl_3inside = ta.CDL3INSIDE(np.array(self.open_list), np.array(self.high_list), np.array(self.low_list), np.array(self.close_list)) cdl_3linestrike = ta.CDL3LINESTRIKE(np.array(self.open_list), np.array(self.high_list), np.array(self.low_list), np.array(self.close_list)) cdl_3outside = ta.CDL3OUTSIDE(np.array(self.open_list), np.array(self.high_list), np.array(self.low_list), np.array(self.close_list)) cdl_3starsinsouth = ta.CDL3STARSINSOUTH(np.array(self.open_list), np.array(self.high_list), np.array(self.low_list), np.array(self.close_list)) cdl_3whitesoldiers = ta.CDL3WHITESOLDIERS(np.array(self.open_list), np.array(self.high_list), np.array(self.low_list), np.array(self.close_list)) cdl_abandonedbaby = ta.CDLABANDONEDBABY(np.array(self.open_list), np.array(self.high_list), np.array(self.low_list), np.array(self.close_list)) cdl_advancedblock = ta.CDLADVANCEBLOCK(np.array(self.open_list), np.array(self.high_list), np.array(self.low_list), np.array(self.close_list)) cdl_belthold = ta.CDLBELTHOLD(np.array(self.open_list), np.array(self.high_list), np.array(self.low_list), np.array(self.close_list)) cdl_breakaway = ta.CDLBREAKAWAY(np.array(self.open_list), np.array(self.high_list), np.array(self.low_list), np.array(self.close_list)) cdl_closing = ta.CDLCLOSINGMARUBOZU(np.array(self.open_list), np.array(self.high_list), np.array(self.low_list), np.array(self.close_list)) cdl_conbaby = ta.CDLCONCEALBABYSWALL(np.array(self.open_list), np.array(self.high_list), np.array(self.low_list), np.array(self.close_list)) cdl_counterattack = ta.CDLCOUNTERATTACK(np.array(self.open_list), np.array(self.high_list), np.array(self.low_list), np.array(self.close_list)) cdl_darkcloud = ta.CDLDARKCLOUDCOVER(np.array(self.open_list), np.array(self.high_list), np.array(self.low_list), np.array(self.close_list)) cdl_doji = ta.CDLDOJI(np.array(self.open_list), np.array(self.high_list), np.array(self.low_list), np.array(self.close_list)) cdl_dojistar = ta.CDLDOJISTAR(np.array(self.open_list), np.array(self.high_list), np.array(self.low_list), np.array(self.close_list)) cdl_dragondoji = ta.CDLDRAGONFLYDOJI(np.array(self.open_list), np.array(self.high_list), np.array(self.low_list), np.array(self.close_list)) cdl_eng = ta.CDLENGULFING(np.array(self.open_list), np.array(self.high_list), np.array(self.low_list), np.array(self.close_list)) cdl_evedoji = ta.CDLEVENINGDOJISTAR(np.array(self.open_list), np.array(self.high_list), np.array(self.low_list), np.array(self.close_list)) cdl_evestar = ta.CDLEVENINGSTAR(np.array(self.open_list), np.array(self.high_list), np.array(self.low_list), np.array(self.close_list)) cdl_gapside = ta.CDLGAPSIDESIDEWHITE(np.array(self.open_list), np.array(self.high_list), np.array(self.low_list), np.array(self.close_list)) cdl_gravedoji = ta.CDLGRAVESTONEDOJI(np.array(self.open_list), np.array(self.high_list), np.array(self.low_list), np.array(self.close_list)) cdl_hammer = ta.CDLHAMMER(np.array(self.open_list), np.array(self.high_list), np.array(self.low_list), np.array(self.close_list)) cdl_hanging = ta.CDLHANGINGMAN(np.array(self.open_list), np.array(self.high_list), np.array(self.low_list), np.array(self.close_list)) cdl_hara = ta.CDLHARAMI(np.array(self.open_list), np.array(self.high_list), np.array(self.low_list), np.array(self.close_list)) cdl_haracross = ta.CDLHARAMICROSS(np.array(self.open_list), np.array(self.high_list), np.array(self.low_list), np.array(self.close_list)) cdl_highwave = ta.CDLHIGHWAVE(np.array(self.open_list), np.array(self.high_list), np.array(self.low_list), np.array(self.close_list)) cdl_hikk = ta.CDLHIKKAKE(np.array(self.open_list), np.array(self.high_list), np.array(self.low_list), np.array(self.close_list)) cdl_hikkmod = ta.CDLHIKKAKEMOD(np.array(self.open_list), np.array(self.high_list), np.array(self.low_list), np.array(self.close_list)) cdl_homing = ta.CDLHOMINGPIGEON(np.array(self.open_list), np.array(self.high_list), np.array(self.low_list), np.array(self.close_list)) cdl_i3crows = ta.CDLIDENTICAL3CROWS(np.array(self.open_list), np.array(self.high_list), np.array(self.low_list), np.array(self.close_list)) cdl_inneck = ta.CDLINNECK(np.array(self.open_list), np.array(self.high_list), np.array(self.low_list), np.array(self.close_list)) cdl_inverhammer = ta.CDLINVERTEDHAMMER(np.array(self.open_list), np.array(self.high_list), np.array(self.low_list), np.array(self.close_list)) cdl_kicking = ta.CDLKICKING(np.array(self.open_list), np.array(self.high_list), np.array(self.low_list), np.array(self.close_list)) cdl_kicking2 = ta.CDLKICKINGBYLENGTH(np.array(self.open_list), np.array(self.high_list), np.array(self.low_list), np.array(self.close_list)) cdl_ladder = ta.CDLLADDERBOTTOM(np.array(self.open_list), np.array(self.high_list), np.array(self.low_list), np.array(self.close_list)) cdl_longdoji = ta.CDLLONGLEGGEDDOJI(np.array(self.open_list), np.array(self.high_list), np.array(self.low_list), np.array(self.close_list)) cdl_longline = ta.CDLLONGLINE(np.array(self.open_list), np.array(self.high_list), np.array(self.low_list), np.array(self.close_list)) cdl_marubo = ta.CDLMARUBOZU(np.array(self.open_list), np.array(self.high_list), np.array(self.low_list), np.array(self.close_list)) cdl_matchinglow = ta.CDLMATCHINGLOW(np.array(self.open_list), np.array(self.high_list), np.array(self.low_list), np.array(self.close_list)) cdl_mathold = ta.CDLMATHOLD(np.array(self.open_list), np.array(self.high_list), np.array(self.low_list), np.array(self.close_list)) cdl_morningdoji = ta.CDLMORNINGDOJISTAR(np.array(self.open_list), np.array(self.high_list), np.array(self.low_list), np.array(self.close_list)) cdl_morningstar = ta.CDLMORNINGSTAR(np.array(self.open_list), np.array(self.high_list), np.array(self.low_list), np.array(self.close_list)) cdl_onneck = ta.CDLONNECK(np.array(self.open_list), np.array(self.high_list), np.array(self.low_list), np.array(self.close_list)) cdl_pier = ta.CDLPIERCING(np.array(self.open_list), np.array(self.high_list), np.array(self.low_list), np.array(self.close_list)) cdl_rick = ta.CDLRICKSHAWMAN(np.array(self.open_list), np.array(self.high_list), np.array(self.low_list), np.array(self.close_list)) cdl_3methords = ta.CDLRISEFALL3METHODS(np.array(self.open_list), np.array(self.high_list), np.array(self.low_list), np.array(self.close_list)) cdl_seprate = ta.CDLSEPARATINGLINES(np.array(self.open_list), np.array(self.high_list), np.array(self.low_list), np.array(self.close_list)) cdl_shoot = ta.CDLSHOOTINGSTAR(np.array(self.open_list), np.array(self.high_list), np.array(self.low_list), np.array(self.close_list)) cdl_shortcandle = ta.CDLSHORTLINE(np.array(self.open_list), np.array(self.high_list), np.array(self.low_list), np.array(self.close_list)) cdl_spin = ta.CDLSPINNINGTOP(np.array(self.open_list), np.array(self.high_list), np.array(self.low_list), np.array(self.close_list)) cdl_stalled = ta.CDLSTALLEDPATTERN(np.array(self.open_list), np.array(self.high_list), np.array(self.low_list), np.array(self.close_list)) cdl_sandwich = ta.CDLSTICKSANDWICH(np.array(self.open_list), np.array(self.high_list), np.array(self.low_list), np.array(self.close_list)) cdl_taku = ta.CDLTAKURI(np.array(self.open_list), np.array(self.high_list), np.array(self.low_list), np.array(self.close_list)) cdl_takugap = ta.CDLTASUKIGAP(np.array(self.open_list), np.array(self.high_list), np.array(self.low_list), np.array(self.close_list)) cdl_thrust = ta.CDLTHRUSTING(np.array(self.open_list), np.array(self.high_list), np.array(self.low_list), np.array(self.close_list)) cdl_tristar = ta.CDLTRISTAR(np.array(self.open_list), np.array(self.high_list), np.array(self.low_list), np.array(self.close_list)) cdl_uni = ta.CDLUNIQUE3RIVER(np.array(self.open_list), np.array(self.high_list), np.array(self.low_list), np.array(self.close_list)) cdl_upgap = ta.CDLUPSIDEGAP2CROWS(np.array(self.open_list), np.array(self.high_list), np.array(self.low_list), np.array(self.close_list)) cdl_xside = ta.CDLXSIDEGAP3METHODS(np.array(self.open_list), np.array(self.high_list), np.array(self.low_list), np.array(self.close_list)) self.data_train = [] self.data_target = [] self.data_target_onehot = [] for i in range(len(self.close_list) - 5): train = [ cdl_2crows[i], cdl_3blackcrows[i], cdl_3inside[i], cdl_3linestrike[i], cdl_3outside[i], cdl_3starsinsouth[i], cdl_3whitesoldiers[i], cdl_abandonedbaby[i], cdl_advancedblock[i], cdl_belthold[i], cdl_breakaway[i], cdl_closing[i], cdl_conbaby[i], cdl_counterattack[i], cdl_darkcloud[i], cdl_doji[i], cdl_dojistar[i], cdl_dragondoji[i], cdl_eng[i], cdl_evedoji[i], cdl_evestar[i], cdl_gapside[i], cdl_gravedoji[i], cdl_hammer[i], cdl_hanging[i], cdl_hara[i], cdl_haracross[i], cdl_highwave[i], cdl_hikk[i], cdl_hikkmod[i], cdl_homing[i], cdl_i3crows[i], cdl_inneck[i], cdl_inverhammer[i], cdl_kicking[i], cdl_kicking2[i], cdl_ladder[i], cdl_longdoji[i], cdl_longline[i], cdl_marubo[i], cdl_matchinglow[i], cdl_mathold[i], cdl_morningdoji[i], cdl_morningstar[i], cdl_onneck[i], cdl_pier[i], cdl_rick[i], cdl_3methords[i], cdl_seprate[i], cdl_shoot[i], cdl_shortcandle[i], cdl_spin[i], cdl_stalled[i], cdl_sandwich[i], cdl_taku[i], cdl_takugap[i], cdl_thrust[i], cdl_tristar[i], cdl_uni[i], cdl_upgap[i], cdl_xside[i] ] self.data_train.append(np.array(train)) # after_max_price = max(self.close_list[i+1:i + 5]) # after_min_price = min(self.close_list[i+1:i+5]) # if after_max_price / self.close_list[i] >= 1.01: # self.data_target.append(float(1.00)) # self.data_target_onehot.append([1,0,0]) # elif after_min_price / self.close_list[i] < 0.99: # self.data_target.append(float(-1.00)) # self.data_target_onehot.append([0,1,0]) # else: # self.data_target.append(float(0.00)) # self.data_target_onehot.append([0,0,1]) after_mean_price = np.array(self.close_list[i + 1:i + 5]).mean() if after_mean_price / self.close_list[i] > threshold: self.data_target.append(float(1.00)) self.data_target_onehot.append([1, 0, 0]) else: self.data_target.append(float(-1.00)) self.data_target_onehot.append([0, 1, 0]) self.cnt_pos = 0 self.cnt_pos = len([x for x in self.data_target if x == 1.00]) self.test_case = [] self.test_case = np.array([ cdl_2crows[-1], cdl_3blackcrows[-1], cdl_3inside[-1], cdl_3linestrike[-1], cdl_3outside[-1], cdl_3starsinsouth[-1], cdl_3whitesoldiers[-1], cdl_abandonedbaby[-1], cdl_advancedblock[-1], cdl_belthold[-1], cdl_breakaway[-1], cdl_closing[-1], cdl_conbaby[-1], cdl_counterattack[-1], cdl_darkcloud[-1], cdl_doji[-1], cdl_dojistar[-1], cdl_dragondoji[-1], cdl_eng[-1], cdl_evedoji[-1], cdl_evestar[-1], cdl_gapside[-1], cdl_gravedoji[-1], cdl_hammer[-1], cdl_hanging[-1], cdl_hara[-1], cdl_haracross[-1], cdl_highwave[-1], cdl_hikk[-1], cdl_hikkmod[-1], cdl_homing[-1], cdl_i3crows[-1], cdl_inneck[-1], cdl_inverhammer[-1], cdl_kicking[-1], cdl_kicking2[-1], cdl_ladder[-1], cdl_longdoji[-1], cdl_longline[-1], cdl_marubo[-1], cdl_matchinglow[-1], cdl_mathold[-1], cdl_morningdoji[-1], cdl_morningstar[-1], cdl_onneck[-1], cdl_pier[-1], cdl_rick[-1], cdl_3methords[-1], cdl_seprate[-1], cdl_shoot[-1], cdl_shortcandle[-1], cdl_spin[-1], cdl_stalled[-1], cdl_sandwich[-1], cdl_taku[-1], cdl_takugap[-1], cdl_thrust[-1], cdl_tristar[-1], cdl_uni[-1], cdl_upgap[-1], cdl_xside[-1] ]) self.data_train = np.array(self.data_train) self.data_target = np.array(self.data_target)
CDLLADDERBOTTOM_real = talib.CDLLADDERBOTTOM( resorted['open'], resorted['high'], resorted['low'], resorted['close']) CDLLONGLEGGEDDOJI_real = talib.CDLLONGLEGGEDDOJI( resorted['open'], resorted['high'], resorted['low'], resorted['close']) CDLLONGLINE_real = talib.CDLLONGLINE(resorted['open'], resorted['high'], resorted['low'], resorted['close']) CDLMARUBOZU_real = talib.CDLMARUBOZU(resorted['open'], resorted['high'], resorted['low'], resorted['close']) CDLMATCHINGLOW_real = talib.CDLMATCHINGLOW( resorted['open'], resorted['high'], resorted['low'], resorted['close']) CDLMATHOLD_real = talib.CDLMATHOLD(resorted['open'], resorted['high'], resorted['low'], resorted['close']) CDLMORNINGDOJISTAR_real = talib.CDLMORNINGDOJISTAR( resorted['open'], resorted['high'], resorted['low'], resorted['close']) CDLMORNINGSTAR_real = talib.CDLMORNINGSTAR( resorted['open'], resorted['high'], resorted['low'], resorted['close']) CDLONNECK_real = talib.CDLONNECK(resorted['open'], resorted['high'], resorted['low'], resorted['close'])
def CDLMATCHINGLOW(data, **kwargs): _check_talib_presence() popen, phigh, plow, pclose, pvolume = _extract_ohlc(data) return talib.CDLMATCHINGLOW(popen, phigh, plow, pclose, **kwargs)
def CDLMATCHINGLOW(self): integer = talib.CDLMATCHINGLOW(self.open, self.high, self.low, self.close) return integer
def appendAllTAData(df=pd.DataFrame([])): resDF = pd.DataFrame([]) # 函数名:AD名称:ChaikinA/DLine累积/派发线(Accumulation/DistributionLine) # 简介:MarcChaikin提出的一种平衡交易量指标,以当日的收盘价位来估算成交流量,用于估定一段时间内该证券累积的资金流量。 # 计算公式:A/D=昨日A/D+多空对比*今日成交量多空对比=[(收盘价-最低价)-(最高价-收盘价)]/(最高价-最低价) # 若最高价等于最低价:多空对比=(收盘价/昨收盘)-1 # 研判:1、A/D测量资金流向,向上的A/D表明买方占优势,而向下的A/D表明卖方占优势 # 2、A/D与价格的背离可视为买卖信号,即底背离考虑买入,顶背离考虑卖出 # 3、应当注意A/D忽略了缺口的影响,事实上,跳空缺口的意义是不能轻易忽略的 # A/D指标无需设置参数,但在应用时,可结合指标的均线进行分析例子:real=AD(high,low,close,volume) resDF['AD'] = ta.AD(df['max_price'].values, df['min_price'].values, df['price'].values, df['vol'].values) # 函数名:ADOSC名称:Chaikin A/D Oscillator Chaikin震荡指标 # 简介:将资金流动情况与价格行为相对比,检测市场中资金流入和流出的情况 # 计算公式:fastperiod A/D - slowperiod A/D # 研判:1、交易信号是背离:看涨背离做多,看跌背离做空 # 2、股价与90天移动平均结合,与其他指标结合 # 3、由正变负卖出,由负变正买进 # 例子:real = ADOSC(high, low, close, volume, fastperiod=3, slowperiod=10) resDF['ADOSC'] = ta.ADOSC(df['max_price'].values, df['min_price'].values, df['price'].values, df['vol'].values, fastperiod=3, slowperiod=10) resDF['ADX'] = ta.ADX(df['max_price'].values, df['min_price'].values, df['price'].values) resDF['ADXR'] = ta.ADXR(df['max_price'].values, df['min_price'].values, df['price'].values, timeperiod=14) resDF['APO'] = ta.APO(df['price'].values, fastperiod=12, slowperiod=26, matype=0) resDF['aroondown'], resDF['aroonup'] = ta.AROON(df['max_price'].values, df['min_price'].values, timeperiod=14) resDF['AROONOSC'] = ta.AROONOSC(df['max_price'].values, df['min_price'].values, timeperiod=14) resDF['ATR'] = ta.ATR(df['max_price'].values, df['min_price'].values, df['price'].values, timeperiod=14) resDF['AVGPRICE'] = ta.AVGPRICE(df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values) resDF['upperband'], resDF['middleband'], resDF['lowerband'] = ta.BBANDS( df['price'].values, timeperiod=5, nbdevup=2, nbdevdn=2, matype=0) resDF['BETA'] = ta.BETA(df['max_price'].values, df['min_price'].values, timeperiod=5) resDF['BOP'] = ta.BOP(df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values) resDF['CCI'] = ta.CCI(df['max_price'].values, df['min_price'].values, df['price'].values, timeperiod=10)[-1] # 函数名:CDL2CROWS名称:Two Crows 两只乌鸦 # 简介:三日K线模式,第一天长阳,第二天高开收阴,第三天再次高开继续收阴,收盘比前一日收盘价低,预示股价下跌。 # 例子:integer = CDL2CROWS(open, high, low, close) resDF['CDL2CROWS'] = ta.CDL2CROWS(df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values) # 函数名:CDL3BLACKCROWS名称:Three Black Crows 三只乌鸦 # 简介:三日K线模式,连续三根阴线,每日收盘价都下跌且接近最低价,每日开盘价都在上根K线实体内,预示股价下跌。 # 例子:integer = CD3BLACKCROWS(open, high, low, close) resDF['CDL3BLACKCROWS'] = ta.CDL3BLACKCROWS(df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values) # 函数名:CDL3INSIDE名称: Three Inside Up/Down 三内部上涨和下跌 # 简介:三日K线模式,母子信号+长K线,以三内部上涨为例,K线为阴阳阳,第三天收盘价高于第一天开盘价,第二天K线在第一天K线内部,预示着股价上涨。 # 例子:integer = CDL3INSIDE(open, high, low, close) resDF['CDL3INSIDE'] = ta.CDL3INSIDE(df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values) # 函数名:CDL3LINESTRIKE名称: Three-Line Strike 三线打击 # 简介:四日K线模式,前三根阳线,每日收盘价都比前一日高,开盘价在前一日实体内,第四日市场高开,收盘价低于第一日开盘价,预示股价下跌。 # 例子:integer = CDL3LINESTRIKE(open, high, low, close) resDF['CDL3LINESTRIKE'] = ta.CDL3LINESTRIKE(df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values) # 函数名:CDL3OUTSIDE名称:Three Outside Up/Down 三外部上涨和下跌 # 简介:三日K线模式,与三内部上涨和下跌类似,K线为阴阳阳,但第一日与第二日的K线形态相反,以三外部上涨为例,第一日K线在第二日K线内部,预示着股价上涨。 # 例子:integer = CDL3OUTSIDE(open, high, low, close) resDF['CDL3OUTSIDE'] = ta.CDL3OUTSIDE(df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values) # 函数名:CDL3STARSINSOUTH名称:Three Stars In The South 南方三星 # 简介:三日K线模式,与大敌当前相反,三日K线皆阴,第一日有长下影线,第二日与第一日类似,K线整体小于第一日,第三日无下影线实体信号,成交价格都在第一日振幅之内,预示下跌趋势反转,股价上升。 # 例子:integer = CDL3STARSINSOUTH(open, high, low, close) resDF['CDL3STARSINSOUTH'] = ta.CDL3STARSINSOUTH( df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values) # 函数名:CDL3WHITESOLDIERS名称:Three Advancing White Soldiers 三个白兵 # 简介:三日K线模式,三日K线皆阳,每日收盘价变高且接近最高价,开盘价在前一日实体上半部,预示股价上升。 # 例子:integer = CDL3WHITESOLDIERS(open, high, low, close) resDF['CDL3WHITESOLDIERS'] = ta.CDL3WHITESOLDIERS( df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values) # 函数名:CDLABANDONEDBABY名称:Abandoned Baby 弃婴 # 简介:三日K线模式,第二日价格跳空且收十字星(开盘价与收盘价接近,最高价最低价相差不大),预示趋势反转,发生在顶部下跌,底部上涨。 # 例子:integer = CDLABANDONEDBABY(open, high, low, close, penetration=0) resDF['CDLABANDONEDBABY'] = ta.CDLABANDONEDBABY( df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values, penetration=0) # 函数名:CDLADVANCEBLOCK名称:Advance Block 大敌当前 # 简介:三日K线模式,三日都收阳,每日收盘价都比前一日高,开盘价都在前一日实体以内,实体变短,上影线变长。 # 例子:integer = CDLADVANCEBLOCK(open, high, low, close) resDF['CDLADVANCEBLOCK'] = ta.CDLADVANCEBLOCK( df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values) # 函数名:CDLBELTHOLD名称:Belt-hold 捉腰带线 # 简介:两日K线模式,下跌趋势中,第一日阴线,第二日开盘价为最低价,阳线,收盘价接近最高价,预示价格上涨。 # 例子:integer = CDLBELTHOLD(open, high, low, close) resDF['CDLBELTHOLD'] = ta.CDLBELTHOLD(df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values) # 函数名:CDLBREAKAWAY名称:Breakaway 脱离 # 简介:五日K线模式,以看涨脱离为例,下跌趋势中,第一日长阴线,第二日跳空阴线,延续趋势开始震荡,第五日长阳线,收盘价在第一天收盘价与第二天开盘价之间,预示价格上涨。 # 例子:integer = CDLBREAKAWAY(open, high, low, close) resDF['CDLBREAKAWAY'] = ta.CDLBREAKAWAY(df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values) # 函数名: CDLCLOSINGMARUBOZU 名称:Closing Marubozu 收盘缺影线 # 简介:一日K线模式,以阳线为例,最低价低于开盘价,收盘价等于最高价,预示着趋势持续。 # 例子:integer = CDLCLOSINGMARUBOZU(open, high, low, close) resDF['CDLCLOSINGMARUBOZU'] = ta.CDLCLOSINGMARUBOZU( df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values) # 函数名:CDLCONCEALBABYSWALL名称: Concealing Baby Swallow 藏婴吞没 # 简介:四日K线模式,下跌趋势中,前两日阴线无影线,第二日开盘、收盘价皆低于第二日,第三日倒锤头,第四日开盘价高于前一日最高价,收盘价低于前一日最低价,预示着底部反转。 # 例子:integer = CDLCONCEALBABYSWALL(open, high, low, close) resDF['CDLCONCEALBABYSWALL'] = ta.CDLCONCEALBABYSWALL( df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values) # 函数名:CDLCOUNTERATTACK # 名称:Counterattack 反击线 # 简介:二日K线模式,与分离线类似。 # 例子:integer = CDLCOUNTERATTACK(open, high, low, close) resDF['CDLCOUNTERATTACK'] = ta.CDLCOUNTERATTACK( df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values) # 函数名:CDLDARKCLOUDCOVER名称:Dark Cloud Cover 乌云压顶 # 简介:二日K线模式,第一日长阳,第二日开盘价高于前一日最高价,收盘价处于前一日实体中部以下,预示着股价下跌。 # 例子:integer = CDLDARKCLOUDCOVER(open, high, low, close, penetration=0) resDF['CDLDARKCLOUDCOVER'] = ta.CDLDARKCLOUDCOVER( df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values, penetration=0) # 函数名: CDLDOJI # 名称:Doji 十字 # 简介:一日K线模式,开盘价与收盘价基本相同。 # 例子:integer = CDLDOJI(open, high, low, close) resDF['CDLDOJI'] = ta.CDLDOJI(df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values) # 函数名: CDLDOJISTAR # 名称:Doji Star 十字星 # 简介:一日K线模式,开盘价与收盘价基本相同,上下影线不会很长,预示着当前趋势反转。 # 例子:integer = CDLDOJISTAR(open, high, low, close) resDF['CDLDOJISTAR'] = ta.CDLDOJISTAR(df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values) # 函数名:CDLDRAGONFLYDOJI名称:Dragonfly Doji 蜻蜓十字/T形十字 # 简介:一日K线模式,开盘后价格一路走低,之后收复,收盘价与开盘价相同,预示趋势反转。 # 例子:integer = CDLDRAGONFLYDOJI(open, high, low, close) resDF['CDLDRAGONFLYDOJI'] = ta.CDLDRAGONFLYDOJI( df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values) # 函数名:CDLENGULFING名称:Engulfing Pattern 吞噬模式 # 简介:两日K线模式,分多头吞噬和空头吞噬,以多头吞噬为例,第一日为阴线,第二日阳线,第一日的开盘价和收盘价在第二日开盘价收盘价之内,但不能完全相同。 # 例子:integer = CDLENGULFING(open, high, low, close) resDF['CDLENGULFING'] = ta.CDLENGULFING(df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values) # 函数名:CDLEVENINGDOJISTAR名称:Evening Doji Star 十字暮星 # 简介:三日K线模式,基本模式为暮星,第二日收盘价和开盘价相同,预示顶部反转。 # 例子:integer = CDLEVENINGDOJISTAR(open, high, low, close, penetration=0) resDF['CDLEVENINGDOJISTAR'] = ta.CDLEVENINGDOJISTAR( df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values, penetration=0) # 函数名:CDLEVENINGSTAR名称:Evening Star 暮星 # 简介:三日K线模式,与晨星相反,上升趋势中,第一日阳线,第二日价格振幅较小,第三日阴线,预示顶部反转。 # 例子:integer = CDLEVENINGSTAR(open, high, low, close, penetration=0) resDF['CDLEVENINGSTAR'] = ta.CDLEVENINGSTAR(df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values, penetration=0) # 函数名:CDLGAPSIDESIDEWHITE名称:Up/Down-gap side-by-side white lines 向上/下跳空并列阳线 # 简介:二日K线模式,上升趋势向上跳空,下跌趋势向下跳空,第一日与第二日有相同开盘价,实体长度差不多,则趋势持续。 # 例子:integer = CDLGAPSIDESIDEWHITE(open, high, low, close) resDF['CDLGAPSIDESIDEWHITE'] = ta.CDLGAPSIDESIDEWHITE( df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values) # 函数名:CDLGRAVESTONEDOJI名称:Gravestone Doji 墓碑十字/倒T十字 # 简介:一日K线模式,开盘价与收盘价相同,上影线长,无下影线,预示底部反转。 # 例子:integer = CDLGRAVESTONEDOJI(open, high, low, close) resDF['CDLGRAVESTONEDOJI'] = ta.CDLGRAVESTONEDOJI( df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values) # 函数名:CDLHAMMER # 名称:Hammer 锤头 # 简介:一日K线模式,实体较短,无上影线,下影线大于实体长度两倍,处于下跌趋势底部,预示反转。 # 例子:integer = CDLHAMMER(open, high, low, close) resDF['CDLHAMMER'] = ta.CDLHAMMER(df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values) # 函数名:CDLHANGINGMAN # 名称:Hanging Man 上吊线 # 简介:一日K线模式,形状与锤子类似,处于上升趋势的顶部,预示着趋势反转。 # 例子:integer = CDLHANGINGMAN(open, high, low, close) resDF['CDLHANGINGMAN'] = ta.CDLHANGINGMAN(df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values) # 函数名:CDLHARAMI名称:Harami Pattern 母子线 # 简介:二日K线模式,分多头母子与空头母子,两者相反,以多头母子为例,在下跌趋势中,第一日K线长阴,第二日开盘价收盘价在第一日价格振幅之内,为阳线,预示趋势反转,股价上升。 # 例子:integer = CDLHARAMI(open, high, low, close) resDF['CDLHARAMI'] = ta.CDLHARAMI(df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values) # 函数名:CDLHARAMICROSS名称:Harami Cross Pattern 十字孕线 # 简介:二日K线模式,与母子县类似,若第二日K线是十字线,便称为十字孕线,预示着趋势反转。 # 例子:integer = CDLHARAMICROSS(open, high, low, close) resDF['CDLHARAMICROSS'] = ta.CDLHARAMICROSS(df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values) # 函数名:CDLHIGHWAVE # 名称:High-Wave Candle 风高浪大线 # 简介:三日K线模式,具有极长的上/下影线与短的实体,预示着趋势反转。 # 例子:integer = CDLHIGHWAVE(open, high, low, close) resDF['CDLHIGHWAVE'] = ta.CDLHIGHWAVE(df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values) # 函数名:CDLHIKKAKE名称:Hikkake Pattern 陷阱 # 简介:三日K线模式,与母子类似,第二日价格在前一日实体范围内,第三日收盘价高于前两日,反转失败,趋势继续。 # 例子:integer = CDLHIKKAKE(open, high, low, close) resDF['CDLHIKKAKE'] = ta.CDLHIKKAKE(df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values) # 函数名:CDLHIKKAKEMOD名称:Modified Hikkake Pattern 修正陷阱 # 简介:三日K线模式,与陷阱类似,上升趋势中,第三日跳空高开;下跌趋势中,第三日跳空低开,反转失败,趋势继续。 # 例子:integer = CDLHIKKAKEMOD(open, high, low, close) resDF['CDLHIKKAKEMOD'] = ta.CDLHIKKAKEMOD(df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values) # 函数名:CDLHOMINGPIGEON名称:Homing Pigeon 家鸽 # 简介:二日K线模式,与母子线类似,不同的的是二日K线颜色相同,第二日最高价、最低价都在第一日实体之内,预示着趋势反转。 # 例子:integer = CDLHOMINGPIGEON(open, high, low, close) resDF['CDLHOMINGPIGEON'] = ta.CDLHOMINGPIGEON( df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values) # 函数名:CDLIDENTICAL3CROWS名称:Identical Three Crows 三胞胎乌鸦 # 简介:三日K线模式,上涨趋势中,三日都为阴线,长度大致相等,每日开盘价等于前一日收盘价,收盘价接近当日最低价,预示价格下跌。 # 例子:integer = CDLIDENTICAL3CROWS(open, high, low, close) resDF['CDLIDENTICAL3CROWS'] = ta.CDLIDENTICAL3CROWS( df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values) # 函数名:CDLINNECK名称:In-Neck Pattern 颈内线 # 简介:二日K线模式,下跌趋势中,第一日长阴线,第二日开盘价较低,收盘价略高于第一日收盘价,阳线,实体较短,预示着下跌继续。 # 例子:integer = CDLINNECK(open, high, low, close) resDF['CDLINNECK'] = ta.CDLINNECK(df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values) # 函数名:CDLINVERTEDHAMMER名称:Inverted Hammer 倒锤头 # 简介:一日K线模式,上影线较长,长度为实体2倍以上,无下影线,在下跌趋势底部,预示着趋势反转。 # 例子:integer = CDLINVERTEDHAMMER(open, high, low, close) resDF['CDLINVERTEDHAMMER'] = ta.CDLINVERTEDHAMMER( df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values) # 函数名:CDLKICKING # 名称:Kicking 反冲形态 # 简介:二日K线模式,与分离线类似,两日K线为秃线,颜色相反,存在跳空缺口。 # 例子:integer = CDLKICKING(open, high, low, close) resDF['CDLKICKING'] = ta.CDLKICKING(df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values) # 函数名:CDLKICKINGBYLENGTH名称:Kicking - bull/bear determined by the longer marubozu 由较长缺影线决定的反冲形态 # 简介:二日K线模式,与反冲形态类似,较长缺影线决定价格的涨跌。 # 例子:integer = CDLKICKINGBYLENGTH(open, high, low, close) resDF['CDLKICKINGBYLENGTH'] = ta.CDLKICKINGBYLENGTH( df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values) # 函数名:CDLLADDERBOTTOM名称:Ladder Bottom 梯底 # 简介:五日K线模式,下跌趋势中,前三日阴线,开盘价与收盘价皆低于前一日开盘、收盘价,第四日倒锤头,第五日开盘价高于前一日开盘价,阳线,收盘价高于前几日价格振幅,预示着底部反转。 # 例子:integer = CDLLADDERBOTTOM(open, high, low, close) resDF['CDLLADDERBOTTOM'] = ta.CDLLADDERBOTTOM( df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values) # 函数名:CDLLONGLEGGEDDOJI名称:Long Legged Doji 长脚十字 # 简介:一日K线模式,开盘价与收盘价相同居当日价格中部,上下影线长,表达市场不确定性。 # 例子:integer = CDLLONGLEGGEDDOJI(open, high, low, close) resDF['CDLLONGLEGGEDDOJI'] = ta.CDLLONGLEGGEDDOJI( df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values) # 函数名:CDLLONGLINE # 名称:Long Line Candle 长蜡烛 # 简介:一日K线模式,K线实体长,无上下影线。 # 例子:integer = CDLLONGLINE(open, high, low, close) resDF['CDLLONGLINE'] = ta.CDLLONGLINE(df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values) # 函数名:CDLMARUBOZU # 名称:Marubozu 光头光脚/缺影线 # 简介:一日K线模式,上下两头都没有影线的实体,阴线预示着熊市持续或者牛市反转,阳线相反。 # 例子:integer = CDLMARUBOZU(open, high, low, close) resDF['CDLMARUBOZU'] = ta.CDLMARUBOZU(df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values) # 函数名:CDLMATCHINGLOW名称:Matching Low 相同低价 # 简介:二日K线模式,下跌趋势中,第一日长阴线,第二日阴线,收盘价与前一日相同,预示底部确认,该价格为支撑位。 # 例子:integer = CDLMATCHINGLOW(open, high, low, close) resDF['CDLMATCHINGLOW'] = ta.CDLMATCHINGLOW(df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values) # 函数名:CDLMATHOLD名称:Mat Hold 铺垫 # 简介:五日K线模式,上涨趋势中,第一日阳线,第二日跳空高开影线,第三、四日短实体影线,第五日阳线,收盘价高于前四日,预示趋势持续。 # 例子:integer = CDLMATHOLD(open, high, low, close, penetration=0) resDF['CDLMATHOLD'] = ta.CDLMATHOLD(df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values, penetration=0) # 函数名:CDLMORNINGDOJISTAR名称:Morning Doji Star 十字晨星 # 简介:三日K线模式,基本模式为晨星,第二日K线为十字星,预示底部反转。 # 例子:integer = CDLMORNINGDOJISTAR(open, high, low, close, penetration=0) resDF['CDLMORNINGDOJISTAR'] = ta.CDLMORNINGDOJISTAR( df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values, penetration=0) # 函数名:CDLMORNINGSTAR名称:Morning Star 晨星 # 简介:三日K线模式,下跌趋势,第一日阴线,第二日价格振幅较小,第三天阳线,预示底部反转。 # 例子:integer = CDLMORNINGSTAR(open, high, low, close, penetration=0) resDF['CDLMORNINGSTAR'] = ta.CDLMORNINGSTAR(df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values, penetration=0) # 函数名:CDLONNECK名称:On-Neck Pattern 颈上线 # 简介:二日K线模式,下跌趋势中,第一日长阴线,第二日开盘价较低,收盘价与前一日最低价相同,阳线,实体较短,预示着延续下跌趋势。 # 例子:integer = CDLONNECK(open, high, low, close) resDF['CDLONNECK'] = ta.CDLONNECK(df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values) # 函数名:CDLPIERCING名称:Piercing Pattern 刺透形态 # 简介:两日K线模式,下跌趋势中,第一日阴线,第二日收盘价低于前一日最低价,收盘价处在第一日实体上部,预示着底部反转。 # 例子:integer = CDLPIERCING(open, high, low, close) resDF['CDLPIERCING'] = ta.CDLPIERCING(df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values) # 函数名:CDLRICKSHAWMAN名称:Rickshaw Man 黄包车夫 # 简介:一日K线模式,与长腿十字线类似,若实体正好处于价格振幅中点,称为黄包车夫。 # 例子:integer = CDLRICKSHAWMAN(open, high, low, close) resDF['CDLRICKSHAWMAN'] = ta.CDLRICKSHAWMAN(df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values) # 函数名:CDLRISEFALL3METHODS名称:Rising/Falling Three Methods 上升/下降三法 # 简介: 五日K线模式,以上升三法为例,上涨趋势中,第一日长阳线,中间三日价格在第一日范围内小幅震荡,第五日长阳线,收盘价高于第一日收盘价,预示股价上升。 # 例子:integer = CDLRISEFALL3METHODS(open, high, low, close) resDF['CDLRISEFALL3METHODS'] = ta.CDLRISEFALL3METHODS( df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values) # 函数名:CDLSEPARATINGLINES名称:Separating Lines 分离线 # 简介:二日K线模式,上涨趋势中,第一日阴线,第二日阳线,第二日开盘价与第一日相同且为最低价,预示着趋势继续。 # 例子:integer = CDLSEPARATINGLINES(open, high, low, close) resDF['CDLSEPARATINGLINES'] = ta.CDLSEPARATINGLINES( df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values) # 函数名:CDLSHOOTINGSTAR名称:Shooting Star 射击之星 # 简介:一日K线模式,上影线至少为实体长度两倍,没有下影线,预示着股价下跌 # 例子:integer = CDLSHOOTINGSTAR(open, high, low, close) resDF['CDLSHOOTINGSTAR'] = ta.CDLSHOOTINGSTAR( df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values) # 函数名:CDLSHORTLINE # 名称:Short Line Candle 短蜡烛 # 简介:一日K线模式,实体短,无上下影线。 # 例子:integer = CDLSHORTLINE(open, high, low, close) resDF['CDLSHORTLINE'] = ta.CDLSHORTLINE(df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values) # 函数名:CDLSPINNINGTOP # 名称:Spinning Top 纺锤 # 简介:一日K线,实体小。 # 例子:integer = CDLSPINNINGTOP(open, high, low, close) resDF['CDLSPINNINGTOP'] = ta.CDLSPINNINGTOP(df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values) # 函数名:CDLSTALLEDPATTERN名称:Stalled Pattern 停顿形态 # 简介:三日K线模式,上涨趋势中,第二日长阳线,第三日开盘于前一日收盘价附近,短阳线,预示着上涨结束。 # 例子:integer = CDLSTALLEDPATTERN(open, high, low, close) resDF['CDLSTALLEDPATTERN'] = ta.CDLSTALLEDPATTERN( df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values) # 函数名:CDLSTICKSANDWICH名称:Stick Sandwich 条形三明治 # 简介:三日K线模式,第一日长阴线,第二日阳线,开盘价高于前一日收盘价,第三日开盘价高于前两日最高价,收盘价于第一日收盘价相同。 # 例子:integer = CDLSTICKSANDWICH(open, high, low, close) resDF['CDLSTICKSANDWICH'] = ta.CDLSTICKSANDWICH( df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values) # 函数名:CDLTAKURI名称:Takuri (Dragonfly Doji with very long lower shadow) 探水竿 # 简介:一日K线模式,大致与蜻蜓十字相同,下影线长度长。 # 例子:integer = CDLTAKURI(open, high, low, close) resDF['CDLTAKURI'] = ta.CDLTAKURI(df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values) # 函数名:CDLTASUKIGAP名称:Tasuki Gap 跳空并列阴阳线 # 简介:三日K线模式,分上涨和下跌,以上升为例,前两日阳线,第二日跳空,第三日阴线,收盘价于缺口中,上升趋势持续。 # 例子:integer = CDLTASUKIGAP(open, high, low, close) resDF['CDLTASUKIGAP'] = ta.CDLTASUKIGAP(df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values) # 函数名:CDLTHRUSTING名称:Thrusting Pattern 插入 # 简介:二日K线模式,与颈上线类似,下跌趋势中,第一日长阴线,第二日开盘价跳空,收盘价略低于前一日实体中部,与颈上线相比实体较长,预示着趋势持续。 # 例子:integer = CDLTHRUSTING(open, high, low, close) resDF['CDLTHRUSTING'] = ta.CDLTHRUSTING(df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values) # 函数名:CDLTRISTAR # 名称:Tristar Pattern 三星 # 简介:三日K线模式,由三个十字组成,第二日十字必须高于或者低于第一日和第三日,预示着反转。 # 例子:integer = CDLTRISTAR(open, high, low, close) resDF['CDLTRISTAR'] = ta.CDLTRISTAR(df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values) # 函数名:CDLUNIQUE3RIVER名称:Unique 3 River 奇特三河床 # 简介:三日K线模式,下跌趋势中,第一日长阴线,第二日为锤头,最低价创新低,第三日开盘价低于第二日收盘价,收阳线,收盘价不高于第二日收盘价,预示着反转,第二日下影线越长可能性越大。 # 例子:integer = CDLUNIQUE3RIVER(open, high, low, close) resDF['CDLUNIQUE3RIVER'] = ta.CDLUNIQUE3RIVER( df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values) # 函数名:CDLUPSIDEGAP2CROWS名称:Upside Gap Two Crows 向上跳空的两只乌鸦 # 简介:三日K线模式,第一日阳线,第二日跳空以高于第一日最高价开盘,收阴线,第三日开盘价高于第二日,收阴线,与第一日比仍有缺口。 # 例子:integer = CDLUPSIDEGAP2CROWS(open, high, low, close) resDF['CDLUPSIDEGAP2CROWS'] = ta.CDLUPSIDEGAP2CROWS( df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values) # 函数名:CDLXSIDEGAP3METHODS名称:Upside/Downside Gap Three Methods 上升/下降跳空三法 # 简介:五日K线模式,以上升跳空三法为例,上涨趋势中,第一日长阳线,第二日短阳线,第三日跳空阳线,第四日阴线,开盘价与收盘价于前两日实体内,第五日长阳线,收盘价高于第一日收盘价,预示股价上升。 # 例子:integer = CDLXSIDEGAP3METHODS(open, high, low, close) resDF['CDLXSIDEGAP3METHODS'] = ta.CDLXSIDEGAP3METHODS( df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values) resDF['CMO'] = ta.CMO(df['price'].values, timeperiod=14) resDF['CORREL'] = ta.CORREL(df['max_price'].values, df['min_price'].values, timeperiod=30) resDF['DEMA'] = ta.DEMA(df['price'].values, timeperiod=30) resDF['DX'] = ta.DX(df['max_price'].values, df['min_price'].values, df['price'].values, timeperiod=14) resDF['EMA'] = ta.EMA(df['price'].values, timeperiod=30) resDF['HT_DCPERIOD'] = ta.HT_DCPERIOD(df['price'].values) resDF['HT_DCPHASE'] = ta.HT_DCPHASE(df['price'].values) resDF['inphase'], resDF['quadrature'] = ta.HT_PHASOR(df['price'].values) resDF['sine'], resDF['leadsine'] = ta.HT_SINE(df['price'].values) resDF['HT_TRENDLINE'] = ta.HT_TRENDLINE(df['price'].values) resDF['HT_TRENDMODE'] = ta.HT_TRENDMODE(df['price'].values) resDF['KAMA'] = ta.KAMA(df['price'].values, timeperiod=30) resDF['LINEARREG'] = ta.LINEARREG(df['price'].values, timeperiod=14) resDF['LINEARREG_ANGLE'] = ta.LINEARREG_ANGLE(df['price'].values, timeperiod=14) resDF['LINEARREG_INTERCEPT'] = ta.LINEARREG_INTERCEPT(df['price'].values, timeperiod=14) resDF['LINEARREG_SLOPE'] = ta.LINEARREG_SLOPE(df['price'].values, timeperiod=14) resDF['MA'] = ta.MA(df['price'].values, timeperiod=30, matype=0) resDF['macd'], resDF['macdsignal'], resDF['macdhist'] = ta.MACD( df['price'].values, fastperiod=12, slowperiod=26, signalperiod=9) resDF['macd'], resDF['macdsignal'], resDF['macdhist'] = ta.MACDEXT( df['price'].values, fastperiod=12, fastmatype=0, slowperiod=26, slowmatype=0, signalperiod=9, signalmatype=0) resDF['macd'], resDF['macdsignal'], resDF['macdhist'] = ta.MACDFIX( df['price'].values, signalperiod=9) #resDF['mama'], resDF['fama'] = ta.MAMA (df['price'].values, fastlimit=0, slowlimit=0) resDF['MAX'] = ta.MAX(df['price'].values, timeperiod=30) resDF['MAXINDEX'] = ta.MAXINDEX(df['price'].values, timeperiod=30) resDF['MEDPRICE'] = ta.MEDPRICE(df['max_price'].values, df['min_price'].values) resDF['MFI'] = ta.MFI(df['price_today_open'].values, df['max_price'].values, df['min_price'].values, df['price'].values, timeperiod=14) resDF['MIDPOINT'] = ta.MIDPOINT(df['price'].values, timeperiod=14) resDF['MIDPRICE'] = ta.MIDPRICE(df['max_price'].values, df['min_price'].values, timeperiod=14) resDF['MIN'] = ta.MIN(df['price'].values, timeperiod=30) resDF['MININDEX'] = ta.MININDEX(df['price'].values, timeperiod=30) resDF['min'], resDF['max'] = ta.MINMAX(df['price'].values, timeperiod=30) resDF['minidx'], resDF['maxidx'] = ta.MINMAXINDEX(df['price'].values, timeperiod=30) resDF['MINUS_DI'] = ta.MINUS_DI(df['max_price'].values, df['min_price'].values, df['price'].values, timeperiod=14) resDF['MINUS_DM'] = ta.MINUS_DM(df['max_price'].values, df['min_price'].values, timeperiod=14) resDF['MOM'] = ta.MOM(df['max_price'].values, timeperiod=10) resDF['NATR'] = ta.NATR(df['max_price'].values, df['min_price'].values, df['price'].values, timeperiod=14) # 函数名:OBV 名称:On Balance Volume 能量潮 # 简介:Joe Granville提出,通过统计成交量变动的趋势推测股价趋势计算公式:以某日为基期,逐日累计每日上市股票总成交量,若隔日指数或股票上涨,则基期OBV加上本日成交量为本日OBV。隔日指数或股票下跌,则基期OBV减去本日成交量为本日OBV # 研判:1、以“N”字型为波动单位,一浪高于一浪称“上升潮”,下跌称“跌潮”;上升潮买进,跌潮卖出 # 2、须配合K线图走势 # 3、用多空比率净额法进行修正,但不知TA-Lib采用哪种方法 # 多空比率净额= [(收盘价-最低价)-(最高价-收盘价)] ÷( 最高价-最低价)×成交量 # 例子:real = OBV(close, volume) resDF['OBV'] = ta.OBV(df['price'].values, df['vol'].values) # resDF['PLUS_DI'] = ta.PLUS_DI # resDF['PLUS_DM'] = ta.PLUS_DM resDF['PPO'] = ta.PPO(df['price'].values, fastperiod=12, slowperiod=26, matype=0) resDF['ROC'] = ta.ROC(df['price'].values, timeperiod=10) resDF['ROCP'] = ta.ROCP(df['price'].values, timeperiod=10) resDF['ROCR'] = ta.ROCR(df['price'].values, timeperiod=10) resDF['ROCR100'] = ta.ROCR100(df['price'].values, timeperiod=10) resDF['RSI'] = ta.RSI(df['price'].values, timeperiod=14) resDF['SAR'] = ta.SAR(df['max_price'].values, df['min_price'].values, acceleration=0, maximum=0) resDF['SAREXT'] = ta.SAREXT(df['max_price'].values, df['min_price'].values, startvalue=0, offsetonreverse=0, accelerationinitlong=0, accelerationlong=0, accelerationmaxlong=0, accelerationinitshort=0, accelerationshort=0, accelerationmaxshort=0) resDF['SMA'] = ta.SMA(df['price'].values, timeperiod=30) resDF['STDDEV'] = ta.STDDEV(df['price'].values, timeperiod=5, nbdev=1) # resDF['STOCH'] = ta.STOCH # resDF['STOCHF'] = ta.STOCHF resDF['fastk'], resDF['fastd'] = ta.STOCHRSI(df['price'].values, timeperiod=14, fastk_period=5, fastd_period=3, fastd_matype=0) resDF['SUM'] = ta.SUM(df['price'].values, timeperiod=30) resDF['T3'] = ta.T3(df['price'].values, timeperiod=5, vfactor=0) resDF['TEMA'] = ta.TEMA(df['price'].values, timeperiod=30) resDF['TRANGE'] = ta.TRANGE(df['max_price'].values, df['min_price'].values, df['price'].values) resDF['TRIMA'] = ta.TRIMA(df['price'].values, timeperiod=30) resDF['TRIX'] = ta.TRIX(df['price'].values, timeperiod=30) resDF['TSF'] = ta.TSF(df['price'].values, timeperiod=14) resDF['TYPPRICE'] = ta.TYPPRICE(df['max_price'].values, df['min_price'].values, df['price'].values) # resDF['ULTOSC'] = ta.ULTOSC resDF['VAR'] = ta.VAR(df['price'].values, timeperiod=5, nbdev=1) resDF['WCLPRICE'] = ta.WCLPRICE(df['max_price'].values, df['min_price'].values, df['price'].values) # resDF['WILLR'] = ta.WILLR resDF['WMA'] = ta.WMA(df['price'].values, timeperiod=30) return resDF
def addIndi(self, enrich, endf): # Overlays if enrich == 'bbands': bbup, bbmid, bblow = ta.BBANDS(endf['Close'], timeperiod=5, nbdevup=2, nbdevdn=2, matype=0) endf.insert(0, column='bblow', value=bblow) endf.insert(0, column='bbmid', value=bbmid) endf.insert(0, column='bbup', value=bbup) return endf if enrich == 'mama': mama, fama = ta.MAMA(endf['Close']) endf.insert(0, column='fama', value=fama) endf.insert(0, column='mama', value=mama) return endf if enrich == 'dema': endf.insert(0, column='dema', value=ta.DEMA(endf['Close'], timeperiod=30)) return endf if enrich == 'ema': endf.insert(0, column='ema', value=ta.EMA(endf['Close'], timeperiod=30)) # Unstable period return endf if enrich == 'ht_trendline': endf.insert(0, column='ht_trendline', value=ta.HT_TRENDLINE(endf['Close'])) # Unstable period return endf if enrich == 'kama': endf.insert(0, column='kama', value=ta.KAMA(endf['Close'], timeperiod=30)) # Unstable period return endf if enrich == 'ma': endf.insert(0, column='ma', value=ta.MA(endf['Close'], timeperiod=30, matype=0)) return endf if enrich == 'midpoint': endf.insert(0, column='midpoint', value=ta.MIDPOINT(endf['Close'], timeperiod=14)) return endf if enrich == 'midprice': endf.insert(0, column='midprice', value=ta.MIDPRICE(endf['High'], endf['Low'], timeperiod=14)) return endf if enrich == 'sar': endf.insert(0, column='sar', value=ta.SAR(endf['High'], endf['Low'], acceleration=0, maximum=0)) return endf if enrich == 'sarext': endf.insert(0, column='sarext', value=ta.SAREXT(endf['High'], endf['Low'], startvalue=0, offsetonreverse=0, accelerationinitlong=0, accelerationlong=0, accelerationmaxlong=0, accelerationinitshort=0, accelerationshort=0, accelerationmaxshort=0)) return endf if enrich == 'sma': endf.insert(0, column='sma', value=ta.SMA(endf['Close'], timeperiod=30)) return endf if enrich == 't3': endf.insert(0, column='t3', value=ta.T3(endf['Close'], timeperiod=5, vfactor=0)) # Unstable period return endf if enrich == 'tema': endf.insert(0, column='tema', value=ta.TEMA(endf['Close'], timeperiod=30)) return endf if enrich == 'trima': endf.insert(0, column='trima', value=ta.TRIMA(endf['Close'], timeperiod=30)) return endf if enrich == 'wma': endf.insert(0, column='wma', value=ta.WMA(endf['Close'], timeperiod=30)) return endf # Momentum if enrich == 'adx': endf.insert(0, column='adx', value=ta.ADX(endf['High'], endf['Low'], endf['Close'], timeperiod=14)) return endf if enrich == 'adxr': endf.insert(0, column='adxr', value=ta.ADXR(endf['High'], endf['Low'], endf['Close'], timeperiod=14)) return endf if enrich == 'apo': endf.insert(0, column='apo', value=ta.APO(endf['Close'], fastperiod=12, slowperiod=26, matype=0)) return endf if enrich == 'aroonosc': endf.insert(0, column='aroonosc', value=ta.AROONOSC(endf['High'], endf['Low'], timeperiod=14)) return endf if enrich == 'aroon': aroondown, aroonup = ta.AROON(endf['High'], endf['Low'], timeperiod=14) endf.insert(0, column='aroonup', value=aroonup) endf.insert(0, column='aroondown', value=aroondown) return endf if enrich == 'bop': endf.insert(0, column='bop', value=ta.BOP(endf['Open'], endf['High'], endf['Low'], endf['Close'])) return endf if enrich == 'cci': endf.insert(0, column='cci', value=ta.CCI(endf['High'], endf['Low'], endf['Close'], timeperiod=14)) return endf if enrich == 'cmo': endf.insert(0, column='cmo', value=ta.CMO(endf['Close'], timeperiod=14)) return endf if enrich == 'dx': endf.insert(0, column='dx', value=ta.DX(endf['High'], endf['Low'], endf['Close'], timeperiod=14)) return endf if enrich == 'macd': macd, macdsignal, macdhist = ta.MACD(endf['Close'], fastperiod=12, slowperiod=26, signalperiod=9) endf.insert(0, column='macd', value=macd) endf.insert(0, column='macdsignal', value=macdsignal) endf.insert(0, column='macdhist', value=macdhist) return endf if enrich == 'mfi': endf.insert(0, column='mfi', value=ta.MFI(endf['High'], endf['Low'], endf['Close'], endf['Volume'], timeperiod=14)) return endf if enrich == 'mom': endf.insert(0, column='mom', value=ta.MOM(endf['Close'], timeperiod=10)) return endf if enrich == 'ppo': endf.insert(0, column='ppo', value=ta.PPO(endf['Close'], fastperiod=12, slowperiod=26, matype=0)) return endf if enrich == 'roc': endf.insert(0, column='roc', value=ta.ROC(endf['Close'], timeperiod=10)) return endf if enrich == 'rocp': endf.insert(0, column='rocp', value=ta.ROCP(endf['Close'], timeperiod=10)) return endf if enrich == 'rsi': endf.insert(0, column='rsi', value=ta.RSI(endf['Close'], timeperiod=14)) return endf if enrich == 'stoch': slowk, slowd = ta.STOCH(endf['High'], endf['Low'], endf['Close'], fastk_period=5, slowk_period=3, slowk_matype=0, slowd_period=3, slowd_matype=0) endf.insert(0, column='slowk', value=slowk) endf.insert(0, column='slowd', value=slowd) return endf if enrich == 'trix': endf.insert(0, column='trix', value=ta.TRIX(endf['Close'], timeperiod=30)) return endf if enrich == 'ultosc': endf.insert(0, column='ultosc', value=ta.ULTOSC(endf['High'], endf['Low'], endf['Close'], timeperiod1=7, timeperiod2=14, timeperiod3=28)) return endf if enrich == 'willr': endf.insert(0, column='willr', value=ta.WILLR(endf['High'], endf['Low'], endf['Close'], timeperiod=14)) return endf # Volume if enrich == 'ad': endf.insert(0, column='ad', value=ta.AD(endf['High'], endf['Low'], endf['Close'], endf['Volume'])) return endf if enrich == 'adosc': endf.insert(0, column='adosc', value=ta.ADOSC(endf['High'], endf['Low'], endf['Close'], endf['Volume'], fastperiod=3, slowperiod=10)) return endf if enrich == 'obv': endf.insert(0, column='obv', value=ta.OBV(endf['Close'], endf['Volume'])) return endf # Volitility if enrich == 'atr': endf.insert(0, column='atr', value=ta.ATR(endf['High'], endf['Low'], endf['Close'], timeperiod=14)) return endf if enrich == 'natr': endf.insert(0, column='natr', value=ta.NATR(endf['High'], endf['Low'], endf['Close'], timeperiod=14)) return endf if enrich == 'trange': endf.insert(0, column='trange', value=ta.TRANGE(endf['High'], endf['Low'], endf['Close'])) return endf # Pattern if enrich == 'cdl2crows': endf.insert(0, column='cdl2crows', value=ta.CDL2CROWS(endf['Open'], endf['High'], endf['Low'], endf['Close'])) return endf if enrich == 'cdl3blackcrows': endf.insert(0, column='cdl3blackcrows', value=ta.CDL3BLACKCROWS(endf['Open'], endf['High'], endf['Low'], endf['Close'])) return endf if enrich == 'cdl3inside': endf.insert(0, column='cdl3inside', value=ta.CDL3INSIDE(endf['Open'], endf['High'], endf['Low'], endf['Close'])) return endf if enrich == 'cdl3linestrike': endf.insert(0, column='cdl3linestrike', value=ta.CDL3LINESTRIKE(endf['Open'], endf['High'], endf['Low'], endf['Close'])) return endf if enrich == 'cdl3outside': endf.insert(0, column='cdlcdl3outside', value=ta.CDL3OUTSIDE(endf['Open'], endf['High'], endf['Low'], endf['Close'])) return endf if enrich == 'cdl3starsinsouth': endf.insert(0, column='cdl3starsinsouth', value=ta.CDL3STARSINSOUTH(endf['Open'], endf['High'], endf['Low'], endf['Close'])) return endf if enrich == 'cdl3whitesoldiers': endf.insert(0, column='cdl3whitesoldiers', value=ta.CDL3WHITESOLDIERS(endf['Open'], endf['High'], endf['Low'], endf['Close'])) return endf if enrich == 'cdlabandonedbaby': endf.insert(0, column='cdlabandonedbaby', value=ta.CDLABANDONEDBABY(endf['Open'], endf['High'], endf['Low'], endf['Close'], penetration=0)) return endf if enrich == 'cdladvanceblock': endf.insert(0, column='cdladvanceblock', value=ta.CDLADVANCEBLOCK(endf['Open'], endf['High'], endf['Low'], endf['Close'])) return endf if enrich == 'cdlbelthold': endf.insert(0, column='cdlbelthold', value=ta.CDLBELTHOLD(endf['Open'], endf['High'], endf['Low'], endf['Close'])) return endf if enrich == 'cdlbreakaway': endf.insert(0, column='cdlbreakaway', value=ta.CDLBREAKAWAY(endf['Open'], endf['High'], endf['Low'], endf['Close'])) return endf if enrich == 'cdlclosingmarubozu': endf.insert(0, column='cdlclosingmarubozu', value=ta.CDLCLOSINGMARUBOZU(endf['Open'], endf['High'], endf['Low'], endf['Close'])) return endf if enrich == 'cdlconcealbabyswall': endf.insert(0, column='cdlconcealbabyswall', value=ta.CDLCONCEALBABYSWALL(endf['Open'], endf['High'], endf['Low'], endf['Close'])) return endf if enrich == 'cdlcounterattack': endf.insert(0, column='cdlcounterattack', value=ta.CDLCOUNTERATTACK(endf['Open'], endf['High'], endf['Low'], endf['Close'])) return endf if enrich == 'cdldarkcloudcover': endf.insert(0, column='cdldarkcloudcover', value=ta.CDLDARKCLOUDCOVER(endf['Open'], endf['High'], endf['Low'], endf['Close'], penetration=0)) return endf if enrich == 'cdldoji': endf.insert(0, column='cdldoji', value=ta.CDLDOJI(endf['Open'], endf['High'], endf['Low'], endf['Close'])) return endf if enrich == 'cdldojistar': endf.insert(0, column='cdldojistar', value=ta.CDLDOJISTAR(endf['Open'], endf['High'], endf['Low'], endf['Close'])) return endf if enrich == 'cdldragonflydoji': endf.insert(0, column='cdldragonflydoji', value=ta.CDLDRAGONFLYDOJI(endf['Open'], endf['High'], endf['Low'], endf['Close'])) return endf if enrich == 'cdlengulfing': endf.insert(0, column='cdlengulfing', value=ta.CDLENGULFING(endf['Open'], endf['High'], endf['Low'], endf['Close'])) return endf if enrich == 'cdleveningdojistar': endf.insert(0, column='cdleveningdojistar', value=ta.CDLEVENINGDOJISTAR(endf['Open'], endf['High'], endf['Low'], endf['Close'], penetration=0)) return endf if enrich == 'cdleveningstar': endf.insert(0, column='cdleveningstar', value=ta.CDLEVENINGSTAR(endf['Open'], endf['High'], endf['Low'], endf['Close'], penetration=0)) return endf if enrich == 'cdlgapsidesidewhite': endf.insert(0, column='cdlgapsidesidewhite', value=ta.CDLGAPSIDESIDEWHITE(endf['Open'], endf['High'], endf['Low'], endf['Close'])) return endf if enrich == 'cdlgravestonedoji': endf.insert(0, column='cdlgravestonedoji', value=ta.CDLGRAVESTONEDOJI(endf['Open'], endf['High'], endf['Low'], endf['Close'])) return endf if enrich == 'cdlhammer': endf.insert(0, column='cdlhammer', value=ta.CDLHAMMER(endf['Open'], endf['High'], endf['Low'], endf['Close'])) return endf if enrich == 'cdlhangingman': endf.insert(0, column='cdlhangingman', value=ta.CDLHANGINGMAN(endf['Open'], endf['High'], endf['Low'], endf['Close'])) return endf if enrich == 'cdlharami': endf.insert(0, column='cdlharami', value=ta.CDLHARAMI(endf['Open'], endf['High'], endf['Low'], endf['Close'])) return endf if enrich == 'cdlharamicross': # print(endf.info(),file=sys.stderr) endf.insert(0, column='cdlharamicross', value=ta.CDLHARAMICROSS(endf['Open'], endf['High'], endf['Low'], endf['Close'])) # print(endf.info(),file=sys.stderr) return endf if enrich == 'cdlhighwave': print(endf.info(), file=sys.stderr) endf.insert(0, column='cdlhighwave', value=ta.CDLHIGHWAVE(endf['Open'], endf['High'], endf['Low'], endf['Close'])) return endf if enrich == 'cdlhikkake': endf.insert(0, column='cdlhikkake', value=ta.CDLHIKKAKE(endf['Open'], endf['High'], endf['Low'], endf['Close'])) return endf if enrich == 'cdlhikkakemod': endf.insert(0, column='cdlhikkakemod', value=ta.CDLHIKKAKEMOD(endf['Open'], endf['High'], endf['Low'], endf['Close'])) return endf if enrich == 'cdlhomingpigeon': endf.insert(0, column='cdlhomingpigeon', value=ta.CDLHOMINGPIGEON(endf['Open'], endf['High'], endf['Low'], endf['Close'])) return endf if enrich == 'cdlidentical3crows': endf.insert(0, column='cdlidentical3crows', value=ta.CDLIDENTICAL3CROWS(endf['Open'], endf['High'], endf['Low'], endf['Close'])) return endf if enrich == 'cdlinneck': endf.insert(0, column='cdlinneck', value=ta.CDLINNECK(endf['Open'], endf['High'], endf['Low'], endf['Close'])) return endf if enrich == 'cdlinvertedhammer': endf.insert(0, column='cdlinvertedhammer', value=ta.CDLINVERTEDHAMMER(endf['Open'], endf['High'], endf['Low'], endf['Close'])) return endf if enrich == 'cdlkicking': endf.insert(0, column='cdlkicking', value=ta.CDLKICKING(endf['Open'], endf['High'], endf['Low'], endf['Close'])) return endf if enrich == 'cdlkickingbylength': endf.insert(0, column='cdlkickingbylength', value=ta.CDLKICKINGBYLENGTH(endf['Open'], endf['High'], endf['Low'], endf['Close'])) return endf if enrich == 'cdlladderbottom': endf.insert(0, column='cdlladderbottom', value=ta.CDLLADDERBOTTOM(endf['Open'], endf['High'], endf['Low'], endf['Close'])) return endf if enrich == 'cdllongleggeddoji': endf.insert(0, column='cdllongleggeddoji', value=ta.CDLLONGLEGGEDDOJI(endf['Open'], endf['High'], endf['Low'], endf['Close'])) return endf if enrich == 'cdllongline': endf.insert(0, column='cdllongline', value=ta.CDLLONGLINE(endf['Open'], endf['High'], endf['Low'], endf['Close'])) return endf if enrich == 'cdlmarubozu': endf.insert(0, column='cdlmarubozu', value=ta.CDLMARUBOZU(endf['Open'], endf['High'], endf['Low'], endf['Close'])) return endf if enrich == 'cdlmatchinglow': endf.insert(0, column='cdlmatchinglow', value=ta.CDLMATCHINGLOW(endf['Open'], endf['High'], endf['Low'], endf['Close'])) return endf if enrich == 'cdlmathold': endf.insert(0, column='cdlmathold', value=ta.CDLMATHOLD(endf['Open'], endf['High'], endf['Low'], endf['Close'], penetration=0)) return endf if enrich == 'cdlmorningdojistar': endf.insert(0, column='cdlmorningdojistar', value=ta.CDLMORNINGDOJISTAR(endf['Open'], endf['High'], endf['Low'], endf['Close'], penetration=0)) return endf if enrich == 'cdlmorningstar': endf.insert(0, column='cdlmorningstar', value=ta.CDLMORNINGSTAR(endf['Open'], endf['High'], endf['Low'], endf['Close'], penetration=0)) return endf if enrich == 'cdlonneck': endf.insert(0, column='cdlonneck', value=ta.CDLONNECK(endf['Open'], endf['High'], endf['Low'], endf['Close'])) return endf if enrich == 'cdlpiercing': endf.insert(0, column='cdlpiercing', value=ta.CDLPIERCING(endf['Open'], endf['High'], endf['Low'], endf['Close'])) return endf if enrich == 'cdlrickshawman': endf.insert(0, column='cdlrickshawman', value=ta.CDLRICKSHAWMAN(endf['Open'], endf['High'], endf['Low'], endf['Close'])) return endf if enrich == 'cdlrisefall3methods': endf.insert(0, column='cdlrisefall3methods', value=ta.CDLRISEFALL3METHODS(endf['Open'], endf['High'], endf['Low'], endf['Close'])) return endf if enrich == 'cdlseparatinglines': endf.insert(0, column='cdlseparatinglines', value=ta.CDLSEPARATINGLINES(endf['Open'], endf['High'], endf['Low'], endf['Close'])) return endf if enrich == 'cdlshootingstar': endf.insert(0, column='cdlshootingstar', value=ta.CDLSHOOTINGSTAR(endf['Open'], endf['High'], endf['Low'], endf['Close'])) return endf if enrich == 'cdlshortline': endf.insert(0, column='cdlshortline', value=ta.CDLSHORTLINE(endf['Open'], endf['High'], endf['Low'], endf['Close'])) return endf if enrich == 'cdlspinningtop': endf.insert(0, column='cdlspinningtop', value=ta.CDLSPINNINGTOP(endf['Open'], endf['High'], endf['Low'], endf['Close'])) return endf if enrich == 'cdlstalledpattern': endf.insert(0, column='cdlstalledpattern', value=ta.CDLSTALLEDPATTERN(endf['Open'], endf['High'], endf['Low'], endf['Close'])) return endf if enrich == 'cdlsticksandwich': endf.insert(0, column='cdlsticksandwich', value=ta.CDLSTICKSANDWICH(endf['Open'], endf['High'], endf['Low'], endf['Close'])) return endf if enrich == 'cdltakuri': endf.insert(0, column='cdltakuri', value=ta.CDLTAKURI(endf['Open'], endf['High'], endf['Low'], endf['Close'])) return endf if enrich == 'cdltasukigap': endf.insert(0, column='cdltasukigap', value=ta.CDLTASUKIGAP(endf['Open'], endf['High'], endf['Low'], endf['Close'])) return endf if enrich == 'cdlthrusting': endf.insert(0, column='cdlthrusting', value=ta.CDLTHRUSTING(endf['Open'], endf['High'], endf['Low'], endf['Close'])) return endf if enrich == 'cdltristar': endf.insert(0, column='cdltristar', value=ta.CDLTRISTAR(endf['Open'], endf['High'], endf['Low'], endf['Close'])) return endf if enrich == 'cdlunique3river': endf.insert(0, column='cdlunique3river', value=ta.CDLUNIQUE3RIVER(endf['Open'], endf['High'], endf['Low'], endf['Close'])) return endf if enrich == 'cdlupsidegap2crows': endf.insert(0, column='cdlupsidegap2crows', value=ta.CDLUPSIDEGAP2CROWS(endf['Open'], endf['High'], endf['Low'], endf['Close'])) return endf if enrich == 'cdlxsidegap3methods': endf.insert(0, column='cdlxsidegap3methods', value=ta.CDLXSIDEGAP3METHODS(endf['Open'], endf['High'], endf['Low'], endf['Close'])) return endf # Price if enrich == 'avgprice': endf.insert(0, column='avgprice', value=ta.AVGPRICE(endf['Open'], endf['High'], endf['Low'], endf['Close'])) return endf if enrich == 'medprice': endf.insert(0, column='medprice', value=ta.MEDPRICE(endf['High'], endf['Low'])) return endf if enrich == 'typprice': endf.insert(0, column='typprice', value=ta.TYPPRICE(endf['High'], endf['Low'], endf['Close'])) return endf if enrich == 'wclprice': endf.insert(0, column='wclprice', value=ta.WCLPRICE(endf['High'], endf['Low'], endf['Close'])) return endf # Stats if enrich == 'beta': endf.insert(0, column='beta', value=ta.BETA(endf['High'], endf['Low'], timeperiod=5)) return endf if enrich == 'correl': endf.insert(0, column='correl', value=ta.CORREL(endf['High'], endf['Low'], timeperiod=30)) return endf if enrich == 'linearreg': endf.insert(0, column='linearreg', value=ta.LINEARREG(endf['Close'], timeperiod=14)) return endf if enrich == 'linearreg_angle': endf.insert(0, column='linearreg_angle', value=ta.LINEARREG_ANGLE(endf['Close'], timeperiod=14)) return endf if enrich == 'linearreg_intercept': endf.insert(0, column='linearreg_intercept', value=ta.LINEARREG_INTERCEPT(endf['Close'], timeperiod=14)) return endf if enrich == 'linearreg_slope': endf.insert(0, column='linearreg_slope', value=ta.LINEARREG_SLOPE(endf['Close'], timeperiod=14)) return endf if enrich == 'stddev': endf.insert(0, column='stddev', value=ta.STDDEV(endf['Close'], timeperiod=5, nbdev=1)) return endf if enrich == 'tsf': endf.insert(0, column='tsf', value=ta.TSF(endf['Close'], timeperiod=14)) return endf if enrich == 'var': endf.insert(0, column='var', value=ta.VAR(endf['Close'], timeperiod=5, nbdev=1)) return endf
def TA(S, s, c): S = S.fillna(0) ope = numpy.asfarray(S.Open) high = numpy.asfarray(S.High) low = numpy.asfarray(S.Low) close = numpy.asfarray(S.Close) volume = numpy.asfarray(S.Volume) ##ROI calculation ROI = [(close[i + 1] - close[i]) / close[i] for i in range(len(close) - 1)] ROI.append(0) #add zero value for last day d = pandas.DataFrame(ROI, index=S.index, columns=['ROI']) d.to_csv("C:\\Users\\...\\Documents\\Data_TA\\{0}\\ROI_{1}.csv".format( s, c)) ##Baselines try: bah.append((S.Close['2013-04-30'] - S.Close['2002-05-01']) / S.Close['2002-05-01']) sah.append((-S.Close['2013-04-30'] + S.Close['2002-05-01']) / S.Close['2002-05-01']) except: bah.append((S.Close['2013-04-30'] - S.Close['2002-05-02']) / S.Close['2002-05-02']) sah.append((-S.Close['2013-04-30'] + S.Close['2002-05-02']) / S.Close['2002-05-02']) rp.append( numpy.dot(numpy.random.uniform(-1, 1, len(S)), numpy.asfarray(ROI))) ##talib application #overlap BBANDS = ta.BBANDS(close) DEMA = ta.DEMA(close) EMA = ta.EMA(close) HT_TRENDLINE = ta.HT_TRENDLINE(close) KAMA = ta.KAMA(close) MA = ta.MA(close) MAMA = ta.MAMA(close) MIDPOINT = ta.MIDPOINT(close) MIDPRICE = ta.MIDPRICE(high, low) SAR = ta.SAR(high, low) SAREXT = ta.SAREXT(high, low) SMA = ta.SMA(close) T3 = ta.T3(close) TEMA = ta.TEMA(close) TRIMA = ta.TRIMA(close) WMA = ta.WMA(close) #momentum ADX = ta.ADX(high, low, close) ADXR = ta.ADXR(high, low, close) APO = ta.APO(close) AROON = ta.AROON(high, low) AROONOSC = ta.AROONOSC(high, low) BOP = ta.BOP(ope, high, low, close) CCI = ta.CCI(high, low, close) CMO = ta.CMO(close) DX = ta.DX(high, low, close) MACD = ta.MACD(close) MACDEXT = ta.MACDEXT(close) MFI = ta.MFI(high, low, close, volume) MINUS_DI = ta.MINUS_DI(high, low, close) MINUS_DM = ta.MINUS_DM(high, low) MOM = ta.MOM(close) PLUS_DI = ta.PLUS_DI(high, low, close) PLUS_DM = ta.PLUS_DM(high, low) PPO = ta.PPO(close) ROC = ta.ROC(close) ROCP = ta.ROCP(close) ROCR = ta.ROCR(close) RSI = ta.RSI(close) STOCH = ta.STOCH(high, low, close) STOCHF = ta.STOCHF(high, low, close) STOCHRSI = ta.STOCHRSI(close) TRIX = ta.TRIX(close) ULTOSC = ta.ULTOSC(high, low, close) WILLR = ta.WILLR(high, low, close) #volume AD = ta.AD(high, low, close, volume) ADOSC = ta.ADOSC(high, low, close, volume) OBV = ta.OBV(close, volume) #cycle HT_DCPERIOD = ta.HT_DCPERIOD(close) HT_DCPHASE = ta.HT_DCPHASE(close) HT_PHASOR = ta.HT_PHASOR(close) HT_SINE = ta.HT_SINE(close) HT_TRENDMODE = ta.HT_TRENDMODE(close) #price AVGPRICE = ta.AVGPRICE(ope, high, low, close) MEDPRICE = ta.MEDPRICE(high, low) TYPPRICE = ta.TYPPRICE(high, low, close) WCLPRICE = ta.WCLPRICE(high, low, close) #volatility ATR = ta.ATR(high, low, close) NATR = ta.NATR(high, low, close) TRANGE = ta.TRANGE(high, low, close) #pattern CDL2CROWS = ta.CDL2CROWS(ope, high, low, close) CDL3BLACKCROWS = ta.CDL3BLACKCROWS(ope, high, low, close) CDL3INSIDE = ta.CDL3INSIDE(ope, high, low, close) CDL3LINESTRIKE = ta.CDL3LINESTRIKE(ope, high, low, close) CDL3OUTSIDE = ta.CDL3OUTSIDE(ope, high, low, close) CDL3STARSINSOUTH = ta.CDL3STARSINSOUTH(ope, high, low, close) CDL3WHITESOLDIERS = ta.CDL3WHITESOLDIERS(ope, high, low, close) CDLABANDONEDBABY = ta.CDLABANDONEDBABY(ope, high, low, close) CDLADVANCEBLOCK = ta.CDLADVANCEBLOCK(ope, high, low, close) CDLBELTHOLD = ta.CDLBELTHOLD(ope, high, low, close) CDLBREAKAWAY = ta.CDLBREAKAWAY(ope, high, low, close) CDLCLOSINGMARUBOZU = ta.CDLCLOSINGMARUBOZU(ope, high, low, close) CDLCONCEALBABYSWALL = ta.CDLCONCEALBABYSWALL(ope, high, low, close) CDLCOUNTERATTACK = ta.CDLCOUNTERATTACK(ope, high, low, close) CDLDARKCLOUDCOVER = ta.CDLDARKCLOUDCOVER(ope, high, low, close) CDLDOJI = ta.CDLDOJI(ope, high, low, close) CDLDOJISTAR = ta.CDLDOJISTAR(ope, high, low, close) CDLDRAGONFLYDOJI = ta.CDLDRAGONFLYDOJI(ope, high, low, close) CDLENGULFING = ta.CDLENGULFING(ope, high, low, close) CDLEVENINGDOJISTAR = ta.CDLEVENINGDOJISTAR(ope, high, low, close) CDLEVENINGSTAR = ta.CDLEVENINGSTAR(ope, high, low, close) CDLGAPSIDESIDEWHITE = ta.CDLGAPSIDESIDEWHITE(ope, high, low, close) CDLGRAVESTONEDOJI = ta.CDLGRAVESTONEDOJI(ope, high, low, close) CDLHAMMER = ta.CDLHAMMER(ope, high, low, close) CDLHANGINGMAN = ta.CDLHANGINGMAN(ope, high, low, close) CDLHARAMI = ta.CDLHARAMI(ope, high, low, close) CDLHARAMICROSS = ta.CDLHARAMICROSS(ope, high, low, close) CDLHIGHWAVE = ta.CDLHIGHWAVE(ope, high, low, close) CDLHIKKAKE = ta.CDLHIKKAKE(ope, high, low, close) CDLHIKKAKEMOD = ta.CDLHIKKAKEMOD(ope, high, low, close) CDLHOMINGPIGEON = ta.CDLHOMINGPIGEON(ope, high, low, close) CDLIDENTICAL3CROWS = ta.CDLIDENTICAL3CROWS(ope, high, low, close) CDLINNECK = ta.CDLINNECK(ope, high, low, close) CDLINVERTEDHAMMER = ta.CDLINVERTEDHAMMER(ope, high, low, close) CDLKICKING = ta.CDLKICKING(ope, high, low, close) CDLKICKINGBYLENGTH = ta.CDLKICKINGBYLENGTH(ope, high, low, close) CDLLADDERBOTTOM = ta.CDLLADDERBOTTOM(ope, high, low, close) CDLLONGLEGGEDDOJI = ta.CDLLONGLEGGEDDOJI(ope, high, low, close) CDLLONGLINE = ta.CDLLONGLINE(ope, high, low, close) CDLMARUBOZU = ta.CDLMARUBOZU(ope, high, low, close) CDLMATCHINGLOW = ta.CDLMATCHINGLOW(ope, high, low, close) CDLMATHOLD = ta.CDLMATHOLD(ope, high, low, close) CDLMORNINGDOJISTAR = ta.CDLMORNINGDOJISTAR(ope, high, low, close) CDLMORNINGSTAR = ta.CDLMORNINGSTAR(ope, high, low, close) CDLONNECK = ta.CDLONNECK(ope, high, low, close) CDLPIERCING = ta.CDLPIERCING(ope, high, low, close) CDLRICKSHAWMAN = ta.CDLRICKSHAWMAN(ope, high, low, close) CDLRISEFALL3METHODS = ta.CDLRISEFALL3METHODS(ope, high, low, close) CDLSEPARATINGLINES = ta.CDLSEPARATINGLINES(ope, high, low, close) CDLSHOOTINGSTAR = ta.CDLSHOOTINGSTAR(ope, high, low, close) CDLSHORTLINE = ta.CDLSHORTLINE(ope, high, low, close) CDLSPINNINGTOP = ta.CDLSPINNINGTOP(ope, high, low, close) CDLSTALLEDPATTERN = ta.CDLSTALLEDPATTERN(ope, high, low, close) CDLSTICKSANDWICH = ta.CDLSTICKSANDWICH(ope, high, low, close) CDLTAKURI = ta.CDLTAKURI(ope, high, low, close) CDLTASUKIGAP = ta.CDLTASUKIGAP(ope, high, low, close) CDLTHRUSTING = ta.CDLTHRUSTING(ope, high, low, close) CDLTRISTAR = ta.CDLTRISTAR(ope, high, low, close) CDLUNIQUE3RIVER = ta.CDLUNIQUE3RIVER(ope, high, low, close) CDLUPSIDEGAP2CROWS = ta.CDLUPSIDEGAP2CROWS(ope, high, low, close) CDLXSIDEGAP3METHODS = ta.CDLXSIDEGAP3METHODS(ope, high, low, close) f = numpy.column_stack( (ATR, NATR, TRANGE, HT_DCPERIOD, HT_DCPHASE, HT_PHASOR[0], HT_PHASOR[1], HT_SINE[0], HT_SINE[1], HT_TRENDMODE, AVGPRICE, MEDPRICE, TYPPRICE, WCLPRICE, ADX, ADXR, APO, AROON[0], AROON[1], AROONOSC, BOP, CCI, CMO, DX, MACD[0], MACD[1], MACD[2], MACDEXT[0], MACDEXT[1], MACDEXT[2], MFI, MINUS_DI, MINUS_DM, MOM, PLUS_DI, PLUS_DM, PPO, ROC, ROCP, ROCR, RSI, STOCH[0], STOCH[1], STOCHF[0], STOCHF[1], STOCHRSI[0], STOCHRSI[1], TRIX, ULTOSC, WILLR, CDL2CROWS, CDL3BLACKCROWS, CDL3INSIDE, CDL3LINESTRIKE, CDL3OUTSIDE, CDL3STARSINSOUTH, CDL3WHITESOLDIERS, CDLABANDONEDBABY, CDLADVANCEBLOCK, CDLBELTHOLD, CDLBREAKAWAY, CDLCLOSINGMARUBOZU, CDLCONCEALBABYSWALL, CDLCOUNTERATTACK, CDLDARKCLOUDCOVER, CDLDOJI, CDLDOJISTAR, CDLDRAGONFLYDOJI, CDLENGULFING, CDLEVENINGDOJISTAR, CDLEVENINGSTAR, CDLGAPSIDESIDEWHITE, CDLGRAVESTONEDOJI, CDLHAMMER, CDLHANGINGMAN, CDLHARAMI, CDLHARAMICROSS, CDLHIGHWAVE, CDLHIKKAKE, CDLHIKKAKEMOD, CDLHOMINGPIGEON, CDLIDENTICAL3CROWS, CDLINNECK, CDLINVERTEDHAMMER, CDLKICKING, CDLKICKINGBYLENGTH, CDLLADDERBOTTOM, CDLLONGLEGGEDDOJI, CDLLONGLINE, CDLMARUBOZU, CDLMATCHINGLOW, CDLMATHOLD, CDLMORNINGDOJISTAR, CDLMORNINGSTAR, CDLONNECK, CDLPIERCING, CDLRICKSHAWMAN, CDLRISEFALL3METHODS, CDLSEPARATINGLINES, CDLSHOOTINGSTAR, CDLSHORTLINE, CDLSPINNINGTOP, CDLSTALLEDPATTERN, CDLSTICKSANDWICH, CDLTAKURI, CDLTASUKIGAP, CDLTHRUSTING, CDLTRISTAR, CDLUNIQUE3RIVER, CDLUPSIDEGAP2CROWS, CDLXSIDEGAP3METHODS, BBANDS[0], BBANDS[1], BBANDS[2], DEMA, EMA, HT_TRENDLINE, KAMA, MA, MAMA[0], MAMA[1], MIDPOINT, MIDPRICE, SAR, SAREXT, SMA, T3, TEMA, TRIMA, WMA, AD, ADOSC, OBV)) h = numpy.apply_along_axis(nor, 0, f) # normalize columnwise df = pandas.DataFrame( h, index=S.index, columns=[ 'ATR', 'NATR', 'TRANGE', 'HT_DCPERIOD', 'HT_DCPHASE', 'HT_PHASOR[0]', 'HT_PHASOR[1]', 'HT_SINE[0]', 'HT_SINE[1]', 'HT_TRENDMODE', 'AVGPRICE', 'MEDPRICE', 'TYPPRICE', 'WCLPRICE', 'ADX', 'ADXR', 'APO', 'AROON[0]', 'AROON[1]', 'AROONOSC', 'BOP', 'CCI', 'CMO', 'DX', 'MACD[0]', 'MACD[1]', 'MACD[2]', 'MACDEXT[0]', 'MACDEXT[1]', 'MACDEXT[2]', 'MFI', 'MINUS_DI', 'MINUS_DM', 'MOM', 'PLUS_DI', 'PLUS_DM', 'PPO', 'ROC', 'ROCP', 'ROCR', 'RSI', 'STOCH[0]', 'STOCH[1]', 'STOCHF[0]', 'STOCHF[1]', 'STOCHRSI[0]', 'STOCHRSI[1]', 'TRIX', 'ULTOSC', 'WILLR', 'CDL2CROWS', 'CDL3BLACKCROWS', 'CDL3INSIDE', 'CDL3LINESTRIKE', 'CDL3OUTSIDE', 'CDL3STARSINSOUTH', 'CDL3WHITESOLDIERS', 'CDLABANDONEDBABY', 'CDLADVANCEBLOCK', 'CDLBELTHOLD', 'CDLBREAKAWAY', 'CDLCLOSINGMARUBOZU', 'CDLCONCEALBABYSWALL', 'CDLCOUNTERATTACK', 'CDLDARKCLOUDCOVER', 'CDLDOJI', 'CDLDOJISTAR', 'CDLDRAGONFLYDOJI', 'CDLENGULFING', 'CDLEVENINGDOJISTAR', 'CDLEVENINGSTAR', 'CDLGAPSIDESIDEWHITE', 'CDLGRAVESTONEDOJI', 'CDLHAMMER', 'CDLHANGINGMAN', 'CDLHARAMI', 'CDLHARAMICROSS', 'CDLHIGHWAVE', 'CDLHIKKAKE', 'CDLHIKKAKEMOD', 'CDLHOMINGPIGEON', 'CDLIDENTICAL3CROWS', 'CDLINNECK', 'CDLINVERTEDHAMMER', 'CDLKICKING', 'CDLKICKINGBYLENGTH', 'CDLLADDERBOTTOM', 'CDLLONGLEGGEDDOJI', 'CDLLONGLINE', 'CDLMARUBOZU', 'CDLMATCHINGLOW', 'CDLMATHOLD', 'CDLMORNINGDOJISTAR', 'CDLMORNINGSTAR', 'CDLONNECK', 'CDLPIERCING', 'CDLRICKSHAWMAN', 'CDLRISEFALL3METHODS', 'CDLSEPARATINGLINES', 'CDLSHOOTINGSTAR', 'CDLSHORTLINE', 'CDLSPINNINGTOP', 'CDLSTALLEDPATTERN', 'CDLSTICKSANDWICH', 'CDLTAKURI', 'CDLTASUKIGAP', 'CDLTHRUSTING', 'CDLTRISTAR', 'CDLUNIQUE3RIVER', 'CDLUPSIDEGAP2CROWS', 'CDLXSIDEGAP3METHODS', 'BBANDS[0]', 'BBANDS[1]', 'BBANDS[2]', 'DEMA', 'EMA', 'HT_TRENDLINE', 'KAMA', 'MA', 'MAMA[0]', 'MAMA[1]', 'MIDPOINT', 'MIDPRICE', 'SAR', 'SAREXT', 'SMA', 'T3', 'TEMA', 'TRIMA', 'WMA', 'AD', 'ADOSC', 'OBV' ]) df.to_csv("C:\\Users\\...\\Documents\\Data_TA\\{0}\\{1}.csv".format(s, c))
def enhance_with_indicators(data): set = [] OPEN = data[:, Candle.OPEN] HIGH = data[:, Candle.HIGH] LOW = data[:, Candle.LOW] CLOSE = data[:, Candle.CLOSE] VOLUME = data[:, Candle.VOLUME] low_high = talib.BBANDS(CLOSE, timeperiod=14, nbdevup=2, nbdevdn=2, matype=1) low_high = np.asarray([low_high[0][-1], low_high[2][-1]]).reshape(-1, 1) low_high_scaler = StandardScaler() low_high_scaler.fit(low_high) one = np.asarray([-1, 1]).reshape(-1, 1) one_scaler = StandardScaler() one_scaler.fit(one) hundred = np.asarray([-100, 100]).reshape(-1, 1) hundred_scaler = StandardScaler() hundred_scaler.fit(hundred) thousand = np.asarray([-1000, 1000]).reshape(-1, 1) thousand_scaler = StandardScaler() thousand_scaler.fit(thousand) million = np.asarray([-1000000, 1000000]).reshape(-1, 1) million_scaler = StandardScaler() million_scaler.fit(million) set.append(scale(OPEN, low_high_scaler)) set.append(scale(HIGH, low_high_scaler)) set.append(scale(LOW, low_high_scaler)) set.append(scale(CLOSE, low_high_scaler)) #Bollinger Bands are envelopes plotted at a standard deviation level above and below a simple moving average of the price. set.append( scale( talib.BBANDS(CLOSE, timeperiod=5, nbdevup=2, nbdevdn=2, matype=0), low_high_scaler)) #121.03399999999903 19719.281591268886 set.append( scale( talib.BBANDS(CLOSE, timeperiod=14, nbdevup=2, nbdevdn=2, matype=1), low_high_scaler)) #The DEMA uses two exponential moving averages (EMAs) to eliminate lag, as some traders view lag as a problem. set.append(scale(talib.DEMA(CLOSE, timeperiod=10), low_high_scaler)) #122.0 19573.564771355504 set.append(scale(talib.DEMA(CLOSE, timeperiod=21), low_high_scaler)) #122.0 19546.76082510694 set.append(scale(talib.DEMA(CLOSE, timeperiod=100), low_high_scaler)) #123.84710711425136 19578.715808186673 #However, whereas SMA simply calculates an average of price data, EMA applies more weight to data that is more current. set.append(scale(talib.EMA(CLOSE, timeperiod=10), low_high_scaler)) #122.0 19499.362560116417 set.append(scale(talib.EMA(CLOSE, timeperiod=21), low_high_scaler)) #122.0 19433.26416788178 set.append(scale(talib.EMA(CLOSE, timeperiod=100), low_high_scaler)) #122.11270000000005 19059.124645340504 #The HTTrendline at a specific bar gives the current Hilbert Transform Trendline as instantaneously measured at that #bar. In its Series form, the Instantaneous Trendline appears much like a Moving Average, but with minimal lag #compared with the lag normally associated with such averages for equivalent periods. set.append(scale(talib.HT_TRENDLINE(CLOSE), low_high_scaler)) #122.0 19471.324 #Kaufman's Adaptive Moving Average (KAMA) is a moving average designed to account for market noise or volatility. #KAMA will closely follow prices when the price swings are relatively small and the noise is low. set.append(scale(talib.KAMA(CLOSE, timeperiod=10), low_high_scaler)) #122.0 19397.611724437047 set.append(scale(talib.KAMA(CLOSE, timeperiod=21), low_high_scaler)) #122.0 19336.434082122203 set.append(scale(talib.KAMA(CLOSE, timeperiod=100), low_high_scaler)) #123.61 19301.746826077375 #The MESA adaptive moving average is a trend-following indicator. It adapts to price movements in a very unique way, #based on the rate of change (ROC), as measured by the Hilbert Transform Discriminator. set.append( scale(talib.MAMA((HIGH + LOW) / 2., fastlimit=0.5, slowlimit=0.05), low_high_scaler)) #121.04112572694972 19494.294994956996 set.append(scale(talib.MIDPOINT(CLOSE, timeperiod=5), low_high_scaler)) #122.0 19544.95 set.append(scale(talib.MIDPRICE(LOW, HIGH, timeperiod=5), low_high_scaler)) #122.0 19562.6 #The parabolic SAR indicator, developed by J. Welles Wilder Jr., is used by traders to determine trend direction # and potential reversals in price. set.append( scale(talib.SAR(HIGH, LOW, acceleration=0.02, maximum=0.2), low_high_scaler)) #122.0 19660.0 #A simple moving average (SMA) is an arithmetic moving average calculated by adding recent prices and then dividing # that figure by the number of time periods in the calculation average. set.append(scale(talib.SMA(CLOSE, timeperiod=5), low_high_scaler)) #122.0 19553.340000000037 set.append(scale(talib.SMA(CLOSE, timeperiod=25), low_high_scaler)) #122.0 19405.74400000004 set.append(scale(talib.SMA(CLOSE, timeperiod=50), low_high_scaler)) #122.0 19286.443999999996 #The Triple Exponential Moving Average (T3) developed by Tim Tillson attempts to offer a moving average with better #smoothing then traditional exponential moving average. It incorporates a smoothing technique which allows it to #plot curves more gradual than ordinary moving averages and with a smaller lag. set.append(scale(talib.T3(CLOSE, timeperiod=5, vfactor=0), low_high_scaler)) #122.0 19498.31237177043 set.append( scale(talib.T3(CLOSE, timeperiod=10, vfactor=0), low_high_scaler)) #122.0 19419.991324685387 set.append( scale(talib.T3(CLOSE, timeperiod=21, vfactor=0), low_high_scaler)) #122.84310194419339 19306.63501695168 #The triple exponential moving average was designed to smooth price fluctuations, thereby making it easier to #identify trends without the lag associated with traditional moving averages (MA). set.append(scale(talib.TEMA(CLOSE, timeperiod=7), low_high_scaler)) #122.0 19617.222402494965 set.append(scale(talib.TEMA(CLOSE, timeperiod=15), low_high_scaler)) #122.0 19586.42515855386 #The Triangular Moving Average is basically a double-smoothed Simple Moving Average that gives more weight to the #middle section of the data interval. The TMA has a significant lag to current prices and is not well-suited to #fast moving markets. set.append(scale(talib.TRIMA(CLOSE, timeperiod=5), low_high_scaler)) #122.0 19567.31111092877 set.append(scale(talib.TRIMA(CLOSE, timeperiod=25), low_high_scaler)) #122.0 19459.8816568341 set.append(scale(talib.TRIMA(CLOSE, timeperiod=50), low_high_scaler)) #122.0 19359.257076923175 #The weighted moving average (WMA) is a technical indicator that assigns a greater weighting to the most recent data #points, and less weighting to data points in the distant past. The WMA is obtained by multiplying each number in #the data set by a predetermined weight and summing up the resulting values. set.append(scale(talib.WMA(CLOSE, timeperiod=5), low_high_scaler)) #122.0 19567.840000466134 set.append(scale(talib.WMA(CLOSE, timeperiod=10), low_high_scaler)) #122.0 19527.127272724356 set.append(scale(talib.WMA(CLOSE, timeperiod=21), low_high_scaler)) #122.0 19479.342424127473 set.append(scale(talib.WMA(CLOSE, timeperiod=50), low_high_scaler)) #122.0 19355.600000135404 set.append(scale(talib.WMA(CLOSE, timeperiod=100), low_high_scaler)) #122.21647326732675 19265.66566335264 set.append(scale(talib.LINEARREG(CLOSE, timeperiod=14), low_high_scaler)) # 122.0 19585.157142857144 set.append( scale(talib.LINEARREG_INTERCEPT(CLOSE, timeperiod=14), low_high_scaler)) #121.54000000000003 19643.968571428577 set.append(scale(talib.TSF(CLOSE, timeperiod=14), low_high_scaler)) #122.0 19609.668131868133 #ADX stands for Average Directional Movement Index and can be used to help measure the overall strength of a trend. #The ADX indicator is an average of expanding price range values. set.append( scale(talib.ADX(HIGH, LOW, CLOSE, timeperiod=10), hundred_scaler)) #0.0 99.99999999999963 set.append( scale(talib.ADX(HIGH, LOW, CLOSE, timeperiod=14), hundred_scaler)) #0.0 99.9999999940751 set.append( scale(talib.ADX(HIGH, LOW, CLOSE, timeperiod=21), hundred_scaler)) #0.0 99.99998408446837 #ADXR stands for Average Directional Movement Index Rating. ADXR is a component of the Directional Movement System #developed by Welles Wilder. set.append( scale(talib.ADXR(HIGH, LOW, CLOSE, timeperiod=14), hundred_scaler)) #0.0 99.9999999892742 #The Aroon indicator is a technical indicator that is used to identify trend changes in the price of an asset, #as well as the strength of that trend. In essence, the indicator measures the time between highs and the time #between lows over a time period. ... The indicator signals when this is happening, and when it isn't set.append(scale(talib.AROON(HIGH, LOW), hundred_scaler)) #0.0 100.0 #The Directional Movement Index, or DMI, is an indicator developed by J. ... An optional third line, called #directional movement (DX) shows the difference between the lines. When +DI is above -DI, there is more upward #pressure than downward pressure in the price. set.append(scale(talib.DX(HIGH, LOW, CLOSE, timeperiod=5), hundred_scaler)) #0.0 100.0 set.append(scale(talib.DX(HIGH, LOW, CLOSE, timeperiod=21), hundred_scaler)) #0.0 100.0 set.append(scale(talib.DX(HIGH, LOW, CLOSE, timeperiod=50), hundred_scaler)) #0.0 100.0 set.append( scale(talib.MFI(HIGH, LOW, CLOSE, VOLUME, timeperiod=14), hundred_scaler)) #-5.888410733172162e-08 100.00000000707982 set.append( scale(talib.MFI(HIGH, LOW, CLOSE, VOLUME, timeperiod=26), hundred_scaler)) #-1.3802451942902055e-09 100.00000001185656 set.append( scale(talib.MFI(HIGH, LOW, CLOSE, VOLUME, timeperiod=100), hundred_scaler)) #-5.3901183535126315e-08 100.00000000091877 set.append( scale(talib.MINUS_DI(HIGH, LOW, CLOSE, timeperiod=14), hundred_scaler)) #0.0 99.99999996020233 set.append( scale(talib.PLUS_DI(HIGH, LOW, CLOSE, timeperiod=14), hundred_scaler)) #0.0 100.0 set.append(scale(talib.RSI(CLOSE, timeperiod=14), hundred_scaler)) #0.0 100.0 set.append( scale( talib.STOCH(HIGH, LOW, CLOSE, fastk_period=5, slowk_period=3, slowk_matype=0, slowd_period=3, slowd_matype=0), hundred_scaler)) #-1.0137076363510762e-12 100.00000000000279 set.append( scale( talib.STOCHF(HIGH, LOW, CLOSE, fastk_period=5, fastd_period=3, fastd_matype=0), hundred_scaler)) #-1.0137076363510762e-12 100.0000000000012 set.append( scale( talib.STOCHRSI(CLOSE, timeperiod=14, fastk_period=5, fastd_period=3, fastd_matype=0), hundred_scaler)) #-1.2166564052525548e-12 100.00000000000011 set.append( scale( talib.ULTOSC(HIGH, LOW, CLOSE, timeperiod1=7, timeperiod2=14, timeperiod3=28), hundred_scaler)) # 0.0 100.00000032481957 set.append( scale(talib.CDL3WHITESOLDIERS(OPEN, HIGH, LOW, CLOSE), hundred_scaler)) #0 100 set.append(scale(talib.CDLDOJI(OPEN, HIGH, LOW, CLOSE), hundred_scaler)) #0 100 set.append( scale(talib.CDLDRAGONFLYDOJI(OPEN, HIGH, LOW, CLOSE), hundred_scaler)) #0 100 set.append( scale(talib.CDLGRAVESTONEDOJI(OPEN, HIGH, LOW, CLOSE), hundred_scaler)) #0 100 set.append(scale(talib.CDLHAMMER(OPEN, HIGH, LOW, CLOSE), hundred_scaler)) #0 100 set.append( scale(talib.CDLHOMINGPIGEON(OPEN, HIGH, LOW, CLOSE), hundred_scaler)) #0 100 set.append( scale(talib.CDLINVERTEDHAMMER(OPEN, HIGH, LOW, CLOSE), hundred_scaler)) #0 100 set.append( scale(talib.CDLLADDERBOTTOM(OPEN, HIGH, LOW, CLOSE), hundred_scaler)) #0 100 set.append( scale(talib.CDLLONGLEGGEDDOJI(OPEN, HIGH, LOW, CLOSE), hundred_scaler)) #0 100 set.append( scale(talib.CDLMATCHINGLOW(OPEN, HIGH, LOW, CLOSE), hundred_scaler)) #0 100 set.append( scale(talib.CDLMORNINGDOJISTAR(OPEN, HIGH, LOW, CLOSE), hundred_scaler)) #0 100 set.append( scale(talib.CDLMORNINGSTAR(OPEN, HIGH, LOW, CLOSE), hundred_scaler)) #0 100 set.append(scale(talib.CDLPIERCING(OPEN, HIGH, LOW, CLOSE), hundred_scaler)) #0 100 set.append( scale(talib.CDLRICKSHAWMAN(OPEN, HIGH, LOW, CLOSE), hundred_scaler)) #0 100 set.append( scale(talib.CDLSTICKSANDWICH(OPEN, HIGH, LOW, CLOSE), hundred_scaler)) #0 100 set.append(scale(talib.CDLTAKURI(OPEN, HIGH, LOW, CLOSE), hundred_scaler)) #0 100 set.append( scale(talib.CDLUNIQUE3RIVER(OPEN, HIGH, LOW, CLOSE), hundred_scaler)) #0 100 #Absolute Price Oscillator crossing above zero is considered bullish, while crossing below zero is bearish. A #positive indicator value indicates an upward movement, while negative readings signal a downward trend. set.append( scale(talib.APO(CLOSE, fastperiod=12, slowperiod=26, matype=1), thousand_scaler)) #-536.1910463572985 443.13971636041424 set.append(scale(VOLUME, thousand_scaler)) #The Commodity Channel Index (CCI) measures the current price level relative to an average price level over a given #period of time. CCI is relatively high when prices are far above their average. set.append(scale(talib.CCI(HIGH, LOW, CLOSE), thousand_scaler)) #-466.66671166042244 466.66673951370416 #Moving average convergence divergence (MACD) is a trend-following momentum indicator that shows the relationship #between two moving averages of a security’s price. set.append( scale(talib.MACD(CLOSE, fastperiod=5, slowperiod=14, signalperiod=5), thousand_scaler)) # -536.1910463572985 443.13971636041424 set.append( scale(talib.MACD(CLOSE, fastperiod=12, slowperiod=26, signalperiod=9), thousand_scaler)) #-536.1910463572985 443.13971636041424 set.append( scale(talib.MACD(CLOSE, fastperiod=14, slowperiod=50, signalperiod=25), thousand_scaler)) # -536.1910463572985 443.13971636041424 set.append(scale(talib.ATR(HIGH, LOW, CLOSE), thousand_scaler)) #0.0 672.1715311610562 set.append(scale(talib.HT_DCPHASE(CLOSE), hundred_scaler)) #-44.99298332517037 314.99654478107004 set.append( scale(talib.LINEARREG_SLOPE(CLOSE, timeperiod=14), hundred_scaler)) #-222.33604395604476 152.37032967033085 set.append( scale(talib.STDDEV(CLOSE, timeperiod=5, nbdev=1), thousand_scaler)) #0.0 709.4023698851089 set.append(scale(talib.MINUS_DM(HIGH, LOW, timeperiod=14), thousand_scaler)) #0.0 2909.3760999618785 set.append(scale(talib.MOM(CLOSE, timeperiod=10), thousand_scaler)) #-2508.0 1711.2000000000007 set.append(scale(talib.MOM(CLOSE, timeperiod=25), thousand_scaler)) # -2508.0 1711.2000000000007 set.append(scale(talib.PLUS_DM(HIGH, LOW, timeperiod=14), thousand_scaler)) #0.0 3697.0008310558483 set.append(scale(talib.ADOSC(HIGH, LOW, CLOSE, VOLUME), thousand_scaler)) #-1843.4418435977714 1237.4131984846026 set.append(scale(talib.TRANGE(HIGH, LOW, CLOSE), thousand_scaler)) #0.0 4000.0 set.append(scale(talib.HT_PHASOR(CLOSE), thousand_scaler)) #-2873.977625168652 3422.2535328187428 #The Balance of Power indicator measures the market strength of buyers against sellers by assessing the ability of #each side to drive prices to an extreme level. The calculation is: Balance of Power = (Close price – Open price) / #(High price – Low price) The resulting value can be smoothed by a moving average. set.append(scale(talib.BOP(OPEN, HIGH, LOW, CLOSE), one_scaler)) #-1.0 1.0 set.append(scale(talib.ROCP(CLOSE, timeperiod=10), one_scaler)) #-0.30688987999999995 0.46745909457773854 set.append(scale(talib.ROCR(CLOSE, timeperiod=10), one_scaler)) #0.69311012 1.4674590945777386 set.append(scale(talib.TRIX(CLOSE, timeperiod=30), one_scaler)) #-0.6044429731575707 0.434667877456385 set.append(scale(talib.HT_SINE(CLOSE), one_scaler)) #-0.9999999999996187 0.9999999999940317 set.append(scale(talib.HT_TRENDMODE(CLOSE), one_scaler)) #0 1 set.append( scale(talib.PPO(CLOSE, fastperiod=12, slowperiod=26, matype=0), hundred_scaler)) #-13.640389725420714 13.383459677599681 set.append(scale(talib.ROC(CLOSE, timeperiod=10), hundred_scaler)) #-30.688987999999995 46.74590945777386 set.append(scale(talib.NATR(HIGH, LOW, CLOSE), one_scaler)) #0.0 7.881777549670427 set.append(scale(talib.HT_DCPERIOD(CLOSE), hundred_scaler)) #6.91050087362864 49.99951053223339 set.append(scale(talib.CORREL(HIGH, LOW, timeperiod=30), one_scaler)) #-2.4748737341529163 2.2135943621178655 set.append(scale(talib.AD(HIGH, LOW, CLOSE, VOLUME), million_scaler)) #-3719.2404462314116 199644.25743563366 set.append(scale(talib.OBV(CLOSE, VOLUME), million_scaler)) #-23849.75116020021 29139.83770172981 set.append(scale(talib.BETA(HIGH, LOW, timeperiod=5), million_scaler)) #-2971957.111723269 1250567.1172035346 set.append( scale(talib.VAR(CLOSE, timeperiod=5, nbdev=1), million_scaler)) #-1.4901161193847656e-07 503251.7223986089 # The Aroon Oscillator is a trend-following indicator that uses aspects of the Aroon Indicator (Aroon Up and Aroon # Down) to gauge the strength of a current trend and the likelihood that it will continue. Readings above zero # indicate that an uptrend is present, while readings below zero indicate that a downtrend is present. set.append(scale(talib.AROONOSC(HIGH, LOW), hundred_scaler)) # -100.0 100.0 # The Chande Momentum Oscillator (CMO) is a technical momentum indicator developed by Tushar Chande. The CMO # indicator is created by calculating the difference between the sum of all recent higher closes and the sum of all # recent lower closes and then dividing the result by the sum of all price movement over a given time period. set.append(scale(talib.CMO(CLOSE, timeperiod=5), hundred_scaler)) # -100.0 100.0 set.append(scale(talib.CMO(CLOSE, timeperiod=14), hundred_scaler)) # -99.99999998652726 100.0 set.append(scale(talib.CMO(CLOSE, timeperiod=25), hundred_scaler)) # -99.99854211548185 100.0 set.append(scale(talib.CDL3INSIDE(OPEN, HIGH, LOW, CLOSE), hundred_scaler)) #-100 100 set.append( scale(talib.CDL3LINESTRIKE(OPEN, HIGH, LOW, CLOSE), hundred_scaler)) #-100 100 set.append(scale(talib.CDL3OUTSIDE(OPEN, HIGH, LOW, CLOSE), hundred_scaler)) #-100 100 set.append( scale(talib.CDLABANDONEDBABY(OPEN, HIGH, LOW, CLOSE), hundred_scaler)) #-100 100 set.append(scale(talib.CDLBELTHOLD(OPEN, HIGH, LOW, CLOSE), hundred_scaler)) #-100 100 set.append( scale(talib.CDLBREAKAWAY(OPEN, HIGH, LOW, CLOSE), hundred_scaler)) #-100 100 set.append( scale(talib.CDLCLOSINGMARUBOZU(OPEN, HIGH, LOW, CLOSE), hundred_scaler)) #-100 100 set.append( scale(talib.CDLCOUNTERATTACK(OPEN, HIGH, LOW, CLOSE), hundred_scaler)) #-100 100 set.append(scale(talib.CDLDOJISTAR(OPEN, HIGH, LOW, CLOSE), hundred_scaler)) #-100 100 set.append( scale(talib.CDLENGULFING(OPEN, HIGH, LOW, CLOSE), hundred_scaler)) #-100 100 set.append( scale(talib.CDLGAPSIDESIDEWHITE(OPEN, HIGH, LOW, CLOSE), hundred_scaler)) #-100 100 set.append(scale(talib.CDLHARAMI(OPEN, HIGH, LOW, CLOSE), hundred_scaler)) #-100 100 set.append( scale(talib.CDLHARAMICROSS(OPEN, HIGH, LOW, CLOSE), hundred_scaler)) #-100 100 set.append(scale(talib.CDLHIGHWAVE(OPEN, HIGH, LOW, CLOSE), hundred_scaler)) #-100 100 set.append(scale(talib.CDLKICKING(OPEN, HIGH, LOW, CLOSE), hundred_scaler)) #-100 100 set.append( scale(talib.CDLKICKINGBYLENGTH(OPEN, HIGH, LOW, CLOSE), hundred_scaler)) #-100 100 set.append(scale(talib.CDLLONGLINE(OPEN, HIGH, LOW, CLOSE), hundred_scaler)) #-100 100 set.append(scale(talib.CDLMARUBOZU(OPEN, HIGH, LOW, CLOSE), hundred_scaler)) #-100 100 set.append( scale(talib.CDLRISEFALL3METHODS(OPEN, HIGH, LOW, CLOSE), hundred_scaler)) #-100 100 set.append( scale(talib.CDLSEPARATINGLINES(OPEN, HIGH, LOW, CLOSE), hundred_scaler)) #-100 100 set.append( scale(talib.CDLSHORTLINE(OPEN, HIGH, LOW, CLOSE), hundred_scaler)) #-100 100 set.append( scale(talib.CDLSPINNINGTOP(OPEN, HIGH, LOW, CLOSE), hundred_scaler)) #-100 100 set.append( scale(talib.CDLTASUKIGAP(OPEN, HIGH, LOW, CLOSE), hundred_scaler)) #-100 100 set.append(scale(talib.CDLTRISTAR(OPEN, HIGH, LOW, CLOSE), hundred_scaler)) #-100 100 set.append( scale(talib.CDLXSIDEGAP3METHODS(OPEN, HIGH, LOW, CLOSE), hundred_scaler)) #-100 100 set.append( scale(talib.LINEARREG_ANGLE(CLOSE, timeperiod=14), hundred_scaler)) #-89.74230272272693 89.62397563202859 set.append( scale(talib.WILLR(HIGH, LOW, CLOSE, timeperiod=14), hundred_scaler)) # -100.00000000000001 0.0 #The Two Crows is a three-line bearish reversal candlestick pattern. The pattern requires confirmation, that is, #the following candles should break a trendline or the nearest support area which may be formed by the first #candle's line. If the pattern is not confirmed it may act only as a temporary pause within an uptrend. set.append(scale(talib.CDL2CROWS(OPEN, HIGH, LOW, CLOSE), hundred_scaler)) #-100 0 set.append( scale(talib.CDL3BLACKCROWS(OPEN, HIGH, LOW, CLOSE), hundred_scaler)) #-100 0 set.append( scale(talib.CDLADVANCEBLOCK(OPEN, HIGH, LOW, CLOSE), hundred_scaler)) # -100 0 set.append( scale(talib.CDLDARKCLOUDCOVER(OPEN, HIGH, LOW, CLOSE), hundred_scaler)) #-100 0 set.append( scale(talib.CDLEVENINGDOJISTAR(OPEN, HIGH, LOW, CLOSE), hundred_scaler)) #-100 0 set.append( scale(talib.CDLEVENINGSTAR(OPEN, HIGH, LOW, CLOSE), hundred_scaler)) #-100 0 set.append( scale(talib.CDLHANGINGMAN(OPEN, HIGH, LOW, CLOSE), hundred_scaler)) #-100 0 set.append( scale(talib.CDLIDENTICAL3CROWS(OPEN, HIGH, LOW, CLOSE), hundred_scaler)) #-100 0 set.append(scale(talib.CDLINNECK(OPEN, HIGH, LOW, CLOSE), hundred_scaler)) #-100 0 set.append(scale(talib.CDLONNECK(OPEN, HIGH, LOW, CLOSE), hundred_scaler)) #-100 0 set.append( scale(talib.CDLSHOOTINGSTAR(OPEN, HIGH, LOW, CLOSE), hundred_scaler)) #-100 0 set.append( scale(talib.CDLSTALLEDPATTERN(OPEN, HIGH, LOW, CLOSE), hundred_scaler)) #-100 0 set.append( scale(talib.CDLTHRUSTING(OPEN, HIGH, LOW, CLOSE), hundred_scaler)) #-100 0 set.append(scale(talib.CDLHIKKAKE(OPEN, HIGH, LOW, CLOSE), hundred_scaler)) #-200 200 set.append( scale(talib.CDLHIKKAKEMOD(OPEN, HIGH, LOW, CLOSE), hundred_scaler)) #-200 200 return np.concatenate(set)
def _extract_feature(candle, params): o = candle.open h = candle.high l = candle.low c = candle.close v = candle.volume # OHLCV features = pd.DataFrame() features['open'] = o features['high'] = h features['low'] = l features['close'] = c features['volume'] = v # RSI features['rsi_s'] = ta.RSI(c, timeperiod=params['rsi_timeperiod_s']) features['rsi_m'] = ta.RSI(c, timeperiod=params['rsi_timeperiod_m']) features['rsi_l'] = ta.RSI(c, timeperiod=params['rsi_timeperiod_l']) # STOCHF fastk, fastd = ta.STOCHF(h, l, c, fastk_period=params['stockf_fastk_period_s'], fastd_period=params['stockf_fastd_period_s'], fastd_matype=ta.MA_Type.T3) change_stockf = calc_change(fastk, fastd) change_stockf.index = fastk.index features['fastk_s'] = fastk features['fastd_s'] = fastd features['fast_change_s'] = change_stockf fastk, fastd = ta.STOCHF(h, l, c, fastk_period=params['stockf_fastk_period_m'], fastd_period=params['stockf_fastd_period_m'], fastd_matype=ta.MA_Type.T3) change_stockf = calc_change(fastk, fastd) change_stockf.index = fastk.index features['fastk_m'] = fastk features['fastd_m'] = fastd features['fast_change_m'] = change_stockf fastk, fastd = ta.STOCHF(h, l, c, fastk_period=params['stockf_fastk_period_l'], fastd_period=params['stockf_fastd_period_l'], fastd_matype=ta.MA_Type.T3) change_stockf = calc_change(fastk, fastd) change_stockf.index = fastk.index features['fastk_l'] = fastk features['fastd_l'] = fastd features['fast_change_l'] = change_stockf # WILLR features['willr_s'] = ta.WILLR(h, l, c, timeperiod=params['willr_timeperiod_s']) features['willr_m'] = ta.WILLR(h, l, c, timeperiod=params['willr_timeperiod_m']) features['willr_l'] = ta.WILLR(h, l, c, timeperiod=params['willr_timeperiod_l']) # MACD macd, macdsignal, macdhist = ta.MACDEXT( c, fastperiod=params['macd_fastperiod_s'], slowperiod=params['macd_slowperiod_s'], signalperiod=params['macd_signalperiod_s'], fastmatype=ta.MA_Type.T3, slowmatype=ta.MA_Type.T3, signalmatype=ta.MA_Type.T3) change_macd = calc_change(macd, macdsignal) change_macd.index = macd.index features['macd_s'] = macd features['macdsignal_s'] = macdsignal features['macdhist_s'] = macdhist features['change_macd_s'] = change_macd macd, macdsignal, macdhist = ta.MACDEXT( c, fastperiod=params['macd_fastperiod_m'], slowperiod=params['macd_slowperiod_m'], signalperiod=params['macd_signalperiod_m'], fastmatype=ta.MA_Type.T3, slowmatype=ta.MA_Type.T3, signalmatype=ta.MA_Type.T3) change_macd = calc_change(macd, macdsignal) change_macd.index = macd.index features['macd_m'] = macd features['macdsignal_m'] = macdsignal features['macdhist_m'] = macdhist features['change_macd_m'] = change_macd # ROCP rocp = ta.ROCP(c, timeperiod=params['rocp_timeperiod_s']) change_rocp = calc_change( rocp, pd.Series(np.zeros(len(candle)), index=candle.index)) change_rocp.index = rocp.index features['rocp_s'] = rocp features['change_rocp_s'] = change_rocp rocp = ta.ROCP(c, timeperiod=params['rocp_timeperiod_m']) change_rocp = calc_change( rocp, pd.Series(np.zeros(len(candle)), index=candle.index)) change_rocp.index = rocp.index features['rocp_m'] = rocp features['change_rocp_m'] = change_rocp rocp = ta.ROCP(c, timeperiod=params['rocp_timeperiod_l']) change_rocp = calc_change( rocp, pd.Series(np.zeros(len(candle)), index=candle.index)) change_rocp.index = rocp.index features['rocp_l'] = rocp features['change_rocp_l'] = change_rocp # ボリンジャーバンド bb_upper, bb_middle, bb_lower = ta.BBANDS( c, timeperiod=params['bbands_timeperiod_s'], nbdevup=params['bbands_nbdevup_s'], nbdevdn=params['bbands_nbdevdn_s'], matype=ta.MA_Type.T3) bb_trend1 = pd.Series(np.zeros(len(candle)), index=candle.index) bb_trend1[c > bb_upper] = 1 bb_trend1[c < bb_lower] = -1 bb_trend2 = pd.Series(np.zeros(len(candle)), index=candle.index) bb_trend2[c > bb_middle] = 1 bb_trend2[c < bb_middle] = -1 features['bb_upper_s'] = bb_upper features['bb_middle_s'] = bb_middle features['bb_lower_s'] = bb_lower features['bb_trend1_s'] = bb_trend1 features['bb_trend2_s'] = bb_trend2 bb_upper, bb_middle, bb_lower = ta.BBANDS( c, timeperiod=params['bbands_timeperiod_m'], nbdevup=params['bbands_nbdevup_m'], nbdevdn=params['bbands_nbdevdn_m'], matype=ta.MA_Type.T3) bb_trend1 = pd.Series(np.zeros(len(candle)), index=candle.index) bb_trend1[c > bb_upper] = 1 bb_trend1[c < bb_lower] = -1 bb_trend2 = pd.Series(np.zeros(len(candle)), index=candle.index) bb_trend2[c > bb_middle] = 1 bb_trend2[c < bb_middle] = -1 features['bb_upper_m'] = bb_upper features['bb_middle_m'] = bb_middle features['bb_lower_m'] = bb_lower features['bb_trend1_m'] = bb_trend1 features['bb_trend2_m'] = bb_trend2 bb_upper, bb_middle, bb_lower = ta.BBANDS( c, timeperiod=params['bbands_timeperiod_l'], nbdevup=params['bbands_nbdevup_l'], nbdevdn=params['bbands_nbdevdn_l'], matype=ta.MA_Type.T3) bb_trend1 = pd.Series(np.zeros(len(candle)), index=candle.index) bb_trend1[c > bb_upper] = 1 bb_trend1[c < bb_lower] = -1 bb_trend2 = pd.Series(np.zeros(len(candle)), index=candle.index) bb_trend2[c > bb_middle] = 1 bb_trend2[c < bb_middle] = -1 features['bb_upper_l'] = bb_upper features['bb_middle_l'] = bb_middle features['bb_lower_l'] = bb_lower features['bb_trend1_l'] = bb_trend1 features['bb_trend2_l'] = bb_trend2 # 出来高 features['obv'] = ta.OBV(c, v) features['ad'] = ta.AD(h, l, c, v) features['adosc_s'] = ta.ADOSC(h, l, c, v, fastperiod=params['fastperiod_adosc_s'], slowperiod=params['slowperiod_adosc_s']) # ローソク足 features['CDL2CROWS'] = ta.CDL2CROWS(o, h, l, c) features['CDL3BLACKCROWS'] = ta.CDL3BLACKCROWS(o, h, l, c) features['CDL3INSIDE'] = ta.CDL3INSIDE(o, h, l, c) features['CDL3LINESTRIKE'] = ta.CDL3LINESTRIKE(o, h, l, c) features['CDL3OUTSIDE'] = ta.CDL3OUTSIDE(o, h, l, c) features['CDL3STARSINSOUTH'] = ta.CDL3STARSINSOUTH(o, h, l, c) features['CDL3WHITESOLDIERS'] = ta.CDL3WHITESOLDIERS(o, h, l, c) features['CDLABANDONEDBABY'] = ta.CDLABANDONEDBABY(o, h, l, c, penetration=0) features['CDLADVANCEBLOCK'] = ta.CDLADVANCEBLOCK(o, h, l, c) features['CDLBELTHOLD'] = ta.CDLBELTHOLD(o, h, l, c) features['CDLBREAKAWAY'] = ta.CDLBREAKAWAY(o, h, l, c) features['CDLCLOSINGMARUBOZU'] = ta.CDLCLOSINGMARUBOZU(o, h, l, c) features['CDLCONCEALBABYSWALL'] = ta.CDLCONCEALBABYSWALL(o, h, l, c) features['CDLCOUNTERATTACK'] = ta.CDLCOUNTERATTACK(o, h, l, c) features['CDLDARKCLOUDCOVER'] = ta.CDLDARKCLOUDCOVER(o, h, l, c, penetration=0) features['CDLDOJI'] = ta.CDLDOJI(o, h, l, c) features['CDLDOJISTAR'] = ta.CDLDOJISTAR(o, h, l, c) features['CDLDRAGONFLYDOJI'] = ta.CDLDRAGONFLYDOJI(o, h, l, c) features['CDLENGULFING'] = ta.CDLENGULFING(o, h, l, c) features['CDLEVENINGDOJISTAR'] = ta.CDLEVENINGDOJISTAR(o, h, l, c, penetration=0) features['CDLEVENINGSTAR'] = ta.CDLEVENINGSTAR(o, h, l, c, penetration=0) features['CDLGAPSIDESIDEWHITE'] = ta.CDLGAPSIDESIDEWHITE(o, h, l, c) features['CDLGRAVESTONEDOJI'] = ta.CDLGRAVESTONEDOJI(o, h, l, c) features['CDLHAMMER'] = ta.CDLHAMMER(o, h, l, c) features['CDLHANGINGMAN'] = ta.CDLHANGINGMAN(o, h, l, c) features['CDLHARAMI'] = ta.CDLHARAMI(o, h, l, c) features['CDLHARAMICROSS'] = ta.CDLHARAMICROSS(o, h, l, c) features['CDLHIGHWAVE'] = ta.CDLHIGHWAVE(o, h, l, c) features['CDLHIKKAKE'] = ta.CDLHIKKAKE(o, h, l, c) features['CDLHIKKAKEMOD'] = ta.CDLHIKKAKEMOD(o, h, l, c) features['CDLHOMINGPIGEON'] = ta.CDLHOMINGPIGEON(o, h, l, c) features['CDLIDENTICAL3CROWS'] = ta.CDLIDENTICAL3CROWS(o, h, l, c) features['CDLINNECK'] = ta.CDLINNECK(o, h, l, c) features['CDLINVERTEDHAMMER'] = ta.CDLINVERTEDHAMMER(o, h, l, c) features['CDLKICKING'] = ta.CDLKICKING(o, h, l, c) features['CDLKICKINGBYLENGTH'] = ta.CDLKICKINGBYLENGTH(o, h, l, c) features['CDLLADDERBOTTOM'] = ta.CDLLADDERBOTTOM(o, h, l, c) features['CDLLONGLEGGEDDOJI'] = ta.CDLLONGLEGGEDDOJI(o, h, l, c) features['CDLMARUBOZU'] = ta.CDLMARUBOZU(o, h, l, c) features['CDLMATCHINGLOW'] = ta.CDLMATCHINGLOW(o, h, l, c) features['CDLMATHOLD'] = ta.CDLMATHOLD(o, h, l, c, penetration=0) features['CDLMORNINGDOJISTAR'] = ta.CDLMORNINGDOJISTAR(o, h, l, c, penetration=0) features['CDLMORNINGSTAR'] = ta.CDLMORNINGSTAR(o, h, l, c, penetration=0) features['CDLONNECK'] = ta.CDLONNECK(o, h, l, c) features['CDLPIERCING'] = ta.CDLPIERCING(o, h, l, c) features['CDLRICKSHAWMAN'] = ta.CDLRICKSHAWMAN(o, h, l, c) features['CDLRISEFALL3METHODS'] = ta.CDLRISEFALL3METHODS(o, h, l, c) features['CDLSEPARATINGLINES'] = ta.CDLSEPARATINGLINES(o, h, l, c) features['CDLSHOOTINGSTAR'] = ta.CDLSHOOTINGSTAR(o, h, l, c) features['CDLSHORTLINE'] = ta.CDLSHORTLINE(o, h, l, c) features['CDLSPINNINGTOP'] = ta.CDLSPINNINGTOP(o, h, l, c) features['CDLSTALLEDPATTERN'] = ta.CDLSTALLEDPATTERN(o, h, l, c) features['CDLSTICKSANDWICH'] = ta.CDLSTICKSANDWICH(o, h, l, c) features['CDLTAKURI'] = ta.CDLTAKURI(o, h, l, c) features['CDLTASUKIGAP'] = ta.CDLTASUKIGAP(o, h, l, c) features['CDLTHRUSTING'] = ta.CDLTHRUSTING(o, h, l, c) features['CDLTRISTAR'] = ta.CDLTRISTAR(o, h, l, c) features['CDLUNIQUE3RIVER'] = ta.CDLUNIQUE3RIVER(o, h, l, c) features['CDLUPSIDEGAP2CROWS'] = ta.CDLUPSIDEGAP2CROWS(o, h, l, c) features['CDLXSIDEGAP3METHODS'] = ta.CDLXSIDEGAP3METHODS(o, h, l, c) window = 5 features_ext = features for w in range(window): tmp = features.shift(periods=60 * (w + 1), freq='S') tmp.columns = [c + '_' + str(w + 1) + 'w' for c in features.columns] features_ext = pd.concat([features_ext, tmp], axis=1) return features_ext
def calc(self,stockCode): cursor=self.connection.cursor() cursor.execute("select date,open,high,low,close,volume from histDaily where code=%s and date>=%s and date<=%s",(stockCode,self.fromDate,self.toDate)) result = cursor.fetchall() ohlc=[] for row in result: ohlc.append((row[0],row[1],row[2],row[3],row[4],row[5])) cursor.close() oprice=np.asfarray(np.asarray(ohlc)[:,1]) hprice=np.asfarray(np.asarray(ohlc)[:,2]) lprice=np.asfarray(np.asarray(ohlc)[:,3]) cprice=np.asfarray(np.asarray(ohlc)[:,4]) # cat a |awk '{print "self.__write(\""$1"\",stockCode,ohlc,ta."$1"(oprice,hprice,lprice,cprice))"}' self.__write("CDL2CROWS", stockCode, ohlc, ta.CDL2CROWS(oprice, hprice, lprice, cprice)) self.__write("CDL3BLACKCROWS", stockCode, ohlc, ta.CDL3BLACKCROWS(oprice, hprice, lprice, cprice)) self.__write("CDL3INSIDE", stockCode, ohlc, ta.CDL3INSIDE(oprice, hprice, lprice, cprice)) self.__write("CDL3LINESTRIKE", stockCode, ohlc, ta.CDL3LINESTRIKE(oprice, hprice, lprice, cprice)) self.__write("CDL3OUTSIDE", stockCode, ohlc, ta.CDL3OUTSIDE(oprice, hprice, lprice, cprice)) self.__write("CDL3STARSINSOUTH", stockCode, ohlc, ta.CDL3STARSINSOUTH(oprice, hprice, lprice, cprice)) self.__write("CDL3WHITESOLDIERS", stockCode, ohlc, ta.CDL3WHITESOLDIERS(oprice, hprice, lprice, cprice)) self.__write("CDLABANDONEDBABY", stockCode, ohlc, ta.CDLABANDONEDBABY(oprice, hprice, lprice, cprice)) self.__write("CDLADVANCEBLOCK", stockCode, ohlc, ta.CDLADVANCEBLOCK(oprice, hprice, lprice, cprice)) self.__write("CDLBELTHOLD", stockCode, ohlc, ta.CDLBELTHOLD(oprice, hprice, lprice, cprice)) self.__write("CDLBREAKAWAY", stockCode, ohlc, ta.CDLBREAKAWAY(oprice, hprice, lprice, cprice)) self.__write("CDLCLOSINGMARUBOZU", stockCode, ohlc, ta.CDLCLOSINGMARUBOZU(oprice, hprice, lprice, cprice)) self.__write("CDLCONCEALBABYSWALL", stockCode, ohlc, ta.CDLCONCEALBABYSWALL(oprice, hprice, lprice, cprice)) self.__write("CDLCOUNTERATTACK", stockCode, ohlc, ta.CDLCOUNTERATTACK(oprice, hprice, lprice, cprice)) self.__write("CDLDARKCLOUDCOVER", stockCode, ohlc, ta.CDLDARKCLOUDCOVER(oprice, hprice, lprice, cprice)) self.__write("CDLDOJI", stockCode, ohlc, ta.CDLDOJI(oprice, hprice, lprice, cprice)) self.__write("CDLDOJISTAR", stockCode, ohlc, ta.CDLDOJISTAR(oprice, hprice, lprice, cprice)) self.__write("CDLDRAGONFLYDOJI", stockCode, ohlc, ta.CDLDRAGONFLYDOJI(oprice, hprice, lprice, cprice)) self.__write("CDLENGULFING", stockCode, ohlc, ta.CDLENGULFING(oprice, hprice, lprice, cprice)) self.__write("CDLEVENINGDOJISTAR", stockCode, ohlc, ta.CDLEVENINGDOJISTAR(oprice, hprice, lprice, cprice)) self.__write("CDLEVENINGSTAR", stockCode, ohlc, ta.CDLEVENINGSTAR(oprice, hprice, lprice, cprice)) self.__write("CDLGAPSIDESIDEWHITE", stockCode, ohlc, ta.CDLGAPSIDESIDEWHITE(oprice, hprice, lprice, cprice)) self.__write("CDLGRAVESTONEDOJI", stockCode, ohlc, ta.CDLGRAVESTONEDOJI(oprice, hprice, lprice, cprice)) self.__write("CDLHAMMER", stockCode, ohlc, ta.CDLHAMMER(oprice, hprice, lprice, cprice)) self.__write("CDLHANGINGMAN", stockCode, ohlc, ta.CDLHANGINGMAN(oprice, hprice, lprice, cprice)) self.__write("CDLHARAMI", stockCode, ohlc, ta.CDLHARAMI(oprice, hprice, lprice, cprice)) self.__write("CDLHARAMICROSS", stockCode, ohlc, ta.CDLHARAMICROSS(oprice, hprice, lprice, cprice)) self.__write("CDLHIGHWAVE", stockCode, ohlc, ta.CDLHIGHWAVE(oprice, hprice, lprice, cprice)) self.__write("CDLHIKKAKE", stockCode, ohlc, ta.CDLHIKKAKE(oprice, hprice, lprice, cprice)) self.__write("CDLHIKKAKEMOD", stockCode, ohlc, ta.CDLHIKKAKEMOD(oprice, hprice, lprice, cprice)) self.__write("CDLHOMINGPIGEON", stockCode, ohlc, ta.CDLHOMINGPIGEON(oprice, hprice, lprice, cprice)) self.__write("CDLIDENTICAL3CROWS", stockCode, ohlc, ta.CDLIDENTICAL3CROWS(oprice, hprice, lprice, cprice)) self.__write("CDLINNECK", stockCode, ohlc, ta.CDLINNECK(oprice, hprice, lprice, cprice)) self.__write("CDLINVERTEDHAMMER", stockCode, ohlc, ta.CDLINVERTEDHAMMER(oprice, hprice, lprice, cprice)) self.__write("CDLKICKING", stockCode, ohlc, ta.CDLKICKING(oprice, hprice, lprice, cprice)) self.__write("CDLKICKINGBYLENGTH", stockCode, ohlc, ta.CDLKICKINGBYLENGTH(oprice, hprice, lprice, cprice)) self.__write("CDLLADDERBOTTOM", stockCode, ohlc, ta.CDLLADDERBOTTOM(oprice, hprice, lprice, cprice)) self.__write("CDLLONGLEGGEDDOJI", stockCode, ohlc, ta.CDLLONGLEGGEDDOJI(oprice, hprice, lprice, cprice)) self.__write("CDLLONGLINE", stockCode, ohlc, ta.CDLLONGLINE(oprice, hprice, lprice, cprice)) self.__write("CDLMARUBOZU", stockCode, ohlc, ta.CDLMARUBOZU(oprice, hprice, lprice, cprice)) self.__write("CDLMATCHINGLOW", stockCode, ohlc, ta.CDLMATCHINGLOW(oprice, hprice, lprice, cprice)) self.__write("CDLMATHOLD", stockCode, ohlc, ta.CDLMATHOLD(oprice, hprice, lprice, cprice)) self.__write("CDLMORNINGDOJISTAR", stockCode, ohlc, ta.CDLMORNINGDOJISTAR(oprice, hprice, lprice, cprice)) self.__write("CDLMORNINGSTAR", stockCode, ohlc, ta.CDLMORNINGSTAR(oprice, hprice, lprice, cprice)) self.__write("CDLONNECK", stockCode, ohlc, ta.CDLONNECK(oprice, hprice, lprice, cprice)) self.__write("CDLPIERCING", stockCode, ohlc, ta.CDLPIERCING(oprice, hprice, lprice, cprice)) self.__write("CDLRICKSHAWMAN", stockCode, ohlc, ta.CDLRICKSHAWMAN(oprice, hprice, lprice, cprice)) self.__write("CDLRISEFALL3METHODS", stockCode, ohlc, ta.CDLRISEFALL3METHODS(oprice, hprice, lprice, cprice)) self.__write("CDLSEPARATINGLINES", stockCode, ohlc, ta.CDLSEPARATINGLINES(oprice, hprice, lprice, cprice)) self.__write("CDLSHOOTINGSTAR", stockCode, ohlc, ta.CDLSHOOTINGSTAR(oprice, hprice, lprice, cprice)) self.__write("CDLSHORTLINE", stockCode, ohlc, ta.CDLSHORTLINE(oprice, hprice, lprice, cprice)) self.__write("CDLSPINNINGTOP", stockCode, ohlc, ta.CDLSPINNINGTOP(oprice, hprice, lprice, cprice)) self.__write("CDLSTALLEDPATTERN", stockCode, ohlc, ta.CDLSTALLEDPATTERN(oprice, hprice, lprice, cprice)) self.__write("CDLSTICKSANDWICH", stockCode, ohlc, ta.CDLSTICKSANDWICH(oprice, hprice, lprice, cprice)) self.__write("CDLTAKURI", stockCode, ohlc, ta.CDLTAKURI(oprice, hprice, lprice, cprice)) self.__write("CDLTASUKIGAP", stockCode, ohlc, ta.CDLTASUKIGAP(oprice, hprice, lprice, cprice)) self.__write("CDLTHRUSTING", stockCode, ohlc, ta.CDLTHRUSTING(oprice, hprice, lprice, cprice)) self.__write("CDLTRISTAR", stockCode, ohlc, ta.CDLTRISTAR(oprice, hprice, lprice, cprice)) self.__write("CDLUNIQUE3RIVER", stockCode, ohlc, ta.CDLUNIQUE3RIVER(oprice, hprice, lprice, cprice)) self.__write("CDLUPSIDEGAP2CROWS", stockCode, ohlc, ta.CDLUPSIDEGAP2CROWS(oprice, hprice, lprice, cprice)) self.__write("CDLXSIDEGAP3METHODS", stockCode, ohlc, ta.CDLXSIDEGAP3METHODS(oprice, hprice, lprice, cprice)) self.connection.close() self.connection2.close()
def main(): # read csv file and transform it to datafeed (df): df = pd.read_csv(current_dir + "/" + base_dir + "/" + in_dir + "/" + in_dir + '_' + stock_symbol + '.csv') # set numpy datafeed from df: df_numpy = { 'Date': np.array(df['date']), 'Open': np.array(df['open'], dtype='float'), 'High': np.array(df['high'], dtype='float'), 'Low': np.array(df['low'], dtype='float'), 'Close': np.array(df['close'], dtype='float'), 'Volume': np.array(df['volume'], dtype='float') } date = df_numpy['Date'] openp = df_numpy['Open'] high = df_numpy['High'] low = df_numpy['Low'] close = df_numpy['Close'] volume = df_numpy['Volume'] ######################################### ##### Pattern Recognition Functions ##### ######################################### #CDL2CROWS - Two Crows cdl2crows = ta.CDL2CROWS(openp, high, low, close) #CDL3BLACKCROWS - Three Black Crows cdl3blackcrows = ta.CDL3BLACKCROWS(openp, high, low, close) #CDL3INSIDE - Three Inside Up/Down cdl3inside = ta.CDL3INSIDE(openp, high, low, close) #CDL3LINESTRIKE - Three-Line Strike cdl3linestrike = ta.CDL3LINESTRIKE(openp, high, low, close) #CDL3OUTSIDE - Three Outside Up/Down cdl3outside = ta.CDL3OUTSIDE(openp, high, low, close) #CDL3STARSINSOUTH - Three Stars In The South cdl3starinsouth = ta.CDL3STARSINSOUTH(openp, high, low, close) #CDL3WHITESOLDIERS - Three Advancing White Soldiers cdl3whitesoldiers = ta.CDL3WHITESOLDIERS(openp, high, low, close) #CDLABANDONEDBABY - Abandoned Baby cdlabandonbaby = ta.CDLABANDONEDBABY(openp, high, low, close, penetration=0) #CDLADVANCEBLOCK - Advance Block cdladvanceblock = ta.CDLADVANCEBLOCK(openp, high, low, close) #CDLBELTHOLD - Belt-hold cdlbelthold = ta.CDLBELTHOLD(openp, high, low, close) #CDLBREAKAWAY - Breakaway cdlbreakway = ta.CDLBREAKAWAY(openp, high, low, close) #CDLCLOSINGMARUBOZU - Closing Marubozu cdlclosingmarubozu = ta.CDLCLOSINGMARUBOZU(openp, high, low, close) #CDLCONCEALBABYSWALL - Concealing Baby Swallow cdlconcealbabyswall = ta.CDLCONCEALBABYSWALL(openp, high, low, close) #CDLCOUNTERATTACK - Counterattack cdlcounterattack = ta.CDLCOUNTERATTACK(openp, high, low, close) #CDLDARKCLOUDCOVER - Dark Cloud Cover cdldarkcloudcover = ta.CDLDARKCLOUDCOVER(openp, high, low, close, penetration=0) #CDLDOJI - Doji cdldoji = ta.CDLDOJI(openp, high, low, close) #CDLDOJISTAR - Doji Star cdldojistar = ta.CDLDOJISTAR(openp, high, low, close) #CDLDRAGONFLYDOJI - Dragonfly Doji cdldragonflydoji = ta.CDLDRAGONFLYDOJI(openp, high, low, close) #CDLENGULFING - Engulfing Pattern cdlengulfing = ta.CDLENGULFING(openp, high, low, close) #CDLEVENINGDOJISTAR - Evening Doji Star cdeveningdojistar = ta.CDLEVENINGDOJISTAR(openp, high, low, close, penetration=0) #CDLEVENINGSTAR - Evening Star cdeveningstar = ta.CDLEVENINGSTAR(openp, high, low, close, penetration=0) #CDLGAPSIDESIDEWHITE - Up/Down-gap side-by-side white lines cdlgapsidesidewhite = ta.CDLGAPSIDESIDEWHITE(openp, high, low, close) #CDLGRAVESTONEDOJI - Gravestone Doji cdlgravestonedoji = ta.CDLGRAVESTONEDOJI(openp, high, low, close) #CDLHAMMER - Hammer cdlhammer = ta.CDLHAMMER(openp, high, low, close) #CDLHANGINGMAN - Hanging Man cdlhangman = ta.CDLHANGINGMAN(openp, high, low, close) #CDLHARAMI - Harami Pattern cdlharami = ta.CDLHARAMI(openp, high, low, close) #CDLHARAMICROSS - Harami Cross Pattern cdlharamicross = ta.CDLHARAMICROSS(openp, high, low, close) #CDLHIGHWAVE - High-Wave Candle cdlhighwave = ta.CDLHIGHWAVE(openp, high, low, close) #CDLHIKKAKE - Hikkake Pattern cdlhikakke = ta.CDLHIKKAKE(openp, high, low, close) #CDLHIKKAKEMOD - Modified Hikkake Pattern cdlhikkakemod = ta.CDLHIKKAKEMOD(openp, high, low, close) #CDLHOMINGPIGEON - Homing Pigeon cdlhomingpigeon = ta.CDLHOMINGPIGEON(openp, high, low, close) #CDLIDENTICAL3CROWS - Identical Three Crows cdlidentical3crows = ta.CDLIDENTICAL3CROWS(openp, high, low, close) #CDLINNECK - In-Neck Pattern cdlinneck = ta.CDLINNECK(openp, high, low, close) #CDLINVERTEDHAMMER - Inverted Hammer cdlinvertedhammer = ta.CDLINVERTEDHAMMER(openp, high, low, close) #CDLKICKING - Kicking cdkicking = ta.CDLKICKING(openp, high, low, close) #CDLKICKINGBYLENGTH - Kicking - bull/bear determined by the longer marubozu cdkickingbylength = ta.CDLKICKINGBYLENGTH(openp, high, low, close) #CDLLADDERBOTTOM - Ladder Bottom cdlladderbottom = ta.CDLLADDERBOTTOM(openp, high, low, close) #CDLLONGLEGGEDDOJI - Long Legged Doji cdllongleggeddoji = ta.CDLLONGLEGGEDDOJI(openp, high, low, close) #CDLLONGLINE - Long Line Candle cdllongline = ta.CDLLONGLINE(openp, high, low, close) #CDLMARUBOZU - Marubozu cdlmarubozu = ta.CDLMARUBOZU(openp, high, low, close) #CDLMATCHINGLOW - Matching Low cdlmatchinglow = ta.CDLMATCHINGLOW(openp, high, low, close) #CDLMATHOLD - Mat Hold cdlmathold = ta.CDLMATHOLD(openp, high, low, close, penetration=0) #CDLMORNINGDOJISTAR - Morning Doji Star cdlmorningdojistar = ta.CDLMORNINGDOJISTAR(openp, high, low, close, penetration=0) #CDLMORNINGSTAR - Morning Star cdlmorningstar = ta.CDLMORNINGSTAR(openp, high, low, close, penetration=0) #CDLONNECK - On-Neck Pattern cdlonneck = ta.CDLONNECK(openp, high, low, close) #CDLPIERCING - Piercing Pattern cdlpiercing = ta.CDLPIERCING(openp, high, low, close) #CDLRICKSHAWMAN - Rickshaw Man cdlrickshawman = ta.CDLRICKSHAWMAN(openp, high, low, close) #CDLRISEFALL3METHODS - Rising/Falling Three Methods cdlrisefall3methods = ta.CDLRISEFALL3METHODS(openp, high, low, close) #CDLSEPARATINGLINES - Separating Lines cdlseperatinglines = ta.CDLSEPARATINGLINES(openp, high, low, close) #CDLSHOOTINGSTAR - Shooting Star cdlshootingstar = ta.CDLSHOOTINGSTAR(openp, high, low, close) #CDLSHORTLINE - Short Line Candle cdlshortline = ta.CDLSHORTLINE(openp, high, low, close) #CDLSPINNINGTOP - Spinning Top cdlspinningtop = ta.CDLSPINNINGTOP(openp, high, low, close) #CDLSTALLEDPATTERN - Stalled Pattern cdlstalledpattern = ta.CDLSTALLEDPATTERN(openp, high, low, close) #CDLSTICKSANDWICH - Stick Sandwich cdlsticksandwich = ta.CDLSTICKSANDWICH(openp, high, low, close) #CDLTAKURI - Takuri (Dragonfly Doji with very long lower shadow) cdltakuri = ta.CDLTAKURI(openp, high, low, close) #CDLTASUKIGAP - Tasuki Gap cdltasukigap = ta.CDLTASUKIGAP(openp, high, low, close) #CDLTHRUSTING - Thrusting Pattern cdlthrusting = ta.CDLTHRUSTING(openp, high, low, close) #CDLTRISTAR - Tristar Pattern cdltristar = ta.CDLTRISTAR(openp, high, low, close) #CDLUNIQUE3RIVER - Unique 3 River cdlunique3river = ta.CDLUNIQUE3RIVER(openp, high, low, close) #CDLUPSIDEGAP2CROWS - Upside Gap Two Crows cdlupsidegap2crows = ta.CDLUPSIDEGAP2CROWS(openp, high, low, close) #CDLXSIDEGAP3METHODS - Upside/Downside Gap Three Methods cdlxsidegap3methods = ta.CDLXSIDEGAP3METHODS(openp, high, low, close) df_save = pd.DataFrame( data={ 'date': np.array(df['date']), 'cdl2crows': cdl2crows, 'cdl3blackcrows': cdl3blackcrows, 'cdl3inside': cdl3inside, 'cdl3linestrike': cdl3linestrike, 'cdl3outside': cdl3outside, 'cdl3starinsouth': cdl3starinsouth, 'cdl3whitesoldiers': cdl3whitesoldiers, 'cdlabandonbaby': cdlabandonbaby, 'cdladvanceblock': cdladvanceblock, 'cdlbelthold': cdlbelthold, 'cdlbreakway': cdlbreakway, 'cdlclosingmarubozu': cdlclosingmarubozu, 'cdlconcealbabyswall': cdlconcealbabyswall, 'cdlcounterattack': cdlcounterattack, 'cdldarkcloudcover': cdldarkcloudcover, 'cdldoji': cdldoji, 'cdldojistar': cdldojistar, 'cdldragonflydoji': cdldragonflydoji, 'cdlengulfing': cdlengulfing, 'cdeveningdojistar': cdeveningdojistar, 'cdeveningstar': cdeveningstar, 'cdlgapsidesidewhite': cdlgapsidesidewhite, 'cdlgravestonedoji': cdlgravestonedoji, 'cdlhammer': cdlhammer, 'cdlhangman': cdlhangman, 'cdlharami': cdlharami, 'cdlharamicross': cdlharamicross, 'cdlhighwave': cdlhighwave, 'cdlhikakke': cdlhikakke, 'cdlhikkakemod': cdlhikkakemod, 'cdlhomingpigeon': cdlhomingpigeon, 'cdlidentical3crows': cdlidentical3crows, 'cdlinneck': cdlinneck, 'cdlinvertedhammer': cdlinvertedhammer, 'cdkicking': cdkicking, 'cdkickingbylength': cdkickingbylength, 'cdlladderbottom': cdlladderbottom, 'cdllongleggeddoji': cdllongleggeddoji, 'cdllongline': cdllongline, 'cdlmarubozu': cdlmarubozu, 'cdlmatchinglow': cdlmatchinglow, 'cdlmathold': cdlmathold, 'cdlmorningdojistar': cdlmorningdojistar, 'cdlmorningstar': cdlmorningstar, 'cdlonneck': cdlonneck, 'cdlpiercing': cdlpiercing, 'cdlrickshawman': cdlrickshawman, 'cdlrisefall3methods': cdlrisefall3methods, 'cdlseperatinglines': cdlseperatinglines, 'cdlshootingstar': cdlshootingstar, 'cdlshortline': cdlshortline, 'cdlspinningtop': cdlspinningtop, 'cdlstalledpattern': cdlstalledpattern, 'cdlsticksandwich': cdlsticksandwich, 'cdltakuri': cdltakuri, 'cdltasukigap': cdltasukigap, 'cdlthrusting': cdlthrusting, 'cdltristar': cdltristar, 'cdlunique3river': cdlunique3river, 'cdlupsidegap2crows': cdlupsidegap2crows, 'cdlxsidegap3methods': cdlxsidegap3methods }) df_save.to_csv(current_dir + "/" + base_dir + "/" + out_dir + '/' + stock_symbol + "/" + out_dir + '_ta_pattern_reognition_' + stock_symbol + '.csv', index=False)
def get_ta(self): # define pivot variables for easy use open_price = self.data['open_price'].values close = self.data['close'].values high = self.data['high'].values low = self.data['low'].values volume = self.data['volume'].values # define the technical analysis matrix retn = np.array([ tb.MA(close, timeperiod=5), # 1 tb.MA(close, timeperiod=10), # 2 tb.MA(close, timeperiod=20), # 3 tb.MA(close, timeperiod=60), # 4 tb.MA(close, timeperiod=90), # 5 tb.MA(close, timeperiod=120), # 6 tb.ADX(high, low, close, timeperiod=20), # 7 tb.ADXR(high, low, close, timeperiod=20), # 8 tb.MACD(close, fastperiod=12, slowperiod=26, signalperiod=9)[0], # 9 tb.RSI(close, timeperiod=14), # 10 tb.BBANDS(close, timeperiod=5, nbdevup=2, nbdevdn=2, matype=0)[0], # 11 tb.BBANDS(close, timeperiod=5, nbdevup=2, nbdevdn=2, matype=0)[1], # 12 tb.BBANDS(close, timeperiod=5, nbdevup=2, nbdevdn=2, matype=0)[2], # 13 tb.AD(high, low, close, volume), # 14 tb.ATR(high, low, close, timeperiod=14), # 15 tb.HT_DCPERIOD(close), # 16 tb.CDL2CROWS(open_price, high, low, close), # 17 tb.CDL3BLACKCROWS(open_price, high, low, close), # 18 tb.CDL3INSIDE(open_price, high, low, close), # 19 tb.CDL3LINESTRIKE(open_price, high, low, close), # 20 tb.CDL3OUTSIDE(open_price, high, low, close), # 21 tb.CDL3STARSINSOUTH(open_price, high, low, close), # 22 tb.CDL3WHITESOLDIERS(open_price, high, low, close), # 23 tb.CDLABANDONEDBABY(open_price, high, low, close, penetration=0), # 24 tb.CDLADVANCEBLOCK(open_price, high, low, close), # 25 tb.CDLBELTHOLD(open_price, high, low, close), # 26 tb.CDLBREAKAWAY(open_price, high, low, close), # 27 tb.CDLCLOSINGMARUBOZU(open_price, high, low, close), # 28 tb.CDLCONCEALBABYSWALL(open_price, high, low, close), # 29 tb.CDLCOUNTERATTACK(open_price, high, low, close), # 30 tb.CDLDARKCLOUDCOVER(open_price, high, low, close, penetration=0), # 31 tb.CDLDOJI(open_price, high, low, close), # 32 tb.CDLDOJISTAR(open_price, high, low, close), # 33 tb.CDLDRAGONFLYDOJI(open_price, high, low, close), # 34 tb.CDLENGULFING(open_price, high, low, close), # 35 tb.CDLEVENINGDOJISTAR(open_price, high, low, close, penetration=0), # 36 tb.CDLEVENINGSTAR(open_price, high, low, close, penetration=0), # 37 tb.CDLGAPSIDESIDEWHITE(open_price, high, low, close), # 38 tb.CDLGRAVESTONEDOJI(open_price, high, low, close), # 39 tb.CDLHAMMER(open_price, high, low, close), # 40 tb.CDLHANGINGMAN(open_price, high, low, close), # 41 tb.CDLHARAMI(open_price, high, low, close), # 42 tb.CDLHARAMICROSS(open_price, high, low, close), # 43 tb.CDLHIGHWAVE(open_price, high, low, close), # 44 tb.CDLHIKKAKE(open_price, high, low, close), # 45 tb.CDLHIKKAKEMOD(open_price, high, low, close), # 46 tb.CDLHOMINGPIGEON(open_price, high, low, close), # 47 tb.CDLIDENTICAL3CROWS(open_price, high, low, close), # 48 tb.CDLINNECK(open_price, high, low, close), # 49 tb.CDLINVERTEDHAMMER(open_price, high, low, close), # 50 tb.CDLKICKING(open_price, high, low, close), # 51 tb.CDLKICKINGBYLENGTH(open_price, high, low, close), # 52 tb.CDLLADDERBOTTOM(open_price, high, low, close), # 53 tb.CDLLONGLEGGEDDOJI(open_price, high, low, close), # 54 tb.CDLLONGLINE(open_price, high, low, close), # 55 tb.CDLMARUBOZU(open_price, high, low, close), # 56 tb.CDLMATCHINGLOW(open_price, high, low, close), # 57 tb.CDLMATHOLD(open_price, high, low, close, penetration=0), # 58 tb.CDLMORNINGDOJISTAR(open_price, high, low, close, penetration=0), # 59 tb.CDLMORNINGSTAR(open_price, high, low, close, penetration=0), # 60 tb.CDLONNECK(open_price, high, low, close), # 61 tb.CDLPIERCING(open_price, high, low, close), # 62 tb.CDLRICKSHAWMAN(open_price, high, low, close), # 63 tb.CDLRISEFALL3METHODS(open_price, high, low, close), # 64 tb.CDLSEPARATINGLINES(open_price, high, low, close), # 65 tb.CDLSHOOTINGSTAR(open_price, high, low, close), # 66 tb.CDLSHORTLINE(open_price, high, low, close), # 67 tb.CDLSPINNINGTOP(open_price, high, low, close), # 68 tb.CDLSTALLEDPATTERN(open_price, high, low, close), # 69 tb.CDLSTICKSANDWICH(open_price, high, low, close), # 70 tb.CDLTAKURI(open_price, high, low, close), # 71 tb.CDLTASUKIGAP(open_price, high, low, close), # 72 tb.CDLTHRUSTING(open_price, high, low, close), # 73 tb.CDLTRISTAR(open_price, high, low, close), # 74 tb.CDLUNIQUE3RIVER(open_price, high, low, close), # 75 tb.CDLUPSIDEGAP2CROWS(open_price, high, low, close), # 76 tb.CDLXSIDEGAP3METHODS(open_price, high, low, close) # 77 ]).T retdf = pd.DataFrame(retn) retdf['date'] = self.data.index.values retdf.set_index('date', inplace=True) self.data = self.data.join(retdf) return self.data
def pattern_recognition(df): val = 0 # test_len = 5 dates = np.array(df.index) open = np.array(df.open) close = np.array(df.close) high = np.array(df.high) low = np.array(df.low) # volume = np.array(df.volume) tristar = talib.CDLTRISTAR(open, high, low, close) Two_Crows = talib.CDL2CROWS(open, high, low, close) Three_Black_Crows = talib.CDL3BLACKCROWS(open, high, low, close) Three_Inside_Up_Down = talib.CDL3INSIDE(open, high, low, close) Three_Line_Strike = talib.CDL3LINESTRIKE(open, high, low, close) Three_Outside_Up_Down = talib.CDL3OUTSIDE(open, high, low, close) Three_Stars_In_The_South = talib.CDL3STARSINSOUTH(open, high, low, close) Three_Advancing_White_Soldiers = talib.CDL3WHITESOLDIERS( open, high, low, close) Abandoned_Baby = talib.CDLABANDONEDBABY( open, high, low, close, penetration=0) Advance_Block = talib.CDLADVANCEBLOCK(open, high, low, close) Belt_hold = talib.CDLBELTHOLD(open, high, low, close) Breakaway = talib.CDLBREAKAWAY(open, high, low, close) Closing_Marubozu = talib.CDLCLOSINGMARUBOZU(open, high, low, close) Concealing_Baby_Swallow = talib.CDLCONCEALBABYSWALL(open, high, low, close) Counterattack = talib.CDLCOUNTERATTACK(open, high, low, close) Dark_Cloud_Cover = talib.CDLDARKCLOUDCOVER( open, high, low, close, penetration=0) Doji = talib.CDLDOJI(open, high, low, close) Doji_Star = talib.CDLDOJISTAR(open, high, low, close) Dragonfly_Doji = talib.CDLDRAGONFLYDOJI(open, high, low, close) Engulfing_Pattern = talib.CDLENGULFING(open, high, low, close) Evening_Doji_Star = talib.CDLEVENINGDOJISTAR( open, high, low, close, penetration=0) Evening_Star = talib.CDLEVENINGSTAR(open, high, low, close, penetration=0) Up_Down_gap_side_by_side_white_lines = talib.CDLGAPSIDESIDEWHITE( open, high, low, close) Gravestone_Doji = talib.CDLGRAVESTONEDOJI(open, high, low, close) Hammer = talib.CDLHAMMER(open, high, low, close) Hanging_Man = talib.CDLHANGINGMAN(open, high, low, close) Harami_Pattern = talib.CDLHARAMI(open, high, low, close) Harami_Cross_Pattern = talib.CDLHARAMICROSS(open, high, low, close) High_Wave_Candle = talib.CDLHIGHWAVE(open, high, low, close) Hikkake_Pattern = talib.CDLHIKKAKE(open, high, low, close) Modified_Hikkake_Pattern = talib.CDLHIKKAKEMOD(open, high, low, close) Homing_Pigeon = talib.CDLHOMINGPIGEON(open, high, low, close) Identical_Three_Crows = talib.CDLIDENTICAL3CROWS(open, high, low, close) In_Neck_Pattern = talib.CDLINNECK(open, high, low, close) Inverted_Hammer = talib.CDLINVERTEDHAMMER(open, high, low, close) Kicking = talib.CDLKICKING(open, high, low, close) Kicking_bull_bear_determined_by_the_longer_marubozu = talib.CDLKICKINGBYLENGTH( open, high, low, close) Ladder_Bottom = talib.CDLLADDERBOTTOM(open, high, low, close) Long_Legged_Doji = talib.CDLLONGLEGGEDDOJI(open, high, low, close) Long_Line_Candle = talib.CDLLONGLINE(open, high, low, close) Marubozu = talib.CDLMARUBOZU(open, high, low, close) Matching_Low = talib.CDLMATCHINGLOW(open, high, low, close) Mat_Hold = talib.CDLMATHOLD(open, high, low, close, penetration=0) Morning_Doji_Star = talib.CDLMORNINGDOJISTAR( open, high, low, close, penetration=0) Morning_Star = talib.CDLMORNINGSTAR(open, high, low, close, penetration=0) On_Neck_Pattern = talib.CDLONNECK(open, high, low, close) Piercing_Pattern = talib.CDLPIERCING(open, high, low, close) Rickshaw_Man = talib.CDLRICKSHAWMAN(open, high, low, close) Rising_Falling_Three_Methods = talib.CDLRISEFALL3METHODS( open, high, low, close) Separating_Lines = talib.CDLSEPARATINGLINES(open, high, low, close) Shooting_Star = talib.CDLSHOOTINGSTAR(open, high, low, close) Short_Line_Candle = talib.CDLSHORTLINE(open, high, low, close) Spinning_Top = talib.CDLSPINNINGTOP(open, high, low, close) Stalled_Pattern = talib.CDLSTALLEDPATTERN(open, high, low, close) Stick_Sandwich = talib.CDLSTICKSANDWICH(open, high, low, close) Takuri_Dragonfly_Doji_with_very_long_lower_shadow = talib.CDLTAKURI( open, high, low, close) Tasuki_Gap = talib.CDLTASUKIGAP(open, high, low, close) Thrusting_Pattern = talib.CDLTHRUSTING(open, high, low, close) Tristar_Pattern = talib.CDLTRISTAR(open, high, low, close) Unique_3_River = talib.CDLUNIQUE3RIVER(open, high, low, close) Upside_Gap_Two_Crows = talib.CDLUPSIDEGAP2CROWS(open, high, low, close) Upside_Downside_Gap_Three_Methods = talib.CDLXSIDEGAP3METHODS( open, high, low, close) pattern_arrays = [tristar, Two_Crows, Three_Black_Crows, Three_Inside_Up_Down, Three_Line_Strike, Three_Outside_Up_Down, Three_Stars_In_The_South, Three_Advancing_White_Soldiers, Abandoned_Baby, Advance_Block, Belt_hold, Breakaway, Closing_Marubozu, Concealing_Baby_Swallow, Counterattack, Dark_Cloud_Cover, Doji, Doji_Star, Dragonfly_Doji, Engulfing_Pattern, Evening_Doji_Star, Evening_Star, Up_Down_gap_side_by_side_white_lines, Gravestone_Doji, Hammer, Hanging_Man, Harami_Pattern, Harami_Cross_Pattern, High_Wave_Candle, Hikkake_Pattern, Modified_Hikkake_Pattern, Homing_Pigeon, Identical_Three_Crows, In_Neck_Pattern, Inverted_Hammer, Kicking, Kicking_bull_bear_determined_by_the_longer_marubozu, Ladder_Bottom, Long_Legged_Doji, Long_Line_Candle, Marubozu, Matching_Low, Mat_Hold, Morning_Doji_Star, Morning_Star, On_Neck_Pattern, Piercing_Pattern, Rickshaw_Man, Rising_Falling_Three_Methods, Separating_Lines, Shooting_Star, Short_Line_Candle, Spinning_Top, Stalled_Pattern, Stick_Sandwich, Takuri_Dragonfly_Doji_with_very_long_lower_shadow, Tasuki_Gap, Thrusting_Pattern, Tristar_Pattern, Unique_3_River, Upside_Gap_Two_Crows, Upside_Downside_Gap_Three_Methods] pattern_names = ['tristar', 'Two_Crows', 'Three_Black_Crows', 'Three_Inside_Up_Down', 'Three_Line_Strike', 'Three_Outside_Up_Down', 'Three_Stars_In_The_South', 'Three_Advancing_White_Soldiers', 'Abandoned_Baby', 'Advance_Block', 'Belt_hold', 'Breakaway', 'Closing_Marubozu', 'Concealing_Baby_Swallow', 'Counterattack', 'Dark_Cloud_Cover', 'Doji', 'Doji_Star', 'Dragonfly_Doji', 'Engulfing_Pattern', 'Evening_Doji_Star', 'Evening_Star', 'Up_Down_gap_side_by_side_white_lines', 'Gravestone_Doji', 'Hammer', 'Hanging_Man', 'Harami_Pattern', 'Harami_Cross_Pattern', 'High_Wave_Candle', 'Hikkake_Pattern', 'Modified_Hikkake_Pattern', 'Homing_Pigeon', 'Identical_Three_Crows', 'In_Neck_Pattern', 'Inverted_Hammer', 'Kicking', 'Kicking_bull_bear_determined_by_the_longer_marubozu', 'Ladder_Bottom', 'Long_Legged_Doji', 'Long_Line_Candle', 'Marubozu', 'Matching_Low', 'Mat_Hold', 'Morning_Doji_Star', 'Morning_Star', 'On_Neck_Pattern', 'Piercing_Pattern', 'Rickshaw_Man', 'Rising_Falling_Three_Methods', 'Separating_Lines', 'Shooting_Star', 'Short_Line_Candle', 'Spinning_Top', 'Stalled_Pattern', 'Stick_Sandwich', 'Takuri_Dragonfly_Doji_with_very_long_lower_shadow', 'Tasuki_Gap', 'Thrusting_Pattern', 'Tristar_Pattern', 'Unique_3_River', 'Upside_Gap_Two_Crows', 'Upside_Downside_Gap_Three_Methods'] for pattern_results in range(len(pattern_arrays)): # print(f'Found {pattern_names[pattern_results]}') # print(pattern_arrays[pattern_results]) for index in range(len(pattern_arrays[pattern_results])): value = pattern_arrays[pattern_results][index] val = val + value # if value != 0: # print( # f'{pattern_arrays[pattern_results]} index - {index} value - {value}') # print('-----------------------------------------------') # print(f'Total val = {val}') return val
def pattern_recognition(candles: np.ndarray, pattern_type: str, penetration: int = 0, sequential: bool = False) -> \ Union[int, np.ndarray]: """ Pattern Recognition :param candles: np.ndarray :param penetration: int - default = 0 :param pattern_type: str :param sequential: bool - default=False :return: int | np.ndarray """ candles = slice_candles(candles, sequential) if pattern_type == "CDL2CROWS": res = talib.CDL2CROWS(candles[:, 1], candles[:, 3], candles[:, 4], candles[:, 2]) elif pattern_type == "CDL3BLACKCROWS": res = talib.CDL3BLACKCROWS(candles[:, 1], candles[:, 3], candles[:, 4], candles[:, 2]) elif pattern_type == "CDL3INSIDE": res = talib.CDL3INSIDE(candles[:, 1], candles[:, 3], candles[:, 4], candles[:, 2]) elif pattern_type == "CDL3LINESTRIKE": res = talib.CDL3LINESTRIKE(candles[:, 1], candles[:, 3], candles[:, 4], candles[:, 2]) elif pattern_type == "CDL3OUTSIDE": res = talib.CDL3OUTSIDE(candles[:, 1], candles[:, 3], candles[:, 4], candles[:, 2]) elif pattern_type == "CDL3STARSINSOUTH": res = talib.CDL3STARSINSOUTH(candles[:, 1], candles[:, 3], candles[:, 4], candles[:, 2]) elif pattern_type == "CDL3WHITESOLDIERS": res = talib.CDL3WHITESOLDIERS(candles[:, 1], candles[:, 3], candles[:, 4], candles[:, 2]) elif pattern_type == "CDLABANDONEDBABY": res = talib.CDLABANDONEDBABY(candles[:, 1], candles[:, 3], candles[:, 4], candles[:, 2], penetration=penetration) elif pattern_type == "CDLADVANCEBLOCK": res = talib.CDLADVANCEBLOCK(candles[:, 1], candles[:, 3], candles[:, 4], candles[:, 2]) elif pattern_type == "CDLBELTHOLD": res = talib.CDLBELTHOLD(candles[:, 1], candles[:, 3], candles[:, 4], candles[:, 2]) elif pattern_type == "CDLBREAKAWAY": res = talib.CDLBREAKAWAY(candles[:, 1], candles[:, 3], candles[:, 4], candles[:, 2]) elif pattern_type == "CDLCLOSINGMARUBOZU": res = talib.CDLCLOSINGMARUBOZU(candles[:, 1], candles[:, 3], candles[:, 4], candles[:, 2]) elif pattern_type == "CDLCONCEALBABYSWALL": res = talib.CDLCONCEALBABYSWALL(candles[:, 1], candles[:, 3], candles[:, 4], candles[:, 2]) elif pattern_type == "CDLCOUNTERATTACK": res = talib.CDLCOUNTERATTACK(candles[:, 1], candles[:, 3], candles[:, 4], candles[:, 2]) elif pattern_type == "CDLDARKCLOUDCOVER": res = talib.CDLDARKCLOUDCOVER(candles[:, 1], candles[:, 3], candles[:, 4], candles[:, 2], penetration=penetration) elif pattern_type == "CDLDOJI": res = talib.CDLDOJI(candles[:, 1], candles[:, 3], candles[:, 4], candles[:, 2]) elif pattern_type == "CDLDOJISTAR": res = talib.CDLDOJISTAR(candles[:, 1], candles[:, 3], candles[:, 4], candles[:, 2]) elif pattern_type == "CDLDRAGONFLYDOJI": res = talib.CDLDRAGONFLYDOJI(candles[:, 1], candles[:, 3], candles[:, 4], candles[:, 2]) elif pattern_type == "CDLENGULFING": res = talib.CDLENGULFING(candles[:, 1], candles[:, 3], candles[:, 4], candles[:, 2]) elif pattern_type == "CDLEVENINGDOJISTAR": res = talib.CDLEVENINGDOJISTAR(candles[:, 1], candles[:, 3], candles[:, 4], candles[:, 2], penetration=penetration) elif pattern_type == "CDLEVENINGSTAR": res = talib.CDLEVENINGSTAR(candles[:, 1], candles[:, 3], candles[:, 4], candles[:, 2], penetration=penetration) elif pattern_type == "CDLGAPSIDESIDEWHITE": res = talib.CDLGAPSIDESIDEWHITE(candles[:, 1], candles[:, 3], candles[:, 4], candles[:, 2]) elif pattern_type == "CDLGRAVESTONEDOJI": res = talib.CDLGRAVESTONEDOJI(candles[:, 1], candles[:, 3], candles[:, 4], candles[:, 2]) elif pattern_type == "CDLHAMMER": res = talib.CDLHAMMER(candles[:, 1], candles[:, 3], candles[:, 4], candles[:, 2]) elif pattern_type == "CDLHANGINGMAN": res = talib.CDLHANGINGMAN(candles[:, 1], candles[:, 3], candles[:, 4], candles[:, 2]) elif pattern_type == "CDLHARAMI": res = talib.CDLHARAMI(candles[:, 1], candles[:, 3], candles[:, 4], candles[:, 2]) elif pattern_type == "CDLHARAMICROSS": res = talib.CDLHARAMICROSS(candles[:, 1], candles[:, 3], candles[:, 4], candles[:, 2]) elif pattern_type == "CDLHIGHWAVE": res = talib.CDLHIGHWAVE(candles[:, 1], candles[:, 3], candles[:, 4], candles[:, 2]) elif pattern_type == "CDLHIKKAKE": res = talib.CDLHIKKAKE(candles[:, 1], candles[:, 3], candles[:, 4], candles[:, 2]) elif pattern_type == "CDLHIKKAKEMOD": res = talib.CDLHIKKAKEMOD(candles[:, 1], candles[:, 3], candles[:, 4], candles[:, 2]) elif pattern_type == "CDLHOMINGPIGEON": res = talib.CDLHOMINGPIGEON(candles[:, 1], candles[:, 3], candles[:, 4], candles[:, 2]) elif pattern_type == "CDLIDENTICAL3CROWS": res = talib.CDLIDENTICAL3CROWS(candles[:, 1], candles[:, 3], candles[:, 4], candles[:, 2]) elif pattern_type == "CDLINNECK": res = talib.CDLINNECK(candles[:, 1], candles[:, 3], candles[:, 4], candles[:, 2]) elif pattern_type == "CDLINVERTEDHAMMER": res = talib.CDLINVERTEDHAMMER(candles[:, 1], candles[:, 3], candles[:, 4], candles[:, 2]) elif pattern_type == "CDLKICKING": res = talib.CDLKICKING(candles[:, 1], candles[:, 3], candles[:, 4], candles[:, 2]) elif pattern_type == "CDLKICKINGBYLENGTH": res = talib.CDLKICKINGBYLENGTH(candles[:, 1], candles[:, 3], candles[:, 4], candles[:, 2]) elif pattern_type == "CDLLADDERBOTTOM": res = talib.CDLLADDERBOTTOM(candles[:, 1], candles[:, 3], candles[:, 4], candles[:, 2]) elif pattern_type == "CDLLONGLEGGEDDOJI": res = talib.CDLLONGLEGGEDDOJI(candles[:, 1], candles[:, 3], candles[:, 4], candles[:, 2]) elif pattern_type == "CDLLONGLINE": res = talib.CDLLONGLINE(candles[:, 1], candles[:, 3], candles[:, 4], candles[:, 2]) elif pattern_type == "CDLMARUBOZU": res = talib.CDLMARUBOZU(candles[:, 1], candles[:, 3], candles[:, 4], candles[:, 2]) elif pattern_type == "CDLMATCHINGLOW": res = talib.CDLMATCHINGLOW(candles[:, 1], candles[:, 3], candles[:, 4], candles[:, 2]) elif pattern_type == "CDLMATHOLD": res = talib.CDLMATHOLD(candles[:, 1], candles[:, 3], candles[:, 4], candles[:, 2], penetration=penetration) elif pattern_type == "CDLMORNINGDOJISTAR": res = talib.CDLMORNINGDOJISTAR(candles[:, 1], candles[:, 3], candles[:, 4], candles[:, 2], penetration=penetration) elif pattern_type == "CDLMORNINGSTAR": res = talib.CDLMORNINGSTAR(candles[:, 1], candles[:, 3], candles[:, 4], candles[:, 2], penetration=penetration) elif pattern_type == "CDLONNECK": res = talib.CDLONNECK(candles[:, 1], candles[:, 3], candles[:, 4], candles[:, 2]) elif pattern_type == "CDLPIERCING": res = talib.CDLPIERCING(candles[:, 1], candles[:, 3], candles[:, 4], candles[:, 2]) elif pattern_type == "CDLRICKSHAWMAN": res = talib.CDLRICKSHAWMAN(candles[:, 1], candles[:, 3], candles[:, 4], candles[:, 2]) elif pattern_type == "CDLRISEFALL3METHODS": res = talib.CDLRISEFALL3METHODS(candles[:, 1], candles[:, 3], candles[:, 4], candles[:, 2]) elif pattern_type == "CDLSEPARATINGLINES": res = talib.CDLSEPARATINGLINES(candles[:, 1], candles[:, 3], candles[:, 4], candles[:, 2]) elif pattern_type == "CDLSHOOTINGSTAR": res = talib.CDLSHOOTINGSTAR(candles[:, 1], candles[:, 3], candles[:, 4], candles[:, 2]) elif pattern_type == "CDLSHORTLINE": res = talib.CDLSHORTLINE(candles[:, 1], candles[:, 3], candles[:, 4], candles[:, 2]) elif pattern_type == "CDLSPINNINGTOP": res = talib.CDLSPINNINGTOP(candles[:, 1], candles[:, 3], candles[:, 4], candles[:, 2]) elif pattern_type == "CDLSTALLEDPATTERN": res = talib.CDLSTALLEDPATTERN(candles[:, 1], candles[:, 3], candles[:, 4], candles[:, 2]) elif pattern_type == "CDLSTICKSANDWICH": res = talib.CDLSTICKSANDWICH(candles[:, 1], candles[:, 3], candles[:, 4], candles[:, 2]) elif pattern_type == "CDLTAKURI": res = talib.CDLTAKURI(candles[:, 1], candles[:, 3], candles[:, 4], candles[:, 2]) elif pattern_type == "CDLTASUKIGAP": res = talib.CDLTASUKIGAP(candles[:, 1], candles[:, 3], candles[:, 4], candles[:, 2]) elif pattern_type == "CDLTHRUSTING": res = talib.CDLTHRUSTING(candles[:, 1], candles[:, 3], candles[:, 4], candles[:, 2]) elif pattern_type == "CDLTRISTAR": res = talib.CDLTRISTAR(candles[:, 1], candles[:, 3], candles[:, 4], candles[:, 2]) elif pattern_type == "CDLUNIQUE3RIVER": res = talib.CDLUNIQUE3RIVER(candles[:, 1], candles[:, 3], candles[:, 4], candles[:, 2]) elif pattern_type == "CDLUPSIDEGAP2CROWS": res = talib.CDLUPSIDEGAP2CROWS(candles[:, 1], candles[:, 3], candles[:, 4], candles[:, 2]) elif pattern_type == "CDLXSIDEGAP3METHODS": res = talib.CDLXSIDEGAP3METHODS(candles[:, 1], candles[:, 3], candles[:, 4], candles[:, 2]) else: raise ValueError('pattern type string not recognised') return res / 100 if sequential else res[-1] / 100
def Candlesticks_Pattern(data): data["Upside/Downside Gap Three Methods"]= ta.CDLXSIDEGAP3METHODS(data["Open"],data["High"],data["Low"],data["Close"]) data["Upside Gap Two Crows"]= ta.CDLUPSIDEGAP2CROWS(data["Open"],data["High"],data["Low"],data["Close"]) data["Unique 3 River"]= ta.CDLUNIQUE3RIVER(data["Open"],data["High"],data["Low"],data["Close"]) data["Tristar Pattern"] =ta.CDLTRISTAR (data["Open"],data["High"],data["Low"],data["Close"]) data["Thrusting Pattern"]= ta.CDLTHRUSTING(data["Open"],data["High"],data["Low"],data["Close"]) data["Tasuki Gap"]= ta.CDLTASUKIGAP(data["Open"],data["High"],data["Low"],data["Close"]) data["Takuri (Dragonfly Doji with very long lower shadow)"]= ta.CDLTAKURI(data["Open"],data["High"],data["Low"],data["Close"]) data["Stick Sandwich"]= ta.CDLSTICKSANDWICH(data["Open"],data["High"],data["Low"],data["Close"]) data["Stalled Pattern"]= ta.CDLSTALLEDPATTERN(data["Open"],data["High"],data["Low"],data["Close"]) data["Spinning Top"]= ta.CDLSPINNINGTOP(data["Open"],data["High"],data["Low"],data["Close"]) data["Short Line Candle"]= ta.CDLSHORTLINE(data["Open"],data["High"],data["Low"],data["Close"]) data["Shooting Star"]= ta.CDLSHOOTINGSTAR(data["Open"],data["High"],data["Low"],data["Close"]) data["Separating Lines"]= ta.CDLSEPARATINGLINES(data["Open"],data["High"],data["Low"],data["Close"]) data["Rising/Falling Three Methods"]= ta.CDLRISEFALL3METHODS(data["Open"],data["High"],data["Low"],data["Close"]) data["Rickshaw Man"]= ta.CDLRICKSHAWMAN(data["Open"],data["High"],data["Low"],data["Close"]) data["Piercing Pattern"]= ta.CDLPIERCING(data["Open"],data["High"],data["Low"],data["Close"]) data["On-Neck Pattern"]= ta.CDLONNECK(data["Open"],data["High"],data["Low"],data["Close"]) data["Morning Star"]= ta.CDLMORNINGSTAR(data["Open"],data["High"],data["Low"],data["Close"]) data["Morning Doji Star"]= ta.CDLMORNINGDOJISTAR(data["Open"],data["High"],data["Low"],data["Close"]) data["Mat Hold"]= ta.CDLMATHOLD(data["Open"],data["High"],data["Low"],data["Close"]) data["Matching Low"]= ta.CDLMATCHINGLOW(data["Open"],data["High"],data["Low"],data["Close"]) data["Marubozu"]= ta.CDLMARUBOZU(data["Open"],data["High"],data["Low"],data["Close"]) data["Long Line Candle"]= ta.CDLLONGLINE(data["Open"],data["High"],data["Low"],data["Close"]) data["Long Legged Doji"]= ta.CDLLONGLEGGEDDOJI(data["Open"],data["High"],data["Low"],data["Close"]) data["Ladder Bottom"]= ta.CDLLADDERBOTTOM(data["Open"],data["High"],data["Low"],data["Close"]) data["Kicking - bull/bear determined by the longer marubozu"]= ta.CDLKICKINGBYLENGTH(data["Open"],data["High"],data["Low"],data["Close"]) data["Kicking"]= ta.CDLKICKING(data["Open"],data["High"],data["Low"],data["Close"]) data["Inverted Hammer"]= ta.CDLINVERTEDHAMMER(data["Open"],data["High"],data["Low"],data["Close"]) data["Identical Three Crows"]= ta.CDLIDENTICAL3CROWS(data["Open"],data["High"],data["Low"],data["Close"]) data["Two Crows"]=ta.CDL2CROWS(data["Open"],data["High"],data["Low"],data["Close"]) data["Three Black Crows"]=ta.CDL3BLACKCROWS(data["Open"],data["High"],data["Low"],data["Close"]) data["Three Inside Up/Down"]=ta.CDL3INSIDE(data["Open"],data["High"],data["Low"],data["Close"]) data["Three-Line Strike"]=ta.CDL3LINESTRIKE(data["Open"],data["High"],data["Low"],data["Close"]) data["Three Outside Up/Down"]=ta.CDL3OUTSIDE(data["Open"],data["High"],data["Low"],data["Close"]) data["Three Stars In The South"]=ta.CDL3STARSINSOUTH(data["Open"],data["High"],data["Low"],data["Close"]) data["Three Advancing White Soldiers"]=ta.CDL3WHITESOLDIERS(data["Open"],data["High"],data["Low"],data["Close"]) data["Abandoned Baby"]=ta.CDLABANDONEDBABY(data["Open"],data["High"],data["Low"],data["Close"]) data["Advance Block"]=ta.CDLADVANCEBLOCK(data["Open"],data["High"],data["Low"],data["Close"]) data["Belt-hold"]=ta.CDLBELTHOLD(data["Open"],data["High"],data["Low"],data["Close"]) data["Breakaway"]=ta.CDLBREAKAWAY(data["Open"],data["High"],data["Low"],data["Close"]) data["Closing Marubozu"]=ta.CDLCLOSINGMARUBOZU(data["Open"],data["High"],data["Low"],data["Close"]) data["Concealing Baby Swallow"]=ta.CDLCONCEALBABYSWALL(data["Open"],data["High"],data["Low"],data["Close"]) data["Counterattack"]=ta.CDLCOUNTERATTACK(data["Open"],data["High"],data["Low"],data["Close"]) data["Dark Cloud Cover"]=ta.CDLDARKCLOUDCOVER(data["Open"],data["High"],data["Low"],data["Close"]) data["Doji"]=ta.CDLDOJI(data["Open"],data["High"],data["Low"],data["Close"]) data["Doji Star"]=ta.CDLDOJISTAR(data["Open"],data["High"],data["Low"],data["Close"]) data["Dragonfly Doji"]=ta.CDLDRAGONFLYDOJI(data["Open"],data["High"],data["Low"],data["Close"]) data["Engulfing Pattern"]=ta.CDLENGULFING(data["Open"],data["High"],data["Low"],data["Close"]) data["Evening Doji Star"]=ta.CDLEVENINGDOJISTAR(data["Open"],data["High"],data["Low"],data["Close"]) data["Evening Star"]=ta.CDLEVENINGSTAR(data["Open"],data["High"],data["Low"],data["Close"]) data["Up/Down-gap side-by-side white lines"]=ta.CDLGAPSIDESIDEWHITE(data["Open"],data["High"],data["Low"],data["Close"]) data["Gravestone Doji"]=ta.CDLGRAVESTONEDOJI(data["Open"],data["High"],data["Low"],data["Close"]) data["Hammer"]=ta.CDLHAMMER(data["Open"],data["High"],data["Low"],data["Close"]) data["Hanging Man"]=ta.CDLHANGINGMAN(data["Open"],data["High"],data["Low"],data["Close"]) data["Harami Pattern"]=ta.CDLHARAMI(data["Open"],data["High"],data["Low"],data["Close"]) data["Harami Cross Pattern"]=ta.CDLHARAMICROSS(data["Open"],data["High"],data["Low"],data["Close"]) data["High-Wave Candle"]=ta.CDLHIGHWAVE(data["Open"],data["High"],data["Low"],data["Close"]) data["Hikkake Pattern"]=ta.CDLHIKKAKE(data["Open"],data["High"],data["Low"],data["Close"]) data["Modified Hikkake Pattern"]=ta.CDLHIKKAKEMOD(data["Open"],data["High"],data["Low"],data["Close"]) data["Homing Pigeon"]=ta.CDLHOMINGPIGEON(data["Open"],data["High"],data["Low"],data["Close"]) return(data)
cdkickingbylength = ta.CDLKICKINGBYLENGTH(openp, high, low, close) #CDLLADDERBOTTOM - Ladder Bottom cdlladderbottom = ta.CDLLADDERBOTTOM(openp, high, low, close) #CDLLONGLEGGEDDOJI - Long Legged Doji cdllongleggeddoji = ta.CDLLONGLEGGEDDOJI(openp, high, low, close) #CDLLONGLINE - Long Line Candle cdllongline = ta.CDLLONGLINE(openp, high, low, close) #CDLMARUBOZU - Marubozu cdlmarubozu = ta.CDLMARUBOZU(openp, high, low, close) #CDLMATCHINGLOW - Matching Low cdlmatchinglow = ta.CDLMATCHINGLOW(openp, high, low, close) #CDLMATHOLD - Mat Hold cdlmathold = ta.CDLMATHOLD(openp, high, low, close, penetration=0) #CDLMORNINGDOJISTAR - Morning Doji Star cdlmorningdojistar = ta.CDLMORNINGDOJISTAR(openp, high, low, close, penetration=0) #CDLMORNINGSTAR - Morning Star cdlmorningstar = ta.CDLMORNINGSTAR(openp, high, low,
def CDLMATCHINGLOW(DataFrame): res = talib.CDLMATCHINGLOW( DataFrame.open.values, DataFrame.high.values, DataFrame.low.values, DataFrame.close.values) return pd.DataFrame({'CDLMATCHINGLOW': res}, index=DataFrame.index)
def add_indicator(data): open = data.Open high = data.High low = data.Low close = data.Close volume = data.Volume data['CDL2CROWS'] = talib.CDL2CROWS(open, high, low, close) data['CDL3BLACKCROWS'] = talib.CDL3BLACKCROWS(open, high, low, close) data['CDL3INSIDE'] = talib.CDL3INSIDE(open, high, low, close) data['CDL3LINESTRIKE'] = talib.CDL3LINESTRIKE(open, high, low, close) data['CDL3OUTSIDE'] = talib.CDL3OUTSIDE(open, high, low, close) data['CDL3STARSINSOUTH'] = talib.CDL3STARSINSOUTH(open, high, low, close) data['CDL3WHITESOLDIERS'] = talib.CDL3WHITESOLDIERS(open, high, low, close) data['CDLABANDONEDBABY'] = talib.CDLABANDONEDBABY(open, high, low, close, penetration=0) data['CDLADVANCEBLOCK'] = talib.CDLADVANCEBLOCK(open, high, low, close) data['CDLBELTHOLD'] = talib.CDLBELTHOLD(open, high, low, close) data['CDLBREAKAWAY'] = talib.CDLBREAKAWAY(open, high, low, close) data['CDLCLOSINGMARUBOZU'] = talib.CDLCLOSINGMARUBOZU( open, high, low, close) data['CDLCONCEALBABYSWALL'] = talib.CDLCONCEALBABYSWALL( open, high, low, close) data['CDLCOUNTERATTACK'] = talib.CDLCOUNTERATTACK(open, high, low, close) data['CDLDARKCLOUDCOVER'] = talib.CDLDARKCLOUDCOVER(open, high, low, close, penetration=0) data['CDLDOJI'] = talib.CDLDOJI(open, high, low, close) data['CDLDOJISTAR'] = talib.CDLDOJISTAR(open, high, low, close) data['CDLDRAGONFLYDOJI'] = talib.CDLDRAGONFLYDOJI(open, high, low, close) data['CDLENGULFING'] = talib.CDLENGULFING(open, high, low, close) data['CDLEVENINGDOJISTAR'] = talib.CDLEVENINGDOJISTAR(open, high, low, close, penetration=0) data['CDLEVENINGSTAR'] = talib.CDLEVENINGSTAR(open, high, low, close, penetration=0) data['CDLGAPSIDESIDEWHITE'] = talib.CDLGAPSIDESIDEWHITE( open, high, low, close) data['CDLGRAVESTONEDOJI'] = talib.CDLGRAVESTONEDOJI(open, high, low, close) data['CDLHAMMER'] = talib.CDLHAMMER(open, high, low, close) data['CDLHANGINGMAN'] = talib.CDLHANGINGMAN(open, high, low, close) data['CDLHARAMI'] = talib.CDLHARAMI(open, high, low, close) data['CDLHARAMICROSS'] = talib.CDLHARAMICROSS(open, high, low, close) data['CDLHIGHWAVE'] = talib.CDLHIGHWAVE(open, high, low, close) data['CDLHIKKAKE'] = talib.CDLHIKKAKE(open, high, low, close) data['CDLHIKKAKEMOD'] = talib.CDLHIKKAKEMOD(open, high, low, close) data['CDLHOMINGPIGEON'] = talib.CDLHOMINGPIGEON(open, high, low, close) data['CDLIDENTICAL3CROWS'] = talib.CDLIDENTICAL3CROWS( open, high, low, close) data['CDLINNECK'] = talib.CDLINNECK(open, high, low, close) data['CDLINVERTEDHAMMER'] = talib.CDLINVERTEDHAMMER(open, high, low, close) data['CDLKICKING'] = talib.CDLKICKING(open, high, low, close) data['CDLKICKINGBYLENGTH'] = talib.CDLKICKINGBYLENGTH( open, high, low, close) data['CDLLADDERBOTTOM'] = talib.CDLLADDERBOTTOM(open, high, low, close) data['CDLLONGLEGGEDDOJI'] = talib.CDLLONGLEGGEDDOJI(open, high, low, close) data['CDLLONGLINE'] = talib.CDLLONGLINE(open, high, low, close) data['CDLMARUBOZU'] = talib.CDLMARUBOZU(open, high, low, close) data['CDLMATCHINGLOW'] = talib.CDLMATCHINGLOW(open, high, low, close) data['CDLMATHOLD'] = talib.CDLMATHOLD(open, high, low, close, penetration=0) data['CDLMORNINGDOJISTAR'] = talib.CDLMORNINGDOJISTAR(open, high, low, close, penetration=0) data['CDLMORNINGSTAR'] = talib.CDLMORNINGSTAR(open, high, low, close, penetration=0) data['CDLONNECK'] = talib.CDLONNECK(open, high, low, close) data['CDLPIERCING'] = talib.CDLPIERCING(open, high, low, close) data['CDLRICKSHAWMAN'] = talib.CDLRICKSHAWMAN(open, high, low, close) data['CDLRISEFALL3METHODS'] = talib.CDLRISEFALL3METHODS( open, high, low, close) data['CDLSEPARATINGLINES'] = talib.CDLSEPARATINGLINES( open, high, low, close) data['CDLSHOOTINGSTAR'] = talib.CDLSHOOTINGSTAR(open, high, low, close) data['CDLSHORTLINE'] = talib.CDLSHORTLINE(open, high, low, close) data['CDLSPINNINGTOP'] = talib.CDLSPINNINGTOP(open, high, low, close) data['CDLSTALLEDPATTERN'] = talib.CDLSTALLEDPATTERN(open, high, low, close) data['CDLSTICKSANDWICH'] = talib.CDLSTICKSANDWICH(open, high, low, close) data['CDLTAKURI'] = talib.CDLTAKURI(open, high, low, close) data['CDLTASUKIGAP'] = talib.CDLTASUKIGAP(open, high, low, close) data['CDLTHRUSTING'] = talib.CDLTHRUSTING(open, high, low, close) data['CDLTRISTAR'] = talib.CDLTRISTAR(open, high, low, close) data['CDLUNIQUE3RIVER'] = talib.CDLUNIQUE3RIVER(open, high, low, close) data['CDLUPSIDEGAP2CROWS'] = talib.CDLUPSIDEGAP2CROWS( open, high, low, close) data['CDLXSIDEGAP3METHODS'] = talib.CDLXSIDEGAP3METHODS( open, high, low, close) # data['ADX'] = talib.ADX(high, low, close, timeperiod=14) data['MACDFAS'], data['MACDSLO'], data['MACDSIGNA'] = talib.MACD( close, fastperiod=12, slowperiod=26, signalperiod=9) data['3day MA'] = close.shift(1).rolling(window=3).mean() data['10day MA'] = close.shift(1).rolling(window=10).mean() data['30day MA'] = close.shift(1).rolling(window=30).mean() data['RSI_9'] = talib.RSI(close.values, timeperiod=9) data['S_10'] = close.rolling(window=10).mean() data['Corr'] = close.rolling(window=10).corr(data['S_10']) data['Williams %R'] = talib.WILLR(data['High'].values, data['Low'].values, data['Close'].values, 7) return data
def match(open: np.ndarray, high: np.ndarray, low: np.ndarray, close: np.ndarray, volumn: np.ndarray) -> ['PattrnResult']: if (len(open) < 20): raise RuntimeError("len must >= 20") rets = [] ##61个形态识别模式 KPattern.__checkIfAdd(rets, talib.CDL2CROWS(open, high, low, close), "CDL2CROWS") KPattern.__checkIfAdd(rets, talib.CDL3BLACKCROWS(open, high, low, close), "CDL3BLACKCROWS") KPattern.__checkIfAdd(rets, talib.CDL3INSIDE(open, high, low, close), "CDL3INSIDE") KPattern.__checkIfAdd(rets, talib.CDL3LINESTRIKE(open, high, low, close), "CDL3LINESTRIKE") KPattern.__checkIfAdd(rets, talib.CDL3OUTSIDE(open, high, low, close), "CDL3OUTSIDE") KPattern.__checkIfAdd(rets, talib.CDL3STARSINSOUTH(open, high, low, close), "CDL3STARSINSOUTH") KPattern.__checkIfAdd(rets, talib.CDL3WHITESOLDIERS(open, high, low, close), "CDL3WHITESOLDIERS") KPattern.__checkIfAdd( rets, talib.CDLABANDONEDBABY(open, high, low, close, penetration=0), "CDLABANDONEDBABY") KPattern.__checkIfAdd(rets, talib.CDLADVANCEBLOCK(open, high, low, close), "CDLADVANCEBLOCK") KPattern.__checkIfAdd(rets, talib.CDLBELTHOLD(open, high, low, close), "CDLBELTHOLD") KPattern.__checkIfAdd(rets, talib.CDLBREAKAWAY(open, high, low, close), "CDLBREAKAWAY") KPattern.__checkIfAdd(rets, talib.CDLCLOSINGMARUBOZU(open, high, low, close), "CDLCLOSINGMARUBOZU") KPattern.__checkIfAdd( rets, talib.CDLCONCEALBABYSWALL(open, high, low, close), "CDLCONCEALBABYSWALL") KPattern.__checkIfAdd(rets, talib.CDLCOUNTERATTACK(open, high, low, close), "CDLCOUNTERATTACK") KPattern.__checkIfAdd( rets, talib.CDLDARKCLOUDCOVER(open, high, low, close, penetration=0), "CDLDARKCLOUDCOVER") KPattern.__checkIfAdd(rets, talib.CDLDOJI(open, high, low, close), "CDLDOJI") KPattern.__checkIfAdd(rets, talib.CDLDOJISTAR(open, high, low, close), "CDLDOJISTAR") KPattern.__checkIfAdd(rets, talib.CDLDRAGONFLYDOJI(open, high, low, close), "CDLDRAGONFLYDOJI") KPattern.__checkIfAdd(rets, talib.CDLENGULFING(open, high, low, close), "CDLENGULFING") KPattern.__checkIfAdd(rets, talib.CDLEVENINGDOJISTAR(open, high, low, close), "CDLEVENINGDOJISTAR") KPattern.__checkIfAdd( rets, talib.CDLEVENINGSTAR(open, high, low, close, penetration=0), "CDLEVENINGSTAR") KPattern.__checkIfAdd( rets, talib.CDLGAPSIDESIDEWHITE(open, high, low, close), "CDLGAPSIDESIDEWHITE") KPattern.__checkIfAdd(rets, talib.CDLGRAVESTONEDOJI(open, high, low, close), "CDLGRAVESTONEDOJI") KPattern.__checkIfAdd(rets, talib.CDLHAMMER(open, high, low, close), "CDLHAMMER") KPattern.__checkIfAdd(rets, talib.CDLHANGINGMAN(open, high, low, close), "CDLHANGINGMAN") KPattern.__checkIfAdd(rets, talib.CDLHARAMI(open, high, low, close), "CDLHARAMI") KPattern.__checkIfAdd(rets, talib.CDLHARAMICROSS(open, high, low, close), "CDLHARAMICROSS") KPattern.__checkIfAdd(rets, talib.CDLHIGHWAVE(open, high, low, close), "CDLHIGHWAVE") KPattern.__checkIfAdd(rets, talib.CDLHIKKAKE(open, high, low, close), "CDLHIKKAKE") KPattern.__checkIfAdd(rets, talib.CDLHIKKAKEMOD(open, high, low, close), "CDLHIKKAKEMOD") KPattern.__checkIfAdd(rets, talib.CDLHOMINGPIGEON(open, high, low, close), "CDLHOMINGPIGEON") KPattern.__checkIfAdd(rets, talib.CDLIDENTICAL3CROWS(open, high, low, close), "CDLIDENTICAL3CROWS") KPattern.__checkIfAdd(rets, talib.CDLINNECK(open, high, low, close), "CDLINNECK") KPattern.__checkIfAdd(rets, talib.CDLINVERTEDHAMMER(open, high, low, close), "CDLINVERTEDHAMMER") KPattern.__checkIfAdd(rets, talib.CDLKICKING(open, high, low, close), "CDLKICKING") KPattern.__checkIfAdd(rets, talib.CDLKICKINGBYLENGTH(open, high, low, close), "CDLKICKINGBYLENGTH") KPattern.__checkIfAdd(rets, talib.CDLLADDERBOTTOM(open, high, low, close), "CDLLADDERBOTTOM") KPattern.__checkIfAdd(rets, talib.CDLLONGLEGGEDDOJI(open, high, low, close), "CDLLONGLEGGEDDOJI") KPattern.__checkIfAdd(rets, talib.CDLLONGLINE(open, high, low, close), "CDLLONGLINE") KPattern.__checkIfAdd(rets, talib.CDLMARUBOZU(open, high, low, close), "CDLMARUBOZU") KPattern.__checkIfAdd(rets, talib.CDLMATCHINGLOW(open, high, low, close), "CDLMATCHINGLOW") KPattern.__checkIfAdd(rets, talib.CDLMATHOLD(open, high, low, close), "CDLMATHOLD") KPattern.__checkIfAdd(rets, talib.CDLMORNINGDOJISTAR(open, high, low, close), "CDLMORNINGDOJISTAR") KPattern.__checkIfAdd(rets, talib.CDLMORNINGSTAR(open, high, low, close), "CDLMORNINGSTAR") KPattern.__checkIfAdd(rets, talib.CDLONNECK(open, high, low, close), "CDLONNECK") KPattern.__checkIfAdd(rets, talib.CDLPIERCING(open, high, low, close), "CDLPIERCING") KPattern.__checkIfAdd(rets, talib.CDLRICKSHAWMAN(open, high, low, close), "CDLRICKSHAWMAN") KPattern.__checkIfAdd( rets, talib.CDLRISEFALL3METHODS(open, high, low, close), "CDLRISEFALL3METHODS") KPattern.__checkIfAdd(rets, talib.CDLSEPARATINGLINES(open, high, low, close), "CDLSEPARATINGLINES") KPattern.__checkIfAdd(rets, talib.CDLSHOOTINGSTAR(open, high, low, close), "CDLSHOOTINGSTAR") KPattern.__checkIfAdd(rets, talib.CDLSHORTLINE(open, high, low, close), "CDLSHORTLINE") KPattern.__checkIfAdd(rets, talib.CDLSPINNINGTOP(open, high, low, close), "CDLSPINNINGTOP") KPattern.__checkIfAdd(rets, talib.CDLSTALLEDPATTERN(open, high, low, close), "CDLSTALLEDPATTERN") KPattern.__checkIfAdd(rets, talib.CDLSTICKSANDWICH(open, high, low, close), "CDLSTICKSANDWICH") KPattern.__checkIfAdd(rets, talib.CDLTAKURI(open, high, low, close), "CDLTAKURI") KPattern.__checkIfAdd(rets, talib.CDLTASUKIGAP(open, high, low, close), "CDLTASUKIGAP") KPattern.__checkIfAdd(rets, talib.CDLTHRUSTING(open, high, low, close), "CDLTHRUSTING") KPattern.__checkIfAdd(rets, talib.CDLTRISTAR(open, high, low, close), "CDLTRISTAR") KPattern.__checkIfAdd(rets, talib.CDLUNIQUE3RIVER(open, high, low, close), "CDLUNIQUE3RIVER") KPattern.__checkIfAdd(rets, talib.CDLUPSIDEGAP2CROWS(open, high, low, close), "CDLUPSIDEGAP2CROWS") KPattern.__checkIfAdd( rets, talib.CDLXSIDEGAP3METHODS(open, high, low, close), "CDLXSIDEGAP3METHODS") return rets
def create_signal_dataframe(df_): o = np.array(df_['始値']) c = np.array(df_['終値']) l = np.array(df_['安値']) h = np.array(df_['高値']) df = df_.copy() df['CDL2CROWS'] = ta.CDL2CROWS(o, h, l, c) df['CDL3BLACKCROWS'] = ta.CDL3BLACKCROWS(o, h, l, c) df['CDL3INSIDE'] = ta.CDL3INSIDE(o, h, l, c) df['CDL3LINESTRIKE'] = ta.CDL3LINESTRIKE(o, h, l, c) df['CDL3OUTSIDE'] = ta.CDL3OUTSIDE(o, h, l, c) df['CDL3STARSINSOUTH'] = ta.CDL3STARSINSOUTH(o, h, l, c) df['CDL3WHITESOLDIERS'] = ta.CDL3WHITESOLDIERS(o, h, l, c) df['CDLABANDONEDBABY'] = ta.CDLABANDONEDBABY(o, h, l, c) df['CDLADVANCEBLOCK'] = ta.CDLADVANCEBLOCK(o, h, l, c) df['CDLBELTHOLD'] = ta.CDLBELTHOLD(o, h, l, c) df['CDLBREAKAWAY'] = ta.CDLBREAKAWAY(o, h, l, c) df['CDLCLOSINGMARUBOZU'] = ta.CDLCLOSINGMARUBOZU(o, h, l, c) df['CDLCONCEALBABYSWALL'] = ta.CDLCONCEALBABYSWALL(o, h, l, c) df['CDLCOUNTERATTACK'] = ta.CDLCOUNTERATTACK(o, h, l, c) df['CDLDARKCLOUDCOVER'] = ta.CDLDARKCLOUDCOVER(o, h, l, c) df['CDLDOJI'] = ta.CDLDOJI(o, h, l, c) df['CDLDOJISTAR'] = ta.CDLDOJISTAR(o, h, l, c) df['CDLDRAGONFLYDOJI'] = ta.CDLDRAGONFLYDOJI(o, h, l, c) df['CDLENGULFING'] = ta.CDLENGULFING(o, h, l, c) df['CDLEVENINGDOJISTAR'] = ta.CDLEVENINGDOJISTAR(o, h, l, c) df['CDLEVENINGSTAR'] = ta.CDLEVENINGSTAR(o, h, l, c) df['CDLGAPSIDESIDEWHITE'] = ta.CDLGAPSIDESIDEWHITE(o, h, l, c) df['CDLGRAVESTONEDOJI'] = ta.CDLGRAVESTONEDOJI(o, h, l, c) df['CDLHAMMER'] = ta.CDLHAMMER(o, h, l, c) df['CDLHANGINGMAN'] = ta.CDLHANGINGMAN(o, h, l, c) df['CDLHARAMI'] = ta.CDLHARAMI(o, h, l, c) df['CDLHARAMICROSS'] = ta.CDLHARAMICROSS(o, h, l, c) df['CDLHIGHWAVE'] = ta.CDLHIGHWAVE(o, h, l, c) df['CDLHIKKAKE'] = ta.CDLHIKKAKE(o, h, l, c) df['CDLHIKKAKEMOD'] = ta.CDLHIKKAKEMOD(o, h, l, c) df['CDLHOMINGPIGEON'] = ta.CDLHOMINGPIGEON(o, h, l, c) df['CDLIDENTICAL3CROWS'] = ta.CDLIDENTICAL3CROWS(o, h, l, c) df['CDLINNECK'] = ta.CDLINNECK(o, h, l, c) df['CDLINVERTEDHAMMER'] = ta.CDLINVERTEDHAMMER(o, h, l, c) df['CDLKICKING'] = ta.CDLKICKING(o, h, l, c) df['CDLKICKINGBYLENGTH'] = ta.CDLKICKINGBYLENGTH(o, h, l, c) df['CDLLADDERBOTTOM'] = ta.CDLLADDERBOTTOM(o, h, l, c) df['CDLLONGLEGGEDDOJI'] = ta.CDLLONGLEGGEDDOJI(o, h, l, c) df['CDLLONGLINE'] = ta.CDLLONGLINE(o, h, l, c) df['CDLMARUBOZU'] = ta.CDLMARUBOZU(o, h, l, c) df['CDLMATCHINGLOW'] = ta.CDLMATCHINGLOW(o, h, l, c) df['CDLMATHOLD'] = ta.CDLMATHOLD(o, h, l, c) df['CDLMORNINGDOJISTAR'] = ta.CDLMORNINGDOJISTAR(o, h, l, c) df['CDLMORNINGSTAR'] = ta.CDLMORNINGSTAR(o, h, l, c) df['CDLONNECK'] = ta.CDLONNECK(o, h, l, c) df['CDLPIERCING'] = ta.CDLPIERCING(o, h, l, c) df['CDLRICKSHAWMAN'] = ta.CDLRICKSHAWMAN(o, h, l, c) df['CDLRISEFALL3METHODS'] = ta.CDLRISEFALL3METHODS(o, h, l, c) df['CDLSEPARATINGLINES'] = ta.CDLSEPARATINGLINES(o, h, l, c) df['CDLSHOOTINGSTAR'] = ta.CDLSHOOTINGSTAR(o, h, l, c) df['CDLSHORTLINE'] = ta.CDLSHORTLINE(o, h, l, c) df['CDLSPINNINGTOP'] = ta.CDLSPINNINGTOP(o, h, l, c) df['CDLSTALLEDPATTERN'] = ta.CDLSTALLEDPATTERN(o, h, l, c) df['CDLSTICKSANDWICH'] = ta.CDLSTICKSANDWICH(o, h, l, c) df['CDLTAKURI'] = ta.CDLTAKURI(o, h, l, c) df['CDLTASUKIGAP'] = ta.CDLTASUKIGAP(o, h, l, c) df['CDLTHRUSTING'] = ta.CDLTHRUSTING(o, h, l, c) df['CDLTRISTAR'] = ta.CDLTRISTAR(o, h, l, c) df['CDLUNIQUE3RIVER'] = ta.CDLUNIQUE3RIVER(o, h, l, c) df['CDLUPSIDEGAP2CROWS'] = ta.CDLUPSIDEGAP2CROWS(o, h, l, c) df['CDLXSIDEGAP3METHODS'] = ta.CDLXSIDEGAP3METHODS(o, h, l, c) return df
def add_candle_patters(self): CDL2CROWS = talib.CDL2CROWS(self.data["askopen"], self.data["askhigh"], self.data["asklow"], self.data["askclose"]) self.data['CDL2CROWS'] = CDL2CROWS CDL3BLACKCROWS = talib.CDL3BLACKCROWS(self.data["askopen"], self.data["askhigh"], self.data["asklow"], self.data["askclose"]) self.data['CDL3BLACKCROWS'] = CDL3BLACKCROWS CDL3INSIDE = talib.CDL3INSIDE(self.data["askopen"], self.data["askhigh"], self.data["asklow"], self.data["askclose"]) self.data['CDL3INSIDE'] = CDL3INSIDE CDL3LINESTRIKE = talib.CDL3LINESTRIKE(self.data["askopen"], self.data["askhigh"], self.data["asklow"], self.data["askclose"]) self.data['CDL3LINESTRIKE'] = CDL3LINESTRIKE CDL3OUTSIDE = talib.CDL3OUTSIDE(self.data["askopen"], self.data["askhigh"], self.data["asklow"], self.data["askclose"]) self.data['CDL3OUTSIDE'] = CDL3OUTSIDE CDL3STARSINSOUTH = talib.CDL3STARSINSOUTH(self.data["askopen"], self.data["askhigh"], self.data["asklow"], self.data["askclose"]) self.data['CDL3STARSINSOUTH'] = CDL3STARSINSOUTH CDL3WHITESOLDIERS = talib.CDL3WHITESOLDIERS(self.data["askopen"], self.data["askhigh"], self.data["asklow"], self.data["askclose"]) self.data['CDL3WHITESOLDIERS'] = CDL3WHITESOLDIERS CDLABANDONEDBABY = talib.CDLABANDONEDBABY(self.data["askopen"], self.data["askhigh"], self.data["asklow"], self.data["askclose"]) self.data['CDLABANDONEDBABY'] = CDLABANDONEDBABY CDLADVANCEBLOCK = talib.CDLADVANCEBLOCK(self.data["askopen"], self.data["askhigh"], self.data["asklow"], self.data["askclose"]) self.data['CDLADVANCEBLOCK'] = CDLADVANCEBLOCK CDLBELTHOLD = talib.CDLBELTHOLD(self.data["askopen"], self.data["askhigh"], self.data["asklow"], self.data["askclose"]) self.data['CDLBELTHOLD'] = CDLBELTHOLD CDLBREAKAWAY = talib.CDLBREAKAWAY(self.data["askopen"], self.data["askhigh"], self.data["asklow"], self.data["askclose"]) self.data['CDLBREAKAWAY'] = CDLBREAKAWAY CDLCLOSINGMARUBOZU = talib.CDLCLOSINGMARUBOZU(self.data["askopen"], self.data["askhigh"], self.data["asklow"], self.data["askclose"]) self.data['CDLCLOSINGMARUBOZU'] = CDLCLOSINGMARUBOZU CDLCONCEALBABYSWALL = talib.CDLCONCEALBABYSWALL( self.data["askopen"], self.data["askhigh"], self.data["asklow"], self.data["askclose"]) self.data['CDLCONCEALBABYSWALL'] = CDLCONCEALBABYSWALL CDLCOUNTERATTACK = talib.CDLCOUNTERATTACK(self.data["askopen"], self.data["askhigh"], self.data["asklow"], self.data["askclose"]) self.data['CDLCOUNTERATTACK'] = CDLCOUNTERATTACK CDLDARKCLOUDCOVER = talib.CDLDARKCLOUDCOVER(self.data["askopen"], self.data["askhigh"], self.data["asklow"], self.data["askclose"]) self.data['CDLDARKCLOUDCOVER'] = CDLDARKCLOUDCOVER CDLDOJI = talib.CDLDOJI(self.data["askopen"], self.data["askhigh"], self.data["asklow"], self.data["askclose"]) self.data['CDLDOJI'] = CDLDOJI CDLDOJISTAR = talib.CDLDOJISTAR(self.data["askopen"], self.data["askhigh"], self.data["asklow"], self.data["askclose"]) self.data['CDLDOJISTAR'] = CDLDOJISTAR CDLDRAGONFLYDOJI = talib.CDLDRAGONFLYDOJI(self.data["askopen"], self.data["askhigh"], self.data["asklow"], self.data["askclose"]) self.data['CDLDRAGONFLYDOJI'] = CDLDRAGONFLYDOJI CDLENGULFING = talib.CDLENGULFING(self.data["askopen"], self.data["askhigh"], self.data["asklow"], self.data["askclose"]) self.data['CDLENGULFING'] = CDLENGULFING CDLEVENINGDOJISTAR = talib.CDLEVENINGDOJISTAR(self.data["askopen"], self.data["askhigh"], self.data["asklow"], self.data["askclose"]) self.data['CDLEVENINGDOJISTAR'] = CDLEVENINGDOJISTAR CDLEVENINGSTAR = talib.CDLEVENINGSTAR(self.data["askopen"], self.data["askhigh"], self.data["asklow"], self.data["askclose"]) self.data['CDLEVENINGSTAR'] = CDLEVENINGSTAR CDLGAPSIDESIDEWHITE = talib.CDLGAPSIDESIDEWHITE( self.data["askopen"], self.data["askhigh"], self.data["asklow"], self.data["askclose"]) self.data['CDLGAPSIDESIDEWHITE'] = CDLGAPSIDESIDEWHITE CDLGRAVESTONEDOJI = talib.CDLGRAVESTONEDOJI(self.data["askopen"], self.data["askhigh"], self.data["asklow"], self.data["askclose"]) self.data['CDLGRAVESTONEDOJI'] = CDLGRAVESTONEDOJI CDLHAMMER = talib.CDLHAMMER(self.data["askopen"], self.data["askhigh"], self.data["asklow"], self.data["askclose"]) self.data['CDLHAMMER'] = CDLHAMMER CDLHANGINGMAN = talib.CDLHANGINGMAN(self.data["askopen"], self.data["askhigh"], self.data["asklow"], self.data["askclose"]) self.data['CDLHANGINGMAN'] = CDLHANGINGMAN CDLHARAMI = talib.CDLHARAMI(self.data["askopen"], self.data["askhigh"], self.data["asklow"], self.data["askclose"]) self.data['CDLHARAMI'] = CDLHARAMI CDLHARAMICROSS = talib.CDLHARAMICROSS(self.data["askopen"], self.data["askhigh"], self.data["asklow"], self.data["askclose"]) self.data['CDLHARAMICROSS'] = CDLHARAMICROSS CDLHIGHWAVE = talib.CDLHIGHWAVE(self.data["askopen"], self.data["askhigh"], self.data["asklow"], self.data["askclose"]) self.data['CDLHIGHWAVE'] = CDLHIGHWAVE CDLHIKKAKE = talib.CDLHIKKAKE(self.data["askopen"], self.data["askhigh"], self.data["asklow"], self.data["askclose"]) self.data['CDLHIKKAKE'] = CDLHIKKAKE CDLHIKKAKEMOD = talib.CDLHIKKAKEMOD(self.data["askopen"], self.data["askhigh"], self.data["asklow"], self.data["askclose"]) self.data['CDLHIKKAKEMOD'] = CDLHIKKAKEMOD CDLHOMINGPIGEON = talib.CDLHOMINGPIGEON(self.data["askopen"], self.data["askhigh"], self.data["asklow"], self.data["askclose"]) self.data['CDLHOMINGPIGEON'] = CDLHOMINGPIGEON CDLIDENTICAL3CROWS = talib.CDLIDENTICAL3CROWS(self.data["askopen"], self.data["askhigh"], self.data["asklow"], self.data["askclose"]) self.data['CDLIDENTICAL3CROWS'] = CDLIDENTICAL3CROWS CDLINNECK = talib.CDLINNECK(self.data["askopen"], self.data["askhigh"], self.data["asklow"], self.data["askclose"]) self.data['CDLINNECK'] = CDLINNECK CDLINVERTEDHAMMER = talib.CDLINVERTEDHAMMER(self.data["askopen"], self.data["askhigh"], self.data["asklow"], self.data["askclose"]) self.data['CDLINVERTEDHAMMER'] = CDLINVERTEDHAMMER CDLKICKING = talib.CDLKICKING(self.data["askopen"], self.data["askhigh"], self.data["asklow"], self.data["askclose"]) self.data['CDLKICKING'] = CDLKICKING CDLKICKINGBYLENGTH = talib.CDLKICKINGBYLENGTH(self.data["askopen"], self.data["askhigh"], self.data["asklow"], self.data["askclose"]) self.data['CDLKICKINGBYLENGTH'] = CDLKICKINGBYLENGTH CDLLADDERBOTTOM = talib.CDLLADDERBOTTOM(self.data["askopen"], self.data["askhigh"], self.data["asklow"], self.data["askclose"]) self.data['CDLLADDERBOTTOM'] = CDLLADDERBOTTOM CDLLONGLEGGEDDOJI = talib.CDLLONGLEGGEDDOJI(self.data["askopen"], self.data["askhigh"], self.data["asklow"], self.data["askclose"]) self.data['CDLLONGLEGGEDDOJI'] = CDLLONGLEGGEDDOJI CDLLONGLINE = talib.CDLLONGLINE(self.data["askopen"], self.data["askhigh"], self.data["asklow"], self.data["askclose"]) self.data['CDLLONGLINE'] = CDLLONGLINE CDLMARUBOZU = talib.CDLMARUBOZU(self.data["askopen"], self.data["askhigh"], self.data["asklow"], self.data["askclose"]) self.data['CDLMARUBOZU'] = CDLMARUBOZU CDLMATCHINGLOW = talib.CDLMATCHINGLOW(self.data["askopen"], self.data["askhigh"], self.data["asklow"], self.data["askclose"]) self.data['CDLMATCHINGLOW'] = CDLMATCHINGLOW CDLMATHOLD = talib.CDLMATHOLD(self.data["askopen"], self.data["askhigh"], self.data["asklow"], self.data["askclose"]) self.data['CDLMATHOLD'] = CDLMATHOLD CDLMORNINGDOJISTAR = talib.CDLMORNINGDOJISTAR(self.data["askopen"], self.data["askhigh"], self.data["asklow"], self.data["askclose"]) self.data['CDLMORNINGDOJISTAR'] = CDLMORNINGDOJISTAR CDLMORNINGSTAR = talib.CDLMORNINGSTAR(self.data["askopen"], self.data["askhigh"], self.data["asklow"], self.data["askclose"]) self.data['CDLMORNINGSTAR'] = CDLMORNINGSTAR CDLONNECK = talib.CDLONNECK(self.data["askopen"], self.data["askhigh"], self.data["asklow"], self.data["askclose"]) self.data['CDLONNECK'] = CDLONNECK CDLPIERCING = talib.CDLPIERCING(self.data["askopen"], self.data["askhigh"], self.data["asklow"], self.data["askclose"]) self.data['CDLPIERCING'] = CDLPIERCING CDLRICKSHAWMAN = talib.CDLRICKSHAWMAN(self.data["askopen"], self.data["askhigh"], self.data["asklow"], self.data["askclose"]) self.data['CDLRICKSHAWMAN'] = CDLRICKSHAWMAN CDLRISEFALL3METHODS = talib.CDLRISEFALL3METHODS( self.data["askopen"], self.data["askhigh"], self.data["asklow"], self.data["askclose"]) self.data['CDLRISEFALL3METHODS'] = CDLRISEFALL3METHODS CDLSEPARATINGLINES = talib.CDLSEPARATINGLINES(self.data["askopen"], self.data["askhigh"], self.data["asklow"], self.data["askclose"]) self.data['CDLSEPARATINGLINES'] = CDLSEPARATINGLINES CDLSHOOTINGSTAR = talib.CDLSHOOTINGSTAR(self.data["askopen"], self.data["askhigh"], self.data["asklow"], self.data["askclose"]) self.data['CDLSHOOTINGSTAR'] = CDLSHOOTINGSTAR CDLSHORTLINE = talib.CDLSHORTLINE(self.data["askopen"], self.data["askhigh"], self.data["asklow"], self.data["askclose"]) self.data['CDLSHORTLINE'] = CDLSHORTLINE CDLSPINNINGTOP = talib.CDLSPINNINGTOP(self.data["askopen"], self.data["askhigh"], self.data["asklow"], self.data["askclose"]) self.data['CDLSPINNINGTOP'] = CDLSPINNINGTOP CDLSTALLEDPATTERN = talib.CDLSTALLEDPATTERN(self.data["askopen"], self.data["askhigh"], self.data["asklow"], self.data["askclose"]) self.data['CDLSTALLEDPATTERN'] = CDLSTALLEDPATTERN CDLSTICKSANDWICH = talib.CDLSTICKSANDWICH(self.data["askopen"], self.data["askhigh"], self.data["asklow"], self.data["askclose"]) self.data['CDLSTICKSANDWICH'] = CDLSTICKSANDWICH CDLTAKURI = talib.CDLTAKURI(self.data["askopen"], self.data["askhigh"], self.data["asklow"], self.data["askclose"]) self.data['CDLTAKURI'] = CDLTAKURI CDLTASUKIGAP = talib.CDLTASUKIGAP(self.data["askopen"], self.data["askhigh"], self.data["asklow"], self.data["askclose"]) self.data['CDLTASUKIGAP'] = CDLTASUKIGAP CDLTHRUSTING = talib.CDLTHRUSTING(self.data["askopen"], self.data["askhigh"], self.data["asklow"], self.data["askclose"]) self.data['CDLTHRUSTING'] = CDLTHRUSTING CDLTRISTAR = talib.CDLTRISTAR(self.data["askopen"], self.data["askhigh"], self.data["asklow"], self.data["askclose"]) self.data['CDLTRISTAR'] = CDLTRISTAR CDLUNIQUE3RIVER = talib.CDLUNIQUE3RIVER(self.data["askopen"], self.data["askhigh"], self.data["asklow"], self.data["askclose"]) self.data['CDLUNIQUE3RIVER'] = CDLUNIQUE3RIVER CDLUPSIDEGAP2CROWS = talib.CDLUPSIDEGAP2CROWS(self.data["askopen"], self.data["askhigh"], self.data["asklow"], self.data["askclose"]) self.data['CDLUPSIDEGAP2CROWS'] = CDLUPSIDEGAP2CROWS CDLXSIDEGAP3METHODS = talib.CDLXSIDEGAP3METHODS( self.data["askopen"], self.data["askhigh"], self.data["asklow"], self.data["askclose"]) self.data['CDLXSIDEGAP3METHODS'] = CDLXSIDEGAP3METHODS
df['CDLHARAMI'] = talib.CDLHARAMI(op, hp, lp, cp) df['CDLHARAMICROSS'] = talib.CDLHARAMICROSS(op, hp, lp, cp) df['CDLHIGHWAVE'] = talib.CDLHIGHWAVE(op, hp, lp, cp) df['CDLHIKKAKE'] = talib.CDLHIKKAKE(op, hp, lp, cp) df['CDLHIKKAKEMOD'] = talib.CDLHIKKAKEMOD(op, hp, lp, cp) df['CDLHOMINGPIGEON'] = talib.CDLHOMINGPIGEON(op, hp, lp, cp) df['CDLIDENTICAL3CROWS'] = talib.CDLIDENTICAL3CROWS(op, hp, lp, cp) df['CDLINNECK'] = talib.CDLINNECK(op, hp, lp, cp) df['CDLINVERTEDHAMMER'] = talib.CDLINVERTEDHAMMER(op, hp, lp, cp) df['CDLKICKING'] = talib.CDLKICKING(op, hp, lp, cp) df['CDLKICKINGBYLENGTH'] = talib.CDLKICKINGBYLENGTH(op, hp, lp, cp) df['CDLLADDERBOTTOM'] = talib.CDLLADDERBOTTOM(op, hp, lp, cp) df['CDLLONGLEGGEDDOJI'] = talib.CDLLONGLEGGEDDOJI(op, hp, lp, cp) df['CDLLONGLINE'] = talib.CDLLONGLINE(op, hp, lp, cp) df['CDLMARUBOZU'] = talib.CDLMARUBOZU(op, hp, lp, cp) df['CDLMATCHINGLOW'] = talib.CDLMATCHINGLOW(op, hp, lp, cp) df['CDLMATHOLD'] = talib.CDLMATHOLD(op, hp, lp, cp) df['CDLMORNINGDOJISTAR'] = talib.CDLMORNINGDOJISTAR(op, hp, lp, cp) df['CDLMORNINGSTAR'] = talib.CDLMORNINGSTAR(op, hp, lp, cp) df['CDLONNECK'] = talib.CDLONNECK(op, hp, lp, cp) df['CDLPIERCING'] = talib.CDLPIERCING(op, hp, lp, cp) df['CDLRICKSHAWMAN'] = talib.CDLRICKSHAWMAN(op, hp, lp, cp) df['CDLRISEFALL3METHODS'] = talib.CDLRISEFALL3METHODS(op, hp, lp, cp) df['CDLSEPARATINGLINES'] = talib.CDLSEPARATINGLINES(op, hp, lp, cp) df['CDLSHOOTINGSTAR'] = talib.CDLSHOOTINGSTAR(op, hp, lp, cp) df['CDLSHORTLINE'] = talib.CDLSHORTLINE(op, hp, lp, cp) df['CDLSPINNINGTOP'] = talib.CDLSPINNINGTOP(op, hp, lp, cp) df['CDLSTALLEDPATTERN'] = talib.CDLSTALLEDPATTERN(op, hp, lp, cp) df['CDLSTICKSANDWICH'] = talib.CDLSTICKSANDWICH(op, hp, lp, cp) df['CDLTAKURI'] = talib.CDLTAKURI(op, hp, lp, cp) df['CDLTASUKIGAP'] = talib.CDLTASUKIGAP(op, hp, lp, cp)
def add_pattern(self, df): ret_parrern = [] result = [] result_add = [] result_minus = [] output = talib.CDL2CROWS(df['시가'].values, df['고가'].values, df['저가'].values, df['종가'].values) self.add_machine(df, output, 'CDL2CROWS', 63, ret_parrern) for i in range(len(output)): result.append(0) result_add.append(0) result_minus.append(0) result = self.get_pattern(result, result_add, result_minus, output, 1) # output = talib.CDL3BLACKCROWS(df['시가'].values, df['고가'].values, df['저가'].values, df['종가'].values) # self.add_machine(df, output, 'CDL3BLACKCROWS', 2, ret_parrern) # result = self.get_pattern(result, result_add, result_minus, output, 2) output = talib.CDL3INSIDE(df['시가'].values, df['고가'].values, df['저가'].values, df['종가'].values) self.add_machine(df, output, 'CDL3INSIDE', 3, ret_parrern) result = self.get_pattern(result, result_add, result_minus, output, 3) # output = talib.CDL3LINESTRIKE(df['시가'].values, df['고가'].values, df['저가'].values, df['종가'].values) # self.add_machine(df, output, 'CDL3LINESTRIKE', 4, ret_parrern) # result = self.get_pattern(result, result_add, result_minus, output, 4) output = talib.CDL3OUTSIDE(df['시가'].values, df['고가'].values, df['저가'].values, df['종가'].values) self.add_machine(df, output, 'CDL3OUTSIDE', 5, ret_parrern) result = self.get_pattern(result, result_add, result_minus, output, 5) output = talib.CDL3STARSINSOUTH(df['시가'].values, df['고가'].values, df['저가'].values, df['종가'].values) self.add_machine(df, output, 'CDL3STARSINSOUTH', 6, ret_parrern) result = self.get_pattern(result, result_add, result_minus, output, 6) output = talib.CDL3WHITESOLDIERS(df['시가'].values, df['고가'].values, df['저가'].values, df['종가'].values) self.add_machine(df, output, 'CDL3WHITESOLDIERS', 7, ret_parrern) result = self.get_pattern(result, result_add, result_minus, output, 7) output = talib.CDLABANDONEDBABY(df['시가'].values, df['고가'].values, df['저가'].values, df['종가'].values) self.add_machine(df, output, 'CDLABANDONEDBABY', 8, ret_parrern) result = self.get_pattern(result, result_add, result_minus, output, 8) output = talib.CDLADVANCEBLOCK(df['시가'].values, df['고가'].values, df['저가'].values, df['종가'].values) self.add_machine(df, output, 'CDLADVANCEBLOCK', 9, ret_parrern) result = self.get_pattern(result, result_add, result_minus, output, 9) output = talib.CDLBELTHOLD(df['시가'].values, df['고가'].values, df['저가'].values, df['종가'].values) self.add_machine(df, output, 'CDLBELTHOLD', 10, ret_parrern) result = self.get_pattern(result,result_add, result_minus, output, 10) output = talib.CDLBREAKAWAY(df['시가'].values, df['고가'].values, df['저가'].values, df['종가'].values) self.add_machine(df, output, 'CDLBREAKAWAY', 11, ret_parrern) result = self.get_pattern(result, result_add, result_minus, output, 11) output = talib.CDLCLOSINGMARUBOZU(df['시가'].values, df['고가'].values, df['저가'].values, df['종가'].values) self.add_machine(df, output, 'CDLCLOSINGMARUBOZU', 12, ret_parrern) result = self.get_pattern(result, result_add, result_minus, output, 12) output = talib.CDLCONCEALBABYSWALL(df['시가'].values, df['고가'].values, df['저가'].values, df['종가'].values) self.add_machine(df, output, 'CDLCONCEALBABYSWALL', 13, ret_parrern) result = self.get_pattern(result, result_add, result_minus, output, 13) output = talib.CDLCOUNTERATTACK(df['시가'].values, df['고가'].values, df['저가'].values, df['종가'].values) self.add_machine(df, output, 'CDLCOUNTERATTACK', 14, ret_parrern) result = self.get_pattern(result, result_add, result_minus, output, 14) output = talib.CDLDARKCLOUDCOVER(df['시가'].values, df['고가'].values, df['저가'].values, df['종가'].values) self.add_machine(df, output, 'CDLDARKCLOUDCOVER', 15, ret_parrern) result = self.get_pattern(result, result_add, result_minus, output, 15) output = talib.CDLDOJISTAR(df['시가'].values, df['고가'].values, df['저가'].values, df['종가'].values) self.add_machine(df, output, 'CDLDOJISTAR',17, ret_parrern) result = self.get_pattern(result, result_add, result_minus, output, 17) output = talib.CDLDRAGONFLYDOJI(df['시가'].values, df['고가'].values, df['저가'].values, df['종가'].values) self.add_machine(df, output, 'CDLDRAGONFLYDOJI',18, ret_parrern) result = self.get_pattern(result, result_add, result_minus, output, 18) output = talib.CDLENGULFING(df['시가'].values, df['고가'].values, df['저가'].values, df['종가'].values) self.add_machine(df, output, 'CDLENGULFING',19, ret_parrern) result = self.get_pattern(result, result_add, result_minus, output, 19) output = talib.CDLEVENINGDOJISTAR(df['시가'].values, df['고가'].values, df['저가'].values, df['종가'].values) self.add_machine(df, output, 'CDLEVENINGDOJISTAR',20, ret_parrern) result = self.get_pattern(result, result_add, result_minus, output, 20) output = talib.CDLEVENINGSTAR(df['시가'].values, df['고가'].values, df['저가'].values, df['종가'].values) self.add_machine(df, output, 'CDLEVENINGSTAR',21, ret_parrern) result = self.get_pattern(result, result_add, result_minus, output, 21) # output = talib.CDLGAPSIDESIDEWHITE(df['시가'].values, df['고가'].values, 7XXZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ29io # output = talib.CDLGRAVESTONEDOJI(df['시가'].values, df['고가'].values, df['저가'].values, df['종가'].values) self.add_machine(df, output, 'CDLGRAVESTONEDOJI',23, ret_parrern) result = self.get_pattern(result, result_add, result_minus, output, 23) output = talib.CDLHAMMER(df['시가'].values, df['고가'].values, df['저가'].values, df['종가'].values) self.add_machine(df, output, 'CDLHAMMER',24, ret_parrern) result = self.get_pattern(result, result_add, result_minus, output, 24) output = talib.CDLHANGINGMAN(df['시가'].values, df['고가'].values, df['저가'].values, df['종가'].values) self.add_machine(df, output, 'CDLHANGINGMAN',25, ret_parrern) result = self.get_pattern(result, result_add, result_minus, output, 25) output = talib.CDLHARAMI(df['시가'].values, df['고가'].values, df['저가'].values, df['종가'].values) self.add_machine(df, output, 'CDLHARAMI',26, ret_parrern) result = self.get_pattern(result, result_add, result_minus, output, 26) output = talib.CDLHARAMICROSS(df['시가'].values, df['고가'].values, df['저가'].values, df['종가'].values) self.add_machine(df, output, 'CDLHARAMICROSS',27, ret_parrern) result = self.get_pattern(result, result_add, result_minus, output, 27) output = talib.CDLHIGHWAVE(df['시가'].values, df['고가'].values, df['저가'].values, df['종가'].values) self.add_machine(df, output, 'CDLHIGHWAVE',28, ret_parrern) result = self.get_pattern(result,result_add, result_minus, output, 28) output = talib.CDLHIKKAKE(df['시가'].values, df['고가'].values, df['저가'].values, df['종가'].values) self.add_machine(df, output, 'CDLHIKKAKE',29, ret_parrern) result = self.get_pattern(result, result_add, result_minus, output, 29) output = talib.CDLHIKKAKEMOD(df['시가'].values, df['고가'].values, df['저가'].values, df['종가'].values) self.add_machine(df, output, 'CDLHIKKAKEMOD',30, ret_parrern) result = self.get_pattern(result, result_add, result_minus, output, 30) output = talib.CDLHOMINGPIGEON(df['시가'].values, df['고가'].values, df['저가'].values, df['종가'].values) self.add_machine(df, output, 'CDLHOMINGPIGEON',31, ret_parrern) result = self.get_pattern(result, result_add, result_minus, output, 31) output = talib.CDLIDENTICAL3CROWS(df['시가'].values, df['고가'].values, df['저가'].values, df['종가'].values) self.add_machine(df, output, 'CDLIDENTICAL3CROWS',32, ret_parrern) result = self.get_pattern(result, result_add, result_minus, output, 32) output = talib.CDLINNECK(df['시가'].values, df['고가'].values, df['저가'].values, df['종가'].values) self.add_machine(df, output, 'CDLINNECK',33, ret_parrern) result = self.get_pattern(result, result_add, result_minus, output, 33) output = talib.CDLINVERTEDHAMMER(df['시가'].values, df['고가'].values, df['저가'].values, df['종가'].values) self.add_machine(df, output, 'CDLINVERTEDHAMMER',34, ret_parrern) result = self.get_pattern(result, result_add, result_minus, output, 34) output = talib.CDLKICKING(df['시가'].values, df['고가'].values, df['저가'].values, df['종가'].values) self.add_machine(df, output, 'CDLKICKING',35, ret_parrern) result = self.get_pattern(result, result_add, result_minus, output, 35) output = talib.CDLKICKINGBYLENGTH(df['시가'].values, df['고가'].values, df['저가'].values, df['종가'].values) self.add_machine(df, output, 'CDLKICKINGBYLENGTH',36, ret_parrern) result = self.get_pattern(result, result_add, result_minus, output, 36) output = talib.CDLLADDERBOTTOM(df['시가'].values, df['고가'].values, df['저가'].values, df['종가'].values) self.add_machine(df, output, 'CDLLADDERBOTTOM',37, ret_parrern) result = self.get_pattern(result, result_add, result_minus, output, 37) output = talib.CDLLONGLEGGEDDOJI(df['시가'].values, df['고가'].values, df['저가'].values, df['종가'].values) self.add_machine(df, output, 'CDLLONGLEGGEDDOJI',38, ret_parrern) result = self.get_pattern(result, result_add, result_minus, output, 38) output = talib.CDLLONGLINE(df['시가'].values, df['고가'].values, df['저가'].values, df['종가'].values) self.add_machine(df, output, 'CDLLONGLINE',39, ret_parrern) result = self.get_pattern(result, result_add, result_minus, output, 39) output = talib.CDLMARUBOZU(df['시가'].values, df['고가'].values, df['저가'].values, df['종가'].values) self.add_machine(df, output, 'CDLMARUBOZU',40, ret_parrern) result = self.get_pattern(result, result_add, result_minus, output, 40) output = talib.CDLMATCHINGLOW(df['시가'].values, df['고가'].values, df['저가'].values, df['종가'].values) self.add_machine(df, output, 'CDLMATCHINGLOW',41, ret_parrern) result = self.get_pattern(result, result_add, result_minus, output, 41) output = talib.CDLMATHOLD(df['시가'].values, df['고가'].values, df['저가'].values, df['종가'].values) self.add_machine(df, output, 'CDLMATHOLD',42, ret_parrern) result = self.get_pattern(result,result_add, result_minus, output, 42) # output = talib.CDLMATCHINGLOW(df['시가'].values, df['고가'].values, df['저가'].values, df['종가'].values) # self.add_machine(df, output, 'CDLMATCHINGLOW',43, ret_parrern) result = self.get_pattern(result, result_add, result_minus, output, 43) output = talib.CDLMORNINGDOJISTAR(df['시가'].values, df['고가'].values, df['저가'].values, df['종가'].values) self.add_machine(df, output, 'CDLMORNINGDOJISTAR',44, ret_parrern) result = self.get_pattern(result, result_add, result_minus, output, 44) output = talib.CDLMORNINGSTAR(df['시가'].values, df['고가'].values, df['저가'].values, df['종가'].values) self.add_machine(df, output, 'CDLMORNINGSTAR',45, ret_parrern) result = self.get_pattern(result, result_add, result_minus, output, 45) output = talib.CDLONNECK(df['시가'].values, df['고가'].values, df['저가'].values, df['종가'].values) self.add_machine(df, output, 'CDLONNECK',46, ret_parrern) result = self.get_pattern(result, result_add, result_minus, output, 46) output = talib.CDLPIERCING(df['시가'].values, df['고가'].values, df['저가'].values, df['종가'].values) self.add_machine(df, output, 'CDLPIERCING',47, ret_parrern) result = self.get_pattern(result, result_add, result_minus, output, 47) output = talib.CDLRICKSHAWMAN(df['시가'].values, df['고가'].values, df['저가'].values, df['종가'].values) self.add_machine(df, output, 'CDLRICKSHAWMAN',48, ret_parrern) result = self.get_pattern(result, result_add, result_minus, output, 48) output = talib.CDLRISEFALL3METHODS(df['시가'].values, df['고가'].values, df['저가'].values, df['종가'].values) self.add_machine(df, output, 'CDLRISEFALL3METHODS',49, ret_parrern) result = self.get_pattern(result, result_add, result_minus, output, 49) output = talib.CDLSEPARATINGLINES(df['시가'].values, df['고가'].values, df['저가'].values, df['종가'].values) self.add_machine(df, output, 'CDLSEPARATINGLINES',50, ret_parrern) result = self.get_pattern(result, result_add, result_minus, output, 50) output = talib.CDLSHOOTINGSTAR(df['시가'].values, df['고가'].values, df['저가'].values, df['종가'].values) self.add_machine(df, output, 'CDLSHOOTINGSTAR',51, ret_parrern) result = self.get_pattern(result, result_add, result_minus, output, 51) output = talib.CDLSHORTLINE(df['시가'].values, df['고가'].values, df['저가'].values, df['종가'].values) self.add_machine(df, output, 'CDLSHORTLINE',52, ret_parrern) result = self.get_pattern(result, result_add, result_minus, output, 52) output = talib.CDLSPINNINGTOP(df['시가'].values, df['고가'].values, df['저가'].values, df['종가'].values) self.add_machine(df, output, 'CDLSPINNINGTOP',53, ret_parrern) result = self.get_pattern(result, result_add, result_minus, output, 53) output = talib.CDLSTALLEDPATTERN(df['시가'].values, df['고가'].values, df['저가'].values, df['종가'].values) self.add_machine(df, output, 'CDLSTALLEDPATTERN',54, ret_parrern) result = self.get_pattern(result, result_add, result_minus, output, 54) output = talib.CDLSTICKSANDWICH(df['시가'].values, df['고가'].values, df['저가'].values, df['종가'].values) self.add_machine(df, output, 'CDLSTICKSANDWICH',55, ret_parrern) result = self.get_pattern(result, result_add, result_minus, output, 55) output = talib.CDLTAKURI(df['시가'].values, df['고가'].values, df['저가'].values, df['종가'].values) self.add_machine(df, output, 'CDLTAKURI',56, ret_parrern) result = self.get_pattern(result, result_add, result_minus, output, 56) output = talib.CDLTASUKIGAP(df['시가'].values, df['고가'].values, df['저가'].values, df['종가'].values) self.add_machine(df, output, 'CDLTASUKIGAP',57, ret_parrern) result = self.get_pattern(result, result_add, result_minus, output, 57) output = talib.CDLTHRUSTING(df['시가'].values, df['고가'].values, df['저가'].values, df['종가'].values) self.add_machine(df, output, 'CDLTHRUSTING',58, ret_parrern) result = self.get_pattern(result, result_add, result_minus, output, 58) output = talib.CDLTRISTAR(df['시가'].values, df['고가'].values, df['저가'].values, df['종가'].values) self.add_machine(df, output, 'CDLTRISTAR',59, ret_parrern) result = self.get_pattern(result, result_add, result_minus, output, 59) output = talib.CDLUNIQUE3RIVER(df['시가'].values, df['고가'].values, df['저가'].values, df['종가'].values) self.add_machine(df, output, 'CDLUNIQUE3RIVER',60, ret_parrern) result = self.get_pattern(result, result_add, result_minus, output, 60) output = talib.CDLUPSIDEGAP2CROWS(df['시가'].values, df['고가'].values, df['저가'].values, df['종가'].values) self.add_machine(df, output, 'CDLUPSIDEGAP2CROWS',61, ret_parrern) result = self.get_pattern(result, result_add, result_minus, output, 61) output = talib.CDLXSIDEGAP3METHODS(df['시가'].values, df['고가'].values, df['저가'].values, df['종가'].values) self.add_machine(df, output, 'CDLXSIDEGAP3METHODS',62, ret_parrern) result = self.get_pattern(result, result_add, result_minus, output, 62) df['PATTERN'] = result df['PLUS_PATTERN'] = result_add df['MINUS_PATTERN'] = result_minus # if 'PLUS_PATTERN' in services.get('configurator').get('input_column'): # print('') # else: # services.get('configurator').get('input_column').append('PLUS_PATTERN') # if 'MINUS_PATTERN' in services.get('configurator').get('input_column'): # print('') # else: # services.get('configurator').get('input_column').append('MINUS_PATTERN') # for i in range(len(result)): # print('[%s]: [%s][%s][%s][%s] plus[%s] minus[%s] %s' % (i, df.iloc[i].name, df['고가'].values[i], df['종가'].values[i], df['저가'].values[i], result_add[i], result_minus[i], result[i])) # i = len(result) -1 # print('[%s]: [%s][%s][%s][%s] plus[%s] minus[%s] %s' % (i, df.iloc[i].name, df['고가'].values[i], df['종가'].values[i], df['저가'].values[i], result_add[i], result_minus[i],result[i])) return ret_parrern
def CDLMATCHINGLOW(data): res = talib.CDLMATCHINGLOW( data.open.values, data.high.values, data.low.values, data.close.values) return pd.DataFrame({'CDLMATCHINGLOW': res}, index=data.index)
def compute_candlestick_patterns(self): df = self.df open = df.open close = df.close high = df.high low = df.low candle_patterns = pd.DataFrame(deepcopy(close)) candle_patterns['two_crows'] = talib.CDL2CROWS(open, high, low, close) candle_patterns['three_black_crows'] = talib.CDL3BLACKCROWS(open, high, low, close) candle_patterns['three_inside'] = talib.CDL3INSIDE(open, high, low, close) candle_patterns['three_line_strike'] = talib.CDL3LINESTRIKE(open, high, low, close) candle_patterns['three_outside'] = talib.CDL3OUTSIDE(open, high, low, close) candle_patterns['three_star_south'] = talib.CDL3STARSINSOUTH(open, high, low, close) candle_patterns['three_white_soldiers'] = talib.CDL3WHITESOLDIERS(open, high, low, close) candle_patterns['abandoned_baby'] = talib.CDLABANDONEDBABY(open, high, low, close) candle_patterns['advance_block'] = talib.CDLADVANCEBLOCK(open, high, low, close) candle_patterns['belt_hold'] = talib.CDLBELTHOLD(open, high, low, close) candle_patterns['breakaway'] = talib.CDLBREAKAWAY(open, high, low, close) candle_patterns['closing_marubozu'] = talib.CDLCLOSINGMARUBOZU(open, high, low, close) candle_patterns['concealing_baby_swallow'] = talib.CDLCONCEALBABYSWALL(open, high, low, close) candle_patterns['counterattack'] = talib.CDLCOUNTERATTACK(open, high, low, close) candle_patterns['dark_cloud_cover'] = talib.CDLDARKCLOUDCOVER(open, high, low, close) candle_patterns['doji'] = talib.CDLDOJI(open, high, low, close) candle_patterns['doji_star'] = talib.CDLDOJISTAR(open, high, low, close) candle_patterns['gravestone_doji'] = talib.CDLGRAVESTONEDOJI(open, high, low, close) candle_patterns['dragonfly_doji'] = talib.CDLDRAGONFLYDOJI(open, high, low, close) candle_patterns['engulfing'] = talib.CDLENGULFING(open, high, low, close) candle_patterns['eveningstar_doji'] = talib.CDLEVENINGDOJISTAR(open, high, low, close) candle_patterns['eveningstar'] = talib.CDLEVENINGSTAR(open, high, low, close) candle_patterns['gap_side_white'] = talib.CDLGAPSIDESIDEWHITE(open, high, low, close) candle_patterns['hammer'] = talib.CDLHAMMER(open, high, low, close) candle_patterns['doji'] = talib.CDLDOJI(open, high, low, close) candle_patterns['hanging_man'] = talib.CDLHANGINGMAN(open, high, low, close) candle_patterns['harami'] = talib.CDLHARAMI(open, high, low, close) candle_patterns['harami_cross'] = talib.CDLHARAMICROSS(open, high, low, close) candle_patterns['high_wave'] = talib.CDLHIGHWAVE(open, high, low, close) candle_patterns['hikkake'] = talib.CDLHIKKAKE(open, high, low, close) candle_patterns['hikkake_mod'] = talib.CDLHIKKAKEMOD(open, high, low, close) candle_patterns['homing_pigeon'] = talib.CDLHOMINGPIGEON(open, high, low, close) candle_patterns['identical_3crows'] = talib.CDLIDENTICAL3CROWS(open, high, low, close) candle_patterns['in_neck'] = talib.CDLINNECK(open, high, low, close) candle_patterns['inverted_hammer'] = talib.CDLINVERTEDHAMMER(open, high, low, close) candle_patterns['kicking'] = talib.CDLKICKING(open, high, low, close) candle_patterns['kicking_marubozu'] = talib.CDLKICKINGBYLENGTH(open, high, low, close) candle_patterns['ladder_bottom'] = talib.CDLLADDERBOTTOM(open, high, low, close) candle_patterns['long_leg_doji'] = talib.CDLLONGLEGGEDDOJI(open, high, low, close) candle_patterns['long_line'] = talib.CDLLONGLINE(open, high, low, close) candle_patterns['marubozu'] = talib.CDLMARUBOZU(open, high, low, close) candle_patterns['matching_low'] = talib.CDLMATCHINGLOW(open, high, low, close) candle_patterns['mat_hold'] = talib.CDLMATHOLD(open, high, low, close) candle_patterns['morningstar_doji'] = talib.CDLMORNINGDOJISTAR(open, high, low, close) candle_patterns['morningstar'] = talib.CDLMORNINGSTAR(open, high, low, close) candle_patterns['on_neck'] = talib.CDLONNECK(open, high, low, close) candle_patterns['piercing'] = talib.CDLPIERCING(open, high, low, close) candle_patterns['rickshaw_man'] = talib.CDLRICKSHAWMAN(open, high, low, close) candle_patterns['rising_fall_3methods'] = talib.CDLRISEFALL3METHODS(open, high, low, close) candle_patterns['separating_lines'] = talib.CDLSEPARATINGLINES(open, high, low, close) candle_patterns['shooting_star'] = talib.CDLSHOOTINGSTAR(open, high, low, close) candle_patterns['short_line'] = talib.CDLSHORTLINE(open, high, low, close) candle_patterns['spinning_top'] = talib.CDLSPINNINGTOP(open, high, low, close) candle_patterns['stalled'] = talib.CDLSTALLEDPATTERN(open, high, low, close) candle_patterns['stick_sandwich'] = talib.CDLSTICKSANDWICH(open, high, low, close) candle_patterns['takuri'] = talib.CDLTAKURI(open, high, low, close) candle_patterns['tasuki_gap'] = talib.CDLTASUKIGAP(open, high, low, close) candle_patterns['thrusting'] = talib.CDLTHRUSTING(open, high, low, close) candle_patterns['tristar'] = talib.CDLTRISTAR(open, high, low, close) candle_patterns['unique_3river'] = talib.CDLUNIQUE3RIVER(open, high, low, close) candle_patterns['upside_gap_2crows'] = talib.CDLUPSIDEGAP2CROWS(open, high, low, close) candle_patterns['upside_gap_3methods'] = talib.CDLXSIDEGAP3METHODS(open, high, low, close) self.candlestick_patterns = candle_patterns
def all_candels(df): df['two_crow'] = talib.CDL2CROWS(df.open,df.high,df.low,df.close) df['three_black_crows'] = talib.CDL3BLACKCROWS(df.open,df.high,df.low,df.close) df['threeinside updown'] = talib.CDL3INSIDE(df.open,df.high,df.low,df.close) df['threelinestrike'] = talib.CDL3LINESTRIKE(df.open,df.high,df.low,df.close) df['3outside'] = talib.CDL3OUTSIDE(df.open,df.high,df.low,df.close) df['3starsinsouth'] = talib.CDL3STARSINSOUTH(df.open,df.high,df.low,df.close) df['3WHITESOLDIERS'] = talib.CDL3WHITESOLDIERS(df.open,df.high,df.low,df.close) df['ABANDONEDBABY'] = talib.CDLABANDONEDBABY(df.open,df.high,df.low,df.close) df['ADVANCEBLOCK'] = talib.CDLADVANCEBLOCK(df.open,df.high,df.low,df.close) df['BELTHOLD'] = talib.CDLBELTHOLD(df.open,df.high,df.low,df.close) df['BREAKAWAY'] = talib.CDLBREAKAWAY(df.open,df.high,df.low,df.close) df['CLOSINGMARUBOZU'] = talib.CDLCLOSINGMARUBOZU(df.open,df.high,df.low,df.close) df['CONCEALBABYSWALL'] = talib.CDLCONCEALBABYSWALL(df.open,df.high,df.low,df.close) df['COUNTERATTACK'] = talib.CDLCOUNTERATTACK(df.open,df.high,df.low,df.close) df['DARKCLOUDCOVER'] = talib.CDLDARKCLOUDCOVER(df.open,df.high,df.low,df.close) df['DOJI'] = talib.CDLDOJI(df.open,df.high,df.low,df.close) df['DOJISTAR'] = talib.CDLDOJISTAR(df.open,df.high,df.low,df.close) df['DRAGONFLYDOJI'] = talib.CDLDRAGONFLYDOJI(df.open,df.high,df.low,df.close) df['ENGULFING'] = talib.CDLENGULFING(df.open,df.high,df.low,df.close) df['EVENINGDOJISTAR'] = talib.CDLEVENINGDOJISTAR(df.open,df.high,df.low,df.close) df['EVENINGSTAR'] = talib.CDLEVENINGSTAR(df.open,df.high,df.low,df.close) df['GAPSIDESIDEWHITE'] = talib.CDLGAPSIDESIDEWHITE(df.open,df.high,df.low,df.close) df['GRAVESTONEDOJI'] = talib.CDLGRAVESTONEDOJI(df.open,df.high,df.low,df.close) df['HAMMER'] = talib.CDLHAMMER(df.open,df.high,df.low,df.close) df['HANGINGMAN'] = talib.CDLHANGINGMAN(df.open,df.high,df.low,df.close) df['HARAMI'] = talib.CDLHARAMI(df.open,df.high,df.low,df.close) df['HARAMICROSS'] = talib.CDLHARAMICROSS(df.open,df.high,df.low,df.close) df['HIGHWAVE'] = talib.CDLHIGHWAVE(df.open,df.high,df.low,df.close) df['HIKKAKE'] = talib.CDLHIKKAKE(df.open,df.high,df.low,df.close) df['HIKKAKEMOD'] = talib.CDLHIKKAKEMOD(df.open,df.high,df.low,df.close) df['HOMINGPIGEON'] = talib.CDLHOMINGPIGEON(df.open,df.high,df.low,df.close) df['IDENTICAL3CROWS'] = talib.CDLIDENTICAL3CROWS(df.open,df.high,df.low,df.close) df['INNECK'] = talib.CDLINNECK(df.open,df.high,df.low,df.close) df['INVERTEDHAMMER'] = talib.CDLINVERTEDHAMMER(df.open,df.high,df.low,df.close) df['KICKING'] = talib.CDLKICKING(df.open,df.high,df.low,df.close) df['KICKINGBYLENGTH'] = talib.CDLKICKINGBYLENGTH(df.open,df.high,df.low,df.close) df['LADDERBOTTOM'] = talib.CDLLADDERBOTTOM(df.open,df.high,df.low,df.close) df['LONGLEGGEDDOJI'] = talib.CDLLONGLEGGEDDOJI(df.open,df.high,df.low,df.close) df['LONGLINE'] = talib.CDLLONGLINE(df.open,df.high,df.low,df.close) df['MARUBOZU'] = talib.CDLMARUBOZU(df.open,df.high,df.low,df.close) df['MATCHINGLOW'] = talib.CDLMATCHINGLOW(df.open,df.high,df.low,df.close) df['MATHOLD'] = talib.CDLMATHOLD(df.open,df.high,df.low,df.close) df['MORNINGDOJISTAR'] = talib.CDLMORNINGDOJISTAR(df.open,df.high,df.low,df.close) df['MORNINGSTAR'] = talib.CDLMORNINGSTAR(df.open,df.high,df.low,df.close) df['ONNECK'] = talib.CDLONNECK(df.open,df.high,df.low,df.close) df['PIERCING'] = talib.CDLPIERCING(df.open,df.high,df.low,df.close) df['RICKSHAWMAN'] = talib.CDLRICKSHAWMAN(df.open,df.high,df.low,df.close) df['RISEFALL3METHODS'] = talib.CDLRISEFALL3METHODS(df.open,df.high,df.low,df.close) df['SEPARATINGLINES'] = talib.CDLSEPARATINGLINES(df.open,df.high,df.low,df.close) df['SHOOTINGSTAR'] = talib.CDLSHOOTINGSTAR(df.open,df.high,df.low,df.close) df['SHORTLINE'] = talib.CDLSHORTLINE(df.open,df.high,df.low,df.close) df['SPINNINGTOP'] = talib.CDLSPINNINGTOP(df.open,df.high,df.low,df.close) df['STALLEDPATTERN'] = talib.CDLSTALLEDPATTERN(df.open,df.high,df.low,df.close) df['STICKSANDWICH'] = talib.CDLSTICKSANDWICH(df.open,df.high,df.low,df.close) df['TAKURI'] = talib.CDLTAKURI(df.open,df.high,df.low,df.close) df['TASUKIGAP'] = talib.CDLTASUKIGAP(df.open,df.high,df.low,df.close) df['THRUSTING'] = talib.CDLTHRUSTING(df.open,df.high,df.low,df.close) df['TRISTAR'] = talib.CDLTRISTAR(df.open,df.high,df.low,df.close) df['UNIQUE3RIVER'] = talib.CDLUNIQUE3RIVER(df.open,df.high,df.low,df.close) df['UPSIDEGAP2CROWS'] = talib.CDLUPSIDEGAP2CROWS(df.open,df.high,df.low,df.close) df['XSIDEGAP3METHODS'] = talib.CDLXSIDEGAP3METHODS(df.open,df.high,df.low,df.close) return df
def CDLMATCHINGLOW(self, name, **parameters): data = self.__data[name] return talib.CDLMATCHINGLOW(data, **parameters)