以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://weistock.com/bbs/list.asp?boardid=2)
----  关于多品种、多策略的持仓判断问题  (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=7011)

--  作者:longbow
--  发布时间:2011/6/28 10:48:36
--  关于多品种、多策略的持仓判断问题

由于要同时使用多个策略对同一个品种进行交易,因此他们的持仓是混合在一起的,引起一些问题,请帮忙解决一下。

1、如果策略是一直在市的,这样是没有问题的,因为新的信号来临时总是先平后开。

2、如果策略是完全日内的,也是没有问题的,因为可以设置一个全局变量,每天开始初始化为零,按信号记录开仓标记即可。

问题在下面的第三种:

 

3、算法本身是中长线的,但是中间有止损算法,因此,不是一直在市的,不可能总是先平后开。也不是日内的,可以每天初始化。

这样,当新的信号来临的时候,不知道是否有止损信号,请问如何处理?

 

第三种情况在做模拟的时候是没有问题,因为是单品种,因此虚拟持仓可以帮助解决这个问题,但是实盘持仓会混合其他算法控制的仓位,请帮忙解决!

 

谢谢!


--  作者:fly
--  发布时间:2011/6/28 10:55:24
--  

楼主的是后台?

一直在市,是嘛意思?


--  作者:longbow
--  发布时间:2011/6/28 11:10:03
--  

现在用的是后台,多品种、多策略。

一直在市是指单子非多即空,永远不离场。

 

但含有止损算法的策略,有时候一段时间是空仓的,这样在实盘中需要判断是否是持有仓位,但是仓位适合其他策略混在一起,无法判断。

因为交易时间只有4小时,每天的开关机又使一些使用全局变量的办法不适用。因此解决不了这个仓位的问题。

 

 


--  作者:王锋
--  发布时间:2011/6/28 12:12:10
--  

从楼上的描述,本人不理解楼主到底想 表达的是什么

如果你的策略比较复杂想控制的精细一些,那么建义你学习VBA,使用VBA直接控制仓位和下单操作

[此贴子已经被作者于2011-6-28 12:13:14编辑过]

--  作者:longbow
--  发布时间:2011/6/28 12:47:43
--  

现在还没有到达要学习VBA的时候,因为VBA只是一个实现的手段,关键还是算法的质量。目前还处在对同一个品种开发不同的算法以控制风险与回撤。

 

上面的描述就是要解决一个策略止损后的标记问题。我上面清楚地说明,在程序化评测里是不存在这样的问题的,因为那时系统的是单策略的,单策略可以轻松地利用金字塔系统的虚拟持仓(holdng)还实现仓位控制。

 

现在要解决的是实盘,实盘中有两个以上的策略对同一个品种进行操作。我上面讲过,对一直持仓的系统或纯日内的系统也是不存在的问题。有问题的是这样的情况:系统是隔夜持仓的,但由于止损机制的存在,系统在某段时间里是可能没有仓位的。如果这时出现了一个新的信号,就不知道是否持有仓位,是否需要先平再开仓的问题。主要是解决是否需要先平的问题(就是标记是否持有仓位的问题)。

 

如果金字塔是24小时从不间断地运行,那么也可以利用全局变量来标记系统的仓位。现在的问题是交易时间每天只有4小时,那肯定是要关闭软件或关机,这样全局变量肯定就清零了。第二天重新开机、启动软件,那么算法就不知道现在是持仓的还是已经止损过(不持仓)的,当再产生新的信号时就存在是否需要先平原先仓位的问题。

 

我上面的描述清楚吗?我想你们有实盘经验的都应该遇到这样的问题。

 

我想确实VBA因为可以读写文件,那么这些标记可以存在一个文件里,但是普通的算法如何存储这个仓位的标记呢?请注意是多策略对同一个品种,这时Tholding以及其他的实盘仓位信息都是几个算法混在一起的.

 

是否图表交易可以解决这个问题,或者逐K线模式可以解决这个问题?图表交易读到的holding是否这个虚拟持仓一直是正确的?

 

随着交易的深入,肯定会产生很多的问题,请金字塔的开发、客服人员帮助解决。现在正在考虑购买更多license,以应付更多的算法,我算是你们的老客户了,很早就开始付费了。


--  作者:fly
--  发布时间:2011/6/28 13:17:09
--  

楼主主要担心的是,是--是否有仓位.

以下是图表上的方法,用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

 

希望对您有所帮助

 

[此贴子已经被作者于2011-6-28 13:18:10编辑过]

--  作者:王锋
--  发布时间:2011/6/28 13:26:50
--  

1.由于止损机制的存在,系统在某段时间里是可能没有仓位的。如果这时出现了一个新的信号,就不知道是否持有仓位,是否需要先平再开仓的问题。

这个你无需担心,只管按照你的策略执行就行了,如果没有持仓,即便你发出了平仓指令系统执行时发现没有持仓则不会理会你这条指令,所以你无需在平仓时去检查到底是否有持仓,系统自己去做好了。这个问题其实你自己用模拟盘试试就行了,比如故意没有持仓让他来平等等。

2.使用extgbdata和extgbdataset函数设置和保存全局变量到数据库,这样重新开机也能保存

3.使用图表的虚拟持仓来混合编程,这样就可以完全避免这个问题,参考

http://www.weistock.com/bbs/dispbbs.asp?BoardID=4&ID=332 问题22


--  作者:longbow
--  发布时间:2011/6/28 13:41:11
--  

以王锋的帖子为例回答:

1、这样解决模式是不行的,因为其他的策略可能持有仓位,我如果平仓,就会平掉其他策略的仓位。

 

2、我目前的日内的模型采用的就是extgbdata和extgbdataset解决的仓位控制问题。只是不了解,这样设置的全局变量关机也是可以保存的吗?重新开机读出的全局变量值是正确地吗?存在了什么数据库里,这样做是否真的可靠?

 

 


--  作者:longbow
--  发布时间:2011/6/28 13:47:48
--  

以王锋的帖子回答:

 

3、如果真能用虚拟持仓来解决仓位控制就太好了,真是这样的话,我的问题可以用方案3完美的解决。后台真的可以用虚拟持仓来判断仓位吗?实际上我只需要知道是否有仓位,不需要知道仓位到底是多少。

 

谢谢!


--  作者:fly
--  发布时间:2011/6/28 13:51:38
--  

extgbdata和extgbdataset解决的仓位控制问题,

这样的设置的全局变量关机是可以保存的,重新开机读出的全局变量值是正确的,保存在"工具--数据--全局变量"里