以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  [原创]函数不能在if then语句中顺利通过,非常重要,急请解决!  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=61376)

--  作者:风水财神
--  发布时间:2014/1/29 14:53:33
--  [原创]函数不能在if then语句中顺利通过,非常重要,急请解决!
函数不能在if then语句中顺利通过,非常重要,急请解决!
已经按照论坛的相关帖子 进行了函数替换,但还是不解决问题,求编程指导。
之前IF then,也引用到了BARSLAST, ref函数,就能顺利通过,
现在在条件内加入突破反手条件,就不能通过了,求解决方法。


BBR0:=BARSLAST(high<下下轨 and LOW<下下轨);
downout:=BBR0<2;
PXXG:=BARSLAST(C<下下轨 and isdown>3)<4;
BBR1:=BARSLAST(CROSS(REF(ZIG(3,5),1),ZIG(3,5)));
BBR2:=BARSLAST(CROSS(ZIG(3,5),REF(ZIG(3,5),1)));
BBR3:=BARSLAST(CROSS(ZIG(3,5),REF(ZIG(3,5),1)))>1;
buycond:=BBR1>BBR2 and CLOSE<=下轨 and BBR3 AND HOLDING=0;

if buycond AND NOT(JXK)then
BEGIN
 BUY(holding=0,lots,LIMITr,CLOSE); 
//DRAWTEXT(1,HIGH*1.005,\'111\') ,COLORGREEN;and close-中轨>0.32*(中轨-下轨)AND NOT(JXK OR downout OR PXXG) 
if JXK then
BEGIN
buyshort(holding>0 and JXK,0);
sell(holding=0,lots);
END

BCR1:=BARSLAST(CLOSE<=中轨);
psellcond:=CLOSE>=下下轨 and BCR1<2 and ENTERBARS>8 and close-中轨>0.32*(中轨-下轨),NOAXIS;
if psellcond then 
BEGIN
 SELLSHORT(holding<0,0,LIMITr,CLOSE);
END
BCR2:=BARSLAST(CLOSE>=中轨)
pbuycond:=CLOSE<=上上轨 and BCR2>3 and ENTERBARS>5 and 中轨-close>0.36*(上轨-中轨) ,NOAXIS;
if pbuycond then
BEGIN
 SELL(holding>0,0,LIMITr,CLOSE);
END

--  作者:风水财神
--  发布时间:2014/1/29 14:57:40
--  

 

downout:=BARSLAST(high<下下轨 and LOW<下下轨)<2;

PXXG:=BARSLAST(C<下下轨 and isdown>3)<4;

buycond:=BARSLAST(CROSS(REF(ZIG(3,5),1),ZIG(3,5)))>BARSLAST(CROSS(ZIG(3,5),REF(ZIG(3,5),1))) and CLOSE<=下轨

and BARSLAST(CROSS(ZIG(3,5),REF(ZIG(3,5),1)))>1 AND HOLDING=0 and not(downout OR PXXG ) ;

 

 

if buycond AND NOT(JXK)then

BEGIN

 BUY(holding=0,lots,LIMITr,CLOSE);

//DRAWTEXT(1,HIGH*1.005,\'111\') ,COLORGREEN;and close-中轨>0.32*(中轨-下轨)

END

 

psellcond:=CLOSE>=下下轨 and BARSLAST(CLOSE<=中轨)<2 and ENTERBARS>8 and close-中轨>0.32*(中轨-下轨),NOAXIS;

if psellcond then

BEGIN

 SELLSHORT(holding<0,0,LIMITr,CLOSE);

END

pbuycond:=CLOSE<=上上轨 and BARSLAST(CLOSE>=中轨)>3 and ENTERBARS>5 and 中轨-close>0.36*(上轨-中轨) ,NOAXIS;

if pbuycond then

BEGIN

 SELL(holding>0,0,LIMITr,CLOSE);

END


这是之前能够通过的代码


--  作者:jinzhe
--  发布时间:2014/1/29 15:08:36
--  
BCR2:=BARSLAST(CLOSE>=中轨)
pbuycond:=CLOSE<=上上轨 and BCR2>3 and ENTERBARS>5 and 中轨-close>0.36*(上轨-中轨) ,NOAXIS;

 

 

第一句后面少个分号


--  作者:风水财神
--  发布时间:2014/1/29 15:28:03
--  
刚才已将分号补上,还是不能通过
--  作者:风水财神
--  发布时间:2014/1/29 15:29:35
--  

BBR0:=BARSLAST(high<下下轨 and LOW<下下轨);
downout:=BBR0<2;
PXXG:=BARSLAST(C<下下轨 and isdown>3)<4;
BBR1:=BARSLAST(CROSS(REF(ZIG(3,5),1),ZIG(3,5)));
BBR2:=BARSLAST(CROSS(ZIG(3,5),REF(ZIG(3,5),1)));
BBR3:=BARSLAST(CROSS(ZIG(3,5),REF(ZIG(3,5),1)))>1;
buycond:=BBR1>BBR2 and CLOSE<=下轨 and BBR3 AND HOLDING=0;



if buycond AND NOT(JXK)then
BEGIN
 BUY(holding=0,lots,LIMITr,CLOSE); 
//DRAWTEXT(1,HIGH*1.005,\'111\') ,COLORGREEN;and close-中轨>0.32*(中轨-下轨)AND NOT(JXK OR downout OR PXXG) 
if JXK then
BEGIN
buyshort(holding>0 and JXK,0);
sell(holding=0,lots);
END

BCR1:=BARSLAST(CLOSE<=中轨);
psellcond:=CLOSE>=下下轨 and BCR1<2 and ENTERBARS>8 and close-中轨>0.32*(中轨-下轨),NOAXIS;
if psellcond then 
BEGIN
 SELLSHORT(holding<0,0,LIMITr,CLOSE);
END
BCR2:=BARSLAST(CLOSE>=中轨);
pbuycond:=CLOSE<=上上轨 and BCR2>3 and ENTERBARS>5 and 中轨-close>0.36*(上轨-中轨),NOAXIS;
if pbuycond then
BEGIN
 SELL(holding>0,0,LIMITr,CLOSE);
END

--  作者:风水财神
--  发布时间:2014/1/29 15:30:31
--  
改问题还是没有解决 是不是函数转换的问题的写法不对?
--  作者:风水财神
--  发布时间:2014/1/29 15:31:37
--  
求万能的版主解决啊,揪心呀
--  作者:jinzhe
--  发布时间:2014/1/29 15:42:09
--  

if buycond AND NOT(JXK)then
BEGIN
 BUY(holding=0,lots,LIMITr,CLOSE);
//DRAWTEXT(1,HIGH*1.005,\'111\') ,COLORGREEN;and close-中轨>0.32*(中轨-下轨)AND NOT(JXK OR downout OR PXXG)
if JXK then
BEGIN
buyshort(holding>0 and JXK,0);
sell(holding=0,lots);
END

 

这句后面加个and


--  作者:风水财神
--  发布时间:2014/1/29 16:47:11
--  
大哥呀  真心还是不行呀,这句 我加了 AND
--  作者:王锋
--  发布时间:2014/1/29 17:24:07
--  
你能不能将BEGIN..END中间的代码使用TAB进行格式化一下,否则你代码乱的没人看得懂的,没法帮你改的