def boll_df(cls, date, ifcode, period_short, period_long, pre_point): data = BacktestData.get_data_by_ifcode(date, ifcode) if not data: return pd.DataFrame() _df = pd.DataFrame(data, columns=['time_index', 'price', 'volume']) df = point_prosess(_df, pre_point) price_list = list(df['price']) df['boll_mb'] = Indicator.ma_metric(period_short, price_list) mb_list = list(df['boll_mb']) df['boll_md'] = Indicator.boll_md_metric(period_long, mb_list) df['boll_up'] = df['boll_mb'] + 2.0 * df['boll_md'] df['boll_dn'] = df['boll_mb'] - 2.0 * df['boll_md'] return df
def boll_chart(cls, date, ifcode, period_short=50, period_long=80, offset=10): df_list = realtime_data(date, ifcode) df = pd.DataFrame(df_list, columns=['time_index', 'price', 'volume']) boll_df = point_prosess(df, offset) price_list = list(boll_df['price']) boll_df['boll_mb'] = Indicator.ma_metric(period_short, price_list) mb_list = list(boll_df['boll_mb']) boll_df['boll_md'] = Indicator.boll_md_metric(period_long, mb_list) boll_df['boll_up'] = boll_df['boll_mb'] + 2.0 * boll_df['boll_md'] boll_df['boll_dn'] = boll_df['boll_mb'] - 2.0 * boll_df['boll_md'] price = boll_df[['time_index', 'price']].values.tolist() boll_up = boll_df[['time_index', 'boll_up']].values.tolist() boll_dn = boll_df[['time_index', 'boll_dn']].values.tolist() boll_mb = boll_df[['time_index', 'boll_mb']].values.tolist() return price, boll_up, boll_dn, boll_mb