金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 1376|回复: 19

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

[复制链接]

4528

主题

4610

帖子

4635

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-2-24 13:03 | 显示全部楼层 |阅读模式
请教:1.能否针对VARIABLE给详细的说明? 目前PEL手册上的说明太简单;a.没有说明VARIABLE全局变量和序列变量的区别.  b.没有说明如何定义一个用户自定义的序列变量;  c.没有示例说明
如何定义并同时初始化一个元素类型是非数值(比如字符串)的VARIABLE数组变量  

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

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2025-2-24 13:22 | 显示全部楼层
本帖最后由 技术009 于 2025-2-24 13:31 编辑

1.区别在于初始化方式以及生命周期。
普通序列变量 本质上每个K都会初始化一次,全局则只在第一个K进行一次初始化,后续需要自己实现赋值逻辑 ,其值才会更新。

2.PEL不会强制类型。定义字符串,直接赋值就行了。
函数说明里直接就有范例的:

VARIABLE:X:=1,Y:=CLOSE,ARR[10]:=0,SARR[5]:='STR';
表示定义常数变量X并初始化为1,
申明序列变量Y并初始化为收盘价,
申明含10个浮点数的数组并全部初始化为0
申明含5个字符串的数组并都初始化为'STR'

需要留意的是VARIABLE 的作用是定义全局变量 或者一个内部数组,不能混淆了。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

19

主题

151

帖子

151

积分

等级: 免费版

注册:
2023-9-29
曾用名:
发表于 2025-2-24 14:21 | 显示全部楼层
谢谢! 几个PEL问题:
  1) 变量的声明即定义吗?
  2) 声明普通序列变量而不初始化,该如何写 ?
  3) 我想定义一个普通序列变量,该变量并非CLOSE而是我自己的用户自定义数值比如X,目的是计算该值的10周期EMA值(EMA(X,10),我该如何写?        
  4)SARR[5]:='STR' 的意思是 每个数组元素的值都初始化为'STR'吗?

补充内容 (2025-2-24 15:02):
针对4) 若需求是数组SARR[5]的每个元素是不同的(放不同的字符串),那么该如何声明使仅初始化一次呢?
回复

使用道具 举报

37

主题

9868

帖子

5万

积分

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

使用道具 举报

19

主题

151

帖子

151

积分

等级: 免费版

注册:
2023-9-29
曾用名:
发表于 2025-2-24 15:07 | 显示全部楼层
针对2) 烦请给具体例子.   
针对你的回复3,这个close并非我自定义的序列变量.
我想建立一个序列变量, 里面的值是我自定义的数值,而非CLOSE,OPEN,HIGH这些   
针对4) 若需求是数组SARR[5]的每个元素是不同的(放不同的字符串),那么该如何声明使仅初始化一次呢?
回复

使用道具 举报

37

主题

9868

帖子

5万

积分

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

使用道具 举报

19

主题

151

帖子

151

积分

等级: 免费版

注册:
2023-9-29
曾用名:
发表于 2025-2-24 16:08 | 显示全部楼层

关键是这个自定义数值的序列变量不知道如何声明和定义
CLOSE是系统自带的,而我是需要根据每根K的数据计算出x,然后将其存入序列,再计算EMA(X,10)
回复

使用道具 举报

37

主题

9868

帖子

5万

积分

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

使用道具 举报

19

主题

151

帖子

151

积分

等级: 免费版

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

补充内容 (2025-2-24 16:20):
你这个示例中, close本身就是序列变量所以得到的x自然也是序列变量. 而我没法利用序列变量来建立序列变量

补充内容 (2025-2-24 16:22):
我是逐K模式,当是最新K时,调用子指标得到一个数值,然后想追加到序列变量里,然后利用序列变量计算EMA值
回复

使用道具 举报

37

主题

9868

帖子

5万

积分

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-8 10:58 , Processed in 0.096263 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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