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

程序描述 [金字塔]

  • 咨询内容: 我想记录上一次条件成立时macd的K线位置,
    目的,上一次MACD红柱区域的最高点,和当前MACD红柱最高点作比较(中间隔了一片绿柱区域);麻烦问一下怎么记录上次MACD红柱最高点的位置,目的是想知道上一次MACD红柱最高点对应的价格当做压力线

     

  • 金字塔客服:

    p:=26;
    s:=12;
    m:=9;
    DIFF : EMA(CLOSE,S) - EMA(CLOSE,P);
    DEA  : EMA(DIFF,M);
    MACD1 : 2*(DIFF-DEA);

    UPCROSS:=macd1>0;
    DWCROSS:=macd1<0;
    NN1:=BARSLAST(UPCROSS);
    NN2:=REF(BARSLAST(UPCROSS),NN1+1);
    NN3:=REF(BARSLAST(UPCROSS),NN1+NN2+1+1);
    NNN:=NN1+NN2+NN3,COLORRED;

    HH1:REF(macd1,NN1);//  上一次的最高值

    HH2:REF(macd1,NN2+NN1+1);//上二次

    HH3:REF(macd1,NN3+NN2+1+NN1+1);//上三次

     

  • 用户回复: 这个写的有问题吧 UPCROSS:=macd1>0;DWCROSS:=macd1<0;NN1:=BARSLAST(UPCROSS);NN2:=REF(BARSLAST(UPCROSS),NN1+1);NN3:=REF(BARSLAST(UPCROSS),NN1+NN2+1+1);NNN:=NN1+NN2+NN3,COLORRED;
    HH1:=REF(macd1,NN1);//  上一次的最高值? 这里的HH1不是上次最高值啊,是第一次macd值大于0的价格 和我想要的不一样
    是不是 HHV(MACD1,NN1)?

     

  • 网友回复:

    P:=26;
    S:=12;
    M:=9;
    DIFF := EMA(CLOSE,S) - EMA(CLOSE,P);
    DEA  := EMA(DIFF,M);
    MACD1 := 2*(DIFF-DEA);

    UPCROSS:=MACD1>0 AND REF(MACD1<0,1);
    DWCROSS:=MACD1<0 AND REF(MACD1>0,1);
    NN1:BARSLAST(UPCROSS);
    NN2:REF(BARSLAST(UPCROSS),NN1+1);
    NN3:REF(BARSLAST(UPCROSS),NN1+NN2+1+1);
    MM1:BARSLAST(DWCROSS);
    MM2:REF(BARSLAST(DWCROSS),NN1+1);
    MM3:REF(BARSLAST(DWCROSS),NN1+NN2+1+1);
    r1:=REF(HHV(macd1,nn1+1),mm1+1);
    ht1:=hhv(macd1,nn1+1);
    r2:=ref(hhv(macd1,nn1+1),mm1+1);
    ht2:=ref(hhv(macd1,nn1+1),nn1+1+ref(mm1,nn1+1)+1);
    r3:=ref(hhv(macd1,nn1+1),mm1+1+ref(mm1,mm1+1)+1);
    ht3:=ref(hhv(macd1,nn1+1),nn1+1+ref(nn1,nn1+1)+1+ref(mm1,nn1+1+ref(nn1,nn1+1)+1));
    if macd1>0 then hh1:=ht1;
    if macd1<0 then HH1:=r1;
    h1:hh1;
    if macd1>0 then hh2:=r2;
    if macd1<0 then hh2:=ht2;
    h2:hh2;
    if macd1>0 then hh3:=r3;
    if macd1<0 then hh3:=ht3;
    h3:hh3;

     

     

     

    H1,H2,H3分别为最近3块红柱子的最大值

     

  • 网友回复: 你好,特别感谢您;我想在上面的基础上加15分钟的指标引用:上面的操作周期为1分钟;
    编写的指标如下:C15:=CALLSTOCK('IF00',VTHIGH,4,-1);O15:=CALLSTOCK('IFOO',VTLOW,4,-1);RC15:=REF(CALLSTOCK('IF00',VTHIGH,4,-1),1);RO15:=REF(CALLSTOCK('IFOO',VTLOW,4,-1),1);R2C15:=REF(CALLSTOCK('IFOO',VTHIGH,4,-1),2);R2O15:=REF(CALLSTOCK('IFOO',VTLOW,4,-1),2);

    D1:=MIN(C15,RC15);DING:=MIN(D1,R2C15);L1:=MAX(O15,RO15);DI:MAX(L1,R2O15);
    IF DING>DI THEN BEGINU15:=DING;L15:=DI;END 在主交易程序中这样调用:u1:="UL.U15"; L1:="UL.L15";  cond15:=u1>ref(u1,1);
    IF ABS(MACD1)>0.1  AND HIGH>H1 and cond15 THEN BEGINBUYSHORT(HOLDING=0,1,MARKET);ENDIF HOLDING<0 THEN BEGIN止空单:SELLSHORT(CLOSE>H2,0,MARKET);END测试过了,加上我写的指标就没有交易,不加就ok 指标调用出了什么问题呢?测试都是正常的

 

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

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


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

相关文章

    没有相关内容