金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 1813|回复: 19

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

[复制链接]

37

主题

9975

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2025-2-24 15:01 | 显示全部楼层
hanzi-999 发表于 2025-2-24 14:21
谢谢! 几个PEL问题:
  1) 变量的声明即定义吗?
  2) 声明普通序列变量而不初始化,该如何写 ?

1.参考这个
https://www.weistock.com/docs/PE ... AE%9A%E4%B9%89.html

2.直接用:=
3.例如:aaa=ema(close,10);
4.是的。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

37

主题

9975

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2025-2-24 15:15 | 显示全部楼层
hanzi-999 发表于 2025-2-24 15:07
针对2) 烦请给具体例子.   
针对你的回复3,这个close并非我自定义的序列变量.
我想建立一个序列变量,  ...

2、对于没有明确声明的变量,首次使用:=时,就等于声明了。 随意直接就是AA:=MA(CLOSE+10,10);

3.没有区别,只要是序列变量都能完成计算。直接是就是AAA:=EMA(X,10);
这里的X可以是任意序列变量。

4.是的。你可以考虑定义成一个空字符串完成初始化声明,之后对SARR进行逐个元素的赋值。(元素操作只有这一种途径)


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

使用道具 举报

37

主题

9975

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2025-2-24 16:11 | 显示全部楼层
hanzi-999 发表于 2025-2-24 16:08
关键是这个自定义数值的序列变量不知道如何声明和定义
CLOSE是系统自带的,而我是需要根据每根K的数据计 ...

x:(close+10)/2;
类似这种,说白了就是你把你要计算的出x的算法赋值给x就行。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

37

主题

9975

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2025-2-24 16:21 | 显示全部楼层
hanzi-999 发表于 2025-2-24 16:18
但是我的 x的值是用STKINDIEX调用其他指标得到的,不是个序列值.

STKINDIEX返回的本身就是序列值。你直接给出你调用的指标的算法变量,我们看下
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

37

主题

9975

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

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

使用道具 举报

37

主题

9975

帖子

6万

积分

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
回复

使用道具 举报

37

主题

9975

帖子

6万

积分

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
回复

使用道具 举报

37

主题

9975

帖子

6万

积分

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-6-9 11:42 , Processed in 0.098807 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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