策略开仓原则
- 加不上没坏处 加尽量靠后
- 减不掉有坏处 减尽量提前吗?
拆分成不同的实现阶段:
管理一个信号队列。 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 如何获取文件路径?