Skip to content

Instantly share code, notes, and snippets.

@liambarstad
Last active December 22, 2017 18:20
Show Gist options
  • Save liambarstad/355610d67531141f3c5167cc90d13032 to your computer and use it in GitHub Desktop.
Save liambarstad/355610d67531141f3c5167cc90d13032 to your computer and use it in GitHub Desktop.
Personal Project Mod 3 #3
## DataFiend
### Pitch:
It will be the goal of this project to successfully create a extensible neural network that can analyze and predict market trends across multiple currencies.
### Project Management:
Pivotal tracker will be used to monitor iterations and gague the progress of the application.
### Features: (in chronological order)
+ Linear Regression Engine ->
based on the R-squared value of data points in a scatter plot, it will program bots with the intention of finding the right Beta value for any given cross section of a price graph. This will be used to create the most apt continuous function that describes a set of data points for further use.
+ Sales Engine ->
will churn out iterations of a bot that can knows best when to initiate transactions, and when to best buy or sell assets during the course of a transaction to maximize profit. This should be a parent class extensible to other areas of the network as more features are added. Adding a feature should be the same as adding an extra ingredient in the proverbial cake. The bot should adjust the amount of that ingredient logarithmically until the best recipe is made.
+ Multiple Linear Regression Engine ->
a factory that will make bots designed to seek out other trends that are similar (or not, who knows?) in the event that another investment needs to made during the time of a trade to mitigate losses or maximize profit.
+ Data Engine ->
will output random data collections upon request from higher functions
+ Fourier Engine ->
A factory designed to make bots, without violating SRP, that do one of two things:
FE1. Reverse fourier transform a data curve to output a set of possible constituent parts, which here will include amplitude and speed. However, DFT, the standard algorithm used to use the fourier transformation, might work differently than the transformation does in the textbooks.
FE2. Put together datasets, or multiple data sets, in such a way to make novel correlations between the data and the linearly regressed function curves
+ SocioFiend (extension) ->
A separate application and neural net that will fetch data from the zeitgeist (internet) and push the data into the DataFiend Data Engine. I will almost definitely not get to this part in the given time frame.
SocioFiend features:
+ External services -> A thesaurus and dictionary API, and/or Watson, to determine similarities between words and phrases and best abstract their connotations through machine learning.
+ Web page content analyzer
+ Web page path analyzer (higher level)
+ Data formatter
### Hierarchy:
DataFiend
|
SalesEngine SocioFiend
              / \ | \
/ \ | WebPageFinder
    MultLinRegEngine FourierEngine | \
////// \ \ | WebPageAnalyzer <--- can test sociological principles here
LinearRegressionEngine(s)   FE1 FE2 | \ \
                  \\\\\\   / \ | Watson Dictionary/Thesaurus
APIHandler/TestData DataEngine
/ \ \ \
Coinbase TDAmeritrade TWS Kaggle/GoogleData <- whatever I can get my hands on
### Iterations:
+ Iteration 0: Xmas break
- reach out to mentors
- python practice, excercism, list methods, practice creating classes
- pseudocode
- django app set up
- testing framework (potentially gherkin if there's no alternative closer to RSpec)
- Coinbase API
- Freelancer API (I signed an NDA for this one)
- research metaprogramming in python, adding and removing classes with methods and variables from global namespace
- linear regression bot and tests (singular instance with programmable values)
- linear regression engine
+ Iteration 1: week 1
- more python practice
- research DFT
- sales engine, using linear regression
- multiple linear regression engine
- TD Ameritrade API
- TWS API
- start work on adding multiple linear regression to the sales engine
+ Iteration 2: week 2
- add multiple linear regression to sales engine
--------------------MVP----------------------------------
- take a second to really plan out the Fourier engine
- Fourier engine pt. 1
- Fourier engine pt. 2
- start work on data engine
+ Iteration 3: MOD 3 - 4 break week
- finish data engine
- add control panel, ability to direct bot in the name of science
- pseudocode SocioFiend
+ Iteration 4:
- SocioFiend
- ????
- profit
### Finished Product
The eventual finished product should have a staging application to create new bots based on new data, compared against their strongest predecessor, and a production application where the bots are run and replaced on an interval. Sociofiend should work the same way, as web pages fluctuate heavily in relevance based on traffic.
Please let me do this - Liam
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment