以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  请教下怎么固定住ATR的数值?  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=78200)

--  作者:onmidas
--  发布时间:2015/5/3 16:57:46
--  请教下怎么固定住ATR的数值?
我想记录下开仓时K线对应的ATR数值,该ATR直到平仓前数值都保持不变。

我定义了一个全局变量,在开仓语句中,将ATR数值赋给了该全局变量,

以我的理解,全局变量应该不会随着K线变化再变化了

但实际运行下来,却仍然跟着K线变化

哪儿错了?

多谢!

--  作者:netfox
--  发布时间:2015/5/3 18:55:55
--  

看你写的应该不会错,不过你把ATR归零那段写了吗?

 

然后呢还有个办法, 你这就是说 开仓到现在是多久。  所以呢仔细看函数表,有个叫做自上次开仓至今周期数的函数 ,嗯那,在配下REF

 

REF(ATR,XXX) 

 

XXX= 自开仓至今多少周期的函数

 

搞定图片点击可在新窗口打开查看


--  作者:onmidas
--  发布时间:2015/5/4 9:37:30
--  
variable:aa=0; IF 开仓条件 then begin aa:=atr end 我按这个编写,aa是随k线变化的 楼上给的变通方法没解决我对variable的疑惑啊
--  作者:jinzhe
--  发布时间:2015/5/4 9:44:20
--  

if 开仓条件  and holding=0 then begin

    开仓语句;

    aa:=atr;

end

多加一个条件试试看


--  作者:netfox
--  发布时间:2015/5/4 10:44:06
--  

回楼主:你说ATR会变化是因为你的“开仓条件”又实现了。

 

IF 开仓条件 then begin

BUY(HOLDING=0,XXX,XXX,XX) 

END

 

类似上面这写法,第二行只要前头定义是=0 而不是 1或者别什么布尔形态。  IF后续内容就算实现也是不执行的。

  但不代表说IF不“运行” 你知道的IF特性就是会一直运行这与while不同。

 

所以呢你如果想知道为何ATR会变换 只要在下面加一个 I:=I+1; 然后你观察下I ,我估计这个I会好几次求和。

 

因此你就可以判断,前面"开仓条件" 又实现了几次。

 

 

  。。。 断点追几次就会发现问题。要善于用断点。