Advertisement
Saturnix

Untitled

May 24th, 2019
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.11 KB | None | 0 0
  1. import pandas as pd
  2. import numpy as np
  3. import matplotlib.pyplot as plt
  4. import matplotlib.dates as mdates
  5.  
  6. ts1 = pd.read_csv(r"C:\Users\Joseph\Desktop\TS_1.txt", parse_dates=["Date"])
  7. ts2 = pd.read_csv(r"C:\Users\Joseph\Desktop\TS_2.txt", parse_dates=["Date"])
  8.  
  9. ts_merged = ts1.merge(ts2, on='Date', how='inner')
  10.  
  11. # Evitiamo valori inferiori a zero, altrimenti np.log() non funziona
  12. ts_merged['Close_x'] = ts_merged['Close_x'] + np.abs(ts_merged['Close_x'].min()) + 1
  13. ts_merged['Close_y'] = ts_merged['Close_y'] + np.abs(ts_merged['Close_y'].min()) + 1
  14.  
  15. # Normaliziamo i daily returns
  16. ts_merged['ts1_returns'] = np.log(ts_merged['Close_x']).diff()
  17. ts_merged['ts2_returns'] = np.log(ts_merged['Close_y']).diff()
  18.  
  19. print(ts_merged[['ts1_returns', 'ts2_returns']].describe())
  20.  
  21. ts_merged['60d rolling correlation'] = ts_merged['ts1_returns'].rolling(60).corr(ts_merged['ts2_returns'])
  22.  
  23. fig, ax = plt.subplots()
  24. fig.autofmt_xdate()
  25. plt.plot(ts_merged['Date'], ts_merged['60d rolling correlation'])
  26. plt.grid(True)
  27. plt.legend()
  28. xfmt = mdates.DateFormatter('%d-%m-%y')
  29. ax.xaxis.set_major_formatter(xfmt)
  30. plt.show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement