以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  对金字塔一个模型范例的疑惑~  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=67562)

--  作者:joy_in
--  发布时间:2014/7/18 12:41:27
--  对金字塔一个模型范例的疑惑~
金字塔自带的一些模型范例对初学者来说可以比较直观的了解程序化的一些使用情况,我从中也是收获很多,非常感谢!
下面针对dual thrust这个策略说一下今天发现的问题:这就是在实际的图表程序化中的开仓上轨线及下轨线所对应的数值按照策略代码来看计算是错误的!这个策略在实际运行中的浮动区间是按照K*(HH-LL)计算的,而不是编码里的浮动区间:=MAX(HH-LL,HC-LL)。也就是说在实盘当中,这个策略是按照前一日的最高价减最低价然后再乘以K值而计算出来的浮动区间,这显然和编码里面的要从两个区间中取最大的那个区间的公式表达是不同的。
图片点击可在新窗口打开查看
为了更加清楚的表明以上意思,我们以橡胶1501合约一分钟周期来看(请打开这个合约并选择默认的dual thrust 公式,请注意这里的公式中N值取1,即只使用昨天的数据为计算依据):
昨日HH:15580;
昨日HC:15545;
昨日LC:15545;(由于策略默认N值是1,即昨日HC和昨日LC是一致的)
昨日LL:15250;
今开:15600

至此,我们可以计算出两个价格区间:即HH-LC=15580-15545=35; 以及HC-LL=15545-15250=295;
按照策略自带编码里的   浮动区间:=MAX(HH-LL,HC-LL),可知应该选择295这个区间数值。
按照编码里的K1=K2=0.7可以计算出:
上轨:开盘价+K1*浮动区间=15600+0.7*295=15806.5
下轨:开盘价-K2*浮动区间=15600-0.7*295=15393.5
但是,在图表中的上下轨实际分别约是15833和15368,这时我就产生了疑问,为什么不一致呢?于是我按照公式进行倒推,
(15833-15600)/0.7=333,而昨高HH-昨低LL=330。于是为了进一步验证我的结论,我按照7月16日的数据再次计算了7月17日(即昨天)的开仓上下轨,结果表明,系统自带的这个策略确实是按照前一日的最高价减最低价为唯一的基础进行运算的,而不是公式里面显示的 浮动区间:=MAX(HH-LL,HC-LL),浮动区间取最大值。

求问版主,我的理解对否?如果我的理解正确,那么请问这个公式该如何修改才能在图表中正确的对dual thrust 这个策略的原义进行呈现呢?
PS:为了表达清楚,可以以上文字有些啰嗦,请见谅!




--  作者:jinzhe
--  发布时间:2014/7/18 13:09:39
--  
是的,是错的,跨周期引用写错了
--  作者:joy_in
--  发布时间:2014/7/18 13:26:29
--  
哦,请问什么时候能改过来呢? 我现在用的就有这个策略啊!图片点击可在新窗口打开查看
--  作者:pyd
--  发布时间:2014/7/18 13:34:32
--  

再建一个公式a,计算n日最高最低价

dual thrust 公式里用stkindi调用,如图


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


--  作者:joy_in
--  发布时间:2014/7/18 14:08:10
--  
不行啊老大,不是提示缺变量要么就是出不来信号!
劳驾能不能把具体的修改的操作步骤告诉我们(目前还是菜鸟哦)或者是把修改版的编码发给我,谢谢了~

--  作者:jinzhe
--  发布时间:2014/7/18 14:15:38
--  
照着上面的步骤做,
--  作者:joy_in
--  发布时间:2014/7/18 14:23:09
--  
是按照提示做的,就是不出信号,请斑竹也按照您的提示操作一下,看是否出信号呢?

[此贴子已经被作者于2014/7/18 14:24:29编辑过]

--  作者:jinzhe
--  发布时间:2014/7/18 14:25:46
--  
公式A改成逐k线计算
--  作者:joy_in
--  发布时间:2014/7/18 14:26:56
--  
为毛发不了截图呢?
--  作者:joy_in
--  发布时间:2014/7/18 14:30:17
--  
“公式A改成逐k线计算”????

不懂啊,我们是初学者,怎么改个发现的问题就这样难啊?!