Compare commits
10 Commits
ae8d75da25
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5c08182aad | ||
|
|
055ada2766 | ||
|
|
1c330ae177 | ||
|
|
95bdeee9e2 | ||
|
|
ccd1d53715 | ||
|
|
be7eaff10a | ||
|
|
e6b677ee0e | ||
|
|
8adbe96dca | ||
|
|
942e6081b2 | ||
|
|
a226033d21 |
12
.idea/crypto-prediction.iml
generated
Normal file
12
.idea/crypto-prediction.iml
generated
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<module type="PYTHON_MODULE" version="4">
|
||||||
|
<component name="NewModuleRootManager">
|
||||||
|
<content url="file://$MODULE_DIR$" />
|
||||||
|
<orderEntry type="jdk" jdkName="Python 3.5.2 virtualenv at C:\Users\det\64bitpython" jdkType="Python SDK" />
|
||||||
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
|
</component>
|
||||||
|
<component name="TestRunnerService">
|
||||||
|
<option name="projectConfiguration" value="Nosetests" />
|
||||||
|
<option name="PROJECT_TEST_RUNNER" value="Nosetests" />
|
||||||
|
</component>
|
||||||
|
</module>
|
||||||
15
.idea/inspectionProfiles/Project_Default.xml
generated
Normal file
15
.idea/inspectionProfiles/Project_Default.xml
generated
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
<component name="InspectionProjectProfileManager">
|
||||||
|
<profile version="1.0">
|
||||||
|
<option name="myName" value="Project Default" />
|
||||||
|
<inspection_tool class="PyCompatibilityInspection" enabled="true" level="WARNING" enabled_by_default="true">
|
||||||
|
<option name="ourVersions">
|
||||||
|
<value>
|
||||||
|
<list size="2">
|
||||||
|
<item index="0" class="java.lang.String" itemvalue="2.7" />
|
||||||
|
<item index="1" class="java.lang.String" itemvalue="3.6" />
|
||||||
|
</list>
|
||||||
|
</value>
|
||||||
|
</option>
|
||||||
|
</inspection_tool>
|
||||||
|
</profile>
|
||||||
|
</component>
|
||||||
7
.idea/misc.xml
generated
Normal file
7
.idea/misc.xml
generated
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.5.2 virtualenv at C:\Users\det\64bitpython" project-jdk-type="Python SDK" />
|
||||||
|
<component name="PythonCompatibilityInspectionAdvertiser">
|
||||||
|
<option name="version" value="2" />
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
8
.idea/modules.xml
generated
Normal file
8
.idea/modules.xml
generated
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectModuleManager">
|
||||||
|
<modules>
|
||||||
|
<module fileurl="file://$PROJECT_DIR$/.idea/crypto-arbitrage-bot.iml" filepath="$PROJECT_DIR$/.idea/crypto-arbitrage-bot.iml" />
|
||||||
|
</modules>
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
6
.idea/vcs.xml
generated
Normal file
6
.idea/vcs.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="VcsDirectoryMappings">
|
||||||
|
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
632
.idea/workspace.xml
generated
632
.idea/workspace.xml
generated
@@ -1,11 +1,9 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="ChangeListManager">
|
<component name="ChangeListManager">
|
||||||
<list default="true" id="6f37b47a-0ca7-46ea-a0fe-3607d36927b6" name="Default" comment="">
|
<list default="true" id="6f37b47a-0ca7-46ea-a0fe-3607d36927b6" name="Default" comment="Added Kraken support">
|
||||||
|
<change type="MOVED" beforePath="$PROJECT_DIR$/.idea/crypto-arbitrage-bot.iml" afterPath="$PROJECT_DIR$/.idea/crypto-prediction.iml" />
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/bot/core.py" afterPath="$PROJECT_DIR$/bot/core.py" />
|
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/bot/market_data_crawler.py" afterPath="$PROJECT_DIR$/bot/market_data_crawler.py" />
|
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/requirements.txt" afterPath="$PROJECT_DIR$/requirements.txt" />
|
|
||||||
</list>
|
</list>
|
||||||
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
|
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
|
||||||
<option name="TRACKING_ENABLED" value="true" />
|
<option name="TRACKING_ENABLED" value="true" />
|
||||||
@@ -15,27 +13,7 @@
|
|||||||
<option name="LAST_RESOLUTION" value="IGNORE" />
|
<option name="LAST_RESOLUTION" value="IGNORE" />
|
||||||
</component>
|
</component>
|
||||||
<component name="FileEditorManager">
|
<component name="FileEditorManager">
|
||||||
<leaf>
|
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
|
||||||
<file leaf-file-name="Makefile" pinned="false" current-in-tab="false">
|
|
||||||
<entry file="file://$PROJECT_DIR$/Makefile">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="0">
|
|
||||||
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
<file leaf-file-name="LICENSE" pinned="false" current-in-tab="false">
|
|
||||||
<entry file="file://$PROJECT_DIR$/LICENSE">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="0">
|
|
||||||
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
<file leaf-file-name="test_basic.py" pinned="false" current-in-tab="false">
|
<file leaf-file-name="test_basic.py" pinned="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/tests/test_basic.py">
|
<entry file="file://$PROJECT_DIR$/tests/test_basic.py">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
@@ -48,33 +26,13 @@
|
|||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
</file>
|
</file>
|
||||||
<file leaf-file-name="__init__.py" pinned="false" current-in-tab="false">
|
<file leaf-file-name="core.py" pinned="false" current-in-tab="true">
|
||||||
<entry file="file://$PROJECT_DIR$/tests/__init__.py">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="0">
|
|
||||||
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
<file leaf-file-name="__init__.py" pinned="false" current-in-tab="false">
|
|
||||||
<entry file="file://$PROJECT_DIR$/bot/__init__.py">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="0">
|
|
||||||
<caret line="0" column="18" lean-forward="false" selection-start-line="0" selection-start-column="18" selection-end-line="0" selection-end-column="18" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
<file leaf-file-name="core.py" pinned="false" current-in-tab="false">
|
|
||||||
<entry file="file://$PROJECT_DIR$/bot/core.py">
|
<entry file="file://$PROJECT_DIR$/bot/core.py">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="0">
|
<state relative-caret-position="187">
|
||||||
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="17" />
|
<caret line="11" column="28" lean-forward="false" selection-start-line="11" selection-start-column="28" selection-end-line="11" selection-end-column="28" />
|
||||||
<folding>
|
<folding>
|
||||||
<element signature="e#18#51#0" expanded="true" />
|
<element signature="e#18#29#0" expanded="true" />
|
||||||
</folding>
|
</folding>
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
@@ -90,35 +48,71 @@
|
|||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
</file>
|
</file>
|
||||||
<file leaf-file-name="test_advanced.py" pinned="false" current-in-tab="false">
|
<file leaf-file-name="shared_config.py" pinned="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/tests/test_advanced.py">
|
<entry file="file://$PROJECT_DIR$/bot/shared_config.py">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="272">
|
<state relative-caret-position="238">
|
||||||
<caret line="16" column="0" lean-forward="false" selection-start-line="16" selection-start-column="0" selection-end-line="16" selection-end-column="0" />
|
<caret line="14" column="31" lean-forward="false" selection-start-line="14" selection-start-column="31" selection-end-line="14" selection-end-column="31" />
|
||||||
<folding>
|
<folding />
|
||||||
<element signature="e#25#49#0" expanded="true" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
</file>
|
</file>
|
||||||
<file leaf-file-name="market_data_crawler.py" pinned="false" current-in-tab="true">
|
<file leaf-file-name="__init__.py" pinned="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/bot/market_data_crawler.py">
|
<entry file="file://$PROJECT_DIR$/bot/__init__.py">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="269">
|
<state relative-caret-position="0">
|
||||||
<caret line="22" column="11" lean-forward="true" selection-start-line="22" selection-start-column="11" selection-end-line="22" selection-end-column="11" />
|
<caret line="0" column="18" lean-forward="false" selection-start-line="0" selection-start-column="18" selection-end-line="0" selection-end-column="18" />
|
||||||
<folding>
|
<folding />
|
||||||
<element signature="e#19#60#0" expanded="true" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
</file>
|
</file>
|
||||||
<file leaf-file-name="requirements.txt" pinned="false" current-in-tab="false">
|
<file leaf-file-name="__init__.py" pinned="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/requirements.txt">
|
<entry file="file://$PROJECT_DIR$/tests/__init__.py">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="34">
|
<state relative-caret-position="0">
|
||||||
<caret line="2" column="7" lean-forward="true" selection-start-line="2" selection-start-column="7" selection-end-line="2" selection-end-column="7" />
|
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file leaf-file-name="conf.py" pinned="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/docs/conf.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="575">
|
||||||
|
<caret line="42" column="39" lean-forward="false" selection-start-line="42" selection-start-column="39" selection-end-line="42" selection-end-column="39" />
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file leaf-file-name="index.rst" pinned="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/docs/index.rst">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="0">
|
||||||
|
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file leaf-file-name="make.bat" pinned="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/docs/make.bat">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="0">
|
||||||
|
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file leaf-file-name="Makefile" pinned="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/docs/Makefile">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="0">
|
||||||
|
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
@@ -133,6 +127,14 @@
|
|||||||
</list>
|
</list>
|
||||||
</option>
|
</option>
|
||||||
</component>
|
</component>
|
||||||
|
<component name="FindInProjectRecents">
|
||||||
|
<findStrings>
|
||||||
|
<find>bids</find>
|
||||||
|
<find>order_book</find>
|
||||||
|
<find>symbol</find>
|
||||||
|
<find>ask</find>
|
||||||
|
</findStrings>
|
||||||
|
</component>
|
||||||
<component name="Git.Settings">
|
<component name="Git.Settings">
|
||||||
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
||||||
</component>
|
</component>
|
||||||
@@ -142,24 +144,51 @@
|
|||||||
<option value="$PROJECT_DIR$/__init__.py" />
|
<option value="$PROJECT_DIR$/__init__.py" />
|
||||||
<option value="$PROJECT_DIR$/README.md" />
|
<option value="$PROJECT_DIR$/README.md" />
|
||||||
<option value="$PROJECT_DIR$/__main__.py" />
|
<option value="$PROJECT_DIR$/__main__.py" />
|
||||||
<option value="$PROJECT_DIR$/README.rst" />
|
|
||||||
<option value="$PROJECT_DIR$/LICENSE" />
|
<option value="$PROJECT_DIR$/LICENSE" />
|
||||||
<option value="$PROJECT_DIR$/bot/__init__.py" />
|
<option value="$PROJECT_DIR$/bot/__init__.py" />
|
||||||
<option value="$PROJECT_DIR$/tests/context.py" />
|
<option value="$PROJECT_DIR$/tests/context.py" />
|
||||||
<option value="$PROJECT_DIR$/tests/test_advanced.py" />
|
<option value="$PROJECT_DIR$/tests/test_advanced.py" />
|
||||||
<option value="$PROJECT_DIR$/bot/market_data.py" />
|
<option value="$PROJECT_DIR$/bot/market_data.py" />
|
||||||
<option value="$PROJECT_DIR$/requirements.txt" />
|
<option value="$PROJECT_DIR$/bot/arbitrage_pairs.py" />
|
||||||
<option value="$PROJECT_DIR$/bot/core.py" />
|
<option value="$PROJECT_DIR$/market_data.txt" />
|
||||||
|
<option value="$PROJECT_DIR$/bot/market_data_analyzer.py" />
|
||||||
<option value="$PROJECT_DIR$/bot/market_data_crawler.py" />
|
<option value="$PROJECT_DIR$/bot/market_data_crawler.py" />
|
||||||
|
<option value="$PROJECT_DIR$/market_analyzation.txt" />
|
||||||
|
<option value="$PROJECT_DIR$/requirements.txt" />
|
||||||
|
<option value="$PROJECT_DIR$/bot/shared_config.py" />
|
||||||
|
<option value="$PROJECT_DIR$/bot/core.py" />
|
||||||
|
<option value="$PROJECT_DIR$/README.rst" />
|
||||||
|
<option value="$PROJECT_DIR$/setup.py" />
|
||||||
|
<option value="$PROJECT_DIR$/docs/conf.py" />
|
||||||
</list>
|
</list>
|
||||||
</option>
|
</option>
|
||||||
</component>
|
</component>
|
||||||
<component name="ProjectFrameBounds" extendedState="6">
|
<component name="ProjectFrameBounds" extendedState="6">
|
||||||
<option name="x" value="545" />
|
<option name="x" value="-8" />
|
||||||
<option name="y" value="78" />
|
<option name="y" value="-8" />
|
||||||
<option name="width" value="1405" />
|
<option name="width" value="2576" />
|
||||||
<option name="height" value="1056" />
|
<option name="height" value="1416" />
|
||||||
</component>
|
</component>
|
||||||
|
<component name="ProjectInspectionProfilesVisibleTreeState">
|
||||||
|
<entry key="Project Default">
|
||||||
|
<profile-state>
|
||||||
|
<expanded-state>
|
||||||
|
<State>
|
||||||
|
<id />
|
||||||
|
</State>
|
||||||
|
<State>
|
||||||
|
<id>Python</id>
|
||||||
|
</State>
|
||||||
|
</expanded-state>
|
||||||
|
<selected-state>
|
||||||
|
<State>
|
||||||
|
<id>PyCompatibilityInspection</id>
|
||||||
|
</State>
|
||||||
|
</selected-state>
|
||||||
|
</profile-state>
|
||||||
|
</entry>
|
||||||
|
</component>
|
||||||
|
<component name="ProjectLevelVcsManager" settingsEditedManually="true" />
|
||||||
<component name="ProjectView">
|
<component name="ProjectView">
|
||||||
<navigator currentView="ProjectPane" proportions="" version="1">
|
<navigator currentView="ProjectPane" proportions="" version="1">
|
||||||
<flattenPackages />
|
<flattenPackages />
|
||||||
@@ -175,26 +204,47 @@
|
|||||||
<foldersAlwaysOnTop value="true" />
|
<foldersAlwaysOnTop value="true" />
|
||||||
</navigator>
|
</navigator>
|
||||||
<panes>
|
<panes>
|
||||||
<pane id="Scope" />
|
|
||||||
<pane id="ProjectPane">
|
<pane id="ProjectPane">
|
||||||
<subPane>
|
<subPane>
|
||||||
<expand>
|
<expand>
|
||||||
<path>
|
<path>
|
||||||
<item name="crypto-arbitrage-bot" type="b2602c69:ProjectViewProjectNode" />
|
<item name="crypto-prediction" type="b2602c69:ProjectViewProjectNode" />
|
||||||
<item name="crypto-arbitrage-bot" type="462c0819:PsiDirectoryNode" />
|
<item name="crypto-tensor" type="462c0819:PsiDirectoryNode" />
|
||||||
</path>
|
</path>
|
||||||
<path>
|
<path>
|
||||||
<item name="crypto-arbitrage-bot" type="b2602c69:ProjectViewProjectNode" />
|
<item name="crypto-prediction" type="b2602c69:ProjectViewProjectNode" />
|
||||||
<item name="crypto-arbitrage-bot" type="462c0819:PsiDirectoryNode" />
|
<item name="crypto-tensor" type="462c0819:PsiDirectoryNode" />
|
||||||
<item name="bot" type="462c0819:PsiDirectoryNode" />
|
<item name="bot" type="462c0819:PsiDirectoryNode" />
|
||||||
</path>
|
</path>
|
||||||
|
<path>
|
||||||
|
<item name="crypto-prediction" type="b2602c69:ProjectViewProjectNode" />
|
||||||
|
<item name="crypto-tensor" type="462c0819:PsiDirectoryNode" />
|
||||||
|
<item name="dist" type="462c0819:PsiDirectoryNode" />
|
||||||
|
</path>
|
||||||
|
<path>
|
||||||
|
<item name="crypto-prediction" type="b2602c69:ProjectViewProjectNode" />
|
||||||
|
<item name="crypto-tensor" type="462c0819:PsiDirectoryNode" />
|
||||||
|
<item name="docs" type="462c0819:PsiDirectoryNode" />
|
||||||
|
</path>
|
||||||
</expand>
|
</expand>
|
||||||
<select />
|
<select />
|
||||||
</subPane>
|
</subPane>
|
||||||
</pane>
|
</pane>
|
||||||
<pane id="Scratches" />
|
<pane id="Scratches" />
|
||||||
|
<pane id="Scope" />
|
||||||
</panes>
|
</panes>
|
||||||
</component>
|
</component>
|
||||||
|
<component name="PropertiesComponent">
|
||||||
|
<property name="last_opened_file_path" value="$PROJECT_DIR$" />
|
||||||
|
<property name="run.code.analysis.last.selected.profile" value="pProject Default" />
|
||||||
|
<property name="settings.editor.selected.configurable" value="com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable" />
|
||||||
|
</component>
|
||||||
|
<component name="RecentsManager">
|
||||||
|
<key name="CopyFile.RECENT_KEYS">
|
||||||
|
<recent name="C:\Repos\priv\crypto-tensor\bot" />
|
||||||
|
<recent name="C:\Repos\priv\crypto-arbitrage-bot\bot" />
|
||||||
|
</key>
|
||||||
|
</component>
|
||||||
<component name="RunDashboard">
|
<component name="RunDashboard">
|
||||||
<option name="ruleStates">
|
<option name="ruleStates">
|
||||||
<list>
|
<list>
|
||||||
@@ -207,6 +257,98 @@
|
|||||||
</list>
|
</list>
|
||||||
</option>
|
</option>
|
||||||
</component>
|
</component>
|
||||||
|
<component name="RunManager">
|
||||||
|
<configuration default="true" type="tests" factoryName="Doctests">
|
||||||
|
<option name="INTERPRETER_OPTIONS" value="" />
|
||||||
|
<option name="PARENT_ENVS" value="true" />
|
||||||
|
<envs />
|
||||||
|
<option name="SDK_HOME" value="" />
|
||||||
|
<option name="WORKING_DIRECTORY" value="" />
|
||||||
|
<option name="IS_MODULE_SDK" value="false" />
|
||||||
|
<option name="ADD_CONTENT_ROOTS" value="true" />
|
||||||
|
<option name="ADD_SOURCE_ROOTS" value="true" />
|
||||||
|
<module name="crypto-arbitrage-bot" />
|
||||||
|
<option name="SCRIPT_NAME" value="" />
|
||||||
|
<option name="CLASS_NAME" value="" />
|
||||||
|
<option name="METHOD_NAME" value="" />
|
||||||
|
<option name="FOLDER_NAME" value="" />
|
||||||
|
<option name="TEST_TYPE" value="TEST_SCRIPT" />
|
||||||
|
<option name="PATTERN" value="" />
|
||||||
|
<option name="USE_PATTERN" value="false" />
|
||||||
|
</configuration>
|
||||||
|
<configuration default="true" type="tests" factoryName="Nosetests">
|
||||||
|
<option name="INTERPRETER_OPTIONS" value="" />
|
||||||
|
<option name="PARENT_ENVS" value="true" />
|
||||||
|
<envs />
|
||||||
|
<option name="SDK_HOME" value="" />
|
||||||
|
<option name="WORKING_DIRECTORY" value="" />
|
||||||
|
<option name="IS_MODULE_SDK" value="false" />
|
||||||
|
<option name="ADD_CONTENT_ROOTS" value="true" />
|
||||||
|
<option name="ADD_SOURCE_ROOTS" value="true" />
|
||||||
|
<module name="crypto-arbitrage-bot" />
|
||||||
|
<option name="_new_regexPattern" value="""" />
|
||||||
|
<option name="_new_additionalArguments" value="""" />
|
||||||
|
<option name="_new_target" value="""" />
|
||||||
|
<option name="_new_targetType" value=""PATH"" />
|
||||||
|
</configuration>
|
||||||
|
<configuration default="true" type="PythonConfigurationType" factoryName="Python">
|
||||||
|
<option name="INTERPRETER_OPTIONS" value="" />
|
||||||
|
<option name="PARENT_ENVS" value="true" />
|
||||||
|
<envs>
|
||||||
|
<env name="PYTHONUNBUFFERED" value="1" />
|
||||||
|
</envs>
|
||||||
|
<option name="SDK_HOME" value="" />
|
||||||
|
<option name="WORKING_DIRECTORY" value="" />
|
||||||
|
<option name="IS_MODULE_SDK" value="false" />
|
||||||
|
<option name="ADD_CONTENT_ROOTS" value="true" />
|
||||||
|
<option name="ADD_SOURCE_ROOTS" value="true" />
|
||||||
|
<module name="crypto-arbitrage-bot" />
|
||||||
|
<option name="SCRIPT_NAME" value="" />
|
||||||
|
<option name="PARAMETERS" value="" />
|
||||||
|
<option name="SHOW_COMMAND_LINE" value="false" />
|
||||||
|
<option name="EMULATE_TERMINAL" value="false" />
|
||||||
|
</configuration>
|
||||||
|
<configuration default="true" type="Tox" factoryName="Tox">
|
||||||
|
<option name="INTERPRETER_OPTIONS" value="" />
|
||||||
|
<option name="PARENT_ENVS" value="true" />
|
||||||
|
<envs />
|
||||||
|
<option name="SDK_HOME" value="" />
|
||||||
|
<option name="WORKING_DIRECTORY" value="" />
|
||||||
|
<option name="IS_MODULE_SDK" value="false" />
|
||||||
|
<option name="ADD_CONTENT_ROOTS" value="true" />
|
||||||
|
<option name="ADD_SOURCE_ROOTS" value="true" />
|
||||||
|
<module name="crypto-arbitrage-bot" />
|
||||||
|
</configuration>
|
||||||
|
<configuration default="true" type="tests" factoryName="Unittests">
|
||||||
|
<option name="INTERPRETER_OPTIONS" value="" />
|
||||||
|
<option name="PARENT_ENVS" value="true" />
|
||||||
|
<envs />
|
||||||
|
<option name="SDK_HOME" value="" />
|
||||||
|
<option name="WORKING_DIRECTORY" value="" />
|
||||||
|
<option name="IS_MODULE_SDK" value="false" />
|
||||||
|
<option name="ADD_CONTENT_ROOTS" value="true" />
|
||||||
|
<option name="ADD_SOURCE_ROOTS" value="true" />
|
||||||
|
<module name="crypto-arbitrage-bot" />
|
||||||
|
<option name="_new_additionalArguments" value="""" />
|
||||||
|
<option name="_new_target" value="""" />
|
||||||
|
<option name="_new_targetType" value=""PATH"" />
|
||||||
|
</configuration>
|
||||||
|
<configuration default="true" type="tests" factoryName="py.test">
|
||||||
|
<option name="INTERPRETER_OPTIONS" value="" />
|
||||||
|
<option name="PARENT_ENVS" value="true" />
|
||||||
|
<envs />
|
||||||
|
<option name="SDK_HOME" value="" />
|
||||||
|
<option name="WORKING_DIRECTORY" value="" />
|
||||||
|
<option name="IS_MODULE_SDK" value="false" />
|
||||||
|
<option name="ADD_CONTENT_ROOTS" value="true" />
|
||||||
|
<option name="ADD_SOURCE_ROOTS" value="true" />
|
||||||
|
<module name="crypto-arbitrage-bot" />
|
||||||
|
<option name="_new_keywords" value="""" />
|
||||||
|
<option name="_new_additionalArguments" value="""" />
|
||||||
|
<option name="_new_target" value="""" />
|
||||||
|
<option name="_new_targetType" value=""PATH"" />
|
||||||
|
</configuration>
|
||||||
|
</component>
|
||||||
<component name="ShelveChangesManager" show_recycled="false">
|
<component name="ShelveChangesManager" show_recycled="false">
|
||||||
<option name="remove_strategy" value="false" />
|
<option name="remove_strategy" value="false" />
|
||||||
</component>
|
</component>
|
||||||
@@ -223,59 +365,41 @@
|
|||||||
<component name="ToolWindowManager">
|
<component name="ToolWindowManager">
|
||||||
<frame x="-8" y="-8" width="2576" height="1416" extended-state="6" />
|
<frame x="-8" y="-8" width="2576" height="1416" extended-state="6" />
|
||||||
<layout>
|
<layout>
|
||||||
<window_info id="Project" active="true" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.13554688" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
|
<window_info id="Project" active="true" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.15078124" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
|
||||||
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
|
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
|
||||||
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
|
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
|
||||||
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
|
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
|
||||||
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
|
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
|
||||||
<window_info id="Python Console" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
|
<window_info id="Python Console" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
|
||||||
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
||||||
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
|
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
|
||||||
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
|
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
|
||||||
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
|
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
|
||||||
<window_info id="Data View" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
|
<window_info id="Data View" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
|
||||||
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
|
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
|
||||||
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
|
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
|
||||||
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
||||||
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
||||||
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
|
||||||
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
|
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
|
||||||
|
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
|
||||||
|
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
||||||
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
||||||
</layout>
|
</layout>
|
||||||
</component>
|
</component>
|
||||||
<component name="VcsContentAnnotationSettings">
|
<component name="VcsContentAnnotationSettings">
|
||||||
<option name="myLimit" value="2678400000" />
|
<option name="myLimit" value="2678400000" />
|
||||||
</component>
|
</component>
|
||||||
|
<component name="VcsManagerConfiguration">
|
||||||
|
<MESSAGE value="Added Kraken support" />
|
||||||
|
<option name="LAST_COMMIT_MESSAGE" value="Added Kraken support" />
|
||||||
|
</component>
|
||||||
<component name="XDebuggerManager">
|
<component name="XDebuggerManager">
|
||||||
<breakpoint-manager />
|
<breakpoint-manager />
|
||||||
<watches-manager />
|
<watches-manager />
|
||||||
</component>
|
</component>
|
||||||
<component name="editorHistoryManager">
|
<component name="editorHistoryManager">
|
||||||
<entry file="file://$PROJECT_DIR$/__init__.py">
|
<entry file="file://$PROJECT_DIR$/bot/arbitrage_pairs.py" />
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<entry file="file://$PROJECT_DIR$/Makefile">
|
||||||
<state relative-caret-position="0">
|
|
||||||
<caret line="0" column="21" lean-forward="false" selection-start-line="0" selection-start-column="21" selection-end-line="0" selection-end-column="21" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/README.md">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="0">
|
|
||||||
<caret line="0" column="14" lean-forward="false" selection-start-line="0" selection-start-column="14" selection-end-line="0" selection-end-column="14" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/__main__.py">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="153">
|
|
||||||
<caret line="9" column="71" lean-forward="false" selection-start-line="9" selection-start-column="71" selection-end-line="9" selection-end-column="71" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/setup.py">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="0">
|
<state relative-caret-position="0">
|
||||||
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||||
@@ -283,15 +407,177 @@
|
|||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/README.rst">
|
<entry file="file://$PROJECT_DIR$/tests/test_basic.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="0">
|
||||||
|
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/tests/__init__.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="0">
|
||||||
|
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/bot/__init__.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="0">
|
||||||
|
<caret line="0" column="18" lean-forward="false" selection-start-line="0" selection-start-column="18" selection-end-line="0" selection-end-column="18" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/bot/market_data_analyzer.py" />
|
||||||
|
<entry file="file://$PROJECT_DIR$/tests/context.py">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="102">
|
<state relative-caret-position="102">
|
||||||
<caret line="6" column="0" lean-forward="false" selection-start-line="6" selection-start-column="0" selection-end-line="6" selection-end-column="0" />
|
<caret line="7" column="10" lean-forward="false" selection-start-line="7" selection-start-column="10" selection-end-line="7" selection-end-column="10" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/tests/test_advanced.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="238">
|
||||||
|
<caret line="16" column="0" lean-forward="false" selection-start-line="16" selection-start-column="0" selection-end-line="16" selection-end-column="0" />
|
||||||
|
<folding>
|
||||||
|
<element signature="e#25#49#0" expanded="true" />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/bot/market_data_crawler.py" />
|
||||||
|
<entry file="file://$PROJECT_DIR$/requirements.txt">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="34">
|
||||||
|
<caret line="2" column="7" lean-forward="false" selection-start-line="2" selection-start-column="7" selection-end-line="2" selection-end-column="7" />
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/MANIFEST.in">
|
<entry file="file://$PROJECT_DIR$/bot/core.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="153">
|
||||||
|
<caret line="15" column="39" lean-forward="true" selection-start-line="15" selection-start-column="39" selection-end-line="15" selection-end-column="39" />
|
||||||
|
<folding>
|
||||||
|
<element signature="e#18#29#0" expanded="true" />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/Makefile">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="0">
|
||||||
|
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/LICENSE">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="0">
|
||||||
|
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/tests/test_basic.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="0">
|
||||||
|
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/tests/__init__.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="0">
|
||||||
|
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/bot/__init__.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="0">
|
||||||
|
<caret line="0" column="18" lean-forward="false" selection-start-line="0" selection-start-column="18" selection-end-line="0" selection-end-column="18" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/bot/core.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="0">
|
||||||
|
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="17" />
|
||||||
|
<folding>
|
||||||
|
<element signature="e#18#29#0" expanded="true" />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/tests/context.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="102">
|
||||||
|
<caret line="7" column="10" lean-forward="false" selection-start-line="7" selection-start-column="10" selection-end-line="7" selection-end-column="10" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/tests/test_advanced.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="272">
|
||||||
|
<caret line="16" column="0" lean-forward="false" selection-start-line="16" selection-start-column="0" selection-end-line="16" selection-end-column="0" />
|
||||||
|
<folding>
|
||||||
|
<element signature="e#25#49#0" expanded="true" />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/requirements.txt">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="34">
|
||||||
|
<caret line="2" column="7" lean-forward="true" selection-start-line="2" selection-start-column="7" selection-end-line="2" selection-end-column="7" />
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/bot/market_data_crawler.py" />
|
||||||
|
<entry file="file://$PROJECT_DIR$/__init__.py" />
|
||||||
|
<entry file="file://$PROJECT_DIR$/README.md" />
|
||||||
|
<entry file="file://$PROJECT_DIR$/__main__.py" />
|
||||||
|
<entry file="file://$PROJECT_DIR$/bot/arbitrage_pairs.py" />
|
||||||
|
<entry file="file://$PROJECT_DIR$/market_data.txt" />
|
||||||
|
<entry file="file://$PROJECT_DIR$/bot/market_data_crawler.py" />
|
||||||
|
<entry file="file://$PROJECT_DIR$/bot/market_data_analyzer.py" />
|
||||||
|
<entry file="file://$PROJECT_DIR$/market_analyzation.txt" />
|
||||||
|
<entry file="file://$PROJECT_DIR$/sample.egg-info/dependency_links.txt">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="0">
|
||||||
|
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/sample.egg-info/PKG-INFO">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="0">
|
||||||
|
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/sample.egg-info/SOURCES.txt">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="102">
|
||||||
|
<caret line="6" column="14" lean-forward="true" selection-start-line="6" selection-start-column="14" selection-end-line="10" selection-end-column="29" />
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/sample.egg-info/top_level.txt">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="0">
|
||||||
|
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/.gitignore">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="0">
|
<state relative-caret-position="0">
|
||||||
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||||
@@ -307,25 +593,31 @@
|
|||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/tests/test_basic.py">
|
<entry file="file://$PROJECT_DIR$/README.rst">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="0">
|
<state relative-caret-position="51">
|
||||||
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
<caret line="3" column="37" lean-forward="false" selection-start-line="3" selection-start-column="37" selection-end-line="3" selection-end-column="37" />
|
||||||
<folding>
|
|
||||||
<element signature="e#25#49#0" expanded="true" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/bot/__init__.py">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="0">
|
|
||||||
<caret line="0" column="18" lean-forward="false" selection-start-line="0" selection-start-column="18" selection-end-line="0" selection-end-column="18" />
|
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/tests/__init__.py">
|
<entry file="file://$PROJECT_DIR$/requirements.txt">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="51">
|
||||||
|
<caret line="3" column="6" lean-forward="false" selection-start-line="3" selection-start-column="6" selection-end-line="3" selection-end-column="6" />
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/setup.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="425">
|
||||||
|
<caret line="25" column="0" lean-forward="true" selection-start-line="25" selection-start-column="0" selection-end-line="25" selection-end-column="0" />
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/MANIFEST.in">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="0">
|
<state relative-caret-position="0">
|
||||||
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||||
@@ -333,15 +625,7 @@
|
|||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/tests/context.py">
|
<entry file="file://$PROJECT_DIR$/Makefile">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="102">
|
|
||||||
<caret line="7" column="10" lean-forward="false" selection-start-line="7" selection-start-column="10" selection-end-line="7" selection-end-column="10" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/sample.egg-info/dependency_links.txt">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="0">
|
<state relative-caret-position="0">
|
||||||
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||||
@@ -359,25 +643,25 @@
|
|||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/bot/core.py">
|
<entry file="file://$PROJECT_DIR$/tests/test_basic.py">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="0">
|
<state relative-caret-position="0">
|
||||||
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="17" />
|
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||||
<folding>
|
<folding>
|
||||||
<element signature="e#18#51#0" expanded="true" />
|
<element signature="e#25#49#0" expanded="true" />
|
||||||
</folding>
|
</folding>
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/requirements.txt">
|
<entry file="file://$PROJECT_DIR$/tests/context.py">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="34">
|
<state relative-caret-position="102">
|
||||||
<caret line="2" column="7" lean-forward="true" selection-start-line="2" selection-start-column="7" selection-end-line="2" selection-end-column="7" />
|
<caret line="7" column="10" lean-forward="false" selection-start-line="7" selection-start-column="10" selection-end-line="7" selection-end-column="10" />
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/Makefile">
|
<entry file="file://$PROJECT_DIR$/tests/__init__.py">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="0">
|
<state relative-caret-position="0">
|
||||||
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||||
@@ -385,12 +669,60 @@
|
|||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/bot/market_data_crawler.py">
|
<entry file="file://$PROJECT_DIR$/docs/conf.py">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="269">
|
<state relative-caret-position="575">
|
||||||
<caret line="22" column="11" lean-forward="true" selection-start-line="22" selection-start-column="11" selection-end-line="22" selection-end-column="11" />
|
<caret line="42" column="39" lean-forward="false" selection-start-line="42" selection-start-column="39" selection-end-line="42" selection-end-column="39" />
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/docs/index.rst">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="0">
|
||||||
|
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/docs/make.bat">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="0">
|
||||||
|
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/docs/Makefile">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="0">
|
||||||
|
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/bot/shared_config.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="238">
|
||||||
|
<caret line="14" column="31" lean-forward="false" selection-start-line="14" selection-start-column="31" selection-end-line="14" selection-end-column="31" />
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/bot/__init__.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="0">
|
||||||
|
<caret line="0" column="18" lean-forward="false" selection-start-line="0" selection-start-column="18" selection-end-line="0" selection-end-column="18" />
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/bot/core.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="187">
|
||||||
|
<caret line="11" column="28" lean-forward="false" selection-start-line="11" selection-start-column="28" selection-end-line="11" selection-end-column="28" />
|
||||||
<folding>
|
<folding>
|
||||||
<element signature="e#19#60#0" expanded="true" />
|
<element signature="e#18#29#0" expanded="true" />
|
||||||
</folding>
|
</folding>
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
Crypto Arbitrage Bot
|
Crypto Tensor Bot
|
||||||
========================
|
========================
|
||||||
|
|
||||||
This bot does arbitrage with crypto
|
This bot predicts a stock shart trend
|
||||||
|
|
||||||
---------------
|
---------------
|
||||||
|
|
||||||
|
|||||||
152
bot/core.py
152
bot/core.py
@@ -1,69 +1,127 @@
|
|||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
from . import market_data_crawler
|
import time
|
||||||
|
import pandas as pd
|
||||||
|
import numpy as np
|
||||||
|
import datetime as dt
|
||||||
|
import matplotlib.pyplot as plt
|
||||||
|
import matplotlib.dates as md
|
||||||
|
import tensorflow as tf
|
||||||
|
import urllib.request, json
|
||||||
|
|
||||||
from tornado import gen
|
from bot.shared_config import *
|
||||||
from tornado.ioloop import IOLoop
|
|
||||||
import tornado.web
|
|
||||||
import json
|
|
||||||
import sys
|
|
||||||
|
|
||||||
|
|
||||||
class MainHandler(tornado.web.RequestHandler):
|
def main():
|
||||||
@gen.coroutine
|
start_time = time.time()
|
||||||
def post(self):
|
|
||||||
print("POST received from IP {0}".format(self.request.remote_ip))
|
|
||||||
|
|
||||||
response = {'error': False, 'msg': ""}
|
dump(yellow("Retrieving market data from API"))
|
||||||
request = json.loads(self.request.body.decode('utf-8'))
|
|
||||||
|
|
||||||
if "token" not in request or request["token"] != "abc":
|
with urllib.request.urlopen("https://api.kraken.com/0/public/OHLC?pair=ETHUSD&interval=15") as url:
|
||||||
response["msg"] = "Wrong token - no access granted"
|
data = json.loads(url.read().decode())
|
||||||
self.write(json.dumps(response))
|
timestamps = []
|
||||||
return
|
prices = []
|
||||||
|
volumes = []
|
||||||
|
pricevol = []
|
||||||
|
|
||||||
if "command" in request:
|
for set in data["result"]['XETHZUSD'][-601:]:
|
||||||
print("Command received: {0}".format(request["command"]))
|
timestamps.append(int(set[0]))
|
||||||
|
prices.append(float(set[4]))
|
||||||
|
volumes.append(float(set[6]))
|
||||||
|
pricevol.append([float(set[4]), float(set[6])])
|
||||||
|
|
||||||
if request["command"] == "init_market_data":
|
dump(green("Retrieved API in {0:.3f}ms sec".format((time.time() - start_time)*100)))
|
||||||
yield self.update_market_data(request, response)
|
dump(yellow("Initialize Tensorflow"))
|
||||||
|
|
||||||
self.write(json.dumps(response))
|
f_horizon = 10 # forecast horizon, one period into the future
|
||||||
|
num_periods = 20 # number of periods per vector we are using to predict one period ahead
|
||||||
|
inputs = 2 # number of vectors submitted
|
||||||
|
hidden = 100 # number of neurons we will recursively work through, can be changed to improve accuracy
|
||||||
|
output = 1 # number of output vectors
|
||||||
|
|
||||||
@gen.coroutine
|
TS = np.array(pricevol)
|
||||||
def update_market_data(self, request, response):
|
TSo = np.array(prices)
|
||||||
yield market_data_crawler.update_market_data_for_basecoin(request["basecoin"])
|
|
||||||
response["msg"] = "Market Data initialized"
|
|
||||||
response["data"] = market_data_crawler.market_data
|
|
||||||
|
|
||||||
@gen.coroutine
|
x_data = TS[:(len(TS) - (len(TS) % num_periods))]
|
||||||
def delete(self):
|
x_batches = x_data.reshape(-1, 20, 2)
|
||||||
print("Stopping server...")
|
|
||||||
|
|
||||||
response_json = json.dumps({'error': False, 'msg': "Server stopped"})
|
y_data = TSo[1:(len(TSo) - (len(TSo) % num_periods)) + f_horizon]
|
||||||
self.write(response_json)
|
y_batches = y_data.reshape(-1, 20, 1)
|
||||||
|
|
||||||
IOLoop.instance().stop()
|
def test_data(forecast, num_periods):
|
||||||
|
test_x_setup = TS[-(num_periods + forecast):]
|
||||||
|
testX = test_x_setup[:num_periods].reshape(-1, 20, 2)
|
||||||
|
testY = TSo[-(num_periods):].reshape(-1, 20, 1)
|
||||||
|
return testX, testY
|
||||||
|
|
||||||
|
X_test, Y_test = test_data(f_horizon, num_periods)
|
||||||
|
|
||||||
class Application(tornado.web.Application):
|
tf.reset_default_graph() # We didn't have any previous graph objects running, but this would reset the graphs
|
||||||
def __init__(self):
|
|
||||||
handlers = [
|
|
||||||
(r"/?", MainHandler)
|
|
||||||
]
|
|
||||||
tornado.web.Application.__init__(self, handlers)
|
|
||||||
|
|
||||||
|
X = tf.placeholder(tf.float32, [None, num_periods, inputs]) # create variable objects
|
||||||
|
y = tf.placeholder(tf.float32, [None, num_periods, output])
|
||||||
|
|
||||||
def main(port):
|
basic_cell = tf.contrib.rnn.BasicRNNCell(num_units=hidden, activation=tf.nn.relu) # create our RNN object
|
||||||
app = Application()
|
rnn_output, states = tf.nn.dynamic_rnn(basic_cell, X, dtype=tf.float32) # choose dynamic over static
|
||||||
app.listen(port)
|
|
||||||
IOLoop.instance().start()
|
|
||||||
|
|
||||||
|
learning_rate = 0.001 # small learning rate so we don't overshoot the minimum
|
||||||
|
|
||||||
def exists():
|
stacked_rnn_output = tf.reshape(rnn_output, [-1, hidden]) # change the form into a tensor
|
||||||
return True
|
stacked_outputs = tf.layers.dense(stacked_rnn_output, output) # specify the type of layer (dense)
|
||||||
|
outputs = tf.reshape(stacked_outputs, [-1, num_periods, output]) # shape of results
|
||||||
|
|
||||||
|
loss = tf.reduce_sum(tf.square(outputs - y)) # define the cost function which evaluates the quality of our model
|
||||||
|
optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate) # gradient descent method
|
||||||
|
training_op = optimizer.minimize(
|
||||||
|
loss) # train the result of the application of the cost_function
|
||||||
|
|
||||||
|
init = tf.global_variables_initializer() # initialize all the variables
|
||||||
|
|
||||||
|
epochs = 1000 # number of iterations or training cycles, includes both the FeedFoward and Backpropogation
|
||||||
|
|
||||||
|
with tf.Session() as sess:
|
||||||
|
init.run()
|
||||||
|
dump(green("Initialized Tensorflow in {0:.3f}ms sec".format((time.time() - start_time) * 100)))
|
||||||
|
dump(yellow("Start Training"))
|
||||||
|
|
||||||
|
for ep in range(epochs):
|
||||||
|
sess.run(training_op, feed_dict={X: x_batches, y: y_batches})
|
||||||
|
if ep % 100 == 0:
|
||||||
|
mse = loss.eval(feed_dict={X: x_batches, y: y_batches})
|
||||||
|
print(ep, "\tMSE:", mse)
|
||||||
|
|
||||||
|
dump(green("Finished training in {0:.3f}ms sec".format((time.time() - start_time) * 100)))
|
||||||
|
|
||||||
|
dump(yellow("Start Predicting"))
|
||||||
|
y_pred = sess.run(outputs, feed_dict={X: X_test})
|
||||||
|
dump(green("Prediction finished in {0:.3f}ms sec".format((time.time() - start_time) * 100)))
|
||||||
|
|
||||||
|
dump(yellow("Start Plotting and output"))
|
||||||
|
|
||||||
|
actual_series = pd.Series(np.concatenate([np.ravel(X_test)[::2], np.ravel(Y_test)]))
|
||||||
|
actual_prediction = pd.Series(np.concatenate([np.ravel(X_test)[::2], np.ravel(y_pred)]))
|
||||||
|
|
||||||
|
plt.title("Forecast vs Actual", fontsize=14)
|
||||||
|
|
||||||
|
xfmt = md.DateFormatter('%d.%m %H:%M:%S')
|
||||||
|
plt.subplots_adjust(bottom=0.2)
|
||||||
|
plt.xticks(rotation=25)
|
||||||
|
plt.gca().xaxis.set_major_formatter(xfmt)
|
||||||
|
|
||||||
|
dates = [dt.datetime.fromtimestamp(int(ts)) for ts in timestamps]
|
||||||
|
datenums = md.date2num(dates)
|
||||||
|
|
||||||
|
plt.plot(datenums[-40:], actual_series, "b--", linewidth=1.0, label="Actual")
|
||||||
|
plt.plot(datenums[-40:], actual_prediction, "r--", linewidth=1.0, label="Forecast")
|
||||||
|
plt.plot(datenums[-40:], actual_series.rolling(window=3, center=False).mean(), "y-", linewidth=2.0, label="Actual MA")
|
||||||
|
plt.plot(datenums[-40:], actual_prediction.rolling(window=3, center=False).mean(), "g-", linewidth=2.0, label="Predicted MA")
|
||||||
|
|
||||||
|
plt.legend(loc="upper left")
|
||||||
|
plt.xlabel("Time Periods")
|
||||||
|
|
||||||
|
dump(green("Finished complete program in {0:.3f}ms sec".format((time.time() - start_time) * 100)))
|
||||||
|
plt.show()
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
port = int(sys.argv[1])
|
print("Starting prediction ...")
|
||||||
print("Starting arbitrage bot on port {0}...".format(port))
|
main()
|
||||||
main(port)
|
|
||||||
|
|||||||
@@ -1,74 +0,0 @@
|
|||||||
#!/usr/bin/python
|
|
||||||
|
|
||||||
import tornado.escape, tornado.httpclient
|
|
||||||
import tornado.httpclient
|
|
||||||
from tornado import gen
|
|
||||||
import time
|
|
||||||
from collections import defaultdict
|
|
||||||
|
|
||||||
|
|
||||||
@gen.coroutine
|
|
||||||
def update_market_data_for_basecoin(basecoin):
|
|
||||||
global market_data
|
|
||||||
market_data = defaultdict(list)
|
|
||||||
market_requests = []
|
|
||||||
|
|
||||||
@gen.coroutine
|
|
||||||
def call_market_data(url, response_handler):
|
|
||||||
http_client = tornado.httpclient.AsyncHTTPClient()
|
|
||||||
response = yield http_client.fetch(url)
|
|
||||||
return response_handler(response)
|
|
||||||
|
|
||||||
"""
|
|
||||||
Bittrex
|
|
||||||
"""
|
|
||||||
def handle_response_bittrex(response):
|
|
||||||
if response.error:
|
|
||||||
print("Error: %s" % response.error)
|
|
||||||
return False
|
|
||||||
|
|
||||||
else:
|
|
||||||
print("Response received from Bittrex - handling now!")
|
|
||||||
response_data = tornado.escape.json_decode(response.body)
|
|
||||||
|
|
||||||
for market in response_data["result"]:
|
|
||||||
base, target = market["MarketName"].split("-")
|
|
||||||
if base == basecoin:
|
|
||||||
market_data[target].append({"Bittrex": market["Last"]})
|
|
||||||
|
|
||||||
return True
|
|
||||||
|
|
||||||
market_requests.append(
|
|
||||||
call_market_data(
|
|
||||||
"https://bittrex.com/api/v1.1/public/getmarketsummaries",
|
|
||||||
handle_response_bittrex))
|
|
||||||
|
|
||||||
"""
|
|
||||||
Poloniex
|
|
||||||
"""
|
|
||||||
def handle_response_poloniex(response):
|
|
||||||
if response.error:
|
|
||||||
print("Error: %s" % response.error)
|
|
||||||
return False
|
|
||||||
|
|
||||||
else:
|
|
||||||
print("Response received from Poloniex - handling now!")
|
|
||||||
response_data = tornado.escape.json_decode(response.body)
|
|
||||||
|
|
||||||
for market in response_data:
|
|
||||||
base, target = market.split("_")
|
|
||||||
if base == basecoin:
|
|
||||||
market_data[target].append({"Poloniex": response_data[market]["last"]})
|
|
||||||
|
|
||||||
|
|
||||||
return True
|
|
||||||
|
|
||||||
market_requests.append(
|
|
||||||
call_market_data(
|
|
||||||
"https://poloniex.com/public?command=returnTicker",
|
|
||||||
handle_response_poloniex))
|
|
||||||
|
|
||||||
print("--- Retrieve market data now ---")
|
|
||||||
start_time = time.time()
|
|
||||||
response_dict = yield market_requests
|
|
||||||
print("--- Marked data updated in {0} seconds. Responses: {1} ---".format(time.time() - start_time, response_dict))
|
|
||||||
35
bot/shared_config.py
Normal file
35
bot/shared_config.py
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
#!/usr/bin/python
|
||||||
|
def style(s, style):
|
||||||
|
return style + s + '\033[0m'
|
||||||
|
|
||||||
|
|
||||||
|
def green(s):
|
||||||
|
return style(s, '\033[92m')
|
||||||
|
|
||||||
|
|
||||||
|
def blue(s):
|
||||||
|
return style(s, '\033[94m')
|
||||||
|
|
||||||
|
|
||||||
|
def yellow(s):
|
||||||
|
return style(s, '\033[93m')
|
||||||
|
|
||||||
|
|
||||||
|
def red(s):
|
||||||
|
return style(s, '\033[91m')
|
||||||
|
|
||||||
|
|
||||||
|
def pink(s):
|
||||||
|
return style(s, '\033[95m')
|
||||||
|
|
||||||
|
|
||||||
|
def bold(s):
|
||||||
|
return style(s, '\033[1m')
|
||||||
|
|
||||||
|
|
||||||
|
def underline(s):
|
||||||
|
return style(s, '\033[4m')
|
||||||
|
|
||||||
|
|
||||||
|
def dump(*args):
|
||||||
|
print(' '.join([str(arg) for arg in args]))
|
||||||
16
docs/conf.py
16
docs/conf.py
@@ -40,8 +40,8 @@ source_suffix = '.rst'
|
|||||||
master_doc = 'index'
|
master_doc = 'index'
|
||||||
|
|
||||||
# General information about the project.
|
# General information about the project.
|
||||||
project = u'sample'
|
project = u'Crypto-Tensor Documentation'
|
||||||
copyright = u'2012, Kenneth Reitz'
|
copyright = u'2017, Dennis Thiessen'
|
||||||
|
|
||||||
# The version info for the project you're documenting, acts as replacement for
|
# The version info for the project you're documenting, acts as replacement for
|
||||||
# |version| and |release|, also used in various other places throughout the
|
# |version| and |release|, also used in various other places throughout the
|
||||||
@@ -183,8 +183,8 @@ latex_elements = {
|
|||||||
# Grouping the document tree into LaTeX files. List of tuples
|
# Grouping the document tree into LaTeX files. List of tuples
|
||||||
# (source start file, target name, title, author, documentclass [howto/manual]).
|
# (source start file, target name, title, author, documentclass [howto/manual]).
|
||||||
latex_documents = [
|
latex_documents = [
|
||||||
('index', 'sample.tex', u'sample Documentation',
|
('index', 'sample.tex', u'Crypto-Tensor Documentation',
|
||||||
u'Kenneth Reitz', 'manual'),
|
u'Dennis Thiessen', 'manual'),
|
||||||
]
|
]
|
||||||
|
|
||||||
# The name of an image file (relative to this directory) to place at the top of
|
# The name of an image file (relative to this directory) to place at the top of
|
||||||
@@ -213,8 +213,8 @@ latex_documents = [
|
|||||||
# One entry per manual page. List of tuples
|
# One entry per manual page. List of tuples
|
||||||
# (source start file, name, description, authors, manual section).
|
# (source start file, name, description, authors, manual section).
|
||||||
man_pages = [
|
man_pages = [
|
||||||
('index', 'sample', u'sample Documentation',
|
('index', 'sample', u'Crypto-Tensor Documentation',
|
||||||
[u'Kenneth Reitz'], 1)
|
[u'Dennis Thiessen'], 1)
|
||||||
]
|
]
|
||||||
|
|
||||||
# If true, show URL addresses after external links.
|
# If true, show URL addresses after external links.
|
||||||
@@ -227,8 +227,8 @@ man_pages = [
|
|||||||
# (source start file, target name, title, author,
|
# (source start file, target name, title, author,
|
||||||
# dir menu entry, description, category)
|
# dir menu entry, description, category)
|
||||||
texinfo_documents = [
|
texinfo_documents = [
|
||||||
('index', 'sample', u'sample Documentation',
|
('index', 'sample', u'Crypto-Tensor Documentation',
|
||||||
u'Kenneth Reitz', 'sample', 'One line description of project.',
|
u'Dennis Thiessen', 'crypto-tensor', 'Predicts the future.',
|
||||||
'Miscellaneous'),
|
'Miscellaneous'),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
nose
|
numpy
|
||||||
sphinx
|
matplotlib
|
||||||
tornado
|
tensorflow
|
||||||
|
pandas
|
||||||
10
setup.py
10
setup.py
@@ -12,13 +12,13 @@ with open('LICENSE') as f:
|
|||||||
license = f.read()
|
license = f.read()
|
||||||
|
|
||||||
setup(
|
setup(
|
||||||
name='sample',
|
name='crypto-tensor',
|
||||||
version='0.1.0',
|
version='0.1.0',
|
||||||
description='Sample package for Python-Guide.org',
|
description='Package for Crypto-Tensor bot',
|
||||||
long_description=readme,
|
long_description=readme,
|
||||||
author='Kenneth Reitz',
|
author='Dennis Thiessen',
|
||||||
author_email='me@kennethreitz.com',
|
author_email='dennis.thiessen@riskahead.de',
|
||||||
url='https://github.com/kennethreitz/samplemod',
|
url='https://gitlab.riskahead.de/root/crypto-prediction',
|
||||||
license=license,
|
license=license,
|
||||||
packages=find_packages(exclude=('tests', 'docs'))
|
packages=find_packages(exclude=('tests', 'docs'))
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user