Skip to content

Commit

Permalink
cryptub
Browse files Browse the repository at this point in the history
  • Loading branch information
Akhil authored and Akhil committed May 9, 2020
1 parent 30492a6 commit 32f9de9
Show file tree
Hide file tree
Showing 306 changed files with 127,820 additions and 0 deletions.
1 change: 1 addition & 0 deletions Current Todo.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
1) check out the merge
Binary file added LoFi_Mockups.pdf
Binary file not shown.
19 changes: 19 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Cryptocurrency Trading Software

We will create an automated cryptocurrency trading application that will be automatically buy and sell different cryptocurrencies on the Binace marketplace using the Binance API. We will incorperate many alogorithms to make trading more profitable and efficient. Some of the simple algorithms that we will incorperate into this software application will be stop losses (buy/sell when the cryptocurrency falls below a certain price), limit orders (buy/sell when it rises above a certain price). We will also be incorperating an arbitrage strategy which will essentially be finding the most profitable path between multiple exchanges in order to earn the most amount of money (hint graphs and dijkstras). Another feature of our software will be using NLP to analyze text data from investor relations hearings and/or expert reports in order to find valuable information on whether or not to buy or sell a given coin. (this will be using a similar ranking algorithm from autocorrect, we will also update the weight of each expert, hint, The expert problem) There are many other algorothms we hope to implement into our trading software that will make our algorithms more suited for dealing with the cryptocurrency market.

Some of the data structures we will implement include directed graphs for arbitrage monitoring, maps for the NLP tasks and trees for the experts problem.

We will primarily be using Java to build the application backend. To link it with the application frontend, we will be using javascript. On the frontend we will use bootstrap and react to create an exception, realtime application. The website will also include user functionality in which users are allowed to create accounts and update their profiles with information they deem important to the success of their trading profile.
# Discovery Engine
Another project that we can possibly create a discovery engine for tracking recent trends and areas of innovation. We would be able to track which areas are rife for opportunity using a compilation of google trends data and google searches and output to the user which areas have experienced high growth but have not yet reached a bigger audience. This could come into play into many applications. One example is for entrepreneurs looking to find which new ideas to work on in order to catch onto a growing trend that consumers want. This type of discovery engine could also be used for discovering new songs, etc. The algorithms in this idea would track the greatest rate of change in popularity of several general topics. The algorithm can also track how "deep" in a topic that this article is and use a variety of factors to determine the weight put on the page. For instance if the query is related to fashion chances are that the user would prefer to first see global and large fashion trends and as they query further are shown more niche topics.

As with the previous project, Java will be used to build the backend, and Javascript, Node.js, react, bootstrap, to build the frontend. The GUI can also feature user functionality.
# Auto song mixing application
Another project idea is to create a music transition application that creates seamless transitions between any number of songs. The algorithm will use a deep learning GAN trained on a database of songs in order to expertly create transitions that match the pace, style and bpm of different songs. The application would have to use some sort of learning protocols in order to build on the data and the projects algorithms will deal with splicing the correct data of the songs and feeding them to the learning unit. This algorithm although subjective would have to have to deal with transfering audio files to reasonale data that our GAN can interpret.

As with the previous project, Java will be used to build the backend, and Javascript, Node.js, react, bootstrap, to build the frontend. The GUI can also feature realtime mixing of uploaded songs so as to give the user a more interactive GUI.

We were thinking of creating a web based GUI that allows users to view their transition matching take place in front of them.

Our team comes from many different backgrounds. Two of our team members have experience working with machine learning and deep learning models and this will come in hand when we will incorperate NLP into our software. Three of our team members have experience working with web applications and this will be useful in creating an exception user interface and user experience. Finally we have a person on our team who has mutiple years of experience in the cryptocurrency market and understands the limitations of Binance and the Binance API. One of our weaknesses include incorperating all the various parts of the project that can be combined to convey information to the user on the frontend. We will be meeting up quite frequently in order to ensure that all componenets of the application match up as expected and all team members are on track.
Binary file added Term Project Specifications.pdf
Binary file not shown.
197 changes: 197 additions & 0 deletions config/cs32_checks.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,197 @@
<?xml version="1.0"?>
<!DOCTYPE module PUBLIC
"-//Puppy Crawl//DTD Check Configuration 1.3//EN"
"http://www.puppycrawl.com/dtds/configuration_1_3.dtd">

<!--
Checkstyle configuration that checks the coding conventions from:
- the Java Language Specification at
http://java.sun.com/docs/books/jls/second_edition/html/index.html
- the Sun Code Conventions at http://java.sun.com/docs/codeconv/
- the Javadoc guidelines at
http://java.sun.com/j2se/javadoc/writingdoccomments/index.html
- the JDK Api documentation http://java.sun.com/j2se/docs/api/index.html
- some best practices
- changes for cs32 are marked CS32
Checkstyle is very configurable. Be sure to read the documentation at
http://checkstyle.sf.net (or in your downloaded distribution).
Most Checks are configurable, be sure to consult the documentation.
To completely disable a check, just comment it out or delete it from the file.
Finally, it is worth reading the documentation.
-->

<module name="Checker">
<!--
If you set the basedir property below, then all reported file
names will be relative to the specified directory. See
http://checkstyle.sourceforge.net/5.x/config.html#Checker
<property name="basedir" value="${basedir}"/>
-->

<!-- Checks that a package-info.java file exists for each package. -->
<!-- See http://checkstyle.sf.net/config_javadoc.html#JavadocPackage -->
<!-- <module name="JavadocPackage"/> -->

<!-- Checks whether files end with a new line. -->
<!-- See http://checkstyle.sf.net/config_misc.html#NewlineAtEndOfFile -->
<module name="NewlineAtEndOfFile"/>

<!-- Checks that property files contain the same keys. -->
<!-- See http://checkstyle.sf.net/config_misc.html#Translation -->
<module name="Translation"/>

<!-- Checks for Size Violations. -->
<!-- See http://checkstyle.sf.net/config_sizes.html -->
<module name="FileLength"/>

<!-- Checks for whitespace -->
<!-- See http://checkstyle.sf.net/config_whitespace.html -->
<module name="FileTabCharacter"/>

<!-- Miscellaneous other checks. -->
<!-- See http://checkstyle.sf.net/config_misc.html -->
<module name="RegexpSingleline">
<property name="format" value="\s+$"/>
<property name="minimum" value="0"/>
<property name="maximum" value="0"/>
<property name="message" value="Line has trailing spaces."/>
</module>

<!-- Checks for Headers -->
<!-- See http://checkstyle.sf.net/config_header.html -->
<!-- <module name="Header"> -->
<!-- <property name="headerFile" value="${checkstyle.header.file}"/> -->
<!-- <property name="fileExtensions" value="java"/> -->
<!-- </module> -->

<module name="TreeWalker">

<!-- Checks for Javadoc comments. -->
<!-- See http://checkstyle.sf.net/config_javadoc.html -->
<module name="JavadocMethod">
<property name="scope" value="public"/>
</module>
<module name="JavadocType"/>
<!-- <module name="JavadocVariable"/> -->
<module name="JavadocStyle"/>


<!-- Checks for Naming Conventions. -->
<!-- See http://checkstyle.sf.net/config_naming.html -->
<module name="ConstantName"/>
<module name="LocalFinalVariableName"/>
<module name="LocalVariableName"/>
<module name="MemberName"/>
<module name="MethodName"/>
<module name="PackageName"/>
<module name="ParameterName"/>
<module name="StaticVariableName"/>
<module name="TypeName"/>


<!-- Checks for imports -->
<!-- See http://checkstyle.sf.net/config_import.html -->
<module name="AvoidStarImport"/>
<module name="IllegalImport"/> <!-- defaults to sun.* packages -->
<module name="RedundantImport"/>
<module name="UnusedImports"/>
<!-- <module name="ImportOrder">
<property name="groups" value="/^javax?\./,org,com"/>
<property name="separated" value="true"/>
<property name="option" value="bottom"/>
</module> -->


<!-- Checks for Size Violations. -->
<!-- See http://checkstyle.sf.net/config_sizes.html -->
<module name="LineLength"/>
<module name="MethodLength"/>
<module name="ParameterNumber"/>


<!-- Checks for whitespace -->
<!-- See http://checkstyle.sf.net/config_whitespace.html -->
<module name="EmptyForIteratorPad"/>
<module name="GenericWhitespace"/>
<module name="MethodParamPad"/>
<module name="NoWhitespaceAfter"/>
<module name="NoWhitespaceBefore"/>
<module name="OperatorWrap"/>
<module name="ParenPad"/>
<module name="TypecastParenPad"/>
<module name="WhitespaceAfter"/>
<module name="WhitespaceAround"/>

<!-- not available? <module name="SeparatorWrap"/> -->


<!-- Modifier Checks -->
<!-- See http://checkstyle.sf.net/config_modifiers.html -->
<module name="ModifierOrder"/>
<module name="RedundantModifier"/>


<!-- Checks for blocks. You know, those {}'s -->
<!-- See http://checkstyle.sf.net/config_blocks.html -->
<module name="AvoidNestedBlocks"/>
<module name="EmptyBlock"/>
<module name="LeftCurly"/>
<module name="NeedBraces"/>
<module name="RightCurly"/>


<!-- Checks for common coding problems -->
<!-- See http://checkstyle.sf.net/config_coding.html -->
<!-- CS32 <module name="AvoidInlineConditionals"/> -->
<module name="EmptyStatement"/>
<module name="EqualsHashCode"/>
<module name="HiddenField">
<property name="ignoreConstructorParameter" value="true"/>
<property name="ignoreSetter" value="true"/>
</module>
<module name="IllegalInstantiation"/>
<module name="InnerAssignment"/>
<module name="MagicNumber">
<property name="ignoreNumbers" value="-1,0,1,2,3,4,5,6,200,400,401,403,404,405,500,501"/>
</module>
<module name="MissingSwitchDefault"/>
<module name="SimplifyBooleanExpression"/>
<module name="SimplifyBooleanReturn"/>

<!-- Checks for class design -->
<!-- See http://checkstyle.sf.net/config_design.html -->
<!-- CS32 <module name="DesignForExtension"/> -->
<module name="FinalClass"/>
<module name="HideUtilityClassConstructor"/>
<module name="InterfaceIsType"/>
<module name="VisibilityModifier"/>


<!-- Miscellaneous other checks. -->
<!-- See http://checkstyle.sf.net/config_misc.html -->
<module name="ArrayTypeStyle"/>
<!-- <module name="FinalParameters"/> -->
<module name="TodoComment"/>
<module name="UpperEll"/>
<module name="Indentation">
<property name="basicOffset" value="2"/>
<property name="caseIndent" value="2"/>
<property name="throwsIndent" value="2"/>
</module>

</module>

</module>
Binary file added data/db.sqlite3
Binary file not shown.
Binary file added data/sqlite3.exe
Binary file not shown.
Binary file added jars/binance-api-client-1.0.0.jar
Binary file not shown.
Binary file added jars/retrofit-2.5.0.jar
Binary file not shown.
Loading

0 comments on commit 32f9de9

Please sign in to comment.