您现在的位置:程序化交易>> 期货公式>> 金字塔等>> 金字塔知识>>正文内容

请问如下条件如何编写? [金字塔]

  • 咨询内容:

    请问如下的 第二次及第n次开仓条件 的语句如何编写?    

    tr1 : max(max((high-low),abs(ref(close,1)-high)),abs(ref(close,1)-low));    

    atr : ma(tr1,20);                               //atr公式    

     

    ma20:ma(close,20);                               //20日均线    

     

    a1:=0.01*valuewhen(barpos=1,asset);              //初始资金的1%    

     

    a2:=floor(a1/(2*atr));                         //开仓手数    

     

    a3:=ref(hhv(high,20),1);                       //20日高点    

     

    if holding=0 and close>a3 and close>ma20    

    then begin    

    buy(1,a2,marketr);    

    end                                   //第一次开仓    

     

    a4:=enterprice-2*ref(atr,enterbars=1);    

    if holding=1 and low<=a4    

    then begin    

    sell(1,0,limitr,a4);    

    end                                 //第一次开仓离场    

     

    //第二次及第n次开仓条件:如果随后的收盘 > 上一次(即第 n-1 次)开仓的(enterprice+2*atr),则开仓(即第 n 次);    

     

  • 金字塔客服:

    variable:bj=0;

    tr1 : max(max((high-low),abs(ref(close,1)-high)),abs(ref(close,1)-low));

    atr : ma(tr1,20);                               //atr公式


    ma20:ma(close,20);                               //20日均线


    a1:=0.01*valuewhen(barpos=1,asset);              //初始资金的1%


    a2:=floor(a1/(2*atr));                         //开仓手数


    a3:=ref(hhv(high,20),1);                       //20日高点


    if holding=0 and close>a3 and close>ma20 and bj=0

    then begin

    buy(1,a2,marketr);

    bj:=1;

    end                                   //第一次开仓

    if holidng=0 and close>enterprice+2*atr and bj=1 

    then begin

    buy(1,a2,marketr);

    end

    a4:=enterprice-2*ref(atr,enterbars=1);

    if holding=1 and low<=a4

    then begin

    sell(1,0,limitr,a4);

    end              

     

  • 用户回复: 明白了,谢谢!

     

  • 网友回复: 你好,我看到你这行代码: if holding=0 and close>a3 and close>ma20 and bj=0 then begin buy(1,a2,marketr); bj:=1; end                                   //第一次开仓
    if holding=0 and close>enterprice+2*atr and bj=1  then begin buy(1,a2,marketr); end
    第二处的“ if holding=0 and close>enterprice+2*atr and bj=1  ”,这里有没有写错?还是“ if holding=0 ”吗?不是“ if holding>0

 

有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友

可联系技术人员 QQ: 511411198  点击这里给我发消息进行 有偿 编写!不贵!点击查看价格!


【字体: 】【打印文章】【查看评论

相关文章

    没有相关内容