Added the weekly Ethereum Trade and added price queries.

This commit is contained in:
Joe Tretter
2020-01-07 19:20:08 -06:00
parent 46e514c0d8
commit 5a3f0f9bd5
2 changed files with 529 additions and 182 deletions

View File

@@ -2,7 +2,14 @@
{
"id": "6d543cb4.ed3084",
"type": "tab",
"label": "Kraken Trading",
"label": "Dynamic HF Trading",
"disabled": false,
"info": ""
},
{
"id": "5d834238.9ad88c",
"type": "tab",
"label": "Weekly Ethereum buy",
"disabled": false,
"info": ""
},
@@ -13,6 +20,13 @@
"disabled": false,
"info": ""
},
{
"id": "e67f589a.f8d378",
"type": "tab",
"label": "Misc",
"disabled": false,
"info": ""
},
{
"id": "af98615f.cf9ce",
"type": "subflow",
@@ -66,135 +80,10 @@
"mode": "RWC"
},
{
"id": "b8c92875.131c58",
"type": "get-server-time",
"z": "6d543cb4.ed3084",
"name": "",
"x": 310,
"y": 240,
"wires": [
[
"63e56415.01466c"
],
[
"1637654a.83336b"
]
]
},
{
"id": "d11eed52.456ac",
"type": "inject",
"z": "6d543cb4.ed3084",
"name": "",
"topic": "",
"payload": "",
"payloadType": "date",
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"x": 120,
"y": 240,
"wires": [
[
"b8c92875.131c58"
]
]
},
{
"id": "63e56415.01466c",
"type": "debug",
"z": "6d543cb4.ed3084",
"name": "",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "false",
"x": 550,
"y": 220,
"wires": []
},
{
"id": "1637654a.83336b",
"type": "debug",
"z": "6d543cb4.ed3084",
"name": "",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "false",
"x": 560,
"y": 320,
"wires": []
},
{
"id": "978bdbc5.1c3508",
"type": "get-account-balance",
"z": "6d543cb4.ed3084",
"kraken": "42702610.230028",
"name": "",
"x": 340,
"y": 480,
"wires": [
[
"5fd28dbd.7d1504"
],
[
"8d9b208b.f68a7"
]
]
},
{
"id": "5fd28dbd.7d1504",
"type": "debug",
"z": "6d543cb4.ed3084",
"name": "Kraken-Balance",
"active": true,
"tosidebar": true,
"console": true,
"tostatus": false,
"complete": "payload",
"targetType": "msg",
"x": 600,
"y": 460,
"wires": []
},
{
"id": "8d9b208b.f68a7",
"type": "debug",
"z": "6d543cb4.ed3084",
"name": "Kraken Balance ERROR",
"active": true,
"tosidebar": true,
"console": true,
"tostatus": false,
"complete": "payload",
"targetType": "msg",
"x": 630,
"y": 540,
"wires": []
},
{
"id": "586b4d14.eca6f4",
"type": "inject",
"z": "6d543cb4.ed3084",
"name": "",
"topic": "",
"payload": "",
"payloadType": "date",
"repeat": "18000",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"x": 130,
"y": 480,
"wires": [
[
"978bdbc5.1c3508"
]
]
"id": "e64b38bb.529c88",
"type": "kraken-credentials",
"z": "",
"name": "DFLT"
},
{
"id": "a669c08c.d0185",
@@ -204,8 +93,8 @@
"sqlquery": "msg.topic",
"sql": "",
"name": "",
"x": 890,
"y": 720,
"x": 1010,
"y": 120,
"wires": [
[]
]
@@ -218,8 +107,8 @@
"func": "msg.topic=\"Insert into KrakenQuotes (Symbol,Data) values ('XETCZUSD','\" + JSON.stringify(msg.payload.XETCZUSD) + \"');\"\nreturn msg;",
"outputs": 1,
"noerr": 0,
"x": 600,
"y": 760,
"x": 720,
"y": 160,
"wires": [
[
"853572da.0b0bf",
@@ -238,8 +127,8 @@
"tostatus": false,
"complete": "true",
"targetType": "full",
"x": 830,
"y": 780,
"x": 950,
"y": 180,
"wires": []
},
{
@@ -247,8 +136,8 @@
"type": "get-ticker-information",
"z": "6d543cb4.ed3084",
"name": "",
"x": 350,
"y": 1040,
"x": 470,
"y": 440,
"wires": [
[
"8f27b1c3.3277e",
@@ -272,8 +161,8 @@
"crontab": "",
"once": false,
"onceDelay": 0.1,
"x": 160,
"y": 1040,
"x": 280,
"y": 440,
"wires": [
[
"b6c88df3.41573"
@@ -290,8 +179,8 @@
"console": false,
"tostatus": false,
"complete": "false",
"x": 590,
"y": 880,
"x": 710,
"y": 280,
"wires": []
},
{
@@ -305,8 +194,8 @@
"tostatus": false,
"complete": "payload",
"targetType": "msg",
"x": 510,
"y": 1100,
"x": 630,
"y": 500,
"wires": []
},
{
@@ -327,8 +216,8 @@
"checkall": "true",
"repair": false,
"outputs": 2,
"x": 560,
"y": 1020,
"x": 680,
"y": 420,
"wires": [
[
"b14715f9.da01b8"
@@ -407,8 +296,8 @@
"from": "",
"to": "",
"reg": false,
"x": 840,
"y": 960,
"x": 960,
"y": 360,
"wires": [
[]
]
@@ -438,8 +327,8 @@
"checkall": "true",
"repair": false,
"outputs": 3,
"x": 1050,
"y": 1100,
"x": 1170,
"y": 500,
"wires": [
[
"8fc8be9f.e3552",
@@ -465,8 +354,8 @@
"tostatus": false,
"complete": "true",
"targetType": "full",
"x": 1400,
"y": 1020,
"x": 1520,
"y": 420,
"wires": []
},
{
@@ -480,8 +369,8 @@
"tostatus": false,
"complete": "true",
"targetType": "full",
"x": 1400,
"y": 1100,
"x": 1520,
"y": 500,
"wires": []
},
{
@@ -495,8 +384,8 @@
"tostatus": false,
"complete": "payload",
"targetType": "msg",
"x": 1370,
"y": 1240,
"x": 1490,
"y": 640,
"wires": []
},
{
@@ -510,8 +399,8 @@
"tostatus": false,
"complete": "{\"le\":$flowContext('lastExecPrice'),\"cp\":payload.XETCZUSD.a[0] }",
"targetType": "jsonata",
"x": 760,
"y": 1180,
"x": 880,
"y": 580,
"wires": []
},
{
@@ -526,8 +415,8 @@
"crontab": "",
"once": false,
"onceDelay": 0.1,
"x": 660,
"y": 940,
"x": 780,
"y": 340,
"wires": [
[
"b14715f9.da01b8"
@@ -554,8 +443,8 @@
"checkall": "true",
"repair": false,
"outputs": 2,
"x": 1500,
"y": 1060,
"x": 1620,
"y": 460,
"wires": [
[
"db4dcb29.89cd38",
@@ -578,8 +467,8 @@
"tostatus": false,
"complete": "payload",
"targetType": "msg",
"x": 1800,
"y": 1100,
"x": 1920,
"y": 500,
"wires": []
},
{
@@ -593,8 +482,8 @@
"tostatus": false,
"complete": "payload",
"targetType": "msg",
"x": 1730,
"y": 1020,
"x": 1850,
"y": 420,
"wires": []
},
{
@@ -608,8 +497,8 @@
"tostatus": false,
"complete": "payload",
"targetType": "msg",
"x": 1710,
"y": 1180,
"x": 1830,
"y": 580,
"wires": []
},
{
@@ -632,8 +521,8 @@
"checkall": "true",
"repair": false,
"outputs": 2,
"x": 1500,
"y": 1200,
"x": 1620,
"y": 600,
"wires": [
[
"9ff35104.7db0d",
@@ -656,8 +545,8 @@
"tostatus": false,
"complete": "payload",
"targetType": "msg",
"x": 1790,
"y": 1260,
"x": 1910,
"y": 660,
"wires": []
},
{
@@ -668,8 +557,8 @@
"func": "//$number(payload.XETCZUSD.a[0]) - $number($flowContext('lastExecPrice'))\n\nconst delta=flow.get('delta'); // how much price move to take action?\nlet askPrice=msg.payload.XETCZUSD.a[0];\nlet bidPrice=msg.payload.XETCZUSD.b[0];\nlet lastExecPrice=flow.get('lastExecPrice');\n\nmsg.lastExecPrice=lastExecPrice;\n\nif (bidPrice>lastExecPrice+delta) {\n msg.action=\"sell\";\n msg.price=bidPrice;\n} else if (askPrice<lastExecPrice-delta) {\n msg.action=\"buy\";\n msg.price=askPrice;\n} else {\n msg.action=\"nothing\";\n}\n\nreturn msg;",
"outputs": 1,
"noerr": 0,
"x": 890,
"y": 1100,
"x": 1010,
"y": 500,
"wires": [
[
"713645b4.f9ba7c"
@@ -684,8 +573,8 @@
"func": "let commission = flow.get('commission');\nlet grosBalance = flow.get('grosBalance');\nlet acctBalance = flow.get('acctBalance');\nlet delta = flow.get('delta');\n\nlet sellPrice = Number(msg.payload.XETCZUSD.b[0]);\n\ncommission += sellPrice*0.0026;\ngrosBalance -= 1;\nacctBalance += sellPrice;\n\nflow.set('commission',commission);\nflow.set('grosBalance',grosBalance);\nflow.set('acctBalance',acctBalance);\n\nflow.set('lastExecPrice',sellPrice);\nflow.set('currVolume',flow.get('currVolume')-1);\n\nreturn msg;",
"outputs": 1,
"noerr": 0,
"x": 1710,
"y": 980,
"x": 1830,
"y": 380,
"wires": [
[]
]
@@ -698,8 +587,8 @@
"func": "let commission = flow.get('commission');\nlet grosBalance = flow.get('grosBalance');\nlet acctBalance = flow.get('acctBalance');\nlet delta = flow.get('delta');\n\nlet buyPrice = Number(msg.payload.XETCZUSD.a[0]);\n\ncommission += buyPrice*0.0026;\ngrosBalance += 1;\nacctBalance -= buyPrice;\n\nflow.set('commission',commission);\nflow.set('grosBalance',grosBalance);\nflow.set('acctBalance',acctBalance);\n\nflow.set('lastExecPrice',buyPrice);\nflow.set('currVolume',flow.get('currVolume')+1);\n\nreturn msg;",
"outputs": 1,
"noerr": 0,
"x": 1700,
"y": 1140,
"x": 1820,
"y": 540,
"wires": [
[]
]
@@ -712,8 +601,8 @@
"func": "let sellPrice = Number(msg.payload.XETCZUSD.b[0]);\n\nflow.set('lastExecPrice',sellPrice);\n\nreturn msg;",
"outputs": 1,
"noerr": 0,
"x": 1730,
"y": 1060,
"x": 1850,
"y": 460,
"wires": [
[]
]
@@ -726,8 +615,8 @@
"func": "let buyPrice = Number(msg.payload.XETCZUSD.a[0]);\n\nflow.set('lastExecPrice',sellPrice);\n\nreturn msg;",
"outputs": 1,
"noerr": 0,
"x": 1710,
"y": 1220,
"x": 1830,
"y": 620,
"wires": [
[]
]
@@ -885,5 +774,459 @@
"79f2b3b4.db6cdc"
]
]
},
{
"id": "1733f8e8.f401d7",
"type": "http in",
"z": "d8e8a587.a39408",
"name": "",
"url": "/ethquote",
"method": "get",
"upload": false,
"swaggerDoc": "",
"x": 90,
"y": 480,
"wires": [
[
"466e0099.9d9f4",
"dccf207a.84fe"
]
]
},
{
"id": "133190be.64ae9f",
"type": "http response",
"z": "d8e8a587.a39408",
"name": "",
"statusCode": "",
"headers": {},
"x": 1120,
"y": 460,
"wires": []
},
{
"id": "dccf207a.84fe",
"type": "get-ticker-information",
"z": "d8e8a587.a39408",
"name": "",
"x": 460,
"y": 480,
"wires": [
[
"98e46a7a.8e8f78"
],
[
"7bb32908.e9d688"
]
]
},
{
"id": "98e46a7a.8e8f78",
"type": "change",
"z": "d8e8a587.a39408",
"name": "",
"rules": [
{
"t": "set",
"p": "q.bid",
"pt": "msg",
"to": "payload.*.b[0]",
"tot": "jsonata"
},
{
"t": "set",
"p": "q.ask",
"pt": "msg",
"to": "payload.*.a[0]",
"tot": "jsonata"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 630,
"y": 460,
"wires": [
[
"d4c52c13.e1a43"
]
]
},
{
"id": "d4c52c13.e1a43",
"type": "change",
"z": "d8e8a587.a39408",
"name": "",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "q",
"tot": "msg"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 830,
"y": 460,
"wires": [
[
"63fe3995.999ad8"
]
]
},
{
"id": "63fe3995.999ad8",
"type": "csv",
"z": "d8e8a587.a39408",
"name": "",
"sep": ",",
"hdrin": "",
"hdrout": "",
"multi": "one",
"ret": "\\n",
"temp": "",
"skip": "0",
"strings": true,
"x": 990,
"y": 460,
"wires": [
[
"133190be.64ae9f"
]
]
},
{
"id": "466e0099.9d9f4",
"type": "debug",
"z": "d8e8a587.a39408",
"name": "Incoming Ticker Query",
"active": true,
"tosidebar": true,
"console": true,
"tostatus": false,
"complete": "payload",
"targetType": "msg",
"x": 350,
"y": 420,
"wires": []
},
{
"id": "7bb32908.e9d688",
"type": "debug",
"z": "d8e8a587.a39408",
"name": "Error in Ticker Query",
"active": true,
"tosidebar": true,
"console": true,
"tostatus": false,
"complete": "true",
"targetType": "full",
"x": 720,
"y": 520,
"wires": []
},
{
"id": "f11eec38.1437d",
"type": "comment",
"z": "d8e8a587.a39408",
"name": "Query Ticker bid/ask",
"info": "",
"x": 130,
"y": 360,
"wires": []
},
{
"id": "686e858f.ba35bc",
"type": "comment",
"z": "d8e8a587.a39408",
"name": "Query the logs",
"info": "",
"x": 100,
"y": 40,
"wires": []
},
{
"id": "93ad6549.2fb1c8",
"type": "get-ticker-information",
"z": "5d834238.9ad88c",
"name": "",
"x": 430,
"y": 220,
"wires": [
[
"85a560a3.c1f3e",
"b624e64.f93ef18"
],
[
"bcc562fd.dabae"
]
]
},
{
"id": "47aba35f.ef005c",
"type": "inject",
"z": "5d834238.9ad88c",
"name": "",
"topic": "",
"payload": "{\"pair\":\"XETHZUSD\"}",
"payloadType": "json",
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"x": 200,
"y": 220,
"wires": [
[
"93ad6549.2fb1c8"
]
]
},
{
"id": "85a560a3.c1f3e",
"type": "debug",
"z": "5d834238.9ad88c",
"name": "Ticker Output",
"active": true,
"tosidebar": true,
"console": true,
"tostatus": false,
"complete": "payload",
"targetType": "msg",
"x": 670,
"y": 200,
"wires": []
},
{
"id": "bcc562fd.dabae",
"type": "debug",
"z": "5d834238.9ad88c",
"name": "Error getting Ticker",
"active": true,
"tosidebar": true,
"console": true,
"tostatus": false,
"complete": "true",
"targetType": "full",
"x": 690,
"y": 280,
"wires": []
},
{
"id": "b624e64.f93ef18",
"type": "function",
"z": "5d834238.9ad88c",
"name": "compute order",
"func": "let askPrice = msg.payload.XETHZUSD.a[0];\nlet volume2Buy = 50/askPrice; // How much Ethereum to buy for 50 USD?\nnode.log(\"Ask Price \", askPrice, \" --> Volume : \", volume2Buy );\n\nmsg.payload={\n\tpair : 'XETHZUSD',\n\ttype : 'buy',\n\tordertype : 'limit',\n\tprice : askPrice,\n\tvolume : volume2Buy\n};\n\n\nreturn msg;",
"outputs": 1,
"noerr": 0,
"x": 690,
"y": 240,
"wires": [
[
"aa87fc3a.968ee",
"9ffc04e0.96e1d8"
]
]
},
{
"id": "aa87fc3a.968ee",
"type": "add-standard-order",
"z": "5d834238.9ad88c",
"kraken": "e64b38bb.529c88",
"name": "",
"x": 900,
"y": 240,
"wires": [
[
"847e754.3bc3b88"
],
[
"e7a0fa8a.d9c008"
]
]
},
{
"id": "847e754.3bc3b88",
"type": "debug",
"z": "5d834238.9ad88c",
"name": "Order Execution Success",
"active": true,
"tosidebar": true,
"console": true,
"tostatus": false,
"complete": "true",
"targetType": "full",
"x": 1140,
"y": 220,
"wires": []
},
{
"id": "e7a0fa8a.d9c008",
"type": "debug",
"z": "5d834238.9ad88c",
"name": "Order Execution Error",
"active": true,
"tosidebar": true,
"console": true,
"tostatus": false,
"complete": "true",
"targetType": "full",
"x": 1140,
"y": 260,
"wires": []
},
{
"id": "9ffc04e0.96e1d8",
"type": "debug",
"z": "5d834238.9ad88c",
"name": "Computed Order",
"active": true,
"tosidebar": true,
"console": true,
"tostatus": false,
"complete": "payload",
"targetType": "msg",
"x": 920,
"y": 140,
"wires": []
},
{
"id": "8272f674.8a7c98",
"type": "get-server-time",
"z": "e67f589a.f8d378",
"name": "",
"x": 330,
"y": 120,
"wires": [
[
"288d7d82.889772"
],
[
"49ef2217.4037bc"
]
]
},
{
"id": "6a276dbb.1b4804",
"type": "inject",
"z": "e67f589a.f8d378",
"name": "",
"topic": "",
"payload": "",
"payloadType": "date",
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"x": 140,
"y": 120,
"wires": [
[
"8272f674.8a7c98"
]
]
},
{
"id": "288d7d82.889772",
"type": "debug",
"z": "e67f589a.f8d378",
"name": "",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "false",
"x": 570,
"y": 100,
"wires": []
},
{
"id": "49ef2217.4037bc",
"type": "debug",
"z": "e67f589a.f8d378",
"name": "",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "false",
"x": 580,
"y": 200,
"wires": []
},
{
"id": "d23ac766.df15d8",
"type": "get-account-balance",
"z": "e67f589a.f8d378",
"kraken": "42702610.230028",
"name": "",
"x": 360,
"y": 360,
"wires": [
[
"e69da0fa.a973"
],
[
"4139462.65bf8b8"
]
]
},
{
"id": "e69da0fa.a973",
"type": "debug",
"z": "e67f589a.f8d378",
"name": "Kraken-Balance",
"active": true,
"tosidebar": true,
"console": true,
"tostatus": false,
"complete": "payload",
"targetType": "msg",
"x": 620,
"y": 340,
"wires": []
},
{
"id": "4139462.65bf8b8",
"type": "debug",
"z": "e67f589a.f8d378",
"name": "Kraken Balance ERROR",
"active": true,
"tosidebar": true,
"console": true,
"tostatus": false,
"complete": "payload",
"targetType": "msg",
"x": 650,
"y": 420,
"wires": []
},
{
"id": "105e61e6.8fea0e",
"type": "inject",
"z": "e67f589a.f8d378",
"name": "",
"topic": "",
"payload": "",
"payloadType": "date",
"repeat": "86400",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"x": 150,
"y": 360,
"wires": [
[
"d23ac766.df15d8"
]
]
}
]