Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import pandas as pd
- import numpy as np
- import matplotlib.pyplot as plt
- import matplotlib.dates as mdates
- ts1 = pd.read_csv(r"C:\Users\Joseph\Desktop\TS_1.txt", parse_dates=["Date"])
- ts2 = pd.read_csv(r"C:\Users\Joseph\Desktop\TS_2.txt", parse_dates=["Date"])
- ts_merged = ts1.merge(ts2, on='Date', how='inner')
- # Evitiamo valori inferiori a zero, altrimenti np.log() non funziona
- ts_merged['Close_x'] = ts_merged['Close_x'] + np.abs(ts_merged['Close_x'].min()) + 1
- ts_merged['Close_y'] = ts_merged['Close_y'] + np.abs(ts_merged['Close_y'].min()) + 1
- # Normaliziamo i daily returns
- ts_merged['ts1_returns'] = np.log(ts_merged['Close_x']).diff()
- ts_merged['ts2_returns'] = np.log(ts_merged['Close_y']).diff()
- print(ts_merged[['ts1_returns', 'ts2_returns']].describe())
- ts_merged['60d rolling correlation'] = ts_merged['ts1_returns'].rolling(60).corr(ts_merged['ts2_returns'])
- fig, ax = plt.subplots()
- fig.autofmt_xdate()
- plt.plot(ts_merged['Date'], ts_merged['60d rolling correlation'])
- plt.grid(True)
- plt.legend()
- xfmt = mdates.DateFormatter('%d-%m-%y')
- ax.xaxis.set_major_formatter(xfmt)
- plt.show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement