以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5)
----  handle_bar函数内append表格不会停止  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=183051)

--  作者:jinzita99
--  发布时间:2020/11/17 0:50:46
--  handle_bar函数内append表格不会停止
我要在handle_bar执行一个动作,新增一个数值到一个表格中,这个动作通过一个条件语句控制下次轮询的时候是否继续执行。结果发现每次轮询表格都会增加一个值,看似append每次轮询都执行,我在条件语句段落内添加了一个校验,发现条件控制是正常的,条件子句并没有执行,不知道为什么append会不断执行。

我把append动作移到外边一个函数中也一样,只有移到init才执行一次。请指点一下是哪里的问题?谢谢。


图片点击可在新窗口打开查看此主题相关图片如下:公式运行输出.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:策略运行设置.png
图片点击可在新窗口打开查看

--  作者:jinzita99
--  发布时间:2020/11/17 1:01:07
--  
下面是代码,完整没有删节。


import time

from PythonApi import *

def init(context):
    context.tb = [1,2,3,4,5]

def handle_bar(context,t=5):
    apple = 0
    if t == 5:
        apple += 1
        context.tb.append(1)
        t += 1

    print((t,apple,context.tb))



--  作者:jinzita99
--  发布时间:2020/11/17 14:01:15
--  
其他类似操作都有这个问题,例如:列表相加,列表extend.

还未有回复么?

--  作者:jinzita99
--  发布时间:2020/11/17 16:22:51
--  
找到原因了,我对函数参数初始设值的理解有误,公式中的t其实每次轮询都会重置为5,所以条件语句始终可以通过。已解决。