ARTICLE · 1331139
公式练习:M*CD云鹤展翅逻辑拆解,附源码实操练习

点击上方 蓝字 关注,脚本编程学习。
【编写思路】编程示例练习
本文所有内容仅用于公式编程学习。
本案例仅用于公式编程练习,属于函数逻辑演示,仅用于代码学习,不作为内容判断参考。
一:结构说明
1、DIF 在 0 轴以下上穿 DEA;
2、保持上穿后的状态,且 DIF、DEA 持续在 0 轴下方;
3、当前 MACD 数值大于前一日 MACD 数值;
4、前一日 MACD 数值小于再前一日 MACD 数值;
5、该形态是本次金叉周期内第一次满足;
6、从金叉算起,周期至少 5 根 K 线以上。
二:公式拆解及翻译
SHORT:=12;
LONG:=26;
MID:=9;
DIF:=EMA(CLOSE,SHORT)-EMA(CLOSE,LONG);
{DIF赋值:收盘价的12日指数移动平均-收盘价的26日指数移动平均}
DEA:=EMA(DIF,MID);
{DEA赋值:DIF的9日指数移动平均}
MACD:=(DIF-DEA)*2;
{MACD赋值:(DIF-DEA)*2}
VAR1:=CROSS(DIF,DEA) AND DIF<=0 AND DEA<=0;
{VAR1赋值:DIF上穿DEA AND DIF<=0 AND DEA<=0}
T1:=BARSLAST(VAR1);
{T1赋值:上次VAR1距今天数}
VAR2:=EVERY(DIF>DEA AND DIF<=0 AND DEA<=0,T1);
{VAR2赋值:最近T1日一直存在DIF>DEA 并且 DIF<=0 并且 DEA<=0}
VAR3:=MACD>REF(MACD,1);
{VAR3赋值:MACD>1日前的MACD}
VAR4:=REF(MACD<REF(MACD,1),1);
{VAR4赋值:1日前的MACD<1日前的MACD}
VAR5:=COUNT(VAR3 AND VAR4,T1)=1;
{VAR5赋值:统计T1日中满足VAR3和VAR4同时满足的天数是第1次}
VAR6:=T1>=5;
{VAR6赋值:T1>=5个周期}
SX:VAR2 AND VAR3 AND VAR4 AND VAR5 AND VAR6;
{满足全部条件则触发标记渲染 VAR1 VAR2 VAR3 VAR4 VAR5和VAR6 }
知识点小结:
1. `:=` 赋值,变量不显示在图表上;`:` 输出变量,可以在图表展示;
2. `BARSLAST`:获取上一次条件成立到当前的周期数;
3. `EVERY`:连续 N 周期全部满足条件;
4. `COUNT`:统计区间内条件成立的次数;
5. `REF(X,N)`:引用 N 周期前的 X 数值;
6. `CROSS(A,B)`:A 上穿 B。
三: 组合表达式
SHORT:=12;
LONG:=26;
MID:=9;
DIF:EMA(CLOSE,SHORT)-EMA(CLOSE,LONG);
DEA:EMA(DIF,MID);
MACD:(DIF-DEA)*2,COLORSTICK;
VAR1:=CROSS(DIF,DEA) AND DIF<=0 AND DEA<=0;
T1:=BARSLAST(VAR1);
VAR2:=EVERY(DIF>DEA AND DIF<=0 AND DEA<=0,T1);
VAR3:=MACD>REF(MACD,1);
VAR4:=REF(MACD<REF(MACD,1),1);
VAR5:=COUNT(VAR3 AND VAR4,T1)=1;
VAR6:=T1>=5;
SX:=VAR2 AND VAR3 AND VAR4 AND VAR5 AND VAR6;
DRAWTEXT(SX,DIF,'云鹤展翅'),COLORYELLOW;


SHORT:=12;
LONG:=26;
MID:=9;
DIF:=EMA(CLOSE,SHORT)-EMA(CLOSE,LONG);
DEA:=EMA(DIF,MID);
MACD:=(DIF-DEA)*2;
VAR1:=CROSS(DIF,DEA) AND DIF<=0 AND DEA<=0;
T1:=BARSLAST(VAR1);
VAR2:=EVERY(DIF>DEA AND DIF<=0 AND DEA<=0,T1);
VAR3:=MACD>REF(MACD,1);
VAR4:=REF(MACD<REF(MACD,1),1);
VAR5:=COUNT(VAR3 AND VAR4,T1)=1;
VAR6:=T1>=5;
SX:VAR2 AND VAR3 AND VAR4 AND VAR5 AND VAR6;

安装方法电脑版详细安装方法 仅为公式编辑器基础操作教学
1. 编辑公式时,所有运算符请使用英文半角符号,中文符号会触发报错;
2. 每行公式末尾必须以英文分号 `;` 结尾;
3. `:` 用于输出并展示结果,`:=` 为赋值,不展示结果。
2、免责声明:本文分享的公式源码及相关截图,仅作为公式编程技术交流、编程学习使用。代码逻辑仅为历史数据逻辑演示,不构成任何投资建议依据,市场有风险,投资需谨慎。















































































