Ejemplo n.º 1
0
yahoo_data.open(os.path.join(os.path.dirname(__file__), 'data/' + symbol + '.csv'))
training_set = np.array([n for n in yahoo_data.data if n['date'] >= date(2007, 1, 1) and n['date'] <= date(2013, 12, 31)])
test_set = np.array([n for n in yahoo_data.data if n['date'] >= date(2014, 1, 1) and n['date'] <= date(2015, 12, 31)])
rsi = yahoo_data.relative_strength(n=14)
(sma13, sma7, macd) = yahoo_data.moving_average_convergence(7, 13) # 7 days and 13 days moving average and MACD
test_label = []
training_label = [n['date'] for n in training_set]
training_list = np.array([n['adj_close'] for n in training_set])
training_target = np.zeros(len(training_list))
test_list = np.array([n['adj_close'] for n in test_set])
test_target = np.zeros(len(test_list))
test_target[list(argrelextrema(test_list, np.greater)[0])] = 1
test_target[list(argrelextrema(test_list, np.less)[0])] = -1
training_target[list(argrelextrema(training_list, np.greater)[0])] = 1
training_target[list(argrelextrema(training_list, np.less)[0])] = -1
(tmax50, tmin50) = yahoo_data.trading_range_breakout(50)
(tmax100, tmin100) = yahoo_data.trading_range_breakout(100)
(tmax200, tmin200) = yahoo_data.trading_range_breakout(200)
(training_list, tmean, tstd) = normalize([[n['open'], n['high'], n['low'], n['adj_close']] for n in training_set])
(test_list, tmean, tstd) = normalize([[n['open'], n['high'], n['low'], n['adj_close']] for n in test_set], tmean, tstd)
(tmax50, tmean, tstd) = normalize(tmax50, tmean, tstd)
(tmin50, tmean, tstd) = normalize(tmin50, tmean, tstd)
(tmax100, tmean, tstd) = normalize(tmax100, tmean, tstd)
(tmin100, tmean, tstd) = normalize(tmin100, tmean, tstd)
(tmax200, tmean, tstd) = normalize(tmax200, tmean, tstd)
(tmin200, tmean, tstd) = normalize(tmin200, tmean, tstd)
(sma7, s20mean, s20std) = normalize(sma7, tmean, tstd)
(sma13, s100mean, s100std) = normalize(sma13, tmean, tstd)
(macd, macdmean, macdstd) = normalize(macd)
(rsi, rsimean, rsistd) = normalize(rsi)
dlen = len(training_list)
Ejemplo n.º 2
0
    std = np.std(data)
  x = (data - mean) / std
  return x, mean, std

# prepare date
symbol = '^HSI'
yahoo_data = YahooHistorical(data_from=date(2014, 1, 1), data_to=date(2015, 12, 31))
yahoo_data.open(os.path.join(os.path.dirname(__file__), 'data/' + symbol + '.csv'))
training_set = yahoo_data.get()
test_set = training_set[200:]
rsi = yahoo_data.relative_strength(n=14)
(sma13, sma7, macd) = yahoo_data.moving_average_convergence(7, 13) # 7 days and 13 days moving average
label = np.array([n['date'] for n in test_set])
(training_prices, m, s) = normalize(np.array([n['adj_close'] for n in training_set]))
(prices, m, s) = normalize(np.array([n['adj_close'] for n in test_set]))
(tmax, tmin) = yahoo_data.trading_range_breakout(50)
(sma13, m, s) = normalize(sma13, m, s)
(sma7, m, s) = normalize(sma7, m, s)
(tmax, m, s) = normalize(tmax, m, s)
(tmin, m, s) = normalize(tmin, m, s)
(macd, m, s) = normalize(macd)
(rsi, m, s) = normalize(rsi)
emax = list(argrelextrema(prices, np.greater)[0])
emin = list(argrelextrema(prices, np.less)[0])

plt.grid(True)
plt.plot(label, prices, color="blue", label=symbol)
plt.fill_between(label, prices, np.min(prices), color="blue", alpha=.15)
plt.plot(label, sma7[-len(prices):], color="green", label='SMA(7)')
plt.plot(label, sma13[-len(prices):], color="red", label='SMA(13)')
plt.plot(label, macd[-len(prices):], color="cyan", linestyle="--", label='MACD')