什么是合约交易?
1、合约交易是指买卖双方对约定未来某个时间按指定价格接收一定数量的某种资产的协议进行交易。合约交易的买卖对象是由交易所统一制定的标准化合约,交易所规定了其商品种类,交易时间,数量等标准化信息。合约代表了买卖双方所拥有的权利和义务。
简单点说就是现在约好未来某个时间地点交易一定数量的某种商品。
2、合约交易是一种金融衍生品,相对于现货市场的交易,用户可以在期货合约交易中通过判断涨跌,选择买入做多或卖出做空合约,来获得价格上涨或者下跌带来的收益。
17.1DIFF协议
DIFF(Differential Information Flow for Finance)是一个基于websocket和json的应用层协议。websocket是全双工通信,当客户端和服务器端建立连接后,就可以相互发数据,建立连接又称为“握手”,“握手”成功就可以建立通信了,不用在每次需要传输信息时重新建立连接,即不会“掉线”。json是数据存储格式,json数据可以方便的反序列化为Python数据。
DIFF协议可以简单的理解为服务端和客户端的通信方式,协议规定了数据格式,以便于服务端和客户端可以解读对方发来的数据。
DIFF协议分为两部分:数据访问和数据传输。
17.1.1数据传输
DIFF协议要求服务端将业务数据以JSON Merge Patch的格式推送给客户端,JSON Merge Patch的格式形如Python字典,可以在客户端反序列化为Python字典(其实是映射类型Entity)。例如:
{
"aid":"rtn_data",#业务信息截面更新
"data":[#数据更新数组
{
"balance":10237421.1,#账户资金
},
{
"float_profit":283114.780999997,#浮动盈亏
},
{
"quotes":{
"SHFE.cu1612":{
"datetime":"2016-12-30 14:31:02.000000",
"last_price":36605.0,#最新价
"volume":25431,#成交量
"pre_close":36170.0,#昨收
}
}
}
]}
l aid字段值即为数据包类型,"aid":"rtn_data"表示该包的类型为业务信息截面更新包。
l整个data数组相当于一个事务,其中的每一个元素都是一个JSON Merge Patch,处理完整个数组后业务截面即完成了从上一个时间截面推进到下一个时间截面。
DIFF协议要求客户端发送peek_message数据包以获得业务信息截面更新,例如:
{
"aid":"peek_message"
}