python类rolling_mean()的实例源码

data_handler.py 文件源码 项目:pyktrader2 作者: harveywwu 项目源码 文件源码 阅读 26 收藏 0 点赞 0 评论 0
def OBV(df, n):
    PosVol = pd.Series(df['volume'])
    NegVol = pd.Series(-df['volume'])
    PosVol[df['close'] <= df['close'].shift(1)] = 0
    NegVol[df['close'] >= df['close'].shift(1)] = 0
    OBV = pd.Series(pd.rolling_mean(PosVol + NegVol, n), name = 'OBV' + str(n))
    return OBV

#Force Index
data_handler.py 文件源码 项目:pyktrader2 作者: harveywwu 项目源码 文件源码 阅读 27 收藏 0 点赞 0 评论 0
def EOM(df, n):
    EoM = (df['high'].diff(1) + df['low'].diff(1)) * (df['high'] - df['low']) / (2 * df['volume'])
    Eom_ma = pd.Series(pd.rolling_mean(EoM, n), name = 'EoM' + str(n))
    return Eom_ma

#Commodity Channel Index
data_handler.py 文件源码 项目:pyktrader2 作者: harveywwu 项目源码 文件源码 阅读 25 收藏 0 点赞 0 评论 0
def CCI(df, n):
    PP = (df['high'] + df['low'] + df['close']) / 3
    CCI = pd.Series((PP - pd.rolling_mean(PP, n)) / pd.rolling_std(PP, n) / 0.015, name = 'CCI' + str(n))
    return CCI
data_handler.py 文件源码 项目:pyktrader2 作者: harveywwu 项目源码 文件源码 阅读 28 收藏 0 点赞 0 评论 0
def KELCH(df, n):
    KelChM = pd.Series(pd.rolling_mean((df['high'] + df['low'] + df['close']) / 3, n), name = 'KelChM' + str(n))
    KelChU = pd.Series(pd.rolling_mean((4 * df['high'] - 2 * df['low'] + df['close']) / 3, n), name = 'KelChU' + str(n))
    KelChD = pd.Series(pd.rolling_mean((-2 * df['high'] + 4 * df['low'] + df['close']) / 3, n), name = 'KelChD' + str(n))
    return pd.concat([KelChM, KelChU, KelChD], join='outer', axis=1)

#Ultimate Oscillator
data_handler.py 文件源码 项目:pyktrader2 作者: harveywwu 项目源码 文件源码 阅读 28 收藏 0 点赞 0 评论 0
def HEIKEN_ASHI(df, period1):
    SM_O = pd.rolling_mean(df['open'], period1)
    SM_H = pd.rolling_mean(df['high'], period1)
    SM_L = pd.rolling_mean(df['low'], period1)
    SM_C = pd.rolling_mean(df['close'], period1)
    HA_C = pd.Series((SM_O + SM_H + SM_L + SM_C)/4.0, name = 'HAclose')
    HA_O = pd.Series(SM_O, name = 'HAopen')
    HA_H = pd.Series(SM_H, name = 'HAhigh')
    HA_L = pd.Series(SM_L, name = 'HAlow')
    for idx, dateidx in enumerate(HA_C.index):
        if idx >= (period1):
            HA_O[idx] = (HA_O[idx-1] + HA_C[idx-1])/2.0
        HA_H[idx] = max(SM_H[idx], HA_O[idx], HA_C[idx])
        HA_L[idx] = min(SM_L[idx], HA_O[idx], HA_C[idx])
    return pd.concat([HA_O, HA_H, HA_L, HA_C], join='outer', axis=1)
data_handler.py 文件源码 项目:pyktrader2 作者: harveywwu 项目源码 文件源码 阅读 28 收藏 0 点赞 0 评论 0
def SPBFILTER(df, n1 = 40, n2 = 60, n3 = 0, field = 'close'):
    if n3 == 0:
        n3 = int((n1 + n2)/2)
    a1 = 5.0/n1
    a2 = 5.0/n2
    B = [a1-a2, a2-a1]
    A = [1, (1-a1)+(1-a2), -(1-a1)*(1-a2)]
    PB = pd.Series(signal.lfilter(B, A, df[field]), name = 'SPB_%s_%s' % (n1, n2))
    RMS = pd.Series(pd.rolling_mean(PB*PB, n3)**0.5, name = 'SPBRMS__%s_%s' % (n1, n2))
    return pd.concat([PB, RMS], join='outer', axis=1)
