DIFF : =EMA(CLOSE,S) - EMA(CLOSE,P);
DEA : =EMA(DIFF,M);
MACD1 : =2*(DIFF-DEA), COLORSTICK;
请问老师我写的对么?
MACD金叉,并且diff的值大于上一次MACD金叉的值,开多
aa:=ref(cross(diff,dea),1);
if cross(diff,dea) and diff>aa then buy(1,1,limirt,c);
aa:=ref(cross(diff,dea),1);
你想用这个表达上次金叉吗?
应该这样做,获取到上上次金叉位置 用SUMBARS获取。然后再用ref回溯到这个位置进行取值。
len:SUMBARS(2,cross(diff,dea));
last_jc:=ref(diff,len);
DIFF : =EMA(CLOSE,S) - EMA(CLOSE,P);
DEA : =EMA(DIFF,M);
MACD1 : =2*(DIFF-DEA), COLORSTICK;
len:SUMBARS(1,cross(diff,dea));
last_jc:=ref(diff,len);
if cross(dea,diff) and holding>0 then sell(1,0,limitr,c);
if HOLDING=0 and cross(diff,dea)>last_jc then buy(1,0,limitr,c);
想法是这次MACD金叉,并且MACD金叉的位置大于上次MACD的位置开多。这么写好像不对啊?老师帮写一下。谢谢
“MACD金叉的位置大于上次MACD的位置开多” 这啥意思。本次macd的值大于上次macd的值?
input:p(26,20,100,8),s(12,5,40,4),m(9,2,60,6),n(9,1,100,10),p1(3,2,40,4),p2(3,2,40,4);//参数设置
DIFF : =EMA(CLOSE,S) - EMA(CLOSE,P);
DEA : =EMA(DIFF,M);
MACD1 : =2*(DIFF-DEA), COLORSTICK;
len:SUMBARS(2,cross(diff,dea));//这里调整下参数,因为开仓条件还需要当前是金叉。该函数会把当前的也统计进去。
last_jc:=ref(macd1,len);//这里要取macd1的值
if cross(dea,diff) and holding>0 then sell(1,0,limitr,c);//
if HOLDING=0 and macd1>last_jc then buy(1,0,limitr,c);
供参考。
老师你写的这个我看了,显示的不对,是不是得用上全局变量啊?
len:SUMBARS(cross(diff,dea),2);//这里调整下参数,因为开仓条件还需要当前是金叉。该函数会把当前的也统计进去。
last_jc:ref(macd1,len-1);//这里要取macd1的值
这里修正了下。你再看下。
[此贴子已经被作者于2019/8/9 15:27:06编辑过]