以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  为什么有的函数盘中盘后显示不一样。  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=6300)

--  作者:nima337
--  发布时间:2011/4/25 15:17:50
--  为什么有的函数盘中盘后显示不一样。
为什么有的函数计算的结果,逐k线模式,盘中当某一函数变量达到要求后,前面每一个该变量的值全部都成为了这个值,前面的计算结果竟然也改变了。而当数据接受停止时,或者盘后。盘中的那些值又恢复了独自k线计算的结果呢?
--  作者:董小球
--  发布时间:2011/4/25 15:28:36
--  
能举例说明么,你说的这种情况貌似不应该存在的!
--  作者:nima337
--  发布时间:2011/4/25 15:37:05
--  回复:(董小球)能举例说明么,你说的这种情况貌似不...

dist:=barslast(date<>ref(date,1))+1;

 

if ma7>ref(ma7,1)   then tt:=barpos;
//让时间过滤和空间过滤确定后再显示新的高点的时间空间

ttt2:=hhv(tt,dist) ;

 

 

 

 

ttt2的显示就是当它取到最大值时,前面的ttt2全部成为这一个值了,之前各自kxian计算的值都没了。数据接受停止后或者是盘后,各自计算的值又都恢复了。

[此贴子已经被作者于2011-4-25 15:45:19编辑过]

--  作者:nima337
--  发布时间:2011/4/25 15:57:44
--  回复:(董小球)能举例说明么,你说的这种情况貌似不...
既是,后面动态变化的值,影响到了之前计算结果的现实。
--  作者:董小球
--  发布时间:2011/4/25 16:42:24
--  
虽然不知道你这么写是什么意思 但是可以肯定的是 在逐K线模式下运行,TTT2的值是逐渐增加的,跟闭市不闭市没什么关系!
--  作者:nima337
--  发布时间:2011/4/25 16:47:51
--  回复:(董小球)虽然不知道你这么写是什么意思 但是可...
应该是按照你说的样子啊,可是我盘中前面的开盘信号突然消失了,然后我调试了各个变量,才发现是后面的结果改变了前面的结果,我也很惊讶。按理说算出来应该不会变的啊,可它真的变了,而且因为变了,我之前的信号才会消失的啊。数据暂停接收后和收盘后,又恢复了。要不你问问其他版主,看他们知道不。
--  作者:董小球
--  发布时间:2011/4/25 17:01:29
--  

你要想TTT2是当时的值 你应该用REF来调用之前某根K线的数据

 

建议你吧你的想法整理一下 说一下你是要实现什么,然后我们再分析分析问题出在哪,你光挂这么两句代码咱根本不知道是怎么回事


--  作者:阿火
--  发布时间:2011/4/25 17:11:26
--  

我明白楼主的意思。楼主没理解金字塔的公式原理,我来解释 给你听吧

 

dist:=barslast(date<>ref(date,1))+1; 

if ma7>ref(ma7,1)   then tt:=barpos; 

{ma7>ref(ma7,1) ,那么,把tt所有的值赋值为barpos,否则不执行。如果最后一个周期条件成立,那么,

tt就是barpos,如果最后一个周期条件不成立,那么,tt就是个无效值。也就是说前面的赋值会被后面的取代}
//让时间过滤和空间过滤确定后再显示新的高点的时间空间

ttt2:=hhv(tt,dist) ;

 

楼主想要的效果,是不是“条件成立是,tt=条件成立时的K线位置”,那么,应该把tt定义为单值型全局变量啊

 

variable:tt=0;

dist:=barslast(date<>ref(date,1))+1;

if ma7>ref(ma7,1)   then tt:=barpos;
ttt2:=hhv(tt,dist) ;

[此贴子已经被作者于2011-4-25 17:12:33编辑过]

--  作者:nima337
--  发布时间:2011/4/25 17:44:08
--  回复:(leevolvo)我明白楼主的意思。楼主...

是这样子的。

dist:=barslast(date<>ref(date,1))+1; 

if ma7>ref(ma7,1)   then tt:barpos; 

ttt2:hhv(tt,dist) ;

 

不是tt的问题。是ttt2的显示出了问题。

按理说ttt2 应该是一个逐渐往上的连续曲线,因为tt随时有新的有效值替代旧的,后一个值和前一个值不一样,因为是逐k线嘛。可是盘中ttt2前面的计算结果会随着后面的结果而变动,所有k线上都显示当前的最大值,为一条横线。奇怪的是盘后又变成我想要的曲线。同样的变量公式算法,盘中均为变动的横的直线,盘后为曲线正常了。

 

另外一个特点是,每次它成为横线,我双击重读一下公式,它会瞬间把正确曲线结果显现出来,但也就一瞬间,而价格一变动,马上又变成了横线,的确是盘中变动的价格影响到了前面k线的结果,为什么会这样呢?

[此贴子已经被作者于2011-4-25 18:04:55编辑过]

--  作者:nima337
--  发布时间:2011/4/25 18:05:26
--  回复:(董小球)你要想TTT2是当时的值 你应该用REF来...

是这样子的。

dist:=barslast(date<>ref(date,1))+1; 

if ma7>ref(ma7,1)   then tt:barpos; 

ttt2:hhv(tt,dist) ;

 

不是tt的问题。是ttt2的显示出了问题。

按理说ttt2 应该是一个逐渐往上的连续曲线,因为tt随时有新的有效值替代旧的,后一个值和前一个值不一样,因为是逐k线嘛。可是盘中ttt2前面的计算结果会随着后面的结果而变动,所有k线上都显示当前的最大值,为一条横线。奇怪的是盘后又变成我想要的曲线。同样的变量公式算法,盘中均为变动的横的直线,盘后为曲线正常了。

 

另外一个特点是,每次它成为横线,我双击重读一下公式,它会瞬间把正确曲线结果显现出来,但也就一瞬间,而价格一变动,马上又变成了横线,的确是盘中变动的价格影响到了前面k线的结果,为什么会这样呢?