
等级: 新手上路
- 注册:
- 2025-3-4
- 曾用名:
|

楼主 |
发表于 2025-3-4 22:05
|
显示全部楼层
// 计算3日指数移动平均线(EMA)
MA1 := EMA(CLOSE, 3);
// 计算30日指数移动平均线(EMA)
MA2 := EMA(CLOSE, 30);
// 判断金叉和死叉
金叉 := CROSS(MA1, MA2); // MA1上穿MA2
死叉 := CROSS(MA2, MA1); // MA1下穿MA2
// 判断有效金叉:金叉后,MA1连续5根K线大于MA2
有效金叉 := 金叉 AND EVERY(MA1 > MA2, 5);
// 判断有效死叉:死叉后,MA1连续5根K线小于MA2
有效死叉 := 死叉 AND EVERY(MA1 < MA2, 5);
// 记录有效金叉和有效死叉的位置
有效金叉位置 := VALUEWHEN(有效金叉, BARPOS); // 记录有效金叉的K线位置
有效死叉位置 := VALUEWHEN(有效死叉, BARPOS); // 记录有效死叉的K线位置
// 计算两个有效金叉之间的高点
高点 := REF(HHV(H, BARPOS - 有效金叉位置), 有效金叉位置);
// 计算两个有效死叉之间的低点
低点 := REF(LLV(L, BARPOS - 有效死叉位置), 有效死叉位置);
// 绘制均线
MA1, COLORRED, LINETHICK2; // MA1用红色显示,线宽为2
MA2, COLORBLUE, LINETHICK2; // MA2用蓝色显示,线宽为2
// 标记有效金叉和有效死叉
DRAWICON(有效金叉, MA1, 1); // 有效金叉标记为图标1
DRAWICON(有效死叉, MA1, 2); // 有效死叉标记为图标2
// 绘制高点和低点
DRAWTEXT(有效金叉, 高点, '高点'), COLORGREEN; // 在高点位置标注文字
DRAWTEXT(有效死叉, 低点, '低点'), COLORGREEN; // 在低点位置标注文字
// 绘制线段连接相邻的高点和低点
POLYLINE(有效金叉 OR 有效死叉, IF(有效金叉, 高点, 低点), COLORGREEN, LINETHICK2); // 连接高点和低点 |
|