量化合约对冲交易软件开发功能支持测试

2022-11-03 11:58:24 浏览数 (1)

什么是合约交易?

  1、合约交易是指买卖双方对约定未来某个时间按指定价格接收一定数量的某种资产的协议进行交易。合约交易的买卖对象是由交易所统一制定的标准化合约,交易所规定了其商品种类,交易时间,数量等标准化信息。合约代表了买卖双方所拥有的权利和义务。

  简单点说就是现在约好未来某个时间地点交易一定数量的某种商品。

  2、合约交易是一种金融衍生品,相对于现货市场的交易,用户可以在期货合约交易中通过判断涨跌,选择买入做多或卖出做空合约,来获得价格上涨或者下跌带来的收益。

代码语言:javascript复制
kubeadm init 
--apiserver-advertise-address=192.168.233.135  #apiserver入口,填写master节点的内网地址
--image-repository registry.aliyuncs.com/google_containers  # 镜像仓库
--kubernetes-version v1.19.4  # 启动版本,即要下载的k8s版本
--service-cidr=10.96.0.0/12  # 对外service的私网地址,不能与下面的地址或本机网络有冲突
--pod-network-cidr=10.244.0.0/16 # 创建新的pod时分配的地址,不能与上面的地址或本机网络有冲突
#注意事项:此步有可能报错docker service未启动,可以尝试重启
reboot
  该处使用的url网络请求的数据。

  3.修改example.env为.env并修改配置

原因:kubernetes的service要通过iptables来做后端pod的转发和路由
cat > /etc/sysctl.d/k8s.conf <<EOF
net.bridge.bridge-nf-call-ip6tables=1
net.bridge.bridge-nf-call-iptables=1
EOF  

  合约交易的规则

  1、交易时间

  合约交易是7*24小时交易,只有在每周五16:00(UTC 8)结算或交割期间会中断交易。合约在交割前最后10分钟,只能平仓,不能开仓。

  2、交易类型

  交易类型分为两类,开仓和平仓。开仓和平仓,又分买入和卖出两个方向:

  买入开多(看涨)是指当用户对指数看多、看涨时,新买入一定数量的某种合约。进行“买入开多”操作,撮合成功后将增加多头仓位。

  卖出平多(多单平仓)是指用户对未来指数行情不再看涨而补回的卖出合约,与当前持有的买入合约对冲抵消退出市场。进行“卖出平多”操作,撮合成功后将减少多头仓位。

  卖出开空(看跌)是指当用户对指数看空、看跌时,新卖出一定数量的某种合约。进行“卖出开空”操作,撮合成功后将增加空头仓位。

  买入平空(空单平仓)是指用户对未来指数行情不再看跌而补回的买入合约,与当前持有的卖出合约对冲抵消退出市场。

  进行“买入平空”操作,撮合成功后将减少空头仓位。

代码语言:javascript复制
 import quandl
  import pandas as pd
  import numpy as np
  import matplotlib.pyplot as plt
  quandl.ApiConfig.api_key='INSERT YOUR API KEY HERE'
  selected=['CNP','F','WMT','GE','TSLA']
  data=quandl.get_table('WIKI/PRICES',ticker=selected,
  qopts={'columns':['date','ticker','adj_close']},
  date={'gte':'2011-1-1','lte':'2021-07-31'},paginate=True)
  clean=data.set_index('date')
  table=clean.pivot(columns='ticker')
  returns_daily=table.pct_change()
  returns_annual=returns_daily.mean()*250
  cov_daily=returns_daily.cov()
  cov_annual=cov_daily*250
  port_returns=[]
  port_volatility=[]
  sharpe_ratio=[]
  stock_weights=[]
  num_assets=len(selected)
  num_portfolios=90000
  np.random.seed(101)
  for single_portfolio in range(num_portfolios):
  weights=np.random.random(num_assets)
  weights/=np.sum(weights)
  returns=np.dot(weights,returns_annual)
  volatility=np.sqrt(np.dot(weights.T,np.dot(cov_annual,weights)))
  sharpe=returns/volatility
  sharpe_ratio.append(sharpe)
  port_returns.append(returns)
  port_volatility.append(volatility)
  stock_weights.append(weights) 

0 人点赞