以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (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
这句后面加个and |
-- 作者:风水财神 -- 发布时间:2014/1/29 16:47:11 -- 大哥呀 真心还是不行呀,这句 我加了 AND |
-- 作者:王锋 -- 发布时间:2014/1/29 17:24:07 -- 你能不能将BEGIN..END中间的代码使用TAB进行格式化一下,否则你代码乱的没人看得懂的,没法帮你改的 |