金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 115|回复: 1

REF数据引用异常

[复制链接]

4

主题

8

帖子

8

积分

Rank: 1

等级: 新手上路

注册:
2024-5-16
曾用名:
发表于 2025-1-20 10:34 | 显示全部楼层 |阅读模式
代码如下所示:

INPUT:
        CROSSUP(1,1,2,1),
        CROSSDOWN(-1,-1,2,1);
VARIABLE:
        FLAG=0;

MA10:MA(CLOSE,10);
MA20:MA(CLOSE,20);

FLAG:=IF(BARPOS>1,REF(FLAG,1),0);

IF CROSS(MA10,MA20) THEN BEGIN
        FLAG:=CROSSUP;
END

IF CROSS(MA20,MA10) THEN BEGIN
        FLAG:=CROSSDOWN;
END

OLD:IF(BARPOS>1,REF(FLAG,1),0),COLORGREEN;
NOW:FLAG,COLORRED;

FLAG作为记录均线最近一次金叉或死叉状态的标记,如果状态没有被更新,则保持前一根K线时的数据。REF不能正确读取上一根K线下的FLAG数据,有时候正常,有时候不正常,需要如何解决?



截图202501201034029559.png
回复

使用道具 举报

0

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
gxx978
发表于 2025-1-20 10:54 | 显示全部楼层
FLAG:=IF(BARPOS>1,REF(FLAG,1),0);没必要加这一句,条件不成立,本身获取的就去前一根K线上的值。把这行去掉。

VARIABLE:
        FLAG=0;
INPUT:
        CROSSUP(1,1,2,1),
        CROSSDOWN(-1,-1,2,1);

MA10:MA(CLOSE,10);
MA20:MA(CLOSE,20);

IF CROSS(MA10,MA20) THEN BEGIN
        FLAG:=CROSSUP;
END

IF CROSS(MA20,MA10) THEN BEGIN
        FLAG:=CROSSDOWN;
END

OLD:IF(BARPOS>1,REF(FLAG,1),0),COLORGREEN;
NOW:FLAG,COLORRED;
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-2-6 06:01 , Processed in 0.249582 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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