以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  [求助]求写语句  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=188094)

--  作者:阳光5815
--  发布时间:2021/4/28 15:48:49
--  [求助]求写语句
我有30个平仓条件,要怎么写比较合理,
--  作者:FireScript
--  发布时间:2021/4/28 15:58:03
--  
如果真有这么多,也没什么合理不合理的。就一句句写了,如果是满足其一就平仓,那就把这些条件用or关联下。

条件a:....;
条件b:....;

平仓条件:条件a  or  条件b;


--  作者:阳光5815
--  发布时间:2021/4/28 19:54:58
--  
30个同时写会不会太长,可以分开几行写吗


--  作者:阳光5815
--  发布时间:2021/5/10 11:04:16
--  
平空‘
IF ( PK1 OR PK2 OR PK3 OR PK4 OR PK5 OR PK6 OR PK7 OR PK8 OR PK9 ) THEN SELLSHORT(HOLDING>0,HOLDING,MARKET);       
IF ( PK10 OR PK11 OR PK12 OR PK13 OR PK14 OR PK15 OR PK16 OR PK17) THEN SELLSHORT(HOLDING>0,HOLDING,MARKET);  
开多;
BUY(KD1 AND HOLDING=0,1,THISCLOSE);//实际交易中按照对手价开仓,回测中是本周起收盘价。
BUY(KD2 AND HOLDING=0,1,THISCLOSE);
BUY(KD3 AND HOLDING=0,1,THISCLOSE);
平多;
IF (PD1 OR PD2 OR PD3 OR PD4 OR PD5 OR PD6 OR PD6 OR PD7 OR PD8 OR PD9 OR PD10) THEN SELL(HOLDING>0,HOLDING,MARKET);
IF (PD11 OR PD12 OR PD13 OR PD14 OR PD15 OR PD16 OR PD17 ) THEN SELL(HOLDING>0,HOLDING,MARKET);
开空;
BUYSHORT(KK1 AND HOLDING=0,1,THISCLOSE);
BUYSHORT(KK2 AND HOLDING=0,1,THISCLOSE);
BUYSHORT(KK3 AND HOLDING=0,1,THISCLOSE);
我这样写信号执行有问题吗。老师指导一下

--  作者:FireScript
--  发布时间:2021/5/10 11:07:58
--  

SELLSHORT(HOLDING<0,HOLDING,MARKET); //空头时候 holding是负数,这里判断仓位是小于0的判断。另外就是如果没有需要和平仓一起进行的其他操作,如给全局变量赋值之类的,那么平仓时候其实可以不用做仓位判断的。     

其他地方 没啥问题什么的。

--  作者:阳光5815
--  发布时间:2021/5/10 13:45:41
--  
帮我改正一下


--  作者:FireScript
--  发布时间:2021/5/10 13:47:11
--  

SELLSHORT(HOLDING<0,HOLDING,MARKET); //空头时候 holding是负数,这里判断仓位是小于0的判断。另外就是如果没有需要和平仓一起进行的其他操作,如给全局变量赋值之类的,那么平仓时候其实可以不用做仓位判断的。     


直接照抄下就行了。

--  作者:阳光5815
--  发布时间:2021/5/11 11:25:54
--  

SELLSHORT(HOLDING<0,HOLDING,MARKET); //空头时候 holding是负数,这里判断仓位是小于0的判断。另外就是如果没有需要和平仓一起进行的其他操作,如给全局变量赋值之类的,那么平仓时候其实可以不用做仓位判断的。     


直接照抄下就行了。

不能理解透你的意思,我的思想是 ;有持仓的,然后满足反向开仓条件就反手执行。没有满足反向开仓条件的,满足平仓条件就平仓执行,能不能直接给我修改好,
因为我是文华用户过来的,信号执行方式不一样,不能理解你的意思。 谢谢。

--  作者:FireScript
--  发布时间:2021/5/11 11:27:48
--  
 IF ( PK1 OR PK2 OR PK3 OR PK4 OR PK5 OR PK6 OR PK7 OR PK8 OR PK9 ) THEN SELLSHORT(HOLDING<0,HOLDING,MARKET);       
IF ( PK10 OR PK11 OR PK12 OR PK13 OR PK14 OR PK15 OR PK16 OR PK17) THEN SELLSHORT(HOLDING<0,HOLDING,MARKET);  

BUY(KD1 AND HOLDING=0,1,THISCLOSE);//实际交易中按照对手价开仓,回测中是本周起收盘价。
BUY(KD2 AND HOLDING=0,1,THISCLOSE);
BUY(KD3 AND HOLDING=0,1,THISCLOSE);

IF (PD1 OR PD2 OR PD3 OR PD4 OR PD5 OR PD6 OR PD6 OR PD7 OR PD8 OR PD9 OR PD10) THEN SELL(HOLDING>0,HOLDING,MARKET);
IF (PD11 OR PD12 OR PD13 OR PD14 OR PD15 OR PD16 OR PD17 ) THEN SELL(HOLDING>0,HOLDING,MARKET);
开空;
BUYSHORT(KK1 AND HOLDING=0,1,THISCLOSE);
BUYSHORT(KK2 AND HOLDING=0,1,THISCLOSE);
BUYSHORT(KK3 AND HOLDING=0,1,THISCLOSE);

红色地方就是改了的地方。


--  作者:阳光5815
--  发布时间:2021/5/11 14:49:02
--  
谢谢老师