跨周期编写
以15分钟周期的MACD红绿柱为基础,1分钟K线图,设置一条60均线,
开多条件:当15分钟周期出现红柱,1分钟K线在60均线之上开多,
平多条件,15分钟周期出现绿柱.
开空条件:15分钟周期出现绿柱,1分钟K线在60均线之下开空,
平空条件,15分钟周期出现红柱
这个应该怎么编?是编写在15分钟上还,还是1分钟上好?
当前用于什么周期是你自己的策略思想决定的。
如果你当前用于1分钟周期,你直接引用macd的值进行判断,使用stkindi函数实现。
如果当前用于15分钟周期,那就直接饮用1分钟周期上的ma(c,60)<close的结果。
公式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);
两个问题,第一,引用的公式,为什么一定要: 不要:=
但是用: 整个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);
我补全后,为什么只有开空,没有开多?
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);
按照您新发的源码,就全部变成了正反手交易,没有单独的开平了?怎么回事?
你自己看下你的条件。开多条件成立的情况下,平空条件肯定也是成立的。