From 076fa1cb0f10f64895b87aff675d9efcf30ba913 Mon Sep 17 00:00:00 2001 From: David Brazda Date: Mon, 17 Apr 2023 16:46:04 +0200 Subject: [PATCH] presunuta konzolidace pred nakup --- v2realbot/ENTRY_backtest_strategyVykladaci.py | 86 ++++++++++--------- 1 file changed, 45 insertions(+), 41 deletions(-) diff --git a/v2realbot/ENTRY_backtest_strategyVykladaci.py b/v2realbot/ENTRY_backtest_strategyVykladaci.py index b16404c..df19ab8 100644 --- a/v2realbot/ENTRY_backtest_strategyVykladaci.py +++ b/v2realbot/ENTRY_backtest_strategyVykladaci.py @@ -170,6 +170,51 @@ def next(data, state: StrategyState): print("is falling",isfalling(state.indicators.ema,state.vars.Trend)) print("is rising",isrising(state.indicators.ema,state.vars.Trend)) + ##CONSOLIDATION PART - moved here, musí být před nákupem, jinak to dělalo nepořádek v pendingbuys + if state.vars.jevylozeno == 1: + ##CONSOLIDATION PART kazdy Nty bar dle nastaveni + if int(data["index"])%int(state.vars.consolidation_bar_count) == 0: + print("***Consolidation ENTRY***") + + orderlist = state.interface.get_open_orders(symbol=state.symbol, side=None) + #print(orderlist) + pendingbuys_new = {} + limitka_old = state.vars.limitka + print("Puvodni LIMITKA", limitka_old) + state.vars.limitka = None + for o in orderlist: + if o.side == OrderSide.SELL: + print("Nalezena LIMITKA") + state.vars.limitka = o.id + if o.side == OrderSide.BUY: + pendingbuys_new[str(o.id)]=float(o.limit_price) + + print("Nová LIMITKA", state.vars.limitka) + if pendingbuys_new != state.vars.pendingbuys: + print("ROZDILNA PENDINGBUYS přepsána") + print("OLD",state.vars.pendingbuys) + state.vars.pendingbuys = unpackb(packb(pendingbuys_new)) + print("NEW", state.vars.pendingbuys) + else: + print("PENDINGBUYS sedí - necháváme", state.vars.pendingbuys) + print("OLD jevylozeno", state.vars.jevylozeno) + if len(state.vars.pendingbuys) > 0: + state.vars.jevylozeno = 1 + else: + state.vars.jevylozeno = 0 + print("NEW jevylozeno", state.vars.jevylozeno) + + #print(limitka) + #print(pendingbuys_new) + #print(pendingbuys) + #print(len(pendingbuys)) + #print(len(pendingbuys_new)) + #print(jevylozeno) + print("***CONSOLIDATION EXIT***") + + else: + print("no time for consolidation", data["index"]) + #SLOPE ANGLE PROTECTION if slope < minimum_slope: print("OCHRANA SLOPE TOO HIGH") @@ -230,48 +275,7 @@ def next(data, state: StrategyState): # - pendingbuys - vsechny open orders buy # - limitka - open order sell - ##CONSOLIDATION PART kazdy Nty bar dle nastaveni - if int(data["index"])%int(state.vars.consolidation_bar_count) == 0: - print("***Consolidation ENTRY***") - orderlist = state.interface.get_open_orders(symbol=state.symbol, side=None) - #print(orderlist) - pendingbuys_new = {} - limitka_old = state.vars.limitka - print("Puvodni LIMITKA", limitka_old) - state.vars.limitka = None - for o in orderlist: - if o.side == OrderSide.SELL: - print("Nalezena LIMITKA") - state.vars.limitka = o.id - if o.side == OrderSide.BUY: - pendingbuys_new[str(o.id)]=float(o.limit_price) - - print("Nová LIMITKA", state.vars.limitka) - if pendingbuys_new != state.vars.pendingbuys: - print("ROZDILNA PENDINGBUYS přepsána") - print("OLD",state.vars.pendingbuys) - state.vars.pendingbuys = unpackb(packb(pendingbuys_new)) - print("NEW", state.vars.pendingbuys) - else: - print("PENDINGBUYS sedí - necháváme", state.vars.pendingbuys) - print("OLD jevylozeno", state.vars.jevylozeno) - if len(state.vars.pendingbuys) > 0: - state.vars.jevylozeno = 1 - else: - state.vars.jevylozeno = 0 - print("NEW jevylozeno", state.vars.jevylozeno) - - #print(limitka) - #print(pendingbuys_new) - #print(pendingbuys) - #print(len(pendingbuys)) - #print(len(pendingbuys_new)) - #print(jevylozeno) - print("***CONSOLIDATION EXIT***") - - else: - print("no time for consolidation", data["index"])