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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 逐K线问题

   

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


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

主题:逐K线问题

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


加好友 发短信
等级:新手上路 帖子:101 积分:530 威望:0 精华:0 注册:2011/12/9 19:43:29
逐K线问题  发帖心情 Post By:2012/3/10 23:01:29    Post IP:110.247.92.20[只看该作者]

首先声明,知道各位关于这个问题回答地都想吐了,所以我几乎查阅了所有能搜到的相关帖子,也看了多遍文档,但还是不太明白,想让各位确认一下


对于下面这一段运行在逐K线模式下的示例代码,现我描述一下其运行过程,各位看看我理解是否有偏差:
runmode : 0;
xx:0;
fc:=close;
fo:=open;
if fc>fo then
  xx:=1
else
  xx:=0;

1、现我打开一份合约的一分钟K线图,初始有100根K线,这时这段代码会执行100次,即每根K线执行一次;
2、一分钟后,有K线101根,这时这段代码执行101次,每根K线执行一次;(我知道一分种内可能会执行多次,现假设它一分种解析一次)
请教各位,逐K线模式,是以上我描述的情景吗?
如果不是,那照此情景,它是如何运行的?
如果我描述的正确,那么除去刚打开时执行100次初始化外,后面每走一根K线其实是没啥必要扫描前面已执行过的K线的,有什么场景需要再这样呢?我

看到文档说“加减仓、资金管理需要”,但我实在想不到为什么会需要,能不能举个例子?

多谢!俺曾是计算机专业,所以不怕有专业术语,我能听的懂,所以多讲些原理性的东西能加深我的理解:)
另,还提过一个问题,有答案了没?

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


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2012/3/11 8:35:24    Post IP:115.171.247.66[只看该作者]

目前你的描述基本正确,金字塔采用这种做法主要是因为用户在正常的实盘过程中,会有很多比如引用其他周期其他品种的数据,跨品种引用其他公式,从数据库调用更新后数据等等复杂操作,只使用最后一个数据,根本无法保证运算的安全性。

基于很多用户的要求,以后会考虑增加选项来解决此问题,但是用户必须是要事先知道只刷新最后一个K线所带来的危险性



金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
matador_liu
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:101 积分:530 威望:0 精华:0 注册:2011/12/9 19:43:29
  发帖心情 Post By:2012/3/12 0:56:08    Post IP:221.204.184.155[只看该作者]

1、 “如果只执行最后一周期,则当跨周期、跨品种引用时,比如跨长周期引用时,则会出现错误,因为跨长周期相当于引用了未来数据,这时需要每个周期上再重新算一遍。”  ——我的以上理解是否正确?
2、“打开K线图初始化后,如果按“down”键缩小视图比例看更多K线时,需要重新计算”——这种需要重新计算我能理解:)
3、还有别的情况需要重新计算吗?如果只是以上两种情况,我想我有办法在K线模式下只计算最后一根K线而不出错。

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


加好友 发短信 大哥
等级:超级版主 帖子:2837 积分:13237 威望:0 精华:2 注册:2010/7/14 17:31:54
  发帖心情 Post By:2012/3/12 10:57:48    Post IP:58.246.57.26[只看该作者]

1、不一定会出现错误,但是确实可能会引用未来的数据,如果你引用的是开盘价,那可能就没有未来数据了。
2、对,因为K线数目由增加了,所以程序等于重新加载了一遍指标。
3、我觉得这么解释下楼主可能能更好的理解:
如果你写了一个指标,里面有很多语句,然后还有一个循环10次的循环语句
如果当前画面上有100根K线参与计算,那么:
在序列模式下:程序执行了10次循环,循环语句其实只在最后一根K线上执行,前面K线上只对序列变量做执行了,序列变量就是CLOSE ,OPEN这这样的变量,其实就是个数组!
在逐K线模式下:程序执行了100×10次循环,在每一根K线上都非常非常完整的执行一边公式。


金字塔—专业程序化交易量化投资平台

客户服务部

-----------------------------------------------------------

欢迎您参加我公司的技术培训,具体培训需求请发邮件到

service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

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


加好友 发短信
等级:新手上路 帖子:101 积分:530 威望:0 精华:0 注册:2011/12/9 19:43:29
  发帖心情 Post By:2012/3/12 11:56:01    Post IP:121.18.126.70[只看该作者]

循环我懂了,请问下面语句:
 cc := CLOSE;
以上语句,对于序列模式与K线模式是不是都是一样的,即每次刷新都在所有K线上执行一遍?只有波及到判断语句与循环语句时两种模式才不一样?

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


加好友 发短信 大哥
等级:超级版主 帖子:2837 积分:13237 威望:0 精华:2 注册:2010/7/14 17:31:54
  发帖心情 Post By:2012/3/12 13:27:24    Post IP:58.246.57.26[只看该作者]

对 差不多可以这么理解
因为CLOSE是序列变量 每个K线上都对应一个数值的,所以只在最后一个K线上运行一遍 就出来划线了。


金字塔—专业程序化交易量化投资平台

客户服务部

-----------------------------------------------------------

欢迎您参加我公司的技术培训,具体培训需求请发邮件到

service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

 回到顶部