# I welcome all suggestions for how to do this better sys.path.append(os.path.join(os.path.dirname(__file__), '..')) from Stock_NN_Funcs import build_data import numpy as np from keras.models import load_model, Sequential import math import matplotlib.pyplot as plt TEST_CASH = 1000 model_name = sys.argv[1] test_secs = ["WIKI/ORCL"] trading_days_in_year = 252 _build_data = build_data(raw=True, random_split=False, start_date="2015-01-01", end_date="2017-01-01") # _build_data = build_data(random_split = False, start_date = "2014-01-01", end_date = "2016-01-01") _build_data.send(None) # aapl = _build_data.send("WIKI/AAPL") one_input_length = 463 #len(aapl["trX"][0]) # def keras_builder(builder): # # s = yield # while(1): # for stock_code in test_secs: # output = builder.send(stock_code) # if output is not None: # x = np.reshape(output["X_norm"], (1,) + np.shape(output["X_norm"])) # y = np.reshape(output["trY"], (1,) + np.shape(output["trY"])) # # for x, y in zip(x, y)
flag = 0 if flag == -1: CASH += shares * (short_price - day_price) elif flag == 1: CASH += shares * day_price if CASH > best: global best best = CASH # saver.save(sess, "./"+"_".join(s.split("/")[1] for s in sys.argv[1:])+".ckpt") print(CASH) print("Training...") builder = build_data() builder.send(None) one_input_length = len(builder.send("WIKI/AAPL")["trX"][0]) layer_sizes = [one_input_length, 500, 500, 500, 2] # the 3 is technically not a layer (it"s the output), but it"s here for convenience tf.set_random_seed(1) if not load_model_arg: x = tf.placeholder("float", [None, one_input_length]) y = tf.placeholder("float") prediction = neural_network_model(x) cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(prediction,y)) optimizer = tf.train.AdamOptimizer().minimize(cost) saver = tf.train.Saver(max_to_keep = 5)
from keras.models import Sequential from keras.layers import TimeDistributed, Dense, LSTM, GRU, Dropout from keras.regularizers import l2, l1 from keras.callbacks import Callback, ModelCheckpoint from Stock_NN_Funcs import build_data np.random.seed(7) load_model_arg = sys.argv[1] == "-l" train_secs = sys.argv[(2 if load_model_arg else 1):] samples_per_epoch = len(train_secs) nb_epoch = 120 _build_data = build_data(random_split=False) _build_data.send(None) aapl = _build_data.send("WIKI/AAPL") one_input_length = len(aapl["trX"][0]) def keras_builder(builder): # s = yield while (1): for stock_code in train_secs: output = builder.send(stock_code) if output is not None: x = np.reshape(output["trX"], (1, ) + np.shape(output["trX"])) y = np.reshape(output["trY"], (1, ) + np.shape(output["trY"])) # for x, y in zip(x, y) yield x, y
from Stock_NN_Funcs import build_data import numpy as np from keras.models import load_model, Sequential from keras.layers import Recurrent from keras.utils.layer_utils import layer_from_config import math import matplotlib.pyplot as plt TEST_CASH = 100 model_name = sys.argv[1] test_secs = ["WIKI/CZR"] trading_days_in_year = 252 # _build_data = build_data(random_split = False, start_date = "1999-01-01", end_date = "2017-01-01") _build_data = build_data(random_split=False, start_date="2014-01-01", end_date="2016-01-01") _build_data.send(None) # aapl = _build_data.send("WIKI/AAPL") one_input_length = 463 # len(aapl["trX"][0]) # def keras_builder(builder): # # s = yield # while(1): # for stock_code in test_secs: # output = builder.send(stock_code) # if output is not None: # x = np.reshape(output["X_norm"], (1,) + np.shape(output["X_norm"])) # y = np.reshape(output["trY"], (1,) + np.shape(output["trY"])) # # for x, y in zip(x, y) # yield x, y