金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 604|回复: 14

当最新K所处的barpos大于后, REF函数获取的数据是不对的.

[复制链接]

4476

主题

4555

帖子

4580

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-3-5 13:00 | 显示全部楼层 |阅读模式
请教:'精细化历史评测'
在逐K模式下,我发现, 当最新K所处的barpos大于 '程序化条件设定'的策略计算K线量的设置值后, REF函数获取的数据是不对的.   
我测试序列变量的REF能否正常获取,结果发现异常行为(由日志打印数值得出是异常).
我的代码如下:
// version: 0.1

RUNMODE : 0; //指定逐K模式

DBG_PATH := 'D:\'; //调试输出文件路径
DBG_LOG_FILE := DBG_PATH & 'debug_Variable.txt'; //调试输出文件名

VARIABLE : UNINIT_VAL = -99999;
IF BARPOS=1 THEN
BEGIN
        EXTGBDATASET(STKLABEL&'ccd', UNINIT_VAL); //第一根K初始化全局变量值
END

//IF NOT(ISLASTBAR) OR BARPOS < 100 THEN EXIT;


//////////////////////////////////////////////////////////////////
//                  调试输出最新K时间戳相关
//////////////////////////////////////////////////////////////////
reldate := DATE+19000000;  
current_date_str := NUMTOSTR(reldate,0); //日期字符串   
current_time_str := NUMTOSTR(HOUR,0) & ':' & NUMTOSTR(MINUTE,0) & ':' & NUMTOSTR(SECOND,0);  
k_stamp := '[' & current_date_str & ' ' & current_time_str & ']  ';
//////////////////////////////////////////////////////////////////
//                 end of 调试输出最新K时间戳相关
//////////////////////////////////////////////////////////////////

//DEBUGFILE(DBG_LOG_FILE, k_stamp&STKLABEL & ' k_pos:' & NUMTOSTR(k_pos,0),0);

DEBUGFILE(DBG_LOG_FILE, k_stamp&STKLABEL & ' BARPOS:' & NUMTOSTR(BARPOS,0), 0);

CCD := STKINDI('','MARGIN_AMP.DBZ',0,-1,0);
g_ccd := EXTGBDATA(STKLABEL&'ccd');  //取保存的ccd值 即CCD前值
pre_ccd := REF(CCD,1); // 取CCD前值

if g_ccd <> UNINIT_VAL and g_ccd <> pre_ccd then
begin
        //打印异常现象
        DEBUGFILE(DBG_LOG_FILE, k_stamp&STKLABEL & ' CCD:' & NUMTOSTR(CCD,0)& ' pre_ccd:' & NUMTOSTR(pre_ccd,0) & ' g_ccd:' & NUMTOSTR(g_ccd,0) & ' WARNING: pre_ccd <> g_ccd', 0);
end
else begin
        DEBUGFILE(DBG_LOG_FILE, k_stamp&STKLABEL & ' CCD:' & NUMTOSTR(CCD,0)& ' pre_ccd:' & NUMTOSTR(pre_ccd,0) & ' g_ccd:' & NUMTOSTR(g_ccd,0), 0);
end

EXTGBDATASET(STKLABEL&'ccd', CCD); //保存当前CCD值
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

38

主题

9989

帖子

9999

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-3-5 13:01 | 显示全部楼层
这个没有办法,你可以试试不用固定数量而是固定开始时间试试
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

7

主题

24

帖子

24

积分

Rank: 1

等级: 新手上路

注册:
2021-5-25
曾用名:
发表于 2025-3-5 14:06 | 显示全部楼层
1.什么叫固定数量?  我用的就是固定数量.
2.REF(A,X)这种函数调用是非常常用且频繁的.  
3.我发现其实不是REF的问题,而是金字塔后台数据的问题. 是当最新K所处的barpos大于 '程序化条件设定'的策略计算K线量的设置值后, REF函数获取的数据是不对的

用的就是固定数量

用的就是固定数量
回复

使用道具 举报

38

主题

9989

帖子

9999

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-3-5 14:08 | 显示全部楼层
下面有一个起始时间,选这个固定开始时间试试
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

7

主题

24

帖子

24

积分

Rank: 1

等级: 新手上路

注册:
2021-5-25
曾用名:
发表于 2025-3-5 14:27 | 显示全部楼层
这个程序化条件设定起始时间是应该 小于 测试时段的开始时间 还是说等于测试时段的开始时间 ?
回复

使用道具 举报

38

主题

9989

帖子

9999

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-3-5 14:32 | 显示全部楼层
比测试时间早
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

7

主题

24

帖子

24

积分

Rank: 1

等级: 新手上路

注册:
2021-5-25
曾用名:
发表于 2025-3-5 14:56 | 显示全部楼层
仍旧是不对

设置了开始时间

设置了开始时间
截图202503051445522959.png

测试结果

测试结果
回复

使用道具 举报

37

主题

9824

帖子

5万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2025-3-5 15:13 | 显示全部楼层
抱歉,目前的回测机制满足不了你的需求。后台回测机制中,引用函数执行时不会按照每次都有一个其实位置。每次执行都是整段截取数据后再计算。两次引用之间本身没有必然的联系。

金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

7

主题

24

帖子

24

积分

Rank: 1

等级: 新手上路

注册:
2021-5-25
曾用名:
发表于 2025-3-5 15:32 | 显示全部楼层
1.回测是必需的需求
2.REF是最基本的函数.
3.很多的策略都会用到均线.
   均线需要利用之前的K线数据来计算. 而我通过打印了REF获取的数据,发现之前的K线数据不对, 进一步打印分析发现是(系列变量保存的)当前K之前的K线数据不对,
   这样就导致无法计算出准确的均线的数据,其实是得到了虚假的均线数值
回复

使用道具 举报

37

主题

9824

帖子

5万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2025-3-5 15:37 | 显示全部楼层
本帖最后由 技术006 于 2025-3-5 15:39 编辑
Phyon 发表于 2025-3-5 15:32
1.回测是必需的需求
2.REF是最基本的函数.
3.很多的策略都会用到均线.

抱歉,目前的回测机制满足不了你的需求。回测机制中执行过程在之前已经解释了。

金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-18 21:35 , Processed in 0.101494 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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