量化对冲交易系统设计一

策略开仓原则

  • 加不上没坏处 加尽量靠后
  • 减不掉有坏处 减尽量提前吗?

拆分成不同的实现阶段:
管理一个信号队列。 qt本身就是信号系统

  • 比如成交了,计算是否达成目标。
  • 信号到了,触发调仓信号
  • 调仓到了目标,触发一个

开发第一个手动版本

  • 通过手动调整仓位,单个合约分别设定,界面上两个合约联动。
  • 单个合约仓位管理,增减仓位,一个合约对应一个账户,//可以后续合约分账户模块,不过太复杂了。 多个合约之间有个配比关系。有一个组合设定。组合里面可以有多个合约,两个方向。A方向,B方向。有个配比关系。

配对调仓管理单元,增仓信号来了,创建一个。然后,根据成交信号,变更状态,计算初始成本价格。然后记录到价格堆栈中去,先进先出的堆栈。
计算最后一个是否符合要求。符合则调仓,调完了,出站。然后再继续下一个。每次信号来都要判断是否符合条件。
可以手动增加一个信号。清仓。不管信号是否达到。都执行。
当价格波动时。触发了减仓信号。
触发一次调仓,构建一个调仓对象。
记录要调的数量。价格。然后,跟踪仓位的变化。达到目标了。计算实际的价格,触发一个调仓信号。必须,达到多少,调多少。
任何瘸腿时候,无法自动调整过来,暂停。可以手动调平,然后自动继续。
单个合约仓位,调整中,调整完毕,保单中,撤单中,可控制报单等待时间。

第一阶段目标
1、实现界面手工目标仓位 {参数=【仓位比例,仓位绝对值】},系统根据目标仓位进行调整。
2、实现当报单瘸腿时,自动进行撤单重报。直到调平为止。调整暂停,直到平衡。 可以设定容忍瘸腿的一个差值。
可以暂停。手工调平。
严格控制当前只能有个订单在途。报单之前要查询仓位。
控制撤单次数。

3、手工设定自动调整的比例表。这个是策略,应该可以保存,不同的策略。这个区间的测算,可以由另外的算法和模块来确定
4、随时可以暂停。
每次调整完毕,自动暂停,手工启动。
5、随时暂停所有功能,软件界面关闭,要立刻暂停自动功能。
增加一个手工报单界面,单个合约,报单撤单的界面。
撤掉所有单。
6、查持仓。获取最新的持仓数据
7、查在途
8、撤销全部。
9、手工报单
10、增加外围风控项,比如撤单限制。条件。报单次数限制。条件。
11、查保证金率

重点注意事项

  • 增仓点差列表和减仓点差列表,必须不能形成死循环,减了之后立刻又被加了回来。

  • 这个方案,不行啊。

  • 要一起计算。只能有一个逻辑,要有保证不会循环的手段。才行

  • 自动开仓,自动平仓,不能形成死循环。

  • 配置太复杂,容易出错,不能手工配置

  • 这个配置本身就很复杂。可能无法简单。

  • 配置逻辑里面,无论怎么配置都不会形成死循环才对。

  • 减仓只能减上一个等级。不能减下一个等级。

  • 可以通过控制减仓 与持仓成本线位置。比较。减仓不设置减仓的数量,只设置位置。这样避免,减完又被加上了。

  • 手工调整之后,自动立刻被暂停。

  • 避免手工切换回自动后,减掉的仓位又被自动加了回来。

  • 两个要避免的循环,加了,立刻被减掉了。减掉了,立刻被加回来了。

  • 功能可以不完美,但不能留有隐患,因为自动化很恐怖。

  • 修改持仓,仓位在策略中转移。

  • 比如高频积累了底仓,转为中频仓位。整体核算。

  • 不要追求完美

  • 减仓的配置,本身属于策略,策略没有最优,只有适合。

  • 有些是策略,有些系统,有些是配置

  • 不是个全自动逻辑

  • 一旦暂停,开启要满足条件。要处理异常,

  • 不清空不能开启。

  • 仓位要随着交易单元进行管理。

  • 高频与自动的前提条件

  • 市场波动

  • 能自动预测方向,概率上有正确率

  • 交易成本低

  • 纯粹的高频策略

  • 减仓成本差,目标是高频

-策略实现误区

  • 大利润与跑得快是互斥的,不可兼得。从系统上要分离。

  • 预测对方向与止损是孪生的,否则会死的很难看

  • 一个交易单元只能实现一个策略

  • 策略本身要有一致性,但产品可以是多策略的组合。

  • 设定增仓,减仓 ,一种策略

  • 增仓后,点差自动平,是另外一种策略。

  • 越过没加,没加没坏处,

  • 交易单元 就是策略单元,包括交易品种

界面的几种信息

配置品种
品种信息值
行情计算值
配置信息
控制

工作量要分解,否则又是一座山

账户->ctpapi

交易单元->合约->账户
->订单

订单 创建,带着交易单元,合约代码, 账户 三个标识。再加orderRef 才是唯一。

先找到订单,然后剩下的在订单中操作即可。

1、第一种方式报了两个组在一起
2、一起产生两个单。
成交回报回来,撤单回报回来,确定订单已经完成,需要再生成一个单。
要维护状态。

一方便。

交易单元(策略单元)
约束了合约,属于A或者B

合约
持仓没有这个信息,要传递过去。

接下来的工作
补全所有变量的初始化
增加查询保证金比例功能。
增加查询合约其它比例的功能。
登录后就要查询了。
登录的时间要提前了。
查询到信息,用于计算资金最大可以开多少手。
可以整体测试程序的功能了。
持仓窗体部分还是要修改一下下。
把没用的代码都去掉。

利用qt及 c++语言如何计算KDJ技术指标,请给出示例代码
利用QT加C++语言如何计算MACD指标,并请给出示例代码
用python如何获取批量下载百度知道的回答内容
qt及 c++,写入mysql数据库表数据,不使用qtsql,请给出示例代码
OpenAI还有什么有趣的功能
openai和alphago什么关系
openAI的neuralink
如何使用openai生成图像 请给出示例代码
openai的plaNet 如何使用,请给出示例代码,并解读
openai的Habitat 如何使用,请给出示例
OpenAI Gym详细讲解一下,给出示例代码
python 如何删除文件?
python 如何播放声音
python 把字符串当数组来操作就对了
python3.7.9 安装包下载
python 如何统计文本里文字字数?
python 如何给文件改名
如何执行python setup.py
python 如何写入文本文件?
Python 如何获取文件路径?

  • 27
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

openwin_top

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值