Esempio n. 1
0
    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()
Esempio n. 2
0
def CDLRICKSHAWMAN(data):
    res = talib.CDLRICKSHAWMAN(
        data.open.values, data.high.values, data.low.values, data.close.values)
    return pd.DataFrame({'CDLRICKSHAWMAN': res}, index=data.index)
Esempio n. 3
0
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
Esempio n. 4
0
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
 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)
 df['CDLTHRUSTING'] = talib.CDLTHRUSTING(op, hp, lp, cp)
 df['CDLTRISTAR'] = talib.CDLTRISTAR(op, hp, lp, cp)
 df['CDLUNIQUE3RIVER'] = talib.CDLUNIQUE3RIVER(op, hp, lp, cp)
 df['CDLUPSIDEGAP2CROWS'] = talib.CDLUPSIDEGAP2CROWS(op, hp, lp, cp)
 df['CDLXSIDEGAP3METHODS'] = talib.CDLXSIDEGAP3METHODS(op, hp, lp, cp)
 post_rc = df.shape[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)
Esempio n. 7
0
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
Esempio n. 8
0
 def CDLRICKSHAWMAN(Open, High, Low, Close):
     integer = pd.DataFrame()
     for i in High.columns:
         integer[i] = ta.CDLRICKSHAWMAN(Open[i], High[i], Low[i], Close[i])
     return integer
Esempio n. 9
0
    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
Esempio n. 10
0
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)
Esempio n. 11
0
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
Esempio n. 12
0
                                                  close,
                                                  penetration=0)
df['CDLDOJI'] = talib.CDLDOJI(open, high, low, close)
df['CDLMORNINGDOJISTAR'] = talib.CDLMORNINGDOJISTAR(open,
                                                    high,
                                                    low,
                                                    close,
                                                    penetration=0)
df['CDLMORNINGSTAR'] = talib.CDLMORNINGSTAR(open,
                                            high,
                                            low,
                                            close,
                                            penetration=0)
df['CDLONNECK'] = talib.CDLONNECK(open, high, low, close)
df['CDLPIERCING'] = talib.CDLPIERCING(open, high, low, close)
df['CDLRICKSHAWMAN'] = talib.CDLRICKSHAWMAN(open, high, low, close)
df['CDLRISEFALL3METHODS'] = talib.CDLRISEFALL3METHODS(open, high, low, close)
df['CDLSEPARATINGLINES'] = talib.CDLSEPARATINGLINES(open, high, low, close)
df['CDLSHOOTINGSTAR'] = talib.CDLSHOOTINGSTAR(open, high, low, close)
df['CDLSHORTLINE'] = talib.CDLSHORTLINE(open, high, low, close)
df['CDLSPINNINGTOP'] = talib.CDLSPINNINGTOP(open, high, low, close)
df['CDLSTALLEDPATTERN'] = talib.CDLSTALLEDPATTERN(open, high, low, close)
df['CDLUPSIDEGAP2CROWS'] = talib.CDLUPSIDEGAP2CROWS(open, high, low, close)
df['CDLXSIDEGAP3METHODS'] = talib.CDLXSIDEGAP3METHODS(open, high, low, close)
df['CDLUNIQUE3RIVER'] = talib.CDLUNIQUE3RIVER(open, high, low, close)
df['ADOSC'] = talib.ADOSC(high,
                          low,
                          close,
                          volume,
                          fastperiod=3,
                          slowperiod=10)
Esempio n. 13
0
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))
Esempio n. 14
0
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
Esempio n. 15
0
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
Esempio n. 16
0
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
Esempio n. 17
0
def CDLRICKSHAWMAN(data, **kwargs):
    _check_talib_presence()
    popen, phigh, plow, pclose, pvolume = _extract_ohlc(data)
    return talib.CDLRICKSHAWMAN(popen, phigh, plow, pclose, **kwargs)
Esempio n. 18
0
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)
Esempio n. 19
0
 def CDLRICKSHAWMAN(self):
     integer = talib.CDLRICKSHAWMAN(self.open, self.high, self.low, self.close)
     return integer
Esempio n. 20
0
    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
Esempio n. 21
0
File: DC.py Progetto: kzil88/huobi
    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)
Esempio n. 22
0
    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
Esempio n. 23
0
 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'])
 CDLPIERCING_real = talib.CDLPIERCING(resorted['open'],
                                      resorted['high'],
                                      resorted['low'],
                                      resorted['close'])
 CDLRICKSHAWMAN_real = talib.CDLRICKSHAWMAN(
     resorted['open'], resorted['high'], resorted['low'],
     resorted['close'])
 CDLRISEFALL3METHODS_real = talib.CDLRISEFALL3METHODS(
     resorted['open'], resorted['high'], resorted['low'],
     resorted['close'])
 CDLSEPARATINGLINES_real = talib.CDLSEPARATINGLINES(
     resorted['open'], resorted['high'], resorted['low'],
     resorted['close'])
 CDLSHOOTINGSTAR_real = talib.CDLSHOOTINGSTAR(
     resorted['open'], resorted['high'], resorted['low'],
     resorted['close'])
 CDLSHORTLINE_real = talib.CDLSHORTLINE(resorted['open'],
                                        resorted['high'],
                                        resorted['low'],
                                        resorted['close'])
 CDLSPINNINGTOP_real = talib.CDLSPINNINGTOP(
Esempio n. 24
0
    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
Esempio n. 25
0
 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'])
 ohlc_df['CDLPIERCING'] = ta.CDLPIERCING(ohlc_df['open'],
                                         ohlc_df['high'],
                                         ohlc_df['low'],
                                         ohlc_df['close'])
 ohlc_df['CDLRICKSHAWMAN'] = ta.CDLRICKSHAWMAN(
     ohlc_df['open'], ohlc_df['high'], ohlc_df['low'],
     ohlc_df['close'])
 ohlc_df['CDLRISEFALL3METHODS'] = ta.CDLRISEFALL3METHODS(
     ohlc_df['open'], ohlc_df['high'], ohlc_df['low'],
     ohlc_df['close'])
 ohlc_df['CDLSEPARATINGLINES'] = ta.CDLSEPARATINGLINES(
     ohlc_df['open'], ohlc_df['high'], ohlc_df['low'],
     ohlc_df['close'])
 ohlc_df['CDLSHOOTINGSTAR'] = ta.CDLSHOOTINGSTAR(
     ohlc_df['open'], ohlc_df['high'], ohlc_df['low'],
     ohlc_df['close'])
 ohlc_df['CDLSHORTLINE'] = ta.CDLSHORTLINE(ohlc_df['open'],
                                           ohlc_df['high'],
                                           ohlc_df['low'],
                                           ohlc_df['close'])
 ohlc_df['CDLSPINNINGTOP'] = ta.CDLSPINNINGTOP(
Esempio n. 26
0
    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 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
Esempio n. 28
0
    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
Esempio n. 29
0
def CDLRICKSHAWMAN(DataFrame):
    res = talib.CDLRICKSHAWMAN(DataFrame.open.values, DataFrame.high.values,
                               DataFrame.low.values, DataFrame.close.values)
    return pd.DataFrame({'CDLRICKSHAWMAN': res}, index=DataFrame.index)
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)