金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 79|回复: 2

从python模块里面返回一个数组到pel中

[复制链接]

4619

主题

4705

帖子

4730

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-6-17 14:05 | 显示全部楼层 |阅读模式
咨询下,我想从python模块里面返回一个数组到pel中使用,数组里面就是3种类型的值,0/1/2; 我应该用下面哪种方案

方案一: 先在pel里面定义一个数组,传进py,在python里面赋值,最后返回pel中使用

方案二: 在python里面直接定义list,赋值后,然后在pel里面直接获取出来使用

我从官网的文档里面没看到传递数组的用法,只看到传单值的用法

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

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2025-6-17 16:15 | 显示全部楼层
有传递数组的,参考用法2


设置一个变量至Python模块中,此变量可以在Python的context对象中获取。
用法1:
SETPYTHONVAL(NAME,TYPE,VAL);
  NAME为变量名;
  TYPE变量类型,分别为 0数值 1字符串;
  VAL为具体变量内容;


例如:
SETPYTHONVAL('pyclose',0,close);表示将当前收盘价传递至Python模块中,变量名为pyclose;

用法2:
SETPYTHONVAL(ARRAY,NAME);ARRAY为VARIABLE定义的数组名;NAME为变量名。


例如:
VARIABLE : X[10]:=0;
SETPYTHONVAL(x,'test');
表示将X数组以list形式传递到Python模块中,变量名为test。

所属函数组:特色函数


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

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2025-6-17 16:30 | 显示全部楼层
本帖最后由 技术009 于 2025-6-17 16:42 编辑

1.这个方式 我尝试了下,但是受限于指标的执行机制,导致本地次运行更新进去的值(历史位置的值更新后,在下次运行时候才能读取到,handle方法是依序从历史K执行到最新K的),需要下一次运行时候才能把绘图效果应用上,相当于始终有一个延迟。

2.也可以单独做一个py策略,让他自行在运行池中执行,然后把值传递给超全局变量,在pel和py之间直接共享。
比如说我在py中计算出一个位置 10 是高点,15是低点。然后做下处理,把K线的位置的值 写给2个不同的超全局变量。
在pel我们直接读取这个值,判断K是否符合条件。然后pel指标需要设置成 逐K模式(不可以勾选仅刷模式)
py写超全局变量 :https://www.weistock.com/docs/Py ... 8F%98%E9%87%8F.html

不过问题也和1中提到的类似。本次的结果,至少要pel代码下次执行时候才能应用上去。

你看下那种方式更合适吧。


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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-21 12:42 , Processed in 0.141633 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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