一个公式,多个品种,头寸管理添加2个账户,一个模拟账户,一个实盘账户。用的是999指数,映射主力。但公式里执行BUY时2个账户都会同步交易。没有用到任何A_BUY函数。完全根据策略执行BUY,然后通过指数映射主力合约。以上是背景。
现在遇到一个问题。当交易自动化第一次开始后。模拟盘持仓,实盘空仓。我希望选择一个最佳的实盘开仓时间。比如在某天模拟盘亏损6000元的时候(就是针对昨天收盘权益亏损6000),这个我可以算出来,这个时候我执行实盘的同步,但是我不想天天盯着,看什么什么时候模拟亏损6000元,如何写代码自动判断模拟盘亏损6000元,执行实盘的同步?
有几个问题,1 如果执行BUY,会出现模拟持有2手,实盘1手,因为交易前模拟持仓,实盘空仓。交易后各自+1,我想模拟不交易,实盘交易。用BUY不行。
2 原来是指数映射主力,现在如果用A_BUY去指定交易实盘,需要获取商品的主力合约代码,我只有指数合约代码,如何获取主力合约代码?
3 如果要只交易实盘,不交易模拟,原来的marketposition就不能用了,需要分别判断实盘持仓清空,搞的问题很复杂,有没有简约的思路解决我的问题?
我 把思路整理一下
1 目前是采取的指数映射主力,但是公式里全部用的是BUY,没用用A_BUY。这样简化交易处理。只关注策略和999指数上的信号,交易全部让指数映射主力去处理。代码里不涉及实盘A函数,这个我理解是您说图表虚拟账户。不知道对不对?
2 关于虚拟账户,我理解是交易单元里点头寸管理图标,弹出的界面里的那个虚拟账户,但是那个虚拟账户如何获取权益,商品持仓状态,都找不到对应的接口。所以我不知道怎么用,只是策略监控或者交易模块里根据那个虚拟账户的权益查看大致盈亏状态,跟实盘不一定完全吻合。如果有相关接口,麻烦告诉我地址。
3 我现在之所以需要直接操控实盘账户。是在前面1的前提下,某种情况下,我需要手动平仓或者开仓,比如当天盈亏超过3%。现在我想把这种手动转为代码自动执行。还是按照前面1的处理有如下2个问题
3.1 如果直接在1的公式里平仓,那么我就没有参考标准了,因为平仓后,没有持仓,无从判断后面的盈亏。公式里只能获取单个品种的盈亏。而我同时操控多个品种。我没法获取多个品种的整体账户的盈亏。所以只好用一个模拟,一个实盘,绑定同一个公式,正常的根据策略信号去交易单个品种没问题。同时作用2个账户,用前面1的模式。但是需要根据整体账户的盈亏判断是否对整个账户做开仓平仓,我就只好根据模拟账户的盈亏去操控实盘账户的整个账户的开平仓操作了。
3.2 如果简单归纳我的困惑,就是我需要一套策略去同时控制多个商品的交易,这个已经在前面1实现,也需要另外一套策略去根据整个账户的盈亏,去平仓止盈或者开仓。第二套策略在实现过程中有思路上的困惑,所以请教老师指点一下。
2 在函数列表里搜到的所有有关账户和持仓的函数,只要不是a_开头,就是虚拟账户的。这个东西自己写一行测试代码就能明确。
3 除了系统给你的信号虚拟账户系统,你自己还可以构造一个虚拟账户,具体思路参考幽灵交易
现在遇到一个问题。当交易自动化第一次开始后。模拟盘持仓,实盘空仓。我希望选择一个最佳的实盘开仓时间。比如在某天模拟盘亏损6000元的时候(就是针对昨天收盘权益亏损6000),这个我可以算出来,这个时候我执行实盘的同步,但是我不想天天盯着,看什么什么时候模拟亏损6000元,如何写代码自动判断模拟盘亏损6000元,执行实盘的同步?
这个思路多此一举,你直接像幽灵交易策略一样,自己虚拟一个头寸账户出来,然后等这个虚拟的头寸账户亏损6000以后,再通过buy命令去发图表信号不就好了吗
有几个问题,1 如果执行BUY,会出现模拟持有2手,实盘1手,因为交易前模拟持仓,实盘空仓。交易后各自+1,我想模拟不交易,实盘交易。用BUY不行。
这个就是图表运行机制,如果你想图表和账户完全匹配,开始自动交易的时候,用监控器同步一下持仓
原来是指数映射主力,现在如果用A_BUY去指定交易实盘,需要获取商品的主力合约代码,我只有指数合约代码,如何获取主力合约代码?
relativesymbol试试
如果要只交易实盘,不交易模拟,原来的marketposition就不能用了,需要分别判断实盘持仓清空,搞的问题很复杂,有没有简约的思路解决我的问题?
听不懂这个问题,实盘不实盘,跟marketposition是无关的。你确定搞清楚图表虚拟账户,模拟账户,实盘账户三者的区别了吗?