first commit

This commit is contained in:
Francois Klieber committed 2021-06-06 20:25:14 +02:00
commit aa7869eb33
386 files changed
+69375

No files matched your search

+80
View File
@@ -0,0 +1,80 @@
# About Gekko
Gekko is a **free and open source** Bitcoin TA trading and backtesting platform that connects to popular Bitcoin exchanges. It is written in javascript and runs on [nodejs](http://nodejs.org).
*Use Gekko at your own risk.*
![screen shot of gekko backtesting](https://user-images.githubusercontent.com/969743/35054500-fc705b46-fbac-11e7-9652-306c468505a3.png)
## The gist
Gekko is a tool that makes it very easy to automate your own trading strategies.
![gist of gekko](https://gekko.wizb.it/_static/gekko-gist.png)
You can either create your own trading strategy or start with the built-in example strategies. Once you have a strategy you can use Gekko to automatically run it in a few different ways:
- **Backtest**: You can start a simulation of the strategy over a historical data period and Gekko will tell you what would have happened (which trades would have been performed as well as overall performance and risk metrics).
- **Paper trader**: You can run the strategy in realtime simulate trading (trade with fake money) to see in realtime how profitable your strategy would have been.
- **Tradebot**: You can run the strategy in realtime and automatically execute orders based on the signals.
All the above modes can be run from the user interface, this interface will show charts and performance/risk statistics.
Here is a video that explains Gekko's core concepts:
[![youtube video explaining gekko](https://gekko.wizb.it/_static/yt-gist.jpg)](https://www.youtube.com/watch?v=PKIxZ-Qaphk)
## Strategies
Gekko comes with some [example strategies](../strategies/introduction.md) (which implement a single indicator). But with some basic javascript you can [create your own strategies](../strategies/creating_a_strategy.md). You can use over 130 indicators to create your perfect prediction model (using [Talib's indicators](../strategies/talib_indicators.md) or [Tulip's indicators](../strategies/tulip_indicators.md)). *Why don't you combine Bollinger Bands, CCI and MACD with a STOCHRSI indicator?*
## Automated Trading platform
Gekko can watch the realtime markets, automatically executing and evaluating your strategies in the process. Whilst doing this Gekko will store all market data it sees, this makes it possible to later simulate trading strategies against historical data to see whether they would have been profitable (backtesting).
## Limitations
Gekko is not built for HFT or anything related to being the fastest (like arbitrage) as well as some other things. Please see the [scope page](./scope.md) to read more about what you can and cannot do with Gekko.
## How does Gekko work?
![Gekko architecture](https://wizb.it/gekko/static/architecture.jpg)
Read more in the [architecture documentation](../internals/architecture.md).
## Credits
* The title is inspired by [Bateman](https://github.com/fearofcode/bateman).
* This project is inspired by the [GoxTradingBot](https://github.com/virtimus/GoxTradingBot/) Chrome plugin (which in turn is inspired by [Goomboo's journal](https://bitcointalk.org/index.php?topic=60501.0)).
## Final
If Gekko helped you in any way, you can always leave me a tip at (BTC) 13r1jyivitShUiv9FJvjLH7Nh1ZZptumwW
## Disclaimer
Gekko (nor anyone behind this project) DOES NOT give investment advice. All advice seen within Gekko is the result of running YOUR OWN strategies against the market. On top of that there might be bugs in the code - Gekko DOES NOT come with ANY warranty.
## License
The MIT License (MIT)
Copyright (c) 2014 Mike van Rossum <mike@mvr.me>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
+25
View File
@@ -0,0 +1,25 @@
# Getting Help
Are you getting stuck installing or using Gekko? Are you struggling with understanding Gekko? Running into problems creating your own plugin or strategy? Do you want to discuss awesome things you want to do with Gekko? This page will explain what to do!
## Online community
If you have trouble with anything specific or you want to provide any type of feedback the online community is the place to be. You can find the community at:
1. [The online webforum](https://forum.gekko.wizb.it)
2. [The discord channel](https://discord.gg/26wMygt)
These communities are the place for things like:
- Solving installation problems
- Solving installation errors
- Helping set up Gekko on a server or embedded device
- Requesting/requesting new features and or changes such as:
- New exchanges to add
- New plugins to add
- General new features
- Getting clarity on what Gekko can do and how it works
## Technical discussion
The links above are always the first place to go to when discussing new features. But if you've found a clear bug or you want to **keep the complete discussion 100% technical (meaning completely code and architecture related)** you can use the [bug tracker on github](https://github.com/askmike/gekko/issues). Note that we are trying to keep all other discussions out of the bug tracker to keep the whole thing manageable :)
+12
View File
@@ -0,0 +1,12 @@
# Roadmap
Gekko is ever evolving and we are constantly working on new features and upgrades!
This is a small selection of things currently on the roadmap:
## Current TODO
- Improve stability of new event and backtest engine
- Port the old supported exchanges to Gekko Broker
- new UI, see [here](https://forum.gekko.wizb.it/thread-1429-post-58996.html)
- advanced orders from your strategy (Take Profit and Stop Loss)
+30
View File
@@ -0,0 +1,30 @@
# Scope
Gekko is a free and open source tool that is designed as a starters kit for automated trading on cryptocurrency markets. Gekko aims to have a low barrier entry to writing your own strategies (however a basic scripting knowledge in javascript is required for users who create their own strategies). This page will discuss the scope of some components of Gekko, explaining how things are done and why they are done a certain way.
## Market data
Gekko aggregates all market data into minutely candles (OHLC, VWP and amount of trades). This means Gekko only has to store candles on disk, which take up a predictable amount of space on your harddrive. The tradebot will use some additional market data (the orderbook) to execute orders efficiently, but this data is not visible anywhere else.
## Strategies
Strategies are simple scripts that handle new market data (OHLC candles) as well as calculated indicator results (strategies specify what indicators they want with which settings). Every time there is new data the strategy can determine to signal either LONG or SHORT. That's about it! This very simple design (candles + indicator values go in => signals come out) is quite powerful.
Unfortunately this simple design can sometimes be limiting, here are some limitations:
- Since strategies are only fed candles (and indicator values):
- Strategies cannot act on a smaller timeframe than 1 minute.
- Strategies cannot see any trades.
- Strategies cannot look at the orderbook.
- Strategies do not know what the current portfolio looks like.
- Strategies can only trigger a LONG or SHORT which signals to go "all in".
## Execution strategy
When you are using Gekko for a real tradebot Gekko will create orders at the exchange whenever your strategy signals an advice (long or short). If your strategy signal a long advice Gekko will try to buy as much "asset" as it can get with all your "currency" (if your strat is running on USD/BTC that would mean buying BTC with all your USD). As for creating the orders Gekko is conservative and stays on your side of the orderbook (this means you don not lose on the spread, slippage or taker fees). An example:
If your strategy signals a LONG signal and this is the current orderbook:
<img width="279" alt="screen shot 2017-08-26 at 23 26 22" src="https://user-images.githubusercontent.com/969743/29745564-0bb096a6-8ab6-11e7-8bdb-12a6c0274482.png">
Gekko will try to buy bitcoin by placing a limit order at a price of `4336.29` in the hope someone sells into the order. Every few seconds Gekko will readjust the order to stay on top of the orderbook. *Note that order simulation (in the paper trader and backtester) is handled differently, since the orderbook is not used in the simulation.*
+66
View File
@@ -0,0 +1,66 @@
## Supported exchanges
Gekko is able to directly communicate with the APIs of a number of exchanges. However communication with some exchanges is somewhat limited. Gekko makes the distinction between the following features:
- Monitoring: Gekko is able to retrieve live market data from the exchange. Gekko can store and run trading simulations over this data.
- Live Trading: Gekko is able to automatically execute orders (based on the signals of your strategy). This turns Gekko into a trading bot.
- Importing: Gekko is able to retrieve historical market data. This way you can easily get a month of market data over which you can [backtest][1] your strategy.
| Exchange | Monitoring | Live Trading | Importing | Notes |
| --------------------- |:----------:|:------------:|:---------:| ------------------------- |
| [Binance][24] | ✓ | ✓ | ✓ | |
| [Poloniex][2] | ✓ | ✓ | ✓ | |
| [GDAX][3] | ✓ | ✓ | ✓ | |
| [BTCC][4]* | ✓ | ✓ | ✓ | (=BTCChina) |
| [Bitstamp][5]* | ✓ | ✓ | ✕ | |
| [Kraken][6] | ✓ | ✓ | ✓ | |
| [Bitfinex][7] | ✓ | ✓ | ✓ | |
| [Bittrex][8] | ✓ | ✕ | ✕ | API problems ([#2310][26])|
| [coinfalcon][25] | ✓ | ✓ | ✓ | |
| [The Rock Trading][28]| ✓ | ✓ | ✓ | |
| [EXMO][27] | ✓ | ✓ | ✕ | |
| [wex.nz][9]* | ✓ | ✓ | ✕ | |
| [Gemini][10]* | ✓ | ✓ | ✕ | |
| [Okcoin.cn][11]* | ✓ | ✓ | ✕ | China, see [#352][20] |
| [Cex.io][12]* | ✓ | ✕ | ✕ | |
| [BTC Markets][13]* | ✓ | ✓ | ✕ | |
| [Luno][14] | ✓ | ✓ | ✓ | previously BitX |
| [lakeBTC][15]* | ✓ | ✕ | ✕ | |
| [meXBT][16]* | ✓ | ✕ | ✕ | see [here][21] |
| [zaif][17]* | ✓ | ✕ | ✕ | |
| [lakeBTC][18]* | ✓ | ✕ | ✕ | |
| [bx.in.th][19]* | ✓ | ✕ | ✕ | |
| [bitcoin.co.id][22]* | ✓ | ✓ | ✕ | |
| [Quadriga CX][23]* | x | x | ✕ | Exchange is down. | |
*Temporary disabled since 0.6! If you were planning on using this exchange please e-mail me (address at the bottom of this page).
[1]: ../features/backtesting.md
[2]: https://poloniex.com
[3]: https://gdax.com
[4]: https://btcc.com
[5]: https://bitstamp.com
[6]: https://kraken.com
[7]: https://bitfinex.com
[8]: https://bittrex.com
[9]: https://wex.nz
[10]: https://gemini.com
[11]: https://www.okcoin.cn
[12]: https://cex.io
[13]: https://btcmarkets.net
[14]: https://www.luno.com
[15]: https://lakebtc.com
[16]: https://mexbt.com
[17]: https://zaif.jp/trade_btc_jpy
[18]: https://lakebtc.com
[19]: https://bx.in.th
[20]: https://github.com/askmike/gekko/pull/352
[21]: https://github.com/askmike/gekko/issues/288#issuecomment-223810974
[22]: https://vip.bitcoin.co.id/
[23]: https://quadrigacx.com/
[24]: https://www.binance.com/?ref=11236330
[25]: https://coinfalcon.com/?ref=CFJSQBMXZZDS
[26]: https://github.com/askmike/gekko/pull/2310
[27]: https://exmo.com
[28]: https://www.therocktrading.com/
@@ -0,0 +1,8 @@
# Supporting the project
Gekko is free and open source software. We don't make any money by publishing it, keeping it up to date or providing support.
If Gekko helped you in any way (financially or otherwise) feel free to donate. If you want to see a specific feature implemented faster, feel free to [send an e-mail](mailto:[email protected]) to discuss.
- Bitcoin tip jar: 13r1jyivitShUiv9FJvjLH7Nh1ZZptumwW
- Ethereum tip jar: 0x46e9249ADc30F5bfc6632e1d0b4286496d071Be7