FeaturePreprocessor.py 文件源码 项目:ccf-price-prediction 作者: wqlin 项目源码 文件源码 阅读 32 收藏 0 点赞 0 评论 0
def rolling_mean(self, df, window, shift=1):
        """

        :param df: ??????? dataFrame
        :param window: ????
        :param shitf: ????1
        :return: ??????7?? dataFrame
        """
        rolling_df = pd.rolling_mean(df, window=window).shift(shift)
        return rolling_df[60:]
FeaturePreprocessor.py 文件源码 项目:ccf-price-prediction 作者: wqlin 项目源码 文件源码 阅读 23 收藏 0 点赞 0 评论 0
def run(self):
        for dir_path in listdir(self.src_dir):
            src_dir = join(self.src_dir, dir_path)
            target_dir = join(self.target_dir, dir_path)
            makedirs(target_dir)
            for file in listdir(src_dir):
                df = pd.read_csv(join(src_dir, file))
                if len(df) > 0:
                    df['date'] = pd.to_datetime(df['date'], format='%Y-%m-%d')
                    offset = pd.Timedelta(days=60)
                    date_range = pd.date_range((df['date'].min() + offset).date(),
                                               df['date'].max().date())
                    averin1 = self.rolling_mean(df['aver'], 1)
                    averin7 = self.rolling_mean(df['aver'], 7)
                    averin15 = self.rolling_mean(df['aver'], 15)
                    averin30 = self.rolling_mean(df['aver'], 30)
                    averin90 = self.rolling_mean(df['aver'], 60)

                    assert len(averin1) == len(averin30) == len(averin7) == len(averin15) == len(averin90) == len(
                        df['aver'][60:])
                    target_df = pd.DataFrame({
                        'province': df['province'][0],
                        'market': df['market'][0],
                        'type': df['type'][0],
                        'key': df['key'][0],
                        'date': date_range,
                        'aver': df['aver'][60:],
                        'averin1': averin1,
                        'averin7': averin7,
                        'averin15': averin15,
                        'averin30': averin30,
                        'averin90': averin90
                    })
                    print(join(target_dir, file))
                    target_df.to_csv(join(target_dir, file), header=True, index=False,
                                     columns=['province', 'market', 'type', 'key', 'date', 'averin1',
                                              'averin7', 'averin15', 'averin30', 'averin90', 'aver'])
bollingerbands.py 文件源码 项目:ud501 作者: disquared 项目源码 文件源码 阅读 32 收藏 0 点赞 0 评论 0
def get_rolling_mean(values, window):
    """Return rolling mean of given values, using specified window size."""
    return values.rolling(window=window).mean()
    # return pd.rolling_mean(values, window=window)
sp_start.py 文件源码 项目:stock_trend_prediction 作者: r12543 项目源码 文件源码 阅读 30 收藏 0 点赞 0 评论 0
def addFeatures(dataframe, adjclose, returns, n):
    """
    operates on two columns of dataframe:
    - n >= 2
    - given Return_* computes the return of day i respect to day i-n.
    - given AdjClose_* computes its moving average on n days

    """

    return_n = adjclose[9:] + "Time_" + str(n)
    dataframe[return_n] = dataframe[adjclose].pct_change(n)

    roll_n = returns[7:] + "RollMean_" + str(n)
    dataframe[roll_n] = pd.rolling_mean(dataframe[returns], n)
Dma.py 文件源码 项目:sogaQuant 作者: idoplay 项目源码 文件源码 阅读 27 收藏 0 点赞 0 评论 0
def makeMa(self):
        self.df.sort_values(by=('dateline'), ascending=False)
        #print self.df
        #sys.exit()
        ma_list = [5, 89]
        for ma in ma_list:
            self.df['MA_' + str(ma)] = pandas.rolling_mean(self.df['close'], ma)

        #self.df = self.df[self.df['MA_89'].notnull()]
        #print self.df
        #sys.exit()
        #?? code[13]
        self.df['dif'] = self.df['MA_5'] - self.df['MA_89']
        #??code[14]
        self.df['difma'] = pandas.rolling_mean(self.df['dif'], 36)
pandas_indicators.py 文件源码 项目:PythonTrading 作者: F2011B 项目源码 文件源码 阅读 25 收藏 0 点赞 0 评论 0
def MA(df, n):
    MA = pd.Series(pd.rolling_mean(df['Close'], n), name = 'MA_' + str(n))
    df = df.join(MA)
    return df

#Exponential Moving Average
pandas_indicators.py 文件源码 项目:PythonTrading 作者: F2011B 项目源码 文件源码 阅读 27 收藏 0 点赞 0 评论 0
def BBANDS(df, n):
    MA = pd.Series(pd.rolling_mean(df['Close'], n))
    MSD = pd.Series(pd.rolling_std(df['Close'], n))
    b1 = 4 * MSD / MA
    B1 = pd.Series(b1, name = 'BollingerB_' + str(n))
    df = df.join(B1)
    b2 = (df['Close'] - MA + 2 * MSD) / (4 * MSD)
    B2 = pd.Series(b2, name = 'Bollinger%b_' + str(n))
    df = df.join(B2)
    return df

#Pivot Points, Supports and Resistances
pandas_indicators.py 文件源码 项目:PythonTrading 作者: F2011B 项目源码 文件源码 阅读 28 收藏 0 点赞 0 评论 0
def EOM(df, n):
    EoM = (df['High'].diff(1) + df['Low'].diff(1)) * (df['High'] - df['Low']) / (2 * df['Volume'])
    Eom_ma = pd.Series(pd.rolling_mean(EoM, n), name = 'EoM_' + str(n))
    df = df.join(Eom_ma)
    return df

#Commodity Channel Index
pandas_indicators.py 文件源码 项目:PythonTrading 作者: F2011B 项目源码 文件源码 阅读 28 收藏 0 点赞 0 评论 0
def KELCH(df, n):
    KelChM = pd.Series(pd.rolling_mean((df['High'] + df['Low'] + df['Close']) / 3, n), name = 'KelChM_' + str(n))
    KelChU = pd.Series(pd.rolling_mean((4 * df['High'] - 2 * df['Low'] + df['Close']) / 3, n), name = 'KelChU_' + str(n))
    KelChD = pd.Series(pd.rolling_mean((-2 * df['High'] + 4 * df['Low'] + df['Close']) / 3, n), name = 'KelChD_' + str(n))
    df = df.join(KelChM)
    df = df.join(KelChU)
    df = df.join(KelChD)
    return df

#Ultimate Oscillator
predictorWeekly.py 文件源码 项目:stock_prediction 作者: vishwajeetv 项目源码 文件源码 阅读 23 收藏 0 点赞 0 评论 0
def calculateBollingerBandsValue(df):
    simpleMovingAverage = pandas.rolling_mean(df,window=5)
    stdDeviation = pandas.rolling_std(df,window=5)
    bollingerBandsValue = (df - simpleMovingAverage)/(2*stdDeviation)
    bollingerBandsValue = bollingerBandsValue.dropna()
    return bollingerBandsValue
predictorWeekly.py 文件源码 项目:stock_prediction 作者: vishwajeetv 项目源码 文件源码 阅读 24 收藏 0 点赞 0 评论 0
def calculateSimpleMovingAverage(df):
    simpleMovingAverage = pandas.rolling_mean(df,window=5)
    simpleMovingAverage = normalize(simpleMovingAverage)
    simpleMovingAverage = simpleMovingAverage.dropna()
    return simpleMovingAverage
predictor.py 文件源码 项目:stock_prediction 作者: vishwajeetv 项目源码 文件源码 阅读 23 收藏 0 点赞 0 评论 0
def plot(df):
    rollingMean = pandas.rolling_mean(df['Close Price'], window=100)
    rollingStdv = pandas.rolling_std(df['Close Price'], window=100)
    plotter.plot(rollingMean)
    # plotting bollinger bands
    plotter.plot(rollingMean + rollingStdv * 2)
    plotter.plot(rollingMean - rollingStdv * 2)
    # df1 = df[['Date','Close']]
    plotter.plot(df)
    plotter.show()
preprocess.py 文件源码 项目:ML_Nanodegree_DeepQTrader 作者: cgarib 项目源码 文件源码 阅读 27 收藏 0 点赞 0 评论 0
def get_rolling_mean(values, window,min_periods=None):
    return pd.rolling_mean(values, window=window, min_periods=min_periods)
sentisignal.py 文件源码 项目:sentisignal 作者: jonathanmanfield 项目源码 文件源码 阅读 28 收藏 0 点赞 0 评论 0
def apply_rolling_window(df, width):
    df = df.ix[1:, :]
    df_num = df.select_dtypes(include=[np.float, np.int])
    df_non_num = df.select_dtypes(exclude=[np.float, np.int])
    df_num_window = pd.rolling_mean(df_num, width, min_periods=1)
    df_window = pd.concat([df_non_num, df_num_window], axis=1)
    return df_window


问题


面经


文章

微信
公众号

扫码关注公众号