欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 求证跨周期指标的准确性

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有2798人关注过本帖树形打印复制链接

主题:求证跨周期指标的准确性

帅哥哟,离线,有人找我吗?
yuanman
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:424 积分:0 威望:0 精华:0 注册:2015/10/20 13:25:28
求证跨周期指标的准确性  发帖心情 Post By:2017/11/16 15:01:33    Post IP:175.16.224.128[只看该作者]

请教老师;我在30分钟周期引用了60分钟MACD指标的DIFF线数据,发现有两种编写方法,我在副图上使用的是这种;
macd:=stkindi('','macd.macd1',0,5);
dea:stkindi('','macd.dea',0,5);
diff:stkindi('','macd.diff',0,5);
drawicon(cross(dea,diff),dea,5);
drawicon(cross(diff,dea),diff,4);
模型中使用的是这种;
EE12:=STKINDI('','GS1.EM(12)',0,5,0);
EE26:=STKINDI('','GS1.EM(26)',0,5,0);
DD:=STKINDI('','MACD.DEA',0,5,0);
DIFF60:2*C/13-2*C/27+11*EE12/13-25*EE26/27;
DEA60:=2*DIFF60/10+8/10*DD;
MACD60:=2*(DIFF60-DEA60); 
对比发现两种写法的差别很大!请教;我上面这两种写法是否正确?哪种写法是真实准确的?谢谢!

 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2017/11/16 15:28:13    Post IP:180.169.30.6[只看该作者]

第一种只要数据补充的对,参数设置OK肯定是对的。你第二个模型那个是代表diff 值的?里面只有dea的引用。diff你是计算出来的?


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
yuanman
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:424 积分:0 威望:0 精华:0 注册:2015/10/20 13:25:28
  发帖心情 Post By:2017/11/17 10:11:57    Post IP:175.16.224.128[只看该作者]

”第一种只要数据补充的对,参数设置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分钟数据)
谢谢!


 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2017/11/17 11:04:19    Post IP:180.169.30.6[只看该作者]

macd源码里面的计算涉及到C,也就是说变动中的C会导致diff计算结果的变动。这一点你可以直接去看macd的那个源码。所以其实你的问题是在于信号的闪烁。

1.首先 引用的话你还是用stk函数的那种引用方式,那个没有问题的。

 

2.你需要解决的其实是信号闪烁的问题。小周期引用大周期的时候是会出现这个情况的。 解决方式一般是使用一些稳定的数据引用,比如引用的数据往历史K位置偏移下。 你实际交易用的是固定轮询的话,闪烁是不可避免的。 你直接在论坛搜索 “闪烁”可以看到很多类似的问题。

 

3.跨周期引用你务必要确保数据补充的完整性。

 

 

 



命数如织,当如磐石。
 回到顶部