以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  5周期级别上记录60分钟周期指标的实际走势的方法  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=184514)

--  作者:2021再出发
--  发布时间:2021/3/4 16:36:08
--  5周期级别上记录60分钟周期指标的实际走势的方法

在小周期级别上记录大周期指标的实际走势的方法

这里以1分钟引用3分钟的macd为例,常规方法只能在1分钟K线上显示3分钟K线的macd走势,至于3分钟内部每根1分钟K线的macd走势不知道

方法原理:获取上一根3分钟的diff、dea、macd,然后配合1分钟的CLOSE计算出实际的diff、dea、macd

第一步、首先在macd指标里加入以下2句:

   ema12: ema(c,12),linethick0;
   ema26: ema(c,26),linethick0;

第二步、复制以下代码即可

runmode:1;
em1:=stkindi(stklabel,\'macd.ema12\',0,17,-1);
em2:=stkindi(stklabel,\'macd.ema26\',0,17,-1);
ema12:=em1*11/13+c*2/13;
ema26:=25/27* em2 +c*2/27;
diff:ema12-ema26;
dea1:=stkindi(stklabel,\'macd.dea\',0,17,-1);
dea:dea1*4/5+diff/5;



------------------------------------------

看完后该方法后,还是不太懂的使用,

我想实现5分钟周期图中记录60分钟周期macd值的实际变化

麻烦老师帮忙修改一下能直接使用的代码,谢谢老师了





--  作者:FireScript
--  发布时间:2021/3/4 17:42:22
--  
额,这个要稍微改下才行。 我先本地改下,后面发你参考下即可。

--  作者:FireScript
--  发布时间:2021/3/5 14:11:38
--  
 其实不麻烦。稍微改下参数就行了。
另外注意这里是macd参数在12,26,9情况下的。如果是其他参数 后面代码里也是要做额外修改的。你先在固定参数下核对下效果。如果你还要拓展到任意参数下,到时候再改下。

em1:=stkindi(stklabel,\'macd.ema12\',0,5,-1);
em2:=stkindi(stklabel,\'macd.ema26\',0,5,-1);
ema12:=em1*11/13+c*2/13;//这个的计算方式和参数有关
ema26:=25/27* em2 +c*2/27;//这个的计算方式和参数有关
diff:ema12-ema26;
dea1:=stkindi(stklabel,\'macd.dea\',0,5,-1);
dea:dea1*4/5+diff/5;//这个的计算方式和参数有关

--  作者:2021再出发
--  发布时间:2021/3/9 11:14:52
--  
老师,加载后,1、请问那个是60分钟的macd值?
                    2、加了这个公式后K线图被压缩成一条线了

--  作者:FireScript
--  发布时间:2021/3/9 11:20:07
--  
 1.你要拿dea和diff算下macd.
加一句即可:
MACD1 :2*(DIFF-DEA), COLORSTICK;

2.

图片点击可在新窗口打开查看此主题相关图片如下:temp.png
图片点击可在新窗口打开查看

Y轴上右键 这个勾选下

--  作者:2021再出发
--  发布时间:2021/4/6 16:23:26
--  回复:(2021再出发)5周期级别上记录60分钟周期指标的...
EM1:=STKINDI(STKLABEL,\'MACD.EMA12\',0,5,-1);
EM2:=STKINDI(STKLABEL,\'MACD.EMA26\',0,5,-1);
EMA12:=EM1*11/13+C*2/13;//这个的计算方式和参数有关
EMA26:=25/27* EM2 +C*2/27;//这个的计算方式和参数有关
DIFF60:=EMA12-EMA26;
DEA1:=STKINDI(STKLABEL,\'MACD.DEA\',0,5,-1);
DEA60:=DEA1*4/5+DIFF60/5,LINETHICK0;//这个的计算方式和参数有关
MACD60 :2*(DIFF60-DEA60), LINETHICK0;

通过以上代码,已可以在5分周期图获取60分周期macd具体的数值


老师,我想请问一下,在5分钟周期级别上如何获取60分钟图中的上一根macd值?
--  作者:FireScript
--  发布时间:2021/4/6 16:26:13
--  
 这个就直接调用了呗。
STKINDI就行了。STKINDI(STKLABEL,\'MACD.macd1\',0,5,-1);

--  作者:2021再出发
--  发布时间:2021/4/6 16:32:44
--  
好的谢谢,有点晕头了图片点击可在新窗口打开查看