Below you can find the "first final" version of my KNIME cryptocurrency agent.
This is what it does :
loops through a Rules database table, which contains trading pairs and buy/sell thresholds plus percentage of holdings to buy or sell.
if a rule is triggered, places a market order to buy or sell, logs this to the Order_log database table and sends me an email.
if a rule is not triggered, logs this the No_order_log table.
As mentioned before, this uses the Revolut X trading API, as this is the one I happen to use.
To make this work with other APIs, the only nodes that should be modified would be the 2 Python Script nodes Place Order and Get all Balances. (see first page of this topic).
I have received several comments regarding the use of the two Python script nodes in this workflow, stating the use of these goes somewhat against the no-code philosophy behind KNIME. However, as far as I know a the time of this writing, there is no node available to digitally sign the message the way the Revolut API requires.
An alternative approach would be to develop some custom nodes to cover these functions. On this page I will try to do so and go over the process of developing nodes.
I have scheduled this workflow to run every day. In a few months' time I will report on the results ...
Keep in mind that this workflow is just the 'agent'. If trading is successful or not will depend on how 'good' the rules in the rules table are and the overall behaviour of the markets.
Below a screenshot of the no_order_log tables which logs the rules that did not meet the thresholds: