以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://weistock.com/bbs/list.asp?boardid=2)
----  关于全局变量的问题  (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=70180)

--  作者:打盹的小和尚
--  发布时间:2014/9/20 15:14:02
--  关于全局变量的问题

全局变量的赋值是出现信号就赋值,还是需要K线走完?

举例:

variable:cc=0;

if ma5>ma20 then cc:=1;

我初始化一个全局变量为cc,当5周期均线大于20周期均线的时候cc赋值为1,如果盘中信号频闪,cc是在1和0中来回变,还是等K线走完后判断条件?


--  作者:马良
--  发布时间:2014/9/20 18:50:22
--  
来回变的
--  作者:打盹的小和尚
--  发布时间:2014/9/23 14:11:40
--  

runmode:0;
variable:cc=0;
ma5:=ma(c,5);
ma20:=ma(c,20);
entertime:=time>100000 and time<144500;
if holding>0 and cc<=0 then sell(1,1,limitr,o);
if holding<0 and cc>=0 then sellshort(1,1,limitr,o);
if holding=0 and cc>0 then buy(1,1,limitr,o);
if holding=0 and cc<0 then buyshort(1,1,limitr,o);
if cc>0 and ma5<ma20 then cc:=0;
if cc<0 and ma5>ma20 then cc:=0;
if cc=0 and ma5>ma20 and entertime then cc:=1;
if cc=0 and ma5<ma20 and entertime then cc:=-1;
if time>=150000 then begin
 cc:=0;
end

 

这段代码是从阿火秘籍里找来的,这段代码可以实现前一根K线判断条件,在本周期开盘价下单,我想问是如何实现的,我测试过,如果去掉CC这个全局变量,就变成出现信号就立即下单了


--  作者:FexTel
--  发布时间:2014/9/23 14:28:18
--  

cc是整个控制变量,条件满足后先赋值cc

 

赋值后才会对应开平仓


--  作者:打盹的小和尚
--  发布时间:2014/9/23 14:41:29
--  

我也明白先赋值再开仓。举个例子初始化CC=0,当MA5>MA20出现了,CC赋值为1,这个时候就满足了开仓条件,为什么不会立刻开仓,而是等到本周期结束之后在下周期开盘价下单。版主能否详细说明下,这个问题对我很重要


--  作者:FexTel
--  发布时间:2014/9/23 14:46:59
--  

因为赋值是在开仓语句后面的,在同一根K线内

 

在同一根K线内,公式会从上往下运行,varibale记录为上一根K线的返回值。而不是公式运行一次的返回值


--  作者:打盹的小和尚
--  发布时间:2014/9/23 15:06:28
--  

那就是说还是要等K线走完才返回值,varibale是不会在盘中根据条件来回变的


--  作者:FexTel
--  发布时间:2014/9/23 15:07:59
--  

公式一次运行过程会记录值的,值在盘中会变化

 

只不过是公式一次运行的结果,公式重新运行后又会再次计算

记住代码是从上往下运行

[此贴子已经被作者于2014/9/23 15:08:25编辑过]