From 231129d2c22ff512d0d9c7825d1061085e6cd6f2 Mon Sep 17 00:00:00 2001 From: caimeng <862786917@qq.com> Date: Mon, 20 May 2019 15:37:11 +0800 Subject: [PATCH 1/5] notify --- vnpy/trader/utils/templates/notify.py | 34 ++++++++++++++++++++ vnpy/trader/utils/templates/orderTemplate.py | 21 +++++++++++- 2 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 vnpy/trader/utils/templates/notify.py diff --git a/vnpy/trader/utils/templates/notify.py b/vnpy/trader/utils/templates/notify.py new file mode 100644 index 0000000..08f52d3 --- /dev/null +++ b/vnpy/trader/utils/templates/notify.py @@ -0,0 +1,34 @@ +from xml.etree import ElementTree +from collections import defaultdict +import json +import requests +import re + +ROOT_TAG = "ding" + + +def dingFormatter(): + e = ElementTree.Element(ROOT_TAG) + e.text = ".*?" + return ElementTree.tostring(e, "unicode") + + +DingCompiler = re.compile(dingFormatter()) + + +def makeNotify(message, titles, channels): + root = ElementTree.Element(ROOT_TAG) + + for title in titles: + etitle = ElementTree.SubElement(root, "title") + etitle.text = title + + for channel in channels: + echannel = ElementTree.SubElement(root, "channel") + echannel.text = channel + + emessage = ElementTree.SubElement(root, "message") + emessage.text = message + + return ElementTree.tostring(root, "unicode") + diff --git a/vnpy/trader/utils/templates/orderTemplate.py b/vnpy/trader/utils/templates/orderTemplate.py index b987bf0..2e0d158 100644 --- a/vnpy/trader/utils/templates/orderTemplate.py +++ b/vnpy/trader/utils/templates/orderTemplate.py @@ -3,6 +3,7 @@ from vnpy.trader.vtConstant import * from vnpy.trader.language import constant from vnpy.trader.app.ctaStrategy import ctaBase +from vnpy.trader.utils.templates.notify import makeNotify from datetime import datetime, timedelta, timezone from collections import Iterable import numpy as np @@ -1545,7 +1546,6 @@ def cancelOrder(self, vtOrderID): self.onOrder(op.order) return - print('send cancel', vtOrderID) return super().cancelOrder(vtOrderID) def isCancel(self, op): @@ -1560,3 +1560,22 @@ def isOrderVolumeValid(self, vtSymbol, orderType, volume, price=None): maximum = self.maximumOrderVolume(vtSymbol, orderType, price) return maximum >= volume + + def notify(self, title, message, *channels): + text = makeNotify( + message, + (title,), + channels if channels else (self.author,) + ) + self.writeLog(text) + + def simpleNotify(self, message): + self.notify( + self.name, + message, + self.author + ) + + def notifyPosition(self, key, value): + message = "%-20s %-s" % (key, value) + self.notify("Position: %s" % self.name, message) From efa26ccc43fb76cd8eb7501b01e4db36f1279085 Mon Sep 17 00:00:00 2001 From: caimeng <862786917@qq.com> Date: Mon, 20 May 2019 16:10:56 +0800 Subject: [PATCH 2/5] fix --- vnpy/trader/utils/templates/orderTemplate.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vnpy/trader/utils/templates/orderTemplate.py b/vnpy/trader/utils/templates/orderTemplate.py index 2e0d158..e4ad8b7 100644 --- a/vnpy/trader/utils/templates/orderTemplate.py +++ b/vnpy/trader/utils/templates/orderTemplate.py @@ -1577,5 +1577,5 @@ def simpleNotify(self, message): ) def notifyPosition(self, key, value): - message = "%-20s %-s" % (key, value) + message = "%-20s %10s" % (key, value) self.notify("Position: %s" % self.name, message) From 8b4e466f59c35a08772b4a643845507d9be2d327 Mon Sep 17 00:00:00 2001 From: caimeng <862786917@qq.com> Date: Mon, 20 May 2019 16:45:22 +0800 Subject: [PATCH 3/5] 24 --- vnpy/trader/utils/templates/orderTemplate.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vnpy/trader/utils/templates/orderTemplate.py b/vnpy/trader/utils/templates/orderTemplate.py index e4ad8b7..f826151 100644 --- a/vnpy/trader/utils/templates/orderTemplate.py +++ b/vnpy/trader/utils/templates/orderTemplate.py @@ -1577,5 +1577,5 @@ def simpleNotify(self, message): ) def notifyPosition(self, key, value): - message = "%-20s %10s" % (key, value) + message = "%-24s %10s" % (key, value) self.notify("Position: %s" % self.name, message) From f2891e39fc71f6e38779623b14674f95c882ab5f Mon Sep 17 00:00:00 2001 From: caimeng <862786917@qq.com> Date: Wed, 22 May 2019 11:28:21 +0800 Subject: [PATCH 4/5] log position --- vnpy/trader/utils/templates/orderTemplate.py | 1 + 1 file changed, 1 insertion(+) diff --git a/vnpy/trader/utils/templates/orderTemplate.py b/vnpy/trader/utils/templates/orderTemplate.py index f826151..04df055 100644 --- a/vnpy/trader/utils/templates/orderTemplate.py +++ b/vnpy/trader/utils/templates/orderTemplate.py @@ -1578,4 +1578,5 @@ def simpleNotify(self, message): def notifyPosition(self, key, value): message = "%-24s %10s" % (key, value) + self.writeLog(message) self.notify("Position: %s" % self.name, message) From ab6e0de5c6a84cba15c029e586c2f2171b3834b4 Mon Sep 17 00:00:00 2001 From: caimeng <862786917@qq.com> Date: Thu, 23 May 2019 09:26:54 +0800 Subject: [PATCH 5/5] channel for position notify --- vnpy/trader/utils/templates/orderTemplate.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vnpy/trader/utils/templates/orderTemplate.py b/vnpy/trader/utils/templates/orderTemplate.py index 04df055..e1e7a46 100644 --- a/vnpy/trader/utils/templates/orderTemplate.py +++ b/vnpy/trader/utils/templates/orderTemplate.py @@ -1576,7 +1576,7 @@ def simpleNotify(self, message): self.author ) - def notifyPosition(self, key, value): + def notifyPosition(self, key, value, *channels): message = "%-24s %10s" % (key, value) self.writeLog(message) - self.notify("Position: %s" % self.name, message) + self.notify("Position: %s" % self.name, message, *channels)