Gekko Forum
Execution of signals developed in third party products - Printable Version

+- Gekko Forum (https://forum.gekko.wizb.it)
+-- Forum: Gekko (https://forum.gekko.wizb.it/forum-13.html)
+--- Forum: Strategy Development (https://forum.gekko.wizb.it/forum-12.html)
+--- Thread: Execution of signals developed in third party products (/thread-57189.html)



Execution of signals developed in third party products - Johnny - 05-20-2018

Hello people

I use Amibroker to develop systems that are then validated trough a walk forward analysis.
So they're live, constantly adapting to the latest market conditions.

I'm just looking to execute the signals in a crypto exchange 24/7.
The signals could be adapted to the software.

Could Gekko be useful for that? 
And if so, how should I send the alerts?


RE: Execution of signals developed in third party products - Kris191 - 05-20-2018

i would imagine that expanding the telegram plugin may allow for this but jot my area of skill.


RE: Execution of signals developed in third party products - askmike - 05-20-2018

You can Gekko to execute these live signals, note that this way you can't use the backtester (unless you also have a history of these signals).

Note that there is no integration so you will have to get your hands dirty in creating one (can be 5 lines of code, but that depends on the signal sour

By far the easiest is to write a strategy that ignores candle data from Gekko and simply listens to your live source for signals and triggers advice based on them. If your other signals have a REST API you can for example do something like this:

Code:
var log = require('../core/log');
var request = require('request');

var strat = {};
strat.init = function() {
 this.currentTrend = false;
}
strat.update = function(candle) {}
strat.log = function() {}

strat.check = function() {

 request('https://url-to-your-signal.com', (err, resp) = {

   if(this.currentTrend === 'long' && resp === 'short') {

     // If it was long, set it to short
     this.currentTrend = 'short';
     this.advice('short');

   } else if(this.currentTrend === 'short' && resp === 'long') {

     // If it was short, set it to long
     this.currentTrend = 'long';
     this.advice('long');

   }

 });
}

module.exports = strat;

That's just an example, any other way of getting the data inside the strategy works as well. (I am not familiar with Amibroker).


RE: Execution of signals developed in third party products - Johnny - 05-20-2018

Thank you very much both.

I'm sure that there is a lot of people in my same situation with different software.
We can make the signals but need a specific exchange integration to execute the trades.

I'll run some tests with Gekko then. Thanks Mike for the code, I appreciate it.


RE: Execution of signals developed in third party products - askmike - 05-22-2018

I am actually working on some massive upgrades regarding making Gekko more modular. For example I am pulling out all order execution code into a new library called Gekko Broker. It will have advanced orders (in the future) and for now a simple and unified interface to execute trades. See here: https://github.com/askmike/gekko/blob/gekko-trader/docs/gekko-broker/introduction.md

I am actively developing this, the supported exchanges (gdax, poloniex, bitfinex, binance & coinfalcon) are already a lot more stable than in current stable Gekko.

Note that that library is meant for developers: it's just the order execution logic which you need to hook up to your own reporting software / UI / datastore / etc.


RE: Execution of signals developed in third party products - askmike - 05-22-2018

(05-20-2018, 08:59 PM)Johnny Wrote: I'm sure that there is a lot of people in my same situation with different software.

I found a bunch: https://github.com/askmike/gekko/issues/2161

I pointed them to this thread Smile