由于要同时使用多个策略对同一个品种进行交易,因此他们的持仓是混合在一起的,引起一些问题,请帮忙解决一下。
1、如果策略是一直在市的,这样是没有问题的,因为新的信号来临时总是先平后开。
2、如果策略是完全日内的,也是没有问题的,因为可以设置一个全局变量,每天开始初始化为零,按信号记录开仓标记即可。
问题在下面的第三种:
3、算法本身是中长线的,但是中间有止损算法,因此,不是一直在市的,不可能总是先平后开。也不是日内的,可以每天初始化。
这样,当新的信号来临的时候,不知道是否有止损信号,请问如何处理?
第三种情况在做模拟的时候是没有问题,因为是单品种,因此虚拟持仓可以帮助解决这个问题,但是实盘持仓会混合其他算法控制的仓位,请帮忙解决!
谢谢!
楼主的是后台?
一直在市,是嘛意思?
现在用的是后台,多品种、多策略。
一直在市是指单子非多即空,永远不离场。
但含有止损算法的策略,有时候一段时间是空仓的,这样在实盘中需要判断是否是持有仓位,但是仓位适合其他策略混在一起,无法判断。
因为交易时间只有4小时,每天的开关机又使一些使用全局变量的办法不适用。因此解决不了这个仓位的问题。
从楼上的描述,本人不理解楼主到底想 表达的是什么
如果你的策略比较复杂想控制的精细一些,那么建义你学习VBA,使用VBA直接控制仓位和下单操作
现在还没有到达要学习VBA的时候,因为VBA只是一个实现的手段,关键还是算法的质量。目前还处在对同一个品种开发不同的算法以控制风险与回撤。
上面的描述就是要解决一个策略止损后的标记问题。我上面清楚地说明,在程序化评测里是不存在这样的问题的,因为那时系统的是单策略的,单策略可以轻松地利用金字塔系统的虚拟持仓(holdng)还实现仓位控制。
现在要解决的是实盘,实盘中有两个以上的策略对同一个品种进行操作。我上面讲过,对一直持仓的系统或纯日内的系统也是不存在的问题。有问题的是这样的情况:系统是隔夜持仓的,但由于止损机制的存在,系统在某段时间里是可能没有仓位的。如果这时出现了一个新的信号,就不知道是否持有仓位,是否需要先平再开仓的问题。主要是解决是否需要先平的问题(就是标记是否持有仓位的问题)。
如果金字塔是24小时从不间断地运行,那么也可以利用全局变量来标记系统的仓位。现在的问题是交易时间每天只有4小时,那肯定是要关闭软件或关机,这样全局变量肯定就清零了。第二天重新开机、启动软件,那么算法就不知道现在是持仓的还是已经止损过(不持仓)的,当再产生新的信号时就存在是否需要先平原先仓位的问题。
我上面的描述清楚吗?我想你们有实盘经验的都应该遇到这样的问题。
我想确实VBA因为可以读写文件,那么这些标记可以存在一个文件里,但是普通的算法如何存储这个仓位的标记呢?请注意是多策略对同一个品种,这时Tholding以及其他的实盘仓位信息都是几个算法混在一起的.
是否图表交易可以解决这个问题,或者逐K线模式可以解决这个问题?图表交易读到的holding是否这个虚拟持仓一直是正确的?
随着交易的深入,肯定会产生很多的问题,请金字塔的开发、客服人员帮助解决。现在正在考虑购买更多license,以应付更多的算法,我算是你们的老客户了,很早就开始付费了。
楼主主要担心的是,是--是否有仓位.
以下是图表上的方法,用HOLDING和VARIABLE全局变量一起来控制,下一步执行什么操作
http://www.weistock.com/bbs/dispbbs.asp?boardid=11&Id=6986
在后台,可以用extgbdataset全局变量的方法,来标识该策略是否有开仓
单品种上做多策略
http://www.weistock.com/bbs/dispbbs.asp?BoardID=4&ID=5043&skin=0
希望对您有所帮助
以王锋的帖子为例回答:
1、这样解决模式是不行的,因为其他的策略可能持有仓位,我如果平仓,就会平掉其他策略的仓位。
2、我目前的日内的模型采用的就是extgbdata和extgbdataset解决的仓位控制问题。只是不了解,这样设置的全局变量关机也是可以保存的吗?重新开机读出的全局变量值是正确地吗?存在了什么数据库里,这样做是否真的可靠?
以王锋的帖子回答:
3、如果真能用虚拟持仓来解决仓位控制就太好了,真是这样的话,我的问题可以用方案3完美的解决。后台真的可以用虚拟持仓来判断仓位吗?实际上我只需要知道是否有仓位,不需要知道仓位到底是多少。
谢谢!
extgbdata和extgbdataset解决的仓位控制问题,
这样的设置的全局变量关机是可以保存的,重新开机读出的全局变量值是正确的,保存在"工具--数据--全局变量"里