欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 序列变量和全局变量的问题

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有4510人关注过本帖树形打印复制链接

主题:序列变量和全局变量的问题

帅哥哟,离线,有人找我吗?
qwert
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:141 积分:0 威望:0 精华:0 注册:2017/12/22 15:00:29
序列变量和全局变量的问题  发帖心情 Post By:2018/12/13 22:40:37    Post IP:180.169.30.6[显示全部帖子]

金字塔有没有序列变量和全局变量?怎么声明?没有的话如何实现保存变量数据?不被每次调用重置?

 回到顶部
帅哥哟,离线,有人找我吗?
qwert
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:141 积分:0 威望:0 精华:0 注册:2017/12/22 15:00:29
  发帖心情 Post By:2018/12/17 20:09:22    Post IP:175.153.161.118[显示全部帖子]

有几个问题,Q:=10这种变量是在单K内?那为何回复说用图表按TICK刷新让代码每个TICK都运行一遍,以触发条件呢?
每个TICK都运行一遍的话,Q在K线内也不能保存了,而是每个TCIK都会初始化重置Q值吧。
VARIABLE这种变量,指标一次刷新过程中起作用,指标刷新是个什么意思?何时会刷新指标?
帮助里有好几处笔误,Vraiable去掉V变为riable?有种声明吗?
目前我想要的是只作用于一根K线内的变量,就是这个K内不论多少TICK过来都不会初始化其值,比如我用来检测开平仓的次数,
这应该用什么变量声明?

 回到顶部
帅哥哟,离线,有人找我吗?
qwert
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:141 积分:0 威望:0 精华:0 注册:2017/12/22 15:00:29
  发帖心情 Post By:2018/12/18 10:33:59    Post IP:218.14.122.250[显示全部帖子]

你说的就是帮助里的例子,我怀疑Q:=10;不是保存在一个K内而是一个TICK内,如果是K内那就够用了,我要记录保存K线内的开平方向和次数,新K来时,需要重置这些数据,而不是全局变量那样不能重置,或者检测到新BAR时首先将全局变量重置清零,也可以实现,只是不知道怎么判断当前K是新K,不能用barpos,或者barstatus这种,因为如果用这种,K线内的所有TICK过来都是成立的,就会不断重置清零,达不到效果,我要在新bar第一个TICK的时候只重置一次。

 回到顶部
帅哥哟,离线,有人找我吗?
qwert
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:141 积分:0 威望:0 精华:0 注册:2017/12/22 15:00:29
  发帖心情 Post By:2018/12/18 20:24:35    Post IP:218.14.122.106[显示全部帖子]

固定值刷不刷新都无所谓?我不明白,你说的K线结束会刷新出计算结果,那就是要用全局变量才能实现啊,因为它才能保存数据啊,简单用Q:=10是不行的吧,因为每次运行都会初始化啊。VARIABLE这种变量,指标一次刷新过程中起作用,指标刷新是个什么意思?何时会刷新指标?帮助里有好几处笔误,Vraiable去掉V变为riable?有种声明吗?这两个问题再回答一下吧,我想到了一个方法解决我的问题,就是用K线不同的标志比如TIME或者DATE这种序列变量,它在K内就是不变的,但是K线变为新K就会改变,这样我在新K到来时用这个标志检测后才给全局变量初始化,接着到来的TICK的TIME和DATE标志因为相同就不会再把全局变量初始化了,可是我看了下好像没有这两个标志,你看还有没有类似的标志变量?
另外自己定义序列变量应该怎么声明?

 回到顶部
帅哥哟,离线,有人找我吗?
qwert
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:141 积分:0 威望:0 精华:0 注册:2017/12/22 15:00:29
  发帖心情 Post By:2018/12/19 16:26:37    Post IP:122.225.58.67[显示全部帖子]

我理解你写的,就是普通变量在程序重新运算后都会初始化,达不到保存的目的,但是我认为普通变量如test:=0;这种不是在k内有效,而是在TICK内有效,不能实现在K内保存数据,你说的是按照静态历史图表来看问题的,实际上图表交易的时候,K线是动态的,只有结束了才确定,在历史图K线上只会运行一次,实际交易K线内是按照固定轮询去执行,除非是K线走完才发单回测也按照收盘发单才会一致。因为固定轮询下会漏单,用持仓同步又会有延迟,造成实际交易和图表信号不一致,所以我要盘中就发单,就必须用TICK去触发,这样图表用盘中发单的信号和实际交易才一致,回测才有意义,不然怎么去检验策略可行不可行呢?
另外,到底有没有TIME和DATE这种能标志K线的序列变量?自定义序列变量又是怎么定义的?

 回到顶部
帅哥哟,离线,有人找我吗?
qwert
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:141 积分:0 威望:0 精华:0 注册:2017/12/22 15:00:29
  发帖心情 Post By:2018/12/19 20:46:44    Post IP:122.225.58.67[显示全部帖子]

我知道了,barpos这种序列变量也可以利用,检测前后两个K的barpos不一样就是新K,也可以不用TMIE和DATE,可是你一直没说金字塔里究竟有没有TIME和DATE变量啊,我看好像没有啊,都是跟他们相关的其他的函数。TB里面是用NumericSeries这种来声明序列变量的,跟普通变量是不同的,我不知道金字塔怎么自定义序列变量,我认为如Q:=10这种变量不是序列变量,没法回溯,也不会保存数据,就跟我之前说的只存在于TICK之中,而序列变量是针对K来保存状态的,TICK可以修改它,只要不修改它就一直不变了,金字塔里普通变量有这个功能吗?


 回到顶部
帅哥哟,离线,有人找我吗?
qwert
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:141 积分:0 威望:0 精华:0 注册:2017/12/22 15:00:29
  发帖心情 Post By:2018/12/20 14:37:49    Post IP:122.225.58.110[显示全部帖子]

全局变量怎么回溯?只能是访问吧,全局变量就是对于所有K都是共享的,而序列变量是每个K都保存有值,只不过这些值可能相等,但性质是不同的,每个K都是独立的,不是共享的。比如CLose[barpos-1]这种叫回溯,就是访问之前的某个K上的序列值。

 回到顶部