Advertisement
ImDerekD

NN

Apr 26th, 2019
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.80 KB | None | 0 0
  1. import numpy as np
  2. import pandas as pd
  3.  
  4.  
  5. dataset = pd.read_csv('/Users/King/SPY_NN.csv')
  6. dataset = dataset.dropna()
  7. dataset = dataset[['ref_Num', 'Close', 'Tick', 'Liq_Tick', 'new_Strength', 'Diff', 'Liq_change_div_Avg', 'MIV_Index', 'Type', 'LiqDividedByREGLiq', 'LFP', 'LFPC']]
  8.  
  9. dataset['ref_Num'] = dataset['ref_Num']
  10. dataset['Close'] = dataset['Close_Price']
  11. dataset['Tick'] = dataset['Tick']
  12. dataset['Liq_Tick'] = dataset['Liq_Tick']
  13. dataset['new_Strength'] = dataset['new_Strength']
  14. dataset['Diff'] = dataset['Diff']
  15. dataset['Liq_change_div_Avg'] = dataset['Liq_change_div_Avg']
  16. dataset['MIV_Index'] = dataset['MIV_Index']
  17. dataset['Type'] = dataset['Type']
  18. dataset['LiqDividedByREGLiq'] = dataset['LiqDividedByREGLiq']
  19. dataset['LFP'] = dataset['LFP']
  20. dataset['LFPC'] = dataset['LFPC']
  21.  
  22. dataset['Price_Rise'] = np.where(dataset['Close_Price'].shift(-15) > dataset['Close_Price'], 1, 0)
  23. dataset = dataset.dropna()
  24. X = dataset.iloc[:, 4:-1]
  25. y = dataset.iloc[:, -1]
  26.  
  27. split = int(len(dataset)*0.8)
  28. X_train, X_test, y_train, y_test = X[:split], X[split:], y[:split], y[split:]
  29.  
  30. from sklearn.preprocessing import StandardScaler
  31. sc = StandardScaler()
  32. X_train = sc.fit_transform(X_train)
  33. X_test = sc.transform(X_test)
  34. from keras.models import Sequential
  35. from keras.layers import Dense
  36. from keras.layers import Dropout
  37. classifier = Sequential()
  38.  
  39. classifier.add(Dense(units = 128, kernel_initializer = 'uniform', activation = 'relu', input_dim = X.shape[1]))
  40. classifier.add(Dense(units = 128, kernel_initializer = 'uniform', activation = 'relu'))
  41. classifier.add(Dense(units = 1, kernel_initializer = 'uniform', activation = 'sigmoid'))
  42. classifier.compile(optimizer = 'adam', loss = 'mean_squared_error', metrics = ['accuracy'])
  43. classifier.fit(X_train, y_train, batch_size = 10, epochs = 100)
  44. y_pred = classifier.predict(X_test)
  45. y_pred = (y_pred > 0.5)
  46. dataset['y_pred'] = np.NaN
  47. dataset.iloc[(len(dataset) - len(y_pred)):,-1:] = y_pred
  48. trade_dataset = dataset.dropna()
  49.  
  50. trade_dataset['15M Return'] = 0.
  51. trade_dataset['15M Return'] = np.log(trade_dataset['Close']/trade_dataset['Close_Price'].shift(1))
  52. trade_dataset['15M Return'] = trade_dataset['Tomorrows Returns'].shift(-15)
  53. trade_dataset['Strategy Returns'] = 0.
  54. trade_dataset['Strategy Returns'] = np.where(trade_dataset['y_pred'] == True, trade_dataset['Tomorrows Returns'], - trade_dataset['Tomorrows Returns'])
  55. trade_dataset['Cumulative Market Returns'] = np.cumsum(trade_dataset['Tomorrows Returns'])
  56. trade_dataset['Cumulative Strategy Returns'] = np.cumsum(trade_dataset['Strategy Returns'])
  57. import matplotlib.pyplot as plt
  58. plt.figure(figsize=(10,5))
  59. plt.plot(trade_dataset['Cumulative Market Returns'], color='r', label='Market Returns')
  60. plt.plot(trade_dataset['Cumulative Strategy Returns'], color='g', label='Strategy Returns')
  61. plt.legend()
  62. plt.show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement