Ejemplo n.º 1
0
def get_k_day_return(code,
                     days):
    """
    获得k日收益率,计算公式:(当日收盘价-k日前收盘价)/当日收盘价
    """
    fname = data.get_filename(code)
    df = data.read_data(fname)
    return df['close'].pct_change(periods=days)
Ejemplo n.º 2
0
def get_k_day_volatility(code, days):
    """
    获得k日波动率
    """
    fname = data.get_filename(code)
    df = data.read_data(fname)
    df["return"] = df["close"].pct_change()
    return df["return"].rolling(window=days).std() * np.sqrt(243)
Ejemplo n.º 3
0
def get_k_day_average_return(code,
                             days):
    """
    获得k日平均收益率
    """
    fname = data.get_filename(code)
    df = data.read_data(fname)
    df["return"] = df['close'].pct_change()
    return df["return"].rolling(window=days).mean()
Ejemplo n.º 4
0
def get_k_day_return(code,
                     days=5,
                     start_date="2012-01-01",
                     end_date="2017-01-01"):
    """
    获得k日收益率,计算公式:(当日收盘价-k日前收盘价)/当日收盘价
    """
    fname = data.get_filename(code)
    df = data.read_data(fname)
    df = df[df.index >= start_date]
    factor_name = "%d-day return" % (days)
    df[factor_name] = df['close'].pct_change(periods=days)
    return df[factor_name]
Ejemplo n.º 5
0
def merge_fundamental(code):
    '''
    因为基本面数据是季度更新,时间轴上跟stock数据不同,故先需要做merge操作
    '''
    fname = data.get_fundamental_filename(code)
    fdf = data.read_data(fname)
    fname = data.get_filename(code)
    df = data.read_data(fname)
    dates = df.index
    df = df.merge(fdf, left_index=True, right_index=True, how='outer')
    df = df.fillna(method='ffill')
    df = df.loc[dates]
    return df
Ejemplo n.º 6
0
def get_k_day_average_return(code,
                             days=5,
                             start_date="2012-01-01",
                             end_date="2017-01-01"):
    """
    获得k日平均收益率
    """
    fname = data.get_filename(code)
    df = data.read_data(fname)
    df = df[df.index >= start_date]
    factor_name = "%d-day average return" % (days)
    df["return"] = df['close'].pct_change()
    df[factor_name] = df["return"].rolling(window=days).mean()
    return df[factor_name]
Ejemplo n.º 7
0
def get_k_day_volatility(code,
                         days,
                         start_date,
                         end_date):
    """
    获得k日波动率
    """
    fname = data.get_filename(code)
    df = data.read_data(fname)
    df = df[df.index >= start_date]
    factor_name = "%d-day volatility"%(days)
    df["return"] = df["close"].pct_change()
    df[factor_name] = df["return"].rolling(window=days).std() * np.sqrt(243)
    return df[factor_name]