Advertisement
ImDerekD

xxx.py

Apr 28th, 2019
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.11 KB | None | 0 0
  1. #!/usr/bin/bash
  2. import numpy as np
  3. import pandas as pd
  4. import tensorflow as tf
  5. from tensorflow import keras
  6. import tensorboard
  7. import keras.callbacks
  8. from tensorflow.keras.callbacks import TensorBoard
  9.  
  10. #localhost:6006
  11.  
  12.  
  13. name = '150 EPOCHS, 450 BS'
  14. dataset = pd.read_csv('/Users/King/SPY_NN1.csv')
  15. dataset = dataset.dropna()
  16. dataset = dataset[['ref_Num', 'Tick', 'Liq_Tick', 'new_Strength', 'LiqDividedByREGLiq', 'Diff', 'MIV_Index', 'Type', 'LFP', 'LFPC', 'Close_Price']]
  17.  
  18. dataset['ref_Num'] = dataset['ref_Num']
  19. dataset['Tick'] = dataset['Tick']
  20. dataset['Liq_Tick'] = dataset['Liq_Tick']
  21. dataset['new_Strength'] = dataset['new_Strength']
  22. dataset['LiqDividedByREGLiq'] = dataset['LiqDividedByREGLiq']
  23. dataset['Diff'] = dataset['Diff']
  24. dataset['MIV_Index'] = dataset['MIV_Index']
  25. dataset['Type'] = dataset['Type']
  26. dataset['LFP'] = dataset['LFP']
  27. dataset['LFPC'] = dataset['LFPC']
  28. dataset['Close_Price'] = dataset['Close_Price']
  29.  
  30.  
  31. dataset['Price_Rise'] = np.where(dataset['Close_Price'].shift(-60) > -.001*dataset['Close_Price']+dataset['Close_Price'], 1, 0)
  32.  
  33. dataset = dataset.dropna()
  34. X = dataset.iloc[:, 0:-1]
  35. y = dataset.iloc[:, -1]
  36.  
  37. split = int(len(dataset)*0.2)
  38. X_train, X_test, y_train, y_test = X[:split], X[split:], y[:split], y[split:]
  39.  
  40. from sklearn.preprocessing import StandardScaler
  41. sc = StandardScaler()
  42. X_train = sc.fit_transform(X_train)
  43. X_test = sc.transform(X_test)
  44.  
  45. from tensorflow.keras.models import Sequential
  46. from tensorflow.keras.layers import Dense
  47. from tensorflow.keras.layers import Dropout
  48. classifier = Sequential()
  49.  
  50. classifier.add(Dense(units = 128, kernel_initializer = 'uniform', activation = 'relu', input_dim = X.shape[1]))
  51. classifier.add(Dense(units = 128, kernel_initializer = 'uniform', activation = 'relu'))
  52. classifier.add(Dense(units = 1, kernel_initializer = 'uniform', activation = 'sigmoid'))
  53. classifier.compile(optimizer = 'adam', loss = 'mean_squared_error', metrics = ['accuracy'])
  54. tb = TensorBoard(log_dir="/Users/King/Desktop/tlog/{}".format(name))
  55. classifier.fit(X_train, y_train, batch_size = 450, epochs = 150, callbacks=[tb])
  56.  
  57. y_pred = classifier.predict(X_test)
  58. y_pred = (y_pred > 0.7)
  59.  
  60. dataset['y_pred'] = np.NaN
  61. dataset.iloc[(len(dataset) - len(y_pred)):,-1:] = y_pred
  62.  
  63. trade_dataset = dataset.dropna()
  64.  
  65. trade_dataset['1 Hour Return'] = 0.
  66. trade_dataset['1 Hour Return'] = np.log(trade_dataset['Close_Price']/trade_dataset['Close_Price'].shift(1))
  67. trade_dataset['1 Hour Return'] = trade_dataset['1 Hour Return'].shift(-60)
  68.  
  69. trade_dataset['Strategy Returns'] = 0.
  70. trade_dataset['Strategy Returns'] = np.where(trade_dataset['y_pred'] == True, trade_dataset['1 Hour Return'], - trade_dataset['1 Hour Return'])
  71.  
  72. trade_dataset['Cumulative Market Returns'] = np.cumsum(trade_dataset['1 Hour Return'])
  73. trade_dataset['Cumulative 1 Hour Returns'] = np.cumsum(trade_dataset['Strategy Returns'])
  74.  
  75. import matplotlib.pyplot as plt
  76.  
  77. plt.figure(figsize=(10,5))
  78. plt.plot(trade_dataset['Cumulative Market Returns'], color='r', label='Market Returns')
  79. plt.plot(trade_dataset['Cumulative 1 Hour Returns'], color='g', label='Strategy (1 Hour) Returns')
  80. plt.legend()
  81. plt.show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement