金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
12
返回列表 发新帖
楼主: 代人发帖

如何定义并同时初始化一个元素类型是非数值(比如字符串)的VARIABLE数组变量

[复制链接]

19

主题

151

帖子

151

积分

等级: 免费版

注册:
2023-9-29
曾用名:
发表于 2025-2-24 16:25 | 显示全部楼层
A:=(C/REF(C,1)-1)*100;
B:=-(REF(C,1)/C-1)*100;

BZJ:=TACCOUNT(41);
T:=REF(C,1)<C;
TK:=IF(T,A,B);
BTK:=TK/BZJ;

DB:=BTK;
DBZ:SUM(DB,0);

补充内容 (2025-2-24 16:26):
custom_value := STKINDIEX(contract_array, 'X.DBZ', 0, -1, 0, 20);
回复

使用道具 举报

37

主题

9868

帖子

5万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2025-2-24 17:23 | 显示全部楼层
DBZ变量本身就是序列变量。引用过来之后它同样是一个序列变量。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

19

主题

151

帖子

151

积分

等级: 免费版

注册:
2023-9-29
曾用名:
发表于 2025-2-24 23:00 | 显示全部楼层
技术009 发表于 2025-2-24 13:22
1.区别在于初始化方式以及生命周期。
普通序列变量 本质上每个K都会初始化一次,全局则只在第一个K进行一 ...

你好! 定义数组时为什么要加variable关键字(我知道variable关键字是表示全局变量),而不可直接用ARR[10] 或Y:=CLOSE 呢?

补充内容 (2025-2-24 23:01):
你好! 定义数组时为什么要加variable关键字(我知道variable关键字是表示全局变量),而不可直接用ARR[10]:=0 或Y:=CLOSE 呢?
回复

使用道具 举报

3

主题

730

帖子

771

积分

Rank: 9Rank: 9Rank: 9

等级: 管理员

注册:
2021-5-10
曾用名:
发表于 2025-2-24 23:41 | 显示全部楼层
hanzi-999 发表于 2025-2-24 23:00
你好! 定义数组时为什么要加variable关键字(我知道variable关键字是表示全局变量),而不可直接用ARR[10]  ...

这是pel的语法要求。variable不单单代表生命全局变量。也代表声明数组
回复

使用道具 举报

19

主题

151

帖子

151

积分

等级: 免费版

注册:
2023-9-29
曾用名:
发表于 2025-2-27 11:14 | 显示全部楼层
admin 发表于 2025-2-24 23:41
这是pel的语法要求。variable不单单代表生命全局变量。也代表声明数组

你好!  
1.我能否这样理解: variable 声明的既是数组又是全局变量. 因为这种全局变量实际是由数组来实现的.    这个理解对吗?
2.如何定义全局数组变量? 因为有说明里说: variable:A[10]=0; //定义一个含10个元素的数值型数组A,并把所有元素初始化为0;
这个只说明定义了数组,那全局数组变量又该如何定义?
回复

使用道具 举报

37

主题

9868

帖子

5万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2025-2-27 11:17 | 显示全部楼层
本帖最后由 技术006 于 2025-2-27 11:26 编辑
hanzi-999 发表于 2025-2-27 11:14
你好!  
1.我能否这样理解: variable 声明的既是数组又是全局变量. 因为这种全局变量实际是由数组来实现 ...

1. 不是,variable 是关键字,它只是具备2种功能
2.没有所谓的全局数据,数据就是数组,

注:在pel中,基本不会使用到数组,因为pel对所有基于逐根计算k线的结果,都是序列变量。
而数组本质上是在一根k上反复赋值操作处理,如果是K线和k线之间是横向关系,那数组是基于k线内部的垂直处理的。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

19

主题

151

帖子

151

积分

等级: 免费版

注册:
2023-9-29
曾用名:
发表于 2025-2-27 11:56 | 显示全部楼层
技术006 发表于 2025-2-27 11:17
1. 不是,variable 是关键字,它只是具备2种功能
2.没有所谓的全局数据,数据就是数组,

1)那么数组是不是有全局变量的作用?
2)但是,很多程序需要全局数组来高效处理业务逻辑,所以我需要用到全局数组
回复

使用道具 举报

37

主题

9868

帖子

5万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2025-2-27 12:57 | 显示全部楼层
本帖最后由 技术006 于 2025-2-27 12:59 编辑
hanzi-999 发表于 2025-2-27 11:56
1)那么数组是不是有全局变量的作用?
2)但是,很多程序需要全局数组来高效处理业务逻辑,所以我需要用到全 ...

1.不是
2.PEL是封装后的脚本语言,不能等同视为C这类的语言中的。使用它的目的就是为了降低编程的难度。正常情况下,策略开发都是直接把需要的结果赋值给变量,那就是一个序列变量。在PEL中,没有所谓的搞成数组形态就会效率更高

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

使用道具 举报

19

主题

151

帖子

151

积分

等级: 免费版

注册:
2023-9-29
曾用名:
发表于 2025-2-27 13:25 | 显示全部楼层
1.不是的话,在策略需要对50个品种的指标数据建立50个全局变量, 对于代码来说编写很低效. 因为没有全局变量数组
回复

使用道具 举报

37

主题

9868

帖子

5万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2025-2-27 13:42 | 显示全部楼层
hanzi-999 发表于 2025-2-27 13:25
1.不是的话,在策略需要对50个品种的指标数据建立50个全局变量, 对于代码来说编写很低效. 因为没有全局变量 ...

引用策略直接都是赋值给一个变量即可。不过是需要你逐个赋值。即使是使用数组也只能像下面的结构进行。

VARIABLE: X[5]:=0;
X[1]:=STKINDI('CU00','KDJ.K',0,6,0);
X[2]:=STKINDI('RU00','KDJ.K',0,6,0);
X[3]:=STKINDI('M00','KDJ.K',0,6,0);
X[4]:=STKINDI('CF00','KDJ.K',0,6,0);
X[5]:=STKINDI('IF00','KDJ.K',0,6,0);
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-7 19:21 , Processed in 0.136703 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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