金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 468|回复: 16

关于全局变量的一点请教

[复制链接]

21

主题

49

帖子

49

积分

Rank: 2

等级: 标准版

注册:
2022-12-27
曾用名:
发表于 2025-2-26 21:59 | 显示全部楼层 |阅读模式
测试代码如下:
VARIABLE:运行次数:=0;
运行次数:=运行次数+1;
次数:运行次数;



上述代码,在前台1分钟k线上运行,设置"逐k计算"模式.
请问:
1.当"仅刷最后k线"不打勾时,
为何变量"运行次数"始终不变化?不是应该每刷新一个K线,"运行次数"就应该加1吗?

2.当"仅刷最后k线"打勾时,
为何变量"运行次数"每来一个新k就开始自动加1了?为何全局变量在两种情况迥然不同?
回复

使用道具 举报

37

主题

9787

帖子

5万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2025-2-27 08:42 | 显示全部楼层
两个模式下代码执行结果都是一样的。建议你再观察测试下。

不√仅刷:表示没来一根新k时,策略每次执行都会回刷历史数据(从第一根k开始执行到最新为止)

√仅刷:无论是否有新k出现都不会回刷历史,一直基于最近一次回刷历史k线的结果上迭代进行。(只有特定事件下才会再次回刷,如手工刷新、补充数据等事件发生时)
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

21

主题

49

帖子

49

积分

Rank: 2

等级: 标准版

注册:
2022-12-27
曾用名:
 楼主| 发表于 2025-3-7 07:43 | 显示全部楼层
技术006 发表于 2025-2-27 08:42
两个模式下代码执行结果都是一样的。建议你再观察测试下。

不√仅刷:表示没来一根新k时,策略每次执行 ...

观察测试了很多天,确实问题依然存在,甚至加重了,在"仅刷最后K线"打勾有时也会出现.
换台电脑,偶尔也会出现该问题.
测试下面代码,BARPOS次数经常也不发生变化(偶尔几次却也能递加,摸索不出规律)
EXPLAIN(1, 'BARPOS次数:='+NUMTOSTR(BARPOS,0)+'');

该问题确实很诡异,使用PEL编程好几年了第一次遇到.
请帮忙问问并提示一下,出现该问题,有可能和那些方面有关?
我将按你们的指导着手逐步排查排除,谢谢
回复

使用道具 举报

37

主题

9787

帖子

5万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2025-3-7 08:47 | 显示全部楼层
你检查下,你是不是锁定了k线数量。
截图202503070847368425.png
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

21

主题

49

帖子

49

积分

Rank: 2

等级: 标准版

注册:
2022-12-27
曾用名:
 楼主| 发表于 2025-3-10 07:18 | 显示全部楼层
技术006 发表于 2025-3-7 08:47
你检查下,你是不是锁定了k线数量。

感谢回复!
确实锁定了数量.请问:
1.为何锁定数量后,全局变量和BARPOS的递增就会不正常了?什么原理呢.
2.在后台预警模式因为必须指定K数量,如果使用该递增代码,是否也类似于锁定k数量、而造成递增失灵呢?
回复

使用道具 举报

37

主题

9787

帖子

5万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2025-3-10 08:10 | 显示全部楼层
100017818 发表于 2025-3-10 07:18
感谢回复!
确实锁定了数量.请问:
1.为何锁定数量后,全局变量和BARPOS的递增就会不正常了?什么原理呢.

固定k线数量,等于生成一根,就会挤出去一根。K总体数据量不变,自然全局变量、barpos这类累计的值不会递增。

2,后台也会,只是后台指定的数据量范围只是代表历史k线部分,最新一个交易日的k线数量,不在默认的860根内。所以可以理解为860+当日。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

21

主题

49

帖子

49

积分

Rank: 2

等级: 标准版

注册:
2022-12-27
曾用名:
 楼主| 发表于 2025-3-10 09:54 | 显示全部楼层
技术006 发表于 2025-3-10 08:10
固定k线数量,等于生成一根,就会挤出去一根。K总体数据量不变,自然全局变量、barpos这类累计的值不会递 ...

感谢回复!
还是不太理解其中的运行原理(难道新k产生,“运行次数:=运行次数+1;”代码不执行吗?执行了不就应该+1?)。

下面的代码是实现记录运行次数的功能,既然有上面的问题存在,请问:
在前台锁定K数的情况下,如何实现记录运行次数的功能?(请帖代码)

VARIABLE:运行次数:=0;
运行次数:=运行次数+1;
回复

使用道具 举报

0

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
gxx978
发表于 2025-3-10 09:58 | 显示全部楼层
那是因为variable在在第一根K线上执行的时候,会被初始化为0的。你在K线上图上锁定了K线,每来一根新的K线,会把最前面的第一根K线剔除出去,那在现在的第一根K线重新初始化为0后,每次累加+1,到最新的K线上,还是之前的那个数值啊,就造成了数值不变化的现象了。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

21

主题

49

帖子

49

积分

Rank: 2

等级: 标准版

注册:
2022-12-27
曾用名:
 楼主| 发表于 2025-3-10 11:44 | 显示全部楼层
技术010 发表于 2025-3-10 09:58
那是因为variable在在第一根K线上执行的时候,会被初始化为0的。你在K线上图上锁定了K线,每来一根新的K线 ...

明白了,也就是说,锁定K数,每来一个新K,所有全局变量都要被重置初始化一次!对吧?

那么请问:
后台预警模式设置K数量后,是否也和前台锁定K数的效果一模一样?(每来一个新K,所有全局变量都要被重置初始化一次?)
回复

使用道具 举报

37

主题

9787

帖子

5万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2025-3-10 12:52 | 显示全部楼层
100017818 发表于 2025-3-10 11:44
明白了,也就是说,锁定K数,每来一个新K,所有全局变量都要被重置初始化一次!对吧?

那么请问:

1. variable定义的变量只要公式回刷历史k,就会在第一根k上初始化。
2.具体看你使用什么样的全局变量。不同全局变量初始化的时机不同。
2.1 不完全一样,后台预警中指定的k线数量只代表历史k,它还会动态增加最新交易日的周期数据
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-6 06:20 , Processed in 0.263632 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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