什么是现货合约量化对冲交易所系统开发?现货合约量化对冲交易所系统开发(开发说明)

简介:  量化合约指的是目标或任务具体明确,可以清晰度量。根据不同情况,表现为数量多少,具体的统计数字,范围衡量,时间长度等等。所谓量化就是把经过抽样得到的瞬时值将其幅度离散,即用一组规定的电平,把瞬时抽样值用最接近的电平值来表示。经过抽样的图像,只是在空间上被离散成为像素(样本)的阵列。而每个样本灰度值还是一个由无穷多个取值的连续变化量,必须将其转化为有限个离散值,赋予不同码字才能真正成为数字图像。这种转化称为量化。

  量化合约指的是目标或任务具体明确,可以清晰度量。现货合约对冲交易所系统开发详细:I35-7O98-O7I8 根据不同情况,表现为数量多少,具体的统计数字,范围衡量,时间长度等等。所谓量化就是把经过抽样得到的瞬时值将其幅度离散,即用一组规定的电平,把瞬时抽样值用最接近的电平值来表示。经过抽样的图像,只是在空间上被离散成为像素(样本)的阵列。而每个样本灰度值还是一个由无穷多个取值的连续变化量,必须将其转化为有限个离散值,赋予不同码字才能真正成为数字图像。这种转化称为量化。

  合约量化,就是系统根据设置,自动进行买卖交易,上涨到一定点数则卖出平仓,下跌至相应点数则进行加仓操作,等待价格回调则卖出。不断的操作,达到自动化交易,让交易者不用时时刻刻紧盯市场,使用自动化交易,摈弃了用户的个人主观情绪,让交易变得更为“理智”。

  目前合约量化的具体提现为“量化系统”、“量化软件”、“量化机器人等等”,每一种都略微有着不一样,但是大部分核心原理就是马丁倍投策略,马丁倍投策略是来自于现货市场的策略,但运用至合约上依然合理。

  交易策略是一套规则,包括进出条件、资金管理和风险控制等。有简单的策略也有复杂的策略。简单策略通常使用技术指标和价格行为,而复杂策略使用高阶数学和统计模型。通常我们认为复杂模型更好,但实证分析和学术研究表明,复杂模型往往过度挖掘历史数据,无法适应剧烈的市场变化,相反,简单模型从长期来看更稳定。本文由系统开发对接V:MrsFu123编辑整理发布。

  策略逻辑与实现其自动化交易:

  def onTick(context,bars):

  obj=ext.NewPositionManager()#使用发明者量化交易类库

  #此处用来获取持仓信息

  positions=exchange.GetPosition()#获取持仓数组

  if len(positions)==0:#如果持仓数组的长度是0

  return 0#证明是空仓,返回0

  for i in range(len(positions)):#遍历持仓数组

  if(positions<i>['Type']==PD_LONG)or(positions<i>['Type']==PD_LONG_YD):

  position_long=1#将position_long标记为1

  elif(positions<i>['Type']==PD_SHORT)or(positions<i>['Type']==PD_SHORT_YD):

  position_short=-1#将position_short标记为-1

  bar=bars[0]

  #根据价格落在(-40,-3],(-3,-2],(-2,2],(2,3],(3,40]的区间范围来获取最新收盘价所在的价格区间

  grid=pd.cut([close_01],context.band,labels=[0,1,2,3,4])[0]

  #若无仓位且价格突破则按照设置好的区间开仓

  if not position_long and not position_short and grid!=2:

  #大于3为在中间网格的上方,做多

  if grid>=3:

  obj.OpenLong("rb2005",1)#以市价单开多仓到仓位

  if grid<=1:

  obj.OpenShort("rb2005",1)#以市价单开空仓到仓位

  #持有多仓的处理

  elif position_long:

  if grid>=3:

  obj.OpenLong("rb2005",1)#以市价单调多仓到仓位

  #等于2为在中间网格,平仓

  elif grid==2:

  obj.closebuy("rb2005",1)#以市价单全平多仓

  #小于1为在中间网格的下方,做空

  elif grid<=1:

  obj.closebuy("rb2005",1)#以市价单全平多仓

  obj.OpenShort("rb2005",1)#以市价单开空仓到仓位

  #持有空仓的处理

  elif position_short:

  #小于1为在中间网格的下方,做空

  if grid<=1:

  obj.OpenShort("rb2005",1)#以市价单调空仓到仓位

  #等于2为在中间网格,平仓

  elif grid==2:

  obj.closesell("rb2005",1)#以市价单全平空仓

  #大于3为在中间网格的上方,做多

  elif grid>=3:

  obj.closesell("rb2005",1)#以市价单全平空仓

  obj.OpenLong("rb2005",1)#以市价单开多仓到仓位

  以下是完整的策略代码:

  import types

  import numpy as np

  import pandas as pd

  #初始化合约数据

  def init():

  #订阅螺纹钢的2005合约,并且取得发明者量化平台当前周期的所有收盘价

  exchange.SetContractType("rb2005")

  records=exchange.GetRecords()

  close_01=records.Close

  #获取网格区间分界线

  context.band=np.mean(close_01)+np.array([-40,-3,-2,2,3,40])*np.std(close_01)

  #设置网格的仓位

  context.weight=[0.5,0.3,0.0,0.3,0.5]

  def onTick(context,bars):

  obj=ext.NewPositionManager()#使用发明者量化交易类库

  #此处用来获取持仓信息

  positions=exchange.GetPosition()#获取持仓数组

  if len(positions)==0:#如果持仓数组的长度是0

  return 0#证明是空仓,返回0

  for i in range(len(positions)):#遍历持仓数组

  if(positions<i>['Type']==PD_LONG)or(positions<i>['Type']==PD_LONG_YD):

  position_long=1#将position_long标记为1

  elif(positions<i>['Type']==PD_SHORT)or(positions<i>['Type']==PD_SHORT_YD): V+MrsFu123

  position_short=-1#将position_short标记为-1

  bar=bars[0]

  #根据价格落在(-40,-3],(-3,-2],(-2,2],(2,3],(3,40]的区间范围来获取最新收盘价所在的价格区间

  grid=pd.cut([close_01],context.band,labels=[0,1,2,3,4])[0]

  #若无仓位且价格突破则按照设置好的区间开仓

  if not position_long and not position_short and grid!=2:

  #大于3为在中间网格的上方,做多

  if grid>=3:

  obj.OpenLong("rb2005",1)#以市价单开多仓到仓位

  if grid<=1:

  obj.OpenShort("rb2005",1)#以市价单开空仓到仓位

  #持有多仓的处理

  elif position_long:

  if grid>=3:

  obj.OpenLong("rb2005",1)#以市价单调多仓到仓位

  #等于2为在中间网格,平仓

  elif grid==2:

  obj.closebuy("rb2005",1)#以市价单全平多仓

  #小于1为在中间网格的下方,做空

  elif grid<=1:

  obj.closebuy("rb2005",1)#以市价单全平多仓

  obj.OpenShort("rb2005",1)#以市价单开空仓到仓位

  #持有空仓的处理

  elif position_short:

  #小于1为在中间网格的下方,做空

  if grid<=1:

  obj.OpenShort("rb2005",1)#以市价单调空仓到仓位

  #等于2为在中间网格,平仓

  elif grid==2:

  obj.closesell("rb2005",1)#以市价单全平空仓

  #大于3为在中间网格的上方,做多

  elif grid>=3:

  obj.closesell("rb2005",1)#以市价单全平空仓

  obj.OpenLong("rb2005",1)#以市价单开多仓到仓位

  def main():

  while True:

  onTick()

  Sleep(1000)

