等级: 免费版
- 注册:
- 2021-6-11
- 曾用名:
|

楼主 |
发表于 2025-2-13 13:02
|
显示全部楼层
环牛:
[图片]
环牛:
[图片]
环牛:
// 金字塔PEL代码:逐K线模式计算im00/if00/ic00上一分钟KK最大值
Variable:
Array_prev_KK(0), // 存储上一根K线的KK值
im00_KK(0), if00_KK(0), ic00_KK(0); // 当前K线的KK值
// 初始化数组(首根K线时执行)
If CurrentBar = 1 Then
Begin
Array_prev_KK = Array_New(3);
// 初始化为首根K线的KK值(假设首根无前值,使用当前值填充)
im00_KK = (Data1.High + Data1.Low)/2; // im00当前KK值(示例逻辑)
if00_KK = (Data2.High + Data2.Low)/2; // if00当前KK值
ic00_KK = (Data3.High + Data3.Low)/2; // ic00当前KK值
Array_Set(Array_prev_KK, 0, im00_KK); // 存储供下根K线使用
Array_Set(Array_prev_KK, 1, if00_KK);
Array_Set(Array_prev_KK, 2, ic00_KK);
// 首根K线无前值,最大值按需处理(此处直接赋当前值)
Max_KK = MaxList(im00_KK, if00_KK, ic00_KK);
End
Else
Begin
// ============================================
// 主逻辑:非首根K线时执行
// ============================================
// 1. 获取上一根K线的KK值(来自数组)
Prev_im00 = Array_Get(Array_prev_KK, 0);
Prev_if00 = Array_Get(Array_prev_KK, 1);
Prev_ic00 = Array_Get(Array_prev_KK, 2);
// 2. 计算上一根K线三个品种的最大值
Max_KK = MaxList(Prev_im00, Prev_if00, Prev_ic00);
// 3. 计算当前K线各品种的KK值(用于更新数组)
im00_KK = (Data1.High + Data1.Low)/2; // im00当前KK值
if00_KK = (Data2.High + Data2.Low)/2; // if00当前KK值
ic00_KK = (Data3.High + Data3.Low)/2; // ic00当前KK值
// 4. 更新数组,存储当前值供下根K线使用
Array_Set(Array_prev_KK, 0, im00_KK);
Array_Set(Array_prev_KK, 1, if00_KK);
Array_Set(Array_prev_KK, 2, ic00_KK);
End;
// 输出结果(可选)
Plot1(Max_KK, "上一分钟KK最大值");
|
|