From 25221de1d913d32d59a309ffcdb6b7bf6a4ca181 Mon Sep 17 00:00:00 2001 From: David Brazda Date: Mon, 8 May 2023 20:03:16 +0200 Subject: [PATCH] bugfixy --- v2realbot/ENTRY_backtest_strategyVykladaci.py | 18 ++++++++++--- v2realbot/static/js/archivechart.js | 25 +++++++++++++----- .../utils/__pycache__/utils.cpython-310.pyc | Bin 8151 -> 8217 bytes v2realbot/utils/utils.py | 2 +- 4 files changed, 34 insertions(+), 11 deletions(-) diff --git a/v2realbot/ENTRY_backtest_strategyVykladaci.py b/v2realbot/ENTRY_backtest_strategyVykladaci.py index e6cdefa..6b157ae 100644 --- a/v2realbot/ENTRY_backtest_strategyVykladaci.py +++ b/v2realbot/ENTRY_backtest_strategyVykladaci.py @@ -204,11 +204,21 @@ def next(data, state: StrategyState): #roc_lookback = 20 #print(state.vars.MA, "MACKO") #print(state.bars.hlcc4) - state.indicators.ema = ema(state.bars.close, state.vars.MA) #state.bars.vwap - #trochu prasarna, EMAcko trunc na 3 mista - kdyz se osvedci, tak udelat efektivne - state.indicators.ema = [trunc(i,3) for i in state.indicators.ema] - #ic(state.vars.MA, state.vars.Trend, state.indicators.ema[-5:]) + #plnime MAcko - nyni posilame jen N poslednich hodnot + #zaroven osetrujeme pripady, kdy je malo dat a ukladame nulu + try: + ma = int(state.vars.MA) + source = state.bars.close[-ma:] #state.bars.vwap + ema_value = ema(source, ma) + state.indicators.ema.append(trunc(ema_value[-1],3)) + except Exception as e: + state.ilog(e="EMA ukladame 0", message=str(e)) + state.indicators.ema.append(0) + + #TODO helikoz se EMA pocita pro cely set po kazde iteraci znouv, tak je toto PRASARNA + #davame pryc jestli bude to vyse fungovat + ##state.indicators.ema = [trunc(i,3) for i in state.indicators.ema] slope_lookback = int(state.vars.slope_lookback) minimum_slope = float(state.vars.minimum_slope) lookback_offset = int(state.vars.lookback_offset) diff --git a/v2realbot/static/js/archivechart.js b/v2realbot/static/js/archivechart.js index 9fbc196..7a1795c 100644 --- a/v2realbot/static/js/archivechart.js +++ b/v2realbot/static/js/archivechart.js @@ -151,13 +151,13 @@ function prepare_data(archRunner, timeframe_amount, timeframe_unit, archivedRunn contentType: "application/json", data: req, success:function(data){ - console.log("one minute bars before", JSON.stringify(data)) + //console.log("one minute bars before", JSON.stringify(data)) data.map((el)=>{ cas = new Date(el.timestamp) el.time = cas.getTime()/1000; delete el.timestamp }); - console.log("one min bars_after_transformation", JSON.stringify(data)) + //console.log("one min bars_after_transformation", JSON.stringify(data)) oneMinuteBars = data chart_archived_run(archRunner, archivedRunnerDetail, oneMinuteBars); //call function to continue @@ -242,6 +242,9 @@ function chart_archived_run(archRecord, data, oneMinuteBars) { last_range = null } + intitialize_candles() + candlestickSeries.setData(AllCandleSeriesesData.get(interval)); + if (interval == native_resolution) { //indicators are in native resolution only display_indicators(data); @@ -250,9 +253,6 @@ function chart_archived_run(archRecord, data, oneMinuteBars) { remove_indicators(); } - intitialize_candles() - candlestickSeries.setData(AllCandleSeriesesData.get(interval)); - display_buy_markers(); if (last_range) { @@ -289,13 +289,24 @@ function chart_archived_run(archRecord, data, oneMinuteBars) { //tranform data do správného formátru items = [] + //var last = null value.forEach((element, index, array) => { item = {} - + //debug + //TOTO odstranit po identifikovani chyby + //if (indicators.time[index] !== undefined) { + //{console.log("problem",key,last)} item["time"] = indicators.time[index] item["value"] = element //console.log("objekt indicatoru",item) items.push(item) + //debug + //last = item + // } + // else + // { + // console.log("chybejici cas", key) + // } }); if (conf.embed) { @@ -330,6 +341,8 @@ function chart_archived_run(archRecord, data, oneMinuteBars) { lastValueVisible: false, priceLineVisible: false, }); + + //console.log("problem tu",items) //add data obj.series.setData(items) diff --git a/v2realbot/utils/__pycache__/utils.cpython-310.pyc b/v2realbot/utils/__pycache__/utils.cpython-310.pyc index 46a00c72d0748d1a764ed4aff732bd2b3e58f7e4..7c983eb026c8a3d705c92444de41129a05227b7a 100644 GIT binary patch delta 617 zcmZ|L&ubGw6bJCUt}f};K-z3}L+hp~Xff2DS_DDRi|9e9;Kd&oW3!sI`yf}I#avZvV|W6ens338fLQWX&iw+tU&M(v za-7unIN#z^hks9fMA!u%z)3JEN!41jY5R5gGkRTb;a~^s@9Tc%-X=TN y1-cgEbQN5cq>AIW#APgJ!2*cD66k%G5p}>Cz!Sv===FjJ>^0QoFNaL_N1cB>iki9r delta 611 zcmZ|LPe>a<6bA4-r(M!$z=X{vSd$n~A*kRX6nauT2Zi<`_RxlAv1#KbOadA$wg+4P zpdNgQ)ha@Qg@!_1yY}MA9z6)X348O@yT_iKPr-xW!u-LpiUM37FbTnNwrJ90a=g(c|c$a6hIM3FwOhHUTqd} z&iNZOsPDe^q;S2{rui$h%)@$&X85H(Mhnh??xWay zRc{Jc3+EwLaHAv=$4lDpg*nWwt567jWA zgKHgI@qKi6frjFb8n+GlBiV4$kNZjcj`b$bcV46q5N+@iJOu*^SIZQOrj=DcvF$6EP`DyzmE}05uR#UOfdz1Vl`7IE*a3L8 Utb^<8;Y~MpwE3hh%yv9?1tu1f3;+NC diff --git a/v2realbot/utils/utils.py b/v2realbot/utils/utils.py index bd563eb..f0f32fa 100644 --- a/v2realbot/utils/utils.py +++ b/v2realbot/utils/utils.py @@ -137,7 +137,7 @@ def is_open_rush(dt: datetime, mins: int = 30): def is_close_rush(dt: datetime, mins: int = 30): """" - Returns true if time is within morning rush (open+mins) + Returns true if time is within afternoon rush (close-mins) """ dt = dt.astimezone(zoneNY) business_hours = {