bugfix json gui parsing

This commit is contained in:
David Brazda
2023-12-10 20:32:21 +01:00
parent 232f32467e
commit 5cc3a1c318
4 changed files with 14 additions and 6 deletions

View File

@ -1360,7 +1360,7 @@ def get_archived_runner_details_byID(id: UUID, parsed: bool = True):
else: else:
# Return the JSON string directly # Return the JSON string directly
if parsed: if parsed:
orjson.loads(res[0]) return 0, orjson.loads(res[0])
else: else:
return 0, res[0] return 0, res[0]

View File

@ -13,7 +13,7 @@ import v2realbot.controller.services as cs
from v2realbot.utils.ilog import get_log_window from v2realbot.utils.ilog import get_log_window
from v2realbot.common.model import StrategyInstance, RunnerView, RunRequest, Trade, RunArchive, RunArchiveView, RunArchiveViewPagination, RunArchiveDetail, Bar, RunArchiveChange, TestList, ConfigItem, InstantIndicator, DataTablesRequest, AnalyzerInputs from v2realbot.common.model import StrategyInstance, RunnerView, RunRequest, Trade, RunArchive, RunArchiveView, RunArchiveViewPagination, RunArchiveDetail, Bar, RunArchiveChange, TestList, ConfigItem, InstantIndicator, DataTablesRequest, AnalyzerInputs
from fastapi import FastAPI, WebSocket, WebSocketDisconnect, Depends, HTTPException, status, WebSocketException, Cookie, Query from fastapi import FastAPI, WebSocket, WebSocketDisconnect, Depends, HTTPException, status, WebSocketException, Cookie, Query
from fastapi.responses import FileResponse, StreamingResponse from fastapi.responses import FileResponse, StreamingResponse, JSONResponse
from fastapi.staticfiles import StaticFiles from fastapi.staticfiles import StaticFiles
from fastapi.security import HTTPBasic, HTTPBasicCredentials from fastapi.security import HTTPBasic, HTTPBasicCredentials
from v2realbot.enums.enums import Env, Mode from v2realbot.enums.enums import Env, Mode

View File

@ -16,6 +16,7 @@ var slLine = []
//input array object bars = { high: [1,2,3], time: [1,2,3], close: [2,2,2]...} //input array object bars = { high: [1,2,3], time: [1,2,3], close: [2,2,2]...}
//output array [{ time: 111, open: 11, high: 33, low: 333, close: 333},..] //output array [{ time: 111, open: 11, high: 33, low: 333, close: 333},..]
function transform_data(data) { function transform_data(data) {
//console.log(data)
var SHOW_SL_DIGITS = get_from_config("SHOW_SL_DIGITS", true) var SHOW_SL_DIGITS = get_from_config("SHOW_SL_DIGITS", true)
transformed = [] transformed = []
//get basic bars, volume and vvwap //get basic bars, volume and vvwap
@ -174,7 +175,9 @@ function transform_data(data) {
data.trades.forEach((trade, index, array) => { data.trades.forEach((trade, index, array) => {
obj = {}; obj = {};
a_markers = {} a_markers = {}
timestamp = Date.parse(trade.order.filled_at)/1000 //tady z predchozi verze muze byt string (pak je to date v iso) a nebo v novejsi uz mame timestamp
timestamp = (typeof trade.order.filled_at === 'string') ? Date.parse(trade.order.filled_at)/1000 : trade.order.filled_at
//light chart neumi vice zaznamu ve stejny cas //light chart neumi vice zaznamu ve stejny cas
//protoze v BT se muze stat vice tradu v jeden cas, testujeme stejne hodnoty a pripadne pricteme jednu ms //protoze v BT se muze stat vice tradu v jeden cas, testujeme stejne hodnoty a pripadne pricteme jednu ms
//tradu s jednim casem muze byt za sebou vic, proto iterator //tradu s jednim casem muze byt za sebou vic, proto iterator
@ -266,9 +269,10 @@ function transform_data(data) {
markers.push(marker) markers.push(marker)
//prevedeme iso data na timestampy //prevedeme iso data na timestampy
trade.order.submitted_at = Date.parse(trade.order.submitted_at)/1000 //open bud zde je iso string (predchozi verze) nebo rovnou float - podporime oboji
trade.order.filled_at = Date.parse(trade.order.filled_at)/1000 trade.order.submitted_at = (typeof trade.order.submitted_at === 'string') ? Date.parse(trade.order.submitted_at)/1000 : trade.order.submitted_at
trade.timestamp = Date.parse(trade.order.timestamp)/1000 trade.order.filled_at = (typeof trade.order.filled_at === 'string') ? Date.parse(trade.order.filled_at)/1000 : trade.order.filled_at
trade.timestamp = (typeof trade.timestamp === 'string') ? Date.parse(trade.order.timestamp)/1000 : trade.order.timestamp
tradeDetails.set(timestamp, trade) tradeDetails.set(timestamp, trade)
//line pro buy/sell markery //line pro buy/sell markery

View File

@ -63,6 +63,10 @@ function get_detail_and_chart(row) {
//console.log(JSON.stringify(data,null,2)); //console.log(JSON.stringify(data,null,2));
//if lower res is required call prepare_data otherwise call chart_archived_run() //if lower res is required call prepare_data otherwise call chart_archived_run()
//get other base resolutions //get other base resolutions
// console.log("received detail", data)
// data = JSON.parse(data)
// console.log("parsed detail", data)
prepare_data(row, 1, "Min", data) prepare_data(row, 1, "Min", data)
}, },
error: function(xhr, status, error) { error: function(xhr, status, error) {