Select last n rows of data from keyedTable and append to reactiveStateEngine

Hi,

I have made a system as follows.

Realtime Tick Data coming from Python ---> Realtime OHLC is updated with every Tick using reactiveStateEngine ( I cannot use timeSeriesEngine as it will not update data with every tick and I found its aggregation a bit faulty / weird ) ---> stored to KeyedTable to remove duplicates ( As I need last data I cannot use keyedStreamTable ) ---> [I am stuck here] calculation Engine (reactiveStateEngine)


Now I have question as  under:

1) I want to select last n rows of data from keyedTable and append to calculation Engine (reactiveStateEngine) automatically with every tick how to do it ?

请先 登录 后评论

1 个回答

Shena Mao

Using keyedTable and append to Engine is really hard, since every update needs to be appended to Engine. You can write a for loop to do that.

If you want to keep last data, try this:

share streamTable(10:0,`symbol`ts`ts_m5`om5`hm5`lm5`cm5`vm5,[SYMBOL,TIMESTAMP,TIMESTAMP,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE]) as trades1
tempTable = table(1:0, `ts_m5`symbol`ts`om5`hm5`lm5`cm5`vm5, [TIMESTAMP,SYMBOL,TIMESTAMP,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE])
outputTable = table(1:0, `symbol`ts_m5`ts`om5`hm5`lm5`cm5`vm5, [SYMBOL,TIMESTAMP,TIMESTAMP,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE])
rsMavg = createReactiveStateEngine(name="calc_mavg", metrics=<[ts_m5, ts,mavg(om5,3), mavg(hm5,3),mavg(lm5,3),mavg(cm5,3),mavg(vm5,3)]>, dummyTable=tempTable, outputTable=outputTable, keyColumn=`symbol)
csEngine1=createCrossSectionalEngine(name="csEngineDemo1", metrics=<[last(ts), last(om5), last(hm5), last(lm5), last(cm5), last(vm5)]>, dummyTable=trades1, outputTable=rsMavg, keyColumn=`symbol`ts_m5, triggeringPattern="keyCount",triggeringInterval =(1500,200s), useSystemTime=false, timeColumn=`ts_m5,lastBatchOnly = true, contextByColumn=`symbol)

subscribeTable(tableName="trades1", actionName="tradesStats", handler=append!{csEngine1}, msgAsTable=true)
replay(inputTables=x,outputTables=trades1,dateColumn=`ts_m5,timeColumn=`ts_m5)
select * from outputTable;

 and the output is like this :

symbol  ts_m5                   ts                      om5                   hm5                   ...
------- ----------------------- ----------------------- --------------------- --------------------- ---
BTCUSDT 2022.01.15T15:10:00.000 2022.01.15T15:14:16.606                                             ...
BTCUSDT 2022.01.15T15:15:00.000 2022.01.15T15:18:05.828                                             ...
BTCUSDT 2022.01.15T15:25:00.000 2022.01.15T15:29:59.999 42929.080000000001746 42972.213333333325863 ...
BTCUSDT 2022.01.15T15:30:00.000 2022.01.15T15:34:59.999 42987.996666666665987 43029.55333333332237  ...
BTCUSDT 2022.01.15T15:35:00.000 2022.01.15T15:39:59.999 43017.096666666671808 43121.436666666661039 ...
BTCUSDT 2022.01.15T15:40:00.000 2022.01.15T15:44:59.999 43084.213333333340415 43162.833333333321206 ...
BTCUSDT 2022.01.15T15:45:00.000 2022.01.15T15:49:59.999 43132.036666666674136 43236.873333333329355 ...
BTCUSDT 2022.01.15T15:50:00.000 2022.01.15T15:51:45.793 43195.563333333331684 43242.786666666659584 ...
BTCUSDT 2022.01.15T15:55:00.000 2022.01.15T15:59:59.999 43190.306666666670935 43259.293333333327609 ...
BTCUSDT 2022.01.15T16:00:00.000 2022.01.15T16:04:59.999 43187.426666666673554 43231.189999999995052 ...



请先 登录 后评论
  • 1 关注
  • 0 收藏,898 浏览
  • Vishvesh Upadhyay 提出于 2022-01-20 22:22

相似问题