写了一个跨周期求日线MACD的副图公式,欢迎沟通交流! [开拓者 TB]
-
咨询内容:
适用于日线以下的分钟级别。
Params
Numeric Duan(12); //短日周期
Numeric Chang(26); //长日周期
Numeric Jun(9); //均值
Vars
NumericSeries DIFF;
NumericSeries DEA;
NumericSeries MACD;
NumericSeries i(0); //运行天数
Numeric x(1); //临时计算天数
Numeric y(0); //临时计算是哪根线收盘
Numeric z; //计数器,越大越好
Numeric TempCum(0);
Begin
If(TrueDate(0)<>TrueDate(1)) i=i+1; //基数天数
If(i<Chang+Jun) Return; //过滤前期数据不正确天数
DIFF=AverageD(1,Duan)-AverageD(1,Chang); //求当前DIFF
For z=0 To 10000{
y=NthCon(TrueDate(z)<>TrueDate(z+1),x); //求更换天数的[K]线位置,默认从第一天开始
TempCum=TempCum+DIFF[y+1]; //临时求和,前几天的[DIFF]总和,不包括当天
x=x+1; //天数增加一天
If(x>=Jun) Break; //天数满足,退出循环
}
DEA=(DIFF+TempCum)/Jun; //临时和+当天最新值再平均
MACD=DIFF-DEA;
PlotNumeric("DIFF",DIFF,0,Red);
PlotNumeric("DEA",DEA,0,Yellow);
PlotNumeric("MACD",MACD);
PlotNumeric("零线",0);
End
//------------------------------------------------------------------------
// 编译版本 GS2015.12.25
// 用户版本 2019/12/15 21:54:50
// 版权所有 jacyjie
// 更改声明 TradeBlazer Software保留对TradeBlazer平台
// 每一版本的TradeBlazer公式修改和重写的权利
//------------------------------------------------------------------------来源:CXH99.COM
-
TB技术人员:
y=NthCon(TrueDate(z)<>TrueDate(z+1),x); //求更换天数的[K]线位置,默认从第一天开始
错误号 W0201 -
TB客服:
本帖最后由 xianjie2048 于 2019-12-18 10:27 编辑
昨天太晚了,有点困。
For z=0 To 10000{
y=NthCon(TrueDate(z)<>TrueDate(z+1),x); //求更换天数的[K]线位置,默认从第一天开始
TempCum=TempCum+DIFF[y+1]; //临时求和,前几天的[DIFF]总和,不包括当天
x=x+1; //天数增加一天
If(x>=Jun) Break; //天数满足,退出循环
}
确实有错误,但是对比了下,数据结果是对的。
我觉得写出来的程序有漏洞,但是又得到正确的结果,想不透,所以来论坛咨询下。
有思路,想编写各种指标公式,交易模型,选股公式,还原公式的朋友
可联系技术人员 QQ: 262069696 或微信号:cxh99cxh99 进行 有偿收费 编写!
(注:由于人数限制,QQ或微信请选择方便的一个联系我们就行,加好友时请简单备注下您的需求,否则无法通过。谢谢您!)
相关文章
-
没有相关内容