以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  这个问题在文华解决不了  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=2071)

--  作者:jfc008
--  发布时间:2010/7/9 16:33:56
--  这个问题在文华解决不了
对于增加的条件下,分别开仓的问题。后来用if else 解决了。现在面临的问题是:在增加的条件满足的情况下,我需要执行另外的平仓条件指令。而不是把原来的bp变成sp。

 

A:=IFELSE((增加的条件),1,0);
B:=IFELSE((增加的条件),1,0);
B=0&&(C<***&&TIME>=0910&&TIME<1450)||A=1&&(C>***&&TIME>=0910&&TIME<1450),BK;
C>***||TIME>=1455,SP;
A=0&&(C>***&&TIME>=0910&&TIME<1450)||B=1&&(C<***&&TIME>=0910&&TIME<1450),SK;
C<***||TIME>=1455,BP;

 

看来整个公式要重新写,能否用if else 分别执行1、0呢?其中1是一套买卖指令,2是另外一套。两者的区分就在那个增加的条件。又或者,在下划线部分也增加一个if else 指令用来区分?

 

 

请教:上面的文字是我在文华发表的一个帖子,当然使用的也是文华语言。文华的斑竹说没有办法解决,想请教一下金字塔。我也是你们的用户,谢谢!


--  作者:admin
--  发布时间:2010/7/9 17:40:59
--  

可否将问题再详细描述一下,因为你所说我们都不知所云


--  作者:jfc008
--  发布时间:2010/7/19 10:15:17
--  简单的说法

要不先换一种说法,上面这个交易程序,说白了就是想:

在某种条件下,采用震荡突破系统,在另外一种条件下,采用趋势系统?金字塔可以么?请指教,谢谢!


--  作者:weiwei
--  发布时间:2010/7/19 10:36:10
--  

使用IF THEN语法结构处理你的公式系统

if 震荡满足 then

begin

 //这里处理震荡突破系统代码

end

else

begin

//采用趋势系统

end


--  作者:jfc008
--  发布时间:2010/7/19 21:25:39
--  

EXITSHORT:C<MA2 ,TFILTER;
EXITLONG: C>MA1 ,TFILTER;

ENTERLONG: C<MA5 AND(DDD1<DDD2) ,TFILTER;
ENTERSHORT:C>MA4 AND(DDD1<DDD2 ) ,TFILTER;

这是震荡系统;

EXITSHORT:C>MA2 ,TFILTER;
EXITLONG: C<MA1 ,TFILTER;

ENTERLONG: C<MA5 AND(DDD1>=DDD2) ,TFILTER;
ENTERSHORT:C>MA4 AND(DDD1>=DDD2 ) ,TFILTER;

这是趋势系统;

 

判定是趋势还是震荡是DDD指标对于前一周期的大小或相等。那么,能否这样写:

 

IF (DDD1<DDD2),THEN BEGIN

EXITSHORT:C<MA2 ,TFILTER;
EXITLONG: C>MA1 ,TFILTER;

ENTERLONG: C<MA5 ,TFILTER;
ENTERSHORT:C>MA4  ,TFILTER;

ELSE

BEGIN

EXITSHORT:C>MA2 ,TFILTER;
EXITLONG: C<MA1 ,TFILTER;

ENTERLONG: C<MA5 AND(DDD1>=DDD2) ,TFILTER;
ENTERSHORT:C>MA4 AND(DDD1>=DDD2 ) ,TFILTER;

END

请老师指教!谢谢!

[此贴子已经被作者于2010-7-19 21:29:10编辑过]

--  作者:财富狂人
--  发布时间:2010/7/20 1:09:28
--  
好复杂啊!学习一下!
--  作者:admin
--  发布时间:2010/7/20 11:07:33
--  

经过修正的公式如下:请仔细对照之前的区别

IF (DDD1<DDD2),THEN BEGIN

EXITSHORT:C<MA2 ,TFILTER;
EXITLONG: C>MA1 ,TFILTER;

ENTERLONG: C<MA5 ,TFILTER;
ENTERSHORT:C>MA4  ,TFILTER;
END
ELSE

BEGIN

EXITSHORT:=C>MA2 ,TFILTER;
EXITLONG:= C<MA1 ,TFILTER;

ENTERLONG:= C<MA5 AND(DDD1>=DDD2) ,TFILTER;
ENTERSHORT:=C>MA4 AND(DDD1>=DDD2 ) ,TFILTER;

END