以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://www.weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://www.weistock.com/bbs/list.asp?boardid=4)
----  关于给全局变量赋值的问题  (http://www.weistock.com/bbs/dispbbs.asp?boardid=4&id=80416)

--  作者:qushixiaotu
--  发布时间:2015/7/3 14:52:30
--  关于给全局变量赋值的问题

刚编写了一个交易系统,目的是实现一个趋势跟踪系统。比最近一个最低点回升n1后买入,比最近一个高点下落n2后卖出。

 

具体的程序是:

n1,n2在参数表里定义,缺省值为0.1

 

Variable:low1=7000;
Variable:low2=0;
Variable:high1=0;
Variable:high2=7000;

if holding=0 then begin

  if low<low1 then begin
        low1=low;
    low2=low1*(1+n1);
    KD:=close>=low2;          //开多条件
    开多:BUY(KD,100%,THISCLOSE);          //开多信号
  end
end

else begin

   if high>high1 then begin
     high1=high;
       high2=high*(1-n2);
      PD:=close<=high2;          //平多条件
  
    平多:SELL(PD and holding>0,100%,THISCLOSE);                       //平多信号
   end
end

 

虽然编译能通过,但是测试中发现全局变量low1,high1始终是初始值。

我想做到的是在空仓的时候如果low比low1低,把low的值赋值给low1.

请高手帮我解答一下,如何做到这样的赋值。谢谢!

 


--  作者:jinzhe
--  发布时间:2015/7/3 14:54:07
--  
赋值是冒号等号,你全部都写成了等号
--  作者:qushixiaotu
--  发布时间:2015/7/3 15:08:00
--  

用:和:=效果一样吗?

我之前用过:赋值,结果编译不通过,说对全局变量low1重复定义了。


--  作者:jinzhe
--  发布时间:2015/7/3 15:10:29
--  

不一样,冒号还有显示线段的作用,所以一个公式里面只能有一个同样名字的。冒号等号就不一样,可以随便用。

 


--  作者:qushixiaotu
--  发布时间:2015/7/3 15:50:41
--  
懂了,成功测试了,多谢!!