金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 1013|回复: 8

for循环语句内不能使用REF函数和LLV函数,请大神帮我改改

[复制链接]

16

主题

37

帖子

37

积分

Rank: 2

等级: 标准版

注册:
2025-2-17
曾用名:
发表于 2025-2-21 18:20 | 显示全部楼层 |阅读模式
我的设想是:在INPUT中引入支撑周期、下穿天数N、下穿均量阈值参数, 下支撑位 取支持周期内的最小值,不含当日数据(以下均不含当日数据)。现在需要计算下穿均量:下穿天数N日内,k线下穿到下支撑位外面的部分占k线整体的比值,k线未穿过下支撑位的设为零,下穿天数N日内下穿占比的平均值。当下穿均量>下穿均量阈值,则不买入。VARS:    sum_ratio(0),    avg_ratio(0);sum_ratio = 0;FOR i = 1 TO 下穿天数N DO BEGIN    // 获取历史K线数据    L_i = REF(L,i);    H_i = REF(H,i);        // 计算当日的支撑位(使用前一日数据计算)    pre_L_for_support = REF(L,i+1);    support_i = LLV(pre_L_for_support, 支撑周期);        // 计算下穿比例    IF H_i != L_i THEN BEGIN        ratio_i = IIF(L_i < support_i, (support_i - L_i)/(H_i - L_i), 0);    END ELSE BEGIN        ratio_i = 0;    END;    sum_ratio = sum_ratio + ratio_i;END;avg_ratio = sum_ratio / 下穿天数N;

回复

使用道具 举报

1

主题

1070

帖子

1080

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-2-22 00:01 来自手机 | 显示全部楼层
建议换个浏览器重发一下,不然我们不好理顺你的代码
回复

使用道具 举报

16

主题

37

帖子

37

积分

Rank: 2

等级: 标准版

注册:
2025-2-17
曾用名:
 楼主| 发表于 2025-2-22 08:39 | 显示全部楼层
技术015 发表于 2025-2-22 00:01
建议换个浏览器重发一下,不然我们不好理顺你的代码

我重发了 被系统判定重复的垃圾贴
回复

使用道具 举报

16

主题

37

帖子

37

积分

Rank: 2

等级: 标准版

注册:
2025-2-17
曾用名:
 楼主| 发表于 2025-2-22 08:41 | 显示全部楼层
技术015 发表于 2025-2-22 00:01
建议换个浏览器重发一下,不然我们不好理顺你的代码

[PEL] 复制代码
VARS:
    sum_ratio(0),
    avg_ratio(0);
 
sum_ratio = 0;
FOR i = 1 TO 下穿天数N DO BEGIN
    // 获取历史K线数据
    L_i = REF(L,i);
    H_i = REF(H,i);
     
    // 计算当日的支撑位(使用前一日数据计算)
    pre_L_for_support = REF(L,i+1);
    support_i = LLV(pre_L_for_support, 支撑周期);
     
    // 计算下穿比例
    IF H_i != L_i THEN BEGIN
        ratio_i = IIF(L_i < support_i, (support_i - L_i)/(H_i - L_i), 0);
    END ELSE BEGIN
        ratio_i = 0;
    END;
    sum_ratio = sum_ratio + ratio_i;
END;
avg_ratio = sum_ratio / 下穿天数N;
回复

使用道具 举报

1

主题

1070

帖子

1080

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-2-23 01:05 | 显示全部楼层
软件只是提示会有风险,并不不是编译错误,另外你的代码不完全是金字塔的语法,如果你是用AI生成的,里面的部分你是需要人工修正的
回复

使用道具 举报

16

主题

37

帖子

37

积分

Rank: 2

等级: 标准版

注册:
2025-2-17
曾用名:
 楼主| 发表于 2025-2-23 12:08 | 显示全部楼层
技术015 发表于 2025-2-23 01:05
软件只是提示会有风险,并不不是编译错误,另外你的代码不完全是金字塔的语法,如果你是用AI生成的,里面的 ...

我换个问题,还是关于for循环语句内不能使用REF函数的案列:我想计算N日内(不含当天),最大的振幅的阴线的最低价是否被跌破,请帮我修改一下
[PEL] 复制代码
// ============================ 新增:最近 N 日最大振幅阴线 ============================
// 定义阴线
阴线 := C < O;

// 计算每根K线的振幅(仅针对阴线)
阴线振幅 := IIF(阴线, (H - L) / C, 0);

// 找到最近 N 日内振幅最大的阴线
最大振幅 := HHV(REF(阴线振幅, 1), N); // 最近 N 日内的最大振幅

// 确定最大振幅阴线的具体日期
最大振幅阴线日期 := 0;
FOR i = 1 TO N DO BEGIN
    IF REF(阴线振幅, i) = 最大振幅 THEN BEGIN
        最大振幅阴线日期 := i;
        BREAK;
    END;
END;

// 获取最大振幅阴线的最低价
最大振幅阴线最低价 := IIF(最大振幅阴线日期 > 0, REF(L, 最大振幅阴线日期), 0);

// 判断当前价格是否跌破最大振幅阴线的最低价
跌破最大振幅阴线 := L <= 最大振幅阴线最低价;
回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-2-24 09:45 | 显示全部楼层
这个直接用就行了,那个只是提示不影响使用的
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

16

主题

37

帖子

37

积分

Rank: 2

等级: 标准版

注册:
2025-2-17
曾用名:
 楼主| 发表于 2025-2-24 10:21 | 显示全部楼层
技术008 发表于 2025-2-24 09:45
这个直接用就行了,那个只是提示不影响使用的

可是回测不了呀

补充内容 (2025-2-24 10:24):
可以回测
回复

使用道具 举报

16

主题

37

帖子

37

积分

Rank: 2

等级: 标准版

注册:
2025-2-17
曾用名:
 楼主| 发表于 2025-2-24 10:24 | 显示全部楼层
技术008 发表于 2025-2-24 09:45
这个直接用就行了,那个只是提示不影响使用的

可以回测
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2025-7-17 02:15 , Processed in 0.171103 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表