Note:order-example do
2015-08-19 15:02 wendy# 阅读(48) 评论(0) 收藏 举报raw data 有三种格式:
1)Add
属性:
type:char
sequence:int64
ref:int64
exchange:char
ordertype:char
size:int64
symbol:string
price:double
seconds:int64
milliseconds:int64
system:char
qid:string
维度:
[i=0:*,10000,0]
2)Modify
属性:
type:char
type:char
sequence:int64
ref:int64
size:int64
price:double
seconds:int64
milliseconds:int64
symbol:string
exchange:char
system:char
qid:string
ordertype:char
维度:
[i=0:*,10000,0]
3) Delete
属性:
type:char
sequence:int64
ref:int64
seconds:int64
milliseconds:int64
symbol:string
exchange:char
system:char
qid:string
ordertype:char
维度:
[i=0:*,10000,0]
./load.sh EQY_US_ALL_ARCA_BOOK_20130404.csv.gz
将三种不同的输入格式,标准化为相同的格式。
并存储入数组flat中。
flat<type:char,sequence:int64,ref:int64,exchange:char,ordertype:char,size:int64,symbol:string,price:double,seconds:int64,milliseconds:int64,system:char,qid:string> [i=0:*,10000,0]
数据为:{20906} 'A',1487,12884939599,'B','S',100,'GBOOY',38.8,34641,221,'B','AARCA'
(symbol指的应该是哪只股票)
./redim.sh
将记录(也可看作一维数组)转化为2D数组,维度是time和symbol。
step 1:将flat中 symbol取出并去重,symbol存入数组symbols中。
step 2:首先将symbol中<symbol,index>每个symbol对应的index添加到flat中,即symbol_index属性,再在flat中添加两个属性 order_record和ms,计算方法分别如下,再将数组维度设置为symbol_index和ms,属性只取order_record。
step 3:结果存入symbol_time。
symbol_time<order_record:string NULL DEFAULT null> [symbol_index=0:*,5,0,ms=0:86399999,86400000,0]
store(
redimension(
apply(
index_lookup(flat as X, symbols as Y, X.symbol, symbol_index),
order_record, type+','+format(ref,'%.0f')+','+format(price,'%f')+','+format(size, '%.0f')+','+symbol +','+ordertype + '|', ms, seconds*1000 + milliseconds),
<order_record: string null> [symbol_index=0:*,5,0, ms=0:86399999, 86400000, 0]
), symbol_time)
redimension(
apply(
index_lookup(flat as X, symbols as Y, X.symbol, symbol_index),
order_record, type+','+format(ref,'%.0f')+','+format(price,'%f')+','+format(size, '%.0f')+','+symbol +','+ordertype + '|', ms, seconds*1000 + milliseconds),
<order_record: string null> [symbol_index=0:*,5,0, ms=0:86399999, 86400000, 0]
), symbol_time)
数据为 :{0,44904036} 'A,844437820022278,41.060000,100,A,B|'
type(add modify or delete),ref(即id),price(价格),size(volume),symbol(哪只股票),ordertype(type:buy or sell)
./book.sh
q="store(redimension(cumulate(symbol_time, orderbook(order_record), ms),<order_record_orderbook:string null> [symbol_index=0:*,100,0,ms=0:86399999,10000000,0]), book)"
输出为
{24,17946977}
'22.320,32500, 22.330,32500, 22.340,242500, 22.350,757100, 22.360,628600, 22.370,305200, 22.380,146600, 22.390,12100, 22.400,5000, 22.410,2000 | 22.330, 1500, 22.340, 14000, 22.360, 5000, 22.370, 3000, 22.380, 15500, 22.390, 44500, 22.400, 89500, 22.410, 443000, 22.420, 536500, 22.430, 416000, 22.440, 290500'
bp1, bv1, bp2, bv2, bp3, bv3 | ap1, av1, ap2, av2, ap3, av3
bp1:bid price 1 买入价
bv1:bid volume 1 投标量
ap1:ask price 1 询问价(卖出价)
av1:ask volume 1 询问数量(卖出数)
bp1 < bp2 < bp3 < ap1 < ap2 < ap3.
数据显示为:
bp1 < bp2 < bp3 ; ap1 < ap2 < ap3.
浙公网安备 33010602011771号