Metadata-Version: 2.1
Name: stocktrainer
Version: 0.0.9
Summary: Stock environment for training machine learning agents
Home-page: https://github.com/dasante78/StockTrainer
Author: Daniel Prakah-Asante
Author-email: doprakah@mit.edu
License: UNKNOWN
Keywords: USEFULL,STOCKS,MACHINE LEARNING,AI,ARTIFICAL INTELLIGENCE
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Build Tools
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Description-Content-Type: text/markdown
Requires-Dist: pandas
Requires-Dist: numpy
Requires-Dist: datetime
Requires-Dist: pandas-datareader

# StockTrainer: Stock Environment for Human
## StockTrainer: Stocks Made Easy

StockTrainer is high level API data generator for training python machine learning models on stock/cryptocurrency data and is capable of running with Keras, Tensorflow, sklearn, and many other machine learning APIs

Capabilities:

- Predict day to day stock prices
- Use multiple days to predict next stock price
- Predict succeeding stock prices over multiple days
- Train a reinforcement learning agent to simulate stock trades


Documentation available soon ;)

StockTrainer is compatible with: Python 3.6+

## Getting Started
The core of algorithm is the model, here is a simple LSTM model to based on 5 days of stock data to predict the next day

	import keras
	import numpy as np
	from keras.models import Sequential
	from keras.layers import Dropout ,BatchNormalization, LSTM, Dense 


	model = Sequential()
	#input shape 5 days of data 
	#each day has 6 data points (open, close, high , low volums, adj CLose)
	model.add(BatchNormalization(input_shape=(5, 6)))#batchnorm bc high values
    model.add(LSTM(512, return_sequences=True, activation='relu'))
    model.add(Dropout(0.2))
    model.add(Dense(512, activation='relu'))
	model.add(Dense(128, activation='relu'))	
    model.add(Dense(1, activation='relu'))

    model.compile(loss='mse', optimizer='adam')

Next import StockTrainer and create your environment

    from StockTrainer import Env
    environment = Env("Standard", "AAPL")

Time to collect your data to train!!!

	test_percent =.30
	shuffle =True
	start_date ='2003-01-01'
	end_date='now'
	agent_memory = 5
	seed = 42
	trainx,testx,trainy, testy = environment.train_test(
      test_percent= test_percent, shuffle = shuffle, start_date=start_date, 
      end_date=end_date, agent_memory=agent_memory, seed=seed)

Futher information on parameters in Documentation 


That's it now train and test your model

	#fit model
    model.fit(trainx, trainy, epochs=10, batch_size=128, verbose=2)
    model.save('model.h5')

    #evaluate model
    model.evaluate(testx,testy )
    #use model to predict
    model.predict(testx)

More examples on samples folder in github

## Installation

Using pip

	pip install StockTrainer

or download directly: [https://pypi.org/project/StockTrainer/](https://pypi.org/project/StockTrainer/ "install") 


