以文本方式查看主题

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

--  作者:zengxing
--  发布时间:2017/10/21 21:53:49
--  模型编写问题
跨周期编写
以15分钟周期的MACD红绿柱为基础,
1分钟K线图,设置一条60均线,
开多条件:当15分钟周期出现红柱,1分钟K线在60均线之上开多,
平多条件,15分钟周期出现绿柱. 
开空条件:15分钟周期出现绿柱,1分钟K线在60均线之下开空,
平空条件,15分钟周期出现红柱

这个应该怎么编?是编写在15分钟上还,还是1分钟上好?

--  作者:wenarm
--  发布时间:2017/10/22 20:15:58
--  
当前用于什么周期是你自己的策略思想决定的。
如果你当前用于1分钟周期,你直接引用macd的值进行判断,使用stkindi函数实现。
如果当前用于15分钟周期,那就直接饮用1分钟周期上的ma(c,60)<close的结果。

--  作者:zengxing
--  发布时间:2017/10/23 11:26:21
--  
那就用 15分钟周期吧,应该怎么编写?


--  作者:wenarm
--  发布时间:2017/10/23 13:37:43
--  

公式1:

ma_cond:c>ma(close,60);

 

当前公式。空头方向的参考该方式自行实现

DIFF :=EMA(CLOSE,S) - EMA(CLOSE,P);
DEA  :=EMA(DIFF,M);
MACD :=2*(DIFF-DEA);


开多:=CROSS(MACD,0) and stkindi(\'\',\'公式1.ma_cond\',0,1) ;
平多:=CROSS(0,MACD);
buy(开多,1,MARKET);
sell(平多,1,MARKET);


--  作者:zengxing
--  发布时间:2017/10/23 23:07:41
--  
两个问题,第一,引用的公式,为什么一定要: 不要:=

但是用:  整个K线就变形了。这个怎么解决?

还有,为什么都是

DIFF :=EMA(CLOSE,12) - EMA(CLOSE,26);
DEA  :=EMA(DIFF,9);
MACD :=2*(DIFF-DEA);

开多:CROSS(MACD,0) and stkindi(\'\',\'公式1.ma_cond\',0,1) ;
平多:=CROSS(0,MACD);
sell(平多,1,MARKET);
buy(开多,1,MARKET);



开空:CROSS(0,MACD) and stkindi(\'\',\'公式1.ma_cond2\',0,1) ;
平空:=CROSS(MACD,0);
SELLSHORT(平空,1,MARKET);
BUYSHORT(开空,1,MARKET);

我补全后,为什么只有开空,没有开多?

--  作者:wenarm
--  发布时间:2017/10/24 8:13:30
--  

1,:=代表中间变量,被引用时的变量只能是:

2.顺序不对,图表要遵循先平后开的原则

开多:CROSS(MACD,0) and stkindi(\'\',\'Formula33.ma_cond\',0,1) ;
开空:CROSS(0,MACD) and stkindi(\'\',\'Formula33.ma_cond2\',0,1) ;
平多:=CROSS(0,MACD);
平空:=CROSS(MACD,0);
sell(平多,1,MARKET);
SELLSHORT(平空,1,MARKET);
buy(开多,1,MARKET);
BUYSHORT(开空,1,MARKET);

 


--  作者:zengxing
--  发布时间:2017/10/24 9:32:50
--  
按照您新发的源码,就全部变成了正反手交易,没有单独的开平了?怎么回事?
--  作者:wenarm
--  发布时间:2017/10/24 9:36:41
--  
你自己看下你的条件。开多条件成立的情况下,平空条件肯定也是成立的。