以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  2个策略加载在多个品种上  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=183494)

--  作者:drliang680
--  发布时间:2020/12/16 19:12:02
--  2个策略加载在多个品种上
你好!2个策略加载在多个品种上,每个策略在每个品种上只开1手。区别是1个策略的周期较短,频繁操作,另外1个策略的周期较长,操作不频繁。但是有个问题,这2个策略的开平仓语句是这样写的:

开多:BUY(KD AND HOLDING=0,1,MARKETR);         
平多:SELL(PD and holding>0,\'\',MARKETR);                       
开空:BUYSHORT(KK AND HOLDING=0,1,MARKETR);     
平空:SELLSHORT(PK and holding<0,\'\',MARKETR);      

这样一来,短周期的策略开仓后,这个品种的holding就不是0了,而是1了。长周期的策略就开不了仓了。请问该如何处理?谢谢!

--  作者:gxx978
--  发布时间:2020/12/17 9:41:01
--  
holding表示一个窗口上的虚拟持仓,在各个窗口上是相互独立的,不会互相影响的。
--  作者:drliang680
--  发布时间:2020/12/17 14:35:51
--  
如果是后台程序化,这么写:

TBUY(kd and TBUYHOLDING(1)=0,1,MKT,0,0,\'\',\'\');
TSELL(pd and TBUYHOLDING(1)>0,TBUYHOLDING(1),MKT,0,0,\'\',\'\');
TBUYSHORT(kk and TSELLHOLDING(1)=0,1,MKT,0,0,\'\',\'\');
TSELLSHORT(pk and TSELLHOLDING(1)>0,TSELLHOLDING(1),MKT,0,0,\'\',\'\');

会有冲突吗?


--  作者:FireScript
--  发布时间:2020/12/17 14:51:46
--  
 会的。后台里面除非你多账号,在策略里面指定到不同账号下。否则你就一个账号,肯定避免不了影响的。
--  作者:drliang680
--  发布时间:2020/12/17 15:06:50
--  
也就是说在一个资金账号下,如果是后台程序化,这个问题是无法解决的?
--  作者:FireScript
--  发布时间:2020/12/17 15:12:31
--  
后台程序化里  如果你是多个策略 交易一个品种,那么在持仓判断上 是会相互影响的。理论上可以通过策略编写来尽量减少这种影响,比如自行用全局变量记录本策略的开平仓。 但是这个只是一个大概思路,得具体情况具体看了。

我看你现在用的是图表策略,图表多个策略之间影响是不大的。你上面那个长线策略不开仓和短线策略应该是无关的。除非是你资金问题,导致下单失败。
[此贴子已经被作者于2020/12/17 15:15:48编辑过]

--  作者:drliang680
--  发布时间:2020/12/17 15:18:35
--  
我现在用的就是后台程序化,请问自行用全局变量记录本策略的开平仓如何实现?
--  作者:drliang680
--  发布时间:2020/12/17 15:33:27
--  
我的后台程序化很简单:

kd:=XXX;
pd:=XXX;
kk:=XXX;
pk:=XXX;
TBUY(kd and TBUYHOLDING(1)=0,1,MKT,0,0,\'\',\'\');
TSELL(pd and TBUYHOLDING(1)>0,TBUYHOLDING(1),MKT,0,0,\'\',\'\');
TBUYSHORT(kk and TSELLHOLDING(1)=0,1,MKT,0,0,\'\',\'\');
TSELLSHORT(pk and TSELLHOLDING(1)>0,TSELLHOLDING(1),MKT,0,0,\'\',\'\');

--  作者:FireScript
--  发布时间:2020/12/17 15:51:47
--  
 前面说的有问题,纠正下,有点想当然了。后台里面用全局变量记录更难搞。一个是成交状态要判断,另一个问题是 你程序暂停再次开启就无法很好的衔接 。停止程序时候你还要记住上次的持仓情况。以及其他的一些乱七八糟的问题。这个方式还是行不通。

你这个估计还是要回归到用图表程序化上去操作了。图表上不同窗口的虚拟持仓是独立的。你前面那个长线不开仓应该是其他问题造成的,不会是其他策略的影响的。