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)
Esempio n. 2
0
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
    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)