金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 2218|回复: 13

python和PEL相互调用的问题?

[复制链接]

95

主题

244

帖子

254

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
发表于 2024-7-7 18:45 | 显示全部楼层 |阅读模式
我看一般都需要:
1、py_import ……
2、用pel计算变量的数值,然后通过stpythonval传递给python。这里这么做是不是因为python不能直接获取High、close等数值?要pel算出来之后再传递给python?     这里又衍生出一个问题,如果python是通过pel来计算基础数据的,那用python就是因为pel无法实现对嘛?比如多维数组
3、然后通过firepyhandlebar来触发python中的handle_bar方法
4、最后通过getpythonval来获取pyton的计算结果?

具体案例一:https://www.weistock.com/bbs/for ... hread&tid=20415
具体案例二:如下图


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号? 微信登录

x
回复

使用道具 举报

37

主题

1万

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2024-7-8 09:40 | 显示全部楼层
本帖最后由 技术006 于 2024-7-8 09:59 编辑

1.非必要不需要使用混合。pel调用pytho的主要目的是使用python现成的库完成一些算法结果的使用。pel自身不支持多维数组,即使python完成计算,也无法正常获取到多维数据的结果。

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

使用道具 举报

95

主题

244

帖子

254

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
 楼主| 发表于 2024-7-8 12:28 | 显示全部楼层
技术006 发表于 2024-7-8 09:40
1.非必要不需要使用混合。pel调用pytho的主要目的是使用python现成的库完成一些算法结果的使用。pel自身不 ...

那4对嘛?第4个问题相当于:是否可以通过PEL调用PYTHON并通过PEL显示在K线图中?
回复

使用道具 举报

95

主题

244

帖子

254

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
 楼主| 发表于 2024-7-8 12:29 | 显示全部楼层
技术006 发表于 2024-7-8 09:40
1.非必要不需要使用混合。pel调用pytho的主要目的是使用python现成的库完成一些算法结果的使用。pel自身不 ...

比如我下面代码中的fred就是多维数组:
回复

使用道具 举报

37

主题

1万

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2024-7-8 12:59 | 显示全部楼层
序号标错了,是3,4是对的。pel不支持多维数据传递。唯一可以尝试的就是拆解成一维的序列数据使用。

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

使用道具 举报

95

主题

244

帖子

254

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
 楼主| 发表于 2024-7-9 07:29 | 显示全部楼层
技术006 发表于 2024-7-8 12:59
序号标错了,是3,4是对的。pel不支持多维数据传递。唯一可以尝试的就是拆解成一维的序列数据使用。

我的想法主要就是用python解决PEL没法解决的计算问题而改成python代码的,比如计算下面的全局变量VARIABLE:fred,实现不了?代码如下: fred= np.full_like(df['Close'],np.nan)  
fred[0] = df['Close'][0]  
for i in range(1, len(df)):  
   if pd.isna(fred[i-1]):  
       fred = df['Close'][i-1]  
   else:  
       fred = df['Close'][i-1] * fade * nowle[i-1] + fred[i-1] * (1 - fade *nowle[i-1])  
回复

使用道具 举报

95

主题

244

帖子

254

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
 楼主| 发表于 2024-7-9 07:30 | 显示全部楼层
103782 发表于 2024-7-9 07:29
我的想法主要就是用python解决PEL没法解决的计算问题而改成python代码的,比如计算下面的全局变量VARIABL ...

你就告诉我能不能通过python代码算出来,你们应该指导的,这个通过PEL是无法计算出else之后的fred值的
回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2024-7-9 09:01 | 显示全部楼层
你这个fred计算逻辑是什么呢,可能pel本身是可以计算的
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

95

主题

244

帖子

254

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
 楼主| 发表于 2024-7-10 12:49 | 显示全部楼层
技术008 发表于 2024-7-9 09:01
你这个fred计算逻辑是什么呢,可能pel本身是可以计算的

类似这个帖子,我仔细试过,PEL肯定不行的,帖子如下:https://www.weistock.com/bbs/for ... amp;page=1#pid61709
回复

使用道具 举报

95

主题

244

帖子

254

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
 楼主| 发表于 2024-7-10 12:59 | 显示全部楼层
技术008 发表于 2024-7-9 09:01
你这个fred计算逻辑是什么呢,可能pel本身是可以计算的

老师,你提到的fred的代码如下,算不出来的:VARIABLE:NEA:=0,US:=0,DS:=0,TS:=0,FRED:=0;

LENGTH:=5;



IF BARPOS < 6 THEN EXIT;
        NEA:= CLOSE[BARPOS-1] - CLOSE[BARPOS-2];
        US:=SUM(MAX(NEA,0),LENGTH);
        DS:=SUM(-MIN(NEA,0),LENGTH);
        TS:=(US - DS) / (US + DS);
        REFTS:=REF(TS,1);//必须过渡,否则REF在IF里面无法使用
        IF US=0 AND DS=0 THEN BEGIN
                TS:=REFTS;
        END

NOWLE:=ABS(TS);
FADE:=2/(1+LENGTH);

REFCLOSE:=REF(CLOSE,1);//必须过渡,否则REF在IF里面无法使用
IF BARPOS<5 THEN BEGIN
        FRED:=CLOSE;
END
ELSE
BEGIN
        IF BARPOS>5 THEN        BEGIN
                FRED:=REFCLOSE;
        END
        ELSE
        BEGIN
                FRED:=REFCLOSE * FADE * NOWLE + FRED[BARPOS-1] * (1-FADE*NOWLE);//这里FRED[BARPOS-1]就算不出来了,所以我才想要用python来解决
        END       
END
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-25 22:10 , Processed in 0.166782 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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