”第一种只要数据补充的对,参数设置OK肯定是对的。你第二个模型那个是代表diff 值的?里面只有dea的引用。diff你是计算出来的?“ 老师说的第一种在以往的使用中有一个严重的问题是信号漂移,模型测试时感觉不到,实盘运行时会出现信号往前漂移,不发信号的问题,为解决这个问题才在论坛上求的第二种写法,但还是发现不对。还有KDJ跨周期引用也同样让我纠结很久,也是同样问题,一并提出; 第一钟; RSV1:=STKINDI('','YY1.RSV',0,5,0); K1:=STKINDI('','YY1.K',0,5,0); D1:=STKINDI('','YY1.D',0,5,0); C1:=CALLSTOCK(STKLABEL,VTCLOSE,5,0),LINETHICK0; CC:=REF(C,1)=C1,LINETHICK0; NN:=BARSLAST(CC),LINETHICK0; HH:=STKINDI('','YY1.HH',0,5,0); LL:=STKINDI('','YY1.LL',0,5,0); MN:=MIN(LL,LLV(L,NN+1)); MX:=MAX(HH,HHV(H,NN+1)); RSV:=(CALLSTOCK(STKLABEL,VTCLOSE,4)-MN)/(MX-MN)*100; K60:=(RSV+2*K1)/3; D60:=(K60+2*D1)/3; J60:=3*K60-2*D60; JK60:=CROSS(J60,K60); KJ60:=CROSS(K60,J60); 第二钟; 一小时的k:stkindi('','kdj.k',0,5); 一小时的d:stkindi('','kdj.d',0,5); drawicon(cross(一小时的k,一小时的d),一小时的k,4); drawicon(cross(一小时的d,一小时的k),一小时的d,5); 这个问题对于金字塔的老师和编程高手来说不是一个问题,可是对我这样的新手来说却是个非常大大难题! 现在我恳请金字塔的老师们给我一个准确的答案;这两个跨周期MACDH和KDJ指标究竟哪个写法是可以在实盘模型中使用,数据准确,不漂移的。(30分钟调用60分钟数据) 谢谢! |
macd源码里面的计算涉及到C,也就是说变动中的C会导致diff计算结果的变动。这一点你可以直接去看macd的那个源码。所以其实你的问题是在于信号的闪烁。
1.首先 引用的话你还是用stk函数的那种引用方式,那个没有问题的。
2.你需要解决的其实是信号闪烁的问题。小周期引用大周期的时候是会出现这个情况的。 解决方式一般是使用一些稳定的数据引用,比如引用的数据往历史K位置偏移下。 你实际交易用的是固定轮询的话,闪烁是不可避免的。 你直接在论坛搜索 “闪烁”可以看到很多类似的问题。
3.跨周期引用你务必要确保数据补充的完整性。