以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  [求助]IF与全局变量问题  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=68275)

--  作者:LT-IQH89
--  发布时间:2014/8/4 10:52:04
--  [求助]IF与全局变量问题
IF与全局变量问题
1、全局变量的设置
variable:n=1;    // 全局变量,来控制当天交易仓位
variable:num=0;// 全局变量,来控制当天交易次数
看到论坛有:variable:A=1;B=0;这形式是否成立?A=n? B=num ?A、B如果成立,如此最多数量?

2、IF COND THEN EXPR1 ELSE EXPR2
这个语句是否可以直接操作下单,如:“ SELLSHORT ”,不知为何通不过?

3、IF COND THEN EXPR1 ELSE EXPR2 + begin + 全局变量 “n”、“ num”的正确编写结构?

如:条件相同,只是 HOLDING<0、 HOLDING=0 问题,当 HOLDING<0  开仓2手 ;当 HOLDING=0  开仓1手,如何编写?

请老师指导,谢谢。

--  作者:jinzhe
--  发布时间:2014/8/4 11:10:04
--  

variable:A=1;B=0;

这个表示A是全局变量,B是普通变量

variable:A=1,B=0;

A和B中间改成逗号,才表示分别定义两个全局变量


--  作者:LT-IQH89
--  发布时间:2014/8/4 11:25:35
--  
条件相同,只是 HOLDING 问题,当 HOLDING<0  开空仓2手,当 HOLDING=0  开空仓1手
不重复编写 IF 条件 AND  HOLDING<0 THEN  begin
           BUYSHORT(1,加SRN,THISCLOSE);
           n:=N*2;
           num:=num+2;
           end 
请教老师如何编写,谢谢。

--  作者:jinzhe
--  发布时间:2014/8/4 11:29:15
--  

if holding=0 and 其他条件 then buyshort(条件,1,价位);

if holding<0 and 其他条件  then buyshort(条件,2,价位);

 

你给我的感觉就是这样写


--  作者:LT-IQH89
--  发布时间:2014/8/4 11:36:26
--  
以下是引用jinzhe在2014/8/4 11:29:15的发言:

if holding=0 and 其他条件 then buyshort(条件,1,价位);

if holding<0 and 其他条件  then buyshort(条件,2,价位);

 

你给我的感觉


--  作者:LT-IQH89
--  发布时间:2014/8/4 11:41:13
--  
你给我的感觉.............?
那么当 HOLDING<0  开空仓n1手,当 HOLDING=0  开空仓n2手,并且要控制交易次数呢?


--  作者:jinzhe
--  发布时间:2014/8/4 13:03:43
--  

variable:n=0;//n为开仓次数

if holding=0 and 其他条件 and n<既定的次数 then  begin

   buyshort(条件,1,价位);

   n:=n+1;

end

if holding<0 and 其他条件 and n<既定的次数  then begin

   buyshort(条件,2,价位);

   n:=n+1;

end


--  作者:LT-IQH89
--  发布时间:2014/8/12 9:28:25
--  
条件相同,只是 HOLDING 问题,当 HOLDING<0 开空仓2手,当 HOLDING=0 开空仓1手
不重复编写 IF 条件 AND HOLDING<0 THEN begin
BUYSHORT(1,加SRN,THISCLOSE);
n:=N*2;
num:=num+2;
end
请教老师如何编写,谢谢。

老师你好,这个问题能不能如下表达,;
variable:n=0,N1=X1,N2=X2;//n为开仓次数,N1开仓数量, N2开仓数量
不重复编写:=IF(条件 AND HOLDING<0 ,N1<=既定的量 AND n<既定的次数,IF(条件 AND  HOLDING=0 ,N2<=既定的量 AND n<既定的次数,0));
不重复编写:=条件 AND HOLDING<0 AND N1<=既定的量 AND n<既定的次数 OR 条件 AND  HOLDING=0 AND N2<=既定的量 AND n<既定的次数;
IF 不重复编写 THEN 
begin
    BUYSHORT(HOLDING<0,N1,THISCLOSE);
    BUYSHORT(HOLDING=0,N2,THISCLOSE);
    N1:=N1*2;
    N2:=N2*2;
    n:=n+1;
end

--  作者:jinzhe
--  发布时间:2014/8/12 9:53:47
--  
不行,不要偷懒
--  作者:LT-IQH89
--  发布时间:2014/8/12 10:07:45
--  
Post By:2014/6/13 16:17:05 [只看该作者]

1,如果开仓有限制,则代码不会进行平仓反手

VARIABLE:A=0;
//中间变量
MA1:=MA(CLOSE,A);
MA2:=MA(CLOSE,B);

手数:=ss;
//交易条件

开多平空条件:=CROSS(MA1,MA2);//开多平空条件
开空平多条件:=CROSS(MA2,MA1);//开空平多条件

IF A=0 THEN
BEGIN
平空:SELLSHORT(开多平空条件,手数,MARKET);
平多:SELL(开空平多条件,手数,MARKET);
开多:BUY(开多平空条件 手数,MARKET);
开空:BUYSHORT(开空平多条件,手数,MARKET);
A:=1;
END


请问老师,为何上面的可以,不能两次开空?不是偷懒,而是为了逻辑、条理清晰