相关文章
|
6月前
|
存储 分布式计算 安全
量化合约跟单对冲交易系统开发技术搭建
区块链技术很好地诠释了金融交易和信息传输中的安全原则是如何转变的
|
6月前
|
存储 安全 分布式数据库
现货期权交易/秒合约/量化交易系统开发模式案例
区块链技术是一种分布式数据库技术,它通过去中心化的方式记录数据
现货期权期货/合约量化/量化合约/秒合约/永续合约/交易所系统开发成熟技术及源码
现货期权期货/合约量化/量化合约/秒合约/永续合约/交易所系统开发成熟技术及源码
|
存储 安全 区块链
量化合约现货跟单交易所系统开发|源码案例|部署
在Web 3.0世界里,所有权及掌控权均是去中心化
|
6月前
|
存储 区块链
量化合约交易|秒合约|现货期权交易系统开发(成熟源码)
区块链技术虽然有许多优势,但也面临着一些挑战。
|
6月前
|
存储 区块链 数据库
量化合约跟单/秒合约/现货期权交易系统开发
智能合约是Web3.0在区块链上的载体:智能合约是存储在区块链的程序
|
6月前
|
供应链 区块链
合约交易|量化交易对冲系统开发|指南方案
智能合约是一种通过计算机程序实现自动执行合约的协议。
|
6月前
|
人工智能 供应链 安全
现货期权交易|秒合约系统开发技术方案
使用智能合约还可以保护和安全地与区块链和传统的业务主体的数据链接
|
存储 安全 大数据
合约现货跟单交易所系统开发|量化交易|秒合约系统案例
区块链,是比特币的底层技术架构,它在本质上是一种去中心化的分布式账本
量化合约/合约量化/秒合约/永续合约/现货期权期货/交易所系统开发案例及源码
量化合约/合约量化/秒合约/永续合约/现货期权期货/交易所系统开发案例及源码