以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5)
----  在python引用中去写一些代码,供PEL去调用  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=168681)

--  作者:qq代人发帖
--  发布时间:2019/3/8 10:44:06
--  在python引用中去写一些代码,供PEL去调用
我是想在python引用中去写一些代码,供PEL去调用,碰到的这个问题
在引用的PYTHON中如果这样写: close = pel_history_bars( 3+1,\'close\')
                                                          refclose = close[-2:-1].sum() /1   
                                                            context.refclose=refclose
在PEL 中去这样调用 :refclose:GETPYTHONVAL(\'refclose\');
就能够正常显示出来,说明数据CLOSE是读取成功了的。

但是如果在PYTHON引用中如果写成 close = pel_history_bars( 3+1,\'close\')
                                                             refclose = close[-2]
                                                                context.refclose=refclose

在指标显示的时候就提示这个请问是什么原因呢?

图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看

--  作者:yukizzc
--  发布时间:2019/3/8 10:53:32
--  
你要判断len数量长度大于2的,第一根k的时候取不到大于2的数据量所以会有这个问题

    if len(close)>3:
        context.m = close[-2]
    else:
        context.m=0 
[此贴子已经被作者于2019/3/8 10:59:36编辑过]

--  作者:zhangt312
--  发布时间:2019/3/8 11:29:56
--  

在python引用中这样写:
close = pel_history_bars( 3+1,\'close\')

refclose = close[-2:-1].sum() /1     
closelen=len(close) 

context.refclose=refclose
context.closelen=closelen

在PEL中这样写:closelen:GETPYTHONVAL(\'closelen\');
                     refclose:GETPYTHONVAL(\'refclose\');

都能正常显示,读出来的CLOSE长度除了上市的头几天会显示0、2、3、4、4、4、4。。。。。
            也能读出refclose  最多就是上市的第一天显示为0,随后都能读出来,但是如果把那句refclose = close[-2:-1].sum() /1   改成refclose = close[-2],就还是提示出现顶楼那种错误


--  作者:yukizzc
--  发布时间:2019/3/8 13:46:38
--  
看我2楼,你要去处理数据长度问题的
--  作者:zhangt312
--  发布时间:2019/3/8 14:38:03
--  

谢谢,解决了,
close = pel_history_bars( 3+1,\'close\')  这句话要用在一只股票所有的Bar里,当它遇到LEN(close)长度不够长的情况下,就会报错,不管你是否把光标移动到上市的头几天 。