From fcd373144161b207ab36aea6412f725ab0073618 Mon Sep 17 00:00:00 2001 From: David Brazda Date: Mon, 24 Apr 2023 15:03:02 +0200 Subject: [PATCH] bugfix --- testy/fformat.py | 13 +++++++++++++ .../strategy/StrategyOrderLimitVykladaci.py | 14 +++++++------- ...trategyOrderLimitVykladaci.cpython-310.pyc | Bin 7232 -> 7197 bytes .../strategy/__pycache__/base.cpython-310.pyc | Bin 13143 -> 13155 bytes v2realbot/strategy/base.py | 4 ++-- 5 files changed, 22 insertions(+), 9 deletions(-) diff --git a/testy/fformat.py b/testy/fformat.py index 3f5892a..e4b3a2a 100644 --- a/testy/fformat.py +++ b/testy/fformat.py @@ -1,3 +1,16 @@ +from v2realbot.enums.enums import OrderSide +class A: + def __init__(self) -> None: + self.d = 33 + self.a = "Aa" + self.b = "Ab" + self.c = OrderSide.BUY + +trida = A() + +trida.a +print(f"{trida.a=}") +print(f"{trida.c=}") d= 1 diff --git a/v2realbot/strategy/StrategyOrderLimitVykladaci.py b/v2realbot/strategy/StrategyOrderLimitVykladaci.py index 1a20b88..8f6ae12 100644 --- a/v2realbot/strategy/StrategyOrderLimitVykladaci.py +++ b/v2realbot/strategy/StrategyOrderLimitVykladaci.py @@ -21,12 +21,12 @@ class StrategyOrderLimitVykladaci(Strategy): async def orderUpdateBuy(self, data: TradeUpdate): o: Order = data.order ##nejak to vymyslet, aby se dal poslat cely Trade a serializoval se - self.state.ilog(e="Příchozí BUY notif", msg=f"{o.status=}", trade=json.loads(json.dumps(data, default=json_serial))) + self.state.ilog(e="Příchozí BUY notif", msg=o.status, trade=json.loads(json.dumps(data, default=json_serial))) if o.status == OrderStatus.FILLED or o.status == OrderStatus.CANCELED: #pokud existuje objednavka v pendingbuys - vyhodime ji if self.state.vars.pendingbuys.pop(str(o.id), False): - self.state.ilog(e="Příchozí BUY notif - mazeme ji z pb", msg=f"{o.status=}", orderid=str(o.id), pb=self.state.vars.pendingbuys) + self.state.ilog(e="Příchozí BUY notif - mazeme ji z pb", msg=o.status, status=o.status, orderid=str(o.id), pb=self.state.vars.pendingbuys) print("limit buy filled or cancelled. Vyhazujeme z pendingbuys.") #ic(self.state.vars.pendingbuys) @@ -45,7 +45,7 @@ class StrategyOrderLimitVykladaci(Strategy): self.state.vars.limitka = None else: self.state.vars.limitka_price = price - self.state.ilog(e="Příchozí BUY notif - vytvarime limitku", msg="order status:"+o.status, orderid=str(o.id), limitka=str(self.state.vars.limitka), limtka_price=self.state.vars.limitka_price) + self.state.ilog(e="Příchozí BUY notif - vytvarime limitku", msg=o.status, status=o.status, orderid=str(o.id), limitka=str(self.state.vars.limitka), limtka_price=self.state.vars.limitka_price) else: #avgp, pos self.state.avgp, self.state.positions = self.state.interface.pos() @@ -59,7 +59,7 @@ class StrategyOrderLimitVykladaci(Strategy): self.state.vars.limitka = puvodni else: self.state.vars.limitka_price = cena - self.state.ilog(e="Příchozí BUY notif - menime limitku", msg=f"{o.status=}", orderid=str(o.id), limitka=str(self.state.vars.limitka), limtka_price=self.state.vars.limitka_price, puvodni_limitka=str(puvodni)) + self.state.ilog(e="Příchozí BUY notif - menime limitku", msg=o.status, status=o.status, orderid=str(o.id), limitka=str(self.state.vars.limitka), limtka_price=self.state.vars.limitka_price, puvodni_limitka=str(puvodni)) except APIError as e: self.state.ilog(e="API ERROR pri zmene limitky", msg=str(e), orderid=str(o.id), limitka=str(self.state.vars.limitka), limitka_price=self.state.vars.limitka_price, puvodni_limitka=str(puvodni)) @@ -71,7 +71,7 @@ class StrategyOrderLimitVykladaci(Strategy): async def orderUpdateSell(self, data: TradeUpdate): - self.state.ilog(e="Příchozí SELL notif", msg=f"{data.order.status=}", trade=json.loads(json.dumps(data, default=json_serial))) + self.state.ilog(e="Příchozí SELL notif", msg=data.order.status, trade=json.loads(json.dumps(data, default=json_serial))) #PROFIT #profit pocitame z TradeUpdate.price a TradeUpdate.qty - aktualne provedene mnozstvi a cena #naklady vypocteme z prumerne ceny, kterou mame v pozicich @@ -106,7 +106,7 @@ class StrategyOrderLimitVykladaci(Strategy): self.state.vars.lastbuyindex = -5 self.state.vars.jevylozeno = 0 await self.state.cancel_pending_buys() - self.state.ilog(e="Příchozí SELL - FILL nebo CANCEL - mazeme limitku a pb", msg=f"{data.order.status=}", orderid=str(data.order.id), pb=self.state.vars.pendingbuys) + self.state.ilog(e="Příchozí SELL - FILL nebo CANCEL - mazeme limitku a pb", msg=data.order.status, orderid=str(data.order.id), pb=self.state.vars.pendingbuys) #this parent method is called by strategy just once before waiting for first data def strat_init(self): @@ -165,7 +165,7 @@ class StrategyOrderLimitVykladaci(Strategy): #nejprve vyhodime z pendingbuys self.state.vars.pendingbuys.pop(key, False) res = self.interface.cancel(key) - self.state.ilog(e=f"Pendingy zrusen pro{key=}", orderid=str(key), res=str(res)) + self.state.ilog(e=f"Pendingy zrusen pro {key=}", orderid=str(key), res=str(res)) print("CANCEL PENDING BUYS RETURN", res) self.state.vars.pendingbuys={} self.state.vars.jevylozeno = 0 diff --git a/v2realbot/strategy/__pycache__/StrategyOrderLimitVykladaci.cpython-310.pyc b/v2realbot/strategy/__pycache__/StrategyOrderLimitVykladaci.cpython-310.pyc index 363fd6ab66536ae3e9db9c1b1b49e4c6a80c5f91..30e224a90b28206fae1acf4d9c9760a074fb3557 100644 GIT binary patch delta 1489 zcmaKrO>7%Q6vy}NryY9}JDb>!6E$v%le#4mP!|FsO`uJ2Aq`EUHUyB0>oG~zj_r=u z3AXGO@PU)1RwJY$sG6R*vy>W!Y-Z&v7PT|UddE<>5RRSM=dh_0!|Gtm$ zk27~?%(7|rN&Gk0I!`9PGjFRm_hm`?44Pm|Ex9S#V9NxWvaLAkp5~~w-UP=Wa!0-o zMCm9XiI~s!7v$=MXZICkx*+Zb?BJg1^mG3}8;E-Uz%LUGb49)v_3~3eqIWcqoDebE zz~#XXJA<~xj9r=Ppq>R)Pxf=DvqJ)=4?}?L4`gkGO zP{5AzVgl?p?U+A!PzL);A5)3h(bwN^yDl39p%4ec?p&$Jn)S0_j=MFIwX87 z748@yt??39B~@~gx1hcQQcDM^amv#ec%z z2)kh%g(%xIM%fc1GnCTki+q9fB@S1wI$5VyWpUq6tnN1<&Hna%VH!^}XqtWQ?`ky7 zv%9l>IWV4+V-Qm&*|&jdIKzGotetxT;sr=H9~R#|e*yoqeXxCw-{u>yCU_>=0Y367 z+X*JaD!1l%f2gAoofzyvaBAG=gn6$jUxB|Ze=YH~;2E<*=wtiAXX^j%fu#;_k@RF`}|Z=J-Nb+*h9J^y2n7 z8SJPac7%IMSxdDDpVFnDzk2*Iw^?pHewbKYSX@k$%Ffou-E{vqa5JSIn(S%Z!pj_~ z1bqYTHxcs)oHjj+IEPq3;NOm3M1&Dbh<7<$<+@X+Gk9DG64@$k)DsO_tL96I3N0ttUaWaBg9<3z0NuE(>l`*?{^H5%puT!NqPIFKD+ZZ@?L2n0^EA8qRkEtzYW{tGOrN|6@1xgCgY1 zB~?bH8yMSi=hxuva3*5N=%kz*)l6owAlwO$4Tl6SQI{U{ZEHJ(+3FcjxtN2W!kMvf z%TiAF^gipVNWVl>_R;*9JlhYWPB!v+w{J>z`&D?%h0D&g9Z_$jSBIDZJI=6!ChboH zkDOREhQBIw3cuO-Vl@c|`_u7yl;uQjLT$6R^7a$wF5Tis<+8IQ`~)ukBw`Nn3gQ&v zG~x^b|4Muj5kb6;I4`jm*c3HBgO5vyHxU=HVDNIa#P~T(yoOjttROBR&XSO%{1QG7 zN8Q=ff()h02?eg8xkuUfO#VL$v^NEmvC07dtEQ zVKSXa)b@3siWgud{V6>Mf26%*YR)7c8bi2l delta 62 zcmaEyc0G+ZpO=@50SMB|T~iKk`%&*zkymS2>r;1r^eS&~{b`Mpo JtS4eB4*+qe6S)8Y diff --git a/v2realbot/strategy/base.py b/v2realbot/strategy/base.py index 4a73ea6..9bf8e7e 100644 --- a/v2realbot/strategy/base.py +++ b/v2realbot/strategy/base.py @@ -193,7 +193,7 @@ class Strategy: #ic(self.state.time) if self.mode == Mode.BT: - self.state.ilog(e="Before BT iter", msg=f"{self.bt.time=}") + self.state.ilog(e="----- BT exec START", msg=f"{self.bt.time=}") #pozor backtester muze volat order_updates na minuly cas - nastavi si bt.time self.bt.execute_orders_and_callbacks(self.state.time) #ic(self.bt.time) @@ -205,7 +205,7 @@ class Strategy: #ic(self.state.time) if self.mode == Mode.BT: - self.state.ilog(e="After BT iter", msg=f"{self.bt.time=}") + self.state.ilog(e="----- BT exec FINISH", msg=f"{self.bt.time=}") #ic(self.bt.time) #ic(len(self.btdata)) #ic(self.bt.cash)