Gekko Forum
Advanced Portfilio and Trade Management - Printable Version

+- Gekko Forum (https://forum.gekko.wizb.it)
+-- Forum: Gekko (https://forum.gekko.wizb.it/forum-13.html)
+--- Forum: Feature Requests (https://forum.gekko.wizb.it/forum-15.html)
+--- Thread: Advanced Portfilio and Trade Management (/thread-3.html)



Advanced Portfilio and Trade Management - werkkrew - 01-03-2018

Just wanted to collect some Github feature requests and put them in one place as well as add some of my thoughts on the subject.  I encourage others to add to my lists of potential features.

I will likely attempt to work on this myself and submit a pull request when I can, unless someone else volunteers.

Corresponding Github Issues:

https://github.com/askmike/gekko/issues/1619
https://github.com/askmike/gekko/issues/1608
https://github.com/askmike/gekko/issues/1116
https://github.com/askmike/gekko/issues/937
https://github.com/askmike/gekko/issues/484

Summary: Allow for Advanced Portfolio Management - Either through the primary configuration of an instance of the bot, in a strategy itself, or both.

Details:

Portfolio Management - Should probably be configured on a per strategy runner/trader/strategy basis
  • Allow configuration of a percentage of the balance as is seen when the bot is started.  For example, you have 1 BTC and want the bot to use 20%.  When the bot starts it will take 20% of the 1 BTC and trade with a starting balance of 0.2 BTC.  Any profits or losses will belong to that instance of the bot.  If it makes money, it will have the new higher balance to work with.  Optionally, allow the calculation to be dynamic or static, meaning it will only ever use 20% of the starting balance even if it makes profit or allow it to use its own profits.
  • Similar to the above, give the bot a fixed amount of your balance to work with, example you have 1 BTC and want an instance of the bot to use 0.3 BTC, you can define that.
  • Similar to the above, give the bot a maximum it can work with.  For example, my entire portfolio except 0.1 BTC.
Trade Management - Should probably be configured per strategy
  • Limit amount per trade - example, only submit trades for 0.01 BTC each and limit it to X trades per time period or only submit new trades once price has moved by X
  • Proportional trade amount - example, trade with a minimum of X and a maximum of Y depending on trend strength
  • Match pings or don't - example, ensure pongs (round trip completions) from a specific ping match the traded amount of the ping or allow pongs to be calculated in the same way as pings based on trend strength
Example Use Cases:
  • Multiple Instances of the bot running against same asset or currency each given a proportion of the balance to work with
  • Not going all in on trends which are no strong
  • Stash profits away from bot so they are safe
  • Prevent too much directional trading
  • Allow for multiple round trips to be open at once
  • Allow for trading on both sides of the market
  • etc.



RE: Advanced Portfilio and Trade Management - cmroche - 01-05-2018

I already implemented this locally, basically the strategy can signal in the buy/sell advice what percentage of the total capital to trade. If we want this in Gekko I could clean it up and issue a PR.

Not trying to steal your thunder here Smile


RE: Advanced Portfilio and Trade Management - SoaringTrader - 01-07-2018

That would be fantastic!
My problem is that currently it trades the entire account so you can't say trade 50% on BTC's and the other 50% on Ripples.
So it would be fantastic if you could release this update.

ps. do you know what happens if i take the trade manually. Does it still do the closing based on the strategies rules?


RE: Advanced Portfilio and Trade Management - skisurftravel - 01-15-2018

I am also looking for a similar solution, limiting the amount that is traded and allowing for multiple open trades at once (ie. multiple buys and sells at different price points to allow for simultaneous round trips) while placing new buy or sell orders based on the last trade. If anyone has a coding idea to share to accomplish this, I would greatly appreciate it.