以文本方式查看主题

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

--  作者:ranyang
--  发布时间:2010/11/25 22:25:11
--  后台编程求助
IF LONG1 THEN
BEGIN
FLAG:=1;
IF FLAG=1 AND C>KK THEN
SELLSHORT(1,0,MKT),ORDERQUEUE;
BUY(1,1,MKT),ORDERQUEUE;
END

这个语句有什么问题吗,我的思路是先设定了一个入场条件,条件达成后将买入标志FLAG设为1,如果在随后只要收盘价符合了过滤条件c>KK,就买入,可是老是有问题,不知道这个语句哪里出问题了。

--  作者:wattwei
--  发布时间:2010/11/25 22:34:28
--  
实际使用中你的语句出了什么问题?

从代码来看, “LONG1为真”和“flag=1”完全对等,所以是多此一举。很明显如果“LONG1为假”即使“flag=1”,由于外部条件的限制,内部的条件语句即使成立,也永远不可能执行
--  作者:ranyang
--  发布时间:2010/11/25 23:06:00
--  
 long1是一个条件语句成立,是一个穿越条件,还有对应的做空的语句,将flag设为-1,flag为一个变量,在变为1后会一直保持为1,除非出现了做空条件成立的情况才会变为-1,
问题是在flag=1,c也大于kk的情况下没有做多的动作。
--  作者:admin
--  发布时间:2010/11/25 23:07:42
--  

4、金字塔公式编写调试

http://www.weistock.com/bbs/dispbbs.asp?boardid=4&id=1246&page=1&star=1


--  作者:fly
--  发布时间:2010/11/26 9:23:27
--  
楼主说的情况,最好用全局变量
可参阅问题16,希望对楼主有帮助