ctubio / tribeca

Self-hosted crypto trading bot (automated high frequency market making) in node.js, angular, typescript and c++
https://127.0.0.1:3000
Other
95 stars 26 forks source link

Historical simulator to evaluate settings would have performed over the last month #118

Closed jerblack closed 7 years ago

jerblack commented 7 years ago

Would it be possible to add in a historical simulator to provide a quick way (in the web interface) to configure your trading settings and then click a button that tests how those settings would have performed if you had used them over the previous 30 days (or some other arbitrary time period). It would certainly make it easier to test ideas before implementing them.

Maybe this would work as a separate pane in the interface, like having a place to enter a starting amount for each currency in your trading pair, and a place to select the time period, and the click Go! which outputs what your final amounts would have been for each currency after the given time period and settings. Thanks!

ctubio commented 7 years ago

im sorry currectly the app does not save market data in the database and is not planned because the main purpose of the app is to trade live as fast as possible.

this could be done if the data is recorded by another app somewhere, and maybe read later by tribeca all times needed changing any settings while using a customized gateway (dry-run gateway?). but im so lazy for that cos i know i will never use it; if i want to run a test i just write it at /test folder, no need a UI nor to dry-run real historical market data cos you can provide the sequence of market data that you want to test simply by initializing classes (anyway i also feel useless to write tests, i just deploy my patience while events happen in the real markets, together with a bit of funds for test)

sorry again

ctubio commented 7 years ago

note that the whole app already has full support for dry-runs (moving time back and forth and to consume fake market data), but it requires a /test file

also to dry-run without test files, you can set NULL in the config file for your exchange, and orders will not be executed in the real market even if the market data comes from the real market