def compute_ab_ema(Neff, a, b): "Compute vwap with a and b series" ab = a * b a_fde = apply_ema_filter(a, Neff) b_fde = apply_ema_filter(b, Neff) ab_fde = apply_ema_filter(ab, Neff) a_star = ab_fde / b_fde b_fde_lag = np.concatenate((np.zeros(1), b_fde))[: len(b_fde)] p = Neff / (Neff + 1) Neff_star = (p * b_fde_lag) / (b_fde - p * b_fde_lag) return (a_fde, b_fde, a_star, Neff_star)
def compute_ab_ema(Neff, a, b): "Compute vwap with a and b series" ab = a * b a_fde = apply_ema_filter(a, Neff) b_fde = apply_ema_filter(b, Neff) ab_fde = apply_ema_filter(ab, Neff) a_star = ab_fde / b_fde b_fde_lag = np.concatenate((np.zeros(1), b_fde))[:len(b_fde)] p = Neff / (Neff + 1) Neff_star = (p * b_fde_lag) / (b_fde - p * b_fde_lag) return (a_fde, b_fde, a_star, Neff_star)
y_fde = apply_box_filter(prices, Nbox) h_box = box(Nbox, Nwindow) candidate = np.convolve(prices - prices[0], h_box) + prices[0] y_convolution = candidate[:len(prices)] axarr[0, 1].set_title("Box") axarr[0, 1].plot(y_fde) axarr[0, 1].plot(y_convolution, 'o', markerfacecolor='none') # c) Ema Neff = 32 lag = 1 y_fde = apply_ema_filter(prices, Neff) h_ema = ema(Neff, Nwindow) candidate = np.convolve(prices - prices[0], h_ema) + prices[0] y_convolution = candidate[:len(prices)] axarr[1, 0].set_title("Ema") axarr[1, 0].plot(y_fde) axarr[1, 0].plot(y_convolution, 'o', markerfacecolor='none') # d) Ema poly1 Neff = 32 lag = 2 y_fde = apply_ema_poly1_filter(prices, Neff) h_ema_poly1 = ema_poly1(Neff, Nwindow)
impulse_response_fde = candidate[lag:] impulse_response_direct = box(Nbox, Nwindow) axarr[0, 1].set_title("Box") axarr[0, 1].plot(impulse_response_fde) axarr[0, 1].plot(impulse_response_direct, 'o',markerfacecolor='none') # c) Ema Neff = 32 lag = 1 impulse = np.zeros(Nwindow) impulse[lag] = 1 candidate = apply_ema_filter(impulse, Neff) impulse_response_fde = candidate[lag:] impulse_response_direct = ema(Neff, Nwindow) axarr[1, 0].set_title("Ema") axarr[1, 0].plot(impulse_response_fde) axarr[1, 0].plot(impulse_response_direct, 'o', markerfacecolor='none') # d) Ema poly1 Neff = 32 lag = 2 impulse = np.zeros(Nwindow) impulse[lag] = 1
impulse_response_fde = candidate[lag:] impulse_response_direct = box(Nbox, Nwindow) axarr[0, 1].set_title("Box") axarr[0, 1].plot(impulse_response_fde) axarr[0, 1].plot(impulse_response_direct, 'o', markerfacecolor='none') # c) Ema Neff = 32 lag = 1 impulse = np.zeros(Nwindow) impulse[lag] = 1 candidate = apply_ema_filter(impulse, Neff) impulse_response_fde = candidate[lag:] impulse_response_direct = ema(Neff, Nwindow) axarr[1, 0].set_title("Ema") axarr[1, 0].plot(impulse_response_fde) axarr[1, 0].plot(impulse_response_direct, 'o', markerfacecolor='none') # d) Ema poly1 Neff = 32 lag = 2 impulse = np.zeros(Nwindow) impulse[lag] = 1