from apply_integrated_macd_poly_filter import apply_integrated_macd_poly_filter

f, axarr = plt.subplots(3, 2)

with open('jpm_trades.csv', 'r') as trades_csv:
    trades = np.array(list(csv.reader(trades_csv))[1:]).astype('double')
    prices = trades[:, 1]

    Nwindow = len(prices)

    # a) Delayed impulse

    Ndelay = 32
    lag = 0

    y_fde = apply_delayed_impulse_filter(prices, Ndelay)
    h_delta = delta(Ndelay, Nwindow)
    candidate = np.convolve(prices, h_delta)
    y_convolution = candidate[:len(prices)]

    x_axis = np.arange(Ndelay, len(prices))

    axarr[0, 0].set_title("Ideal delay")
    axarr[0, 0].plot(x_axis, y_fde[Ndelay:])
    axarr[0, 0].plot(x_axis,
                     y_convolution[Ndelay:],
                     'o',
                     markerfacecolor='none')

    # b) Box
from apply_delayed_impulse_filter import apply_delayed_impulse_filter
from apply_integrated_macd_poly_filter import apply_integrated_macd_poly_filter

f, axarr = plt.subplots(3, 2)

Nwindow = 256

# a) Delayed impulse

Ndelay = 32
lag = 0

impulse = np.zeros(Nwindow)
impulse[lag] = 1

candidate = apply_delayed_impulse_filter(impulse, Ndelay)
impulse_response_fde = candidate[lag:]
impulse_response_direct = delta(Ndelay, Nwindow)

axarr[0, 0].set_ylim(0, 1.1)
axarr[0, 0].set_title("Ideal delay")
axarr[0, 0].plot(impulse_response_fde)
axarr[0, 0].plot(impulse_response_direct, 'o', markerfacecolor='none')

# b) Box

Nbox = 32
lag = 1

impulse = np.zeros(Nwindow)
impulse[lag] = 1
from apply_integrated_macd_poly_filter import apply_integrated_macd_poly_filter


f, axarr = plt.subplots(3, 2)

Nwindow = 256

# a) Delayed impulse

Ndelay = 32
lag = 0

impulse = np.zeros(Nwindow)
impulse[lag] = 1

candidate = apply_delayed_impulse_filter(impulse, Ndelay)
impulse_response_fde = candidate[lag:]
impulse_response_direct = delta(Ndelay, Nwindow)

axarr[0, 0].set_ylim(0, 1.1)
axarr[0, 0].set_title("Ideal delay")
axarr[0, 0].plot(impulse_response_fde)
axarr[0, 0].plot(impulse_response_direct, 'o', markerfacecolor='none')

# b) Box

Nbox = 32
lag = 1

impulse = np.zeros(Nwindow)
impulse[lag] = 1

f, axarr = plt.subplots(3, 2)

with open('jpm_trades.csv', 'r') as trades_csv:
    trades = np.array(list(csv.reader(trades_csv))[1:]).astype('double')
    prices = trades[:,1]

    Nwindow = len(prices)
    
    # a) Delayed impulse

    Ndelay = 32
    lag = 0

    y_fde = apply_delayed_impulse_filter(prices, Ndelay)
    h_delta = delta(Ndelay, Nwindow)
    candidate = np.convolve(prices, h_delta)
    y_convolution = candidate[:len(prices)]

    x_axis = np.arange(Ndelay, len(prices))

    axarr[0, 0].set_title("Ideal delay")
    axarr[0, 0].plot(x_axis, y_fde[Ndelay:])
    axarr[0, 0].plot(x_axis, y_convolution[Ndelay:], 'o', markerfacecolor='none')
    
    # b) Box

    Nbox = 32
    lag = 1