打印本文打印本文 关闭窗口关闭窗口

为什么画不出线?

作者:金字塔 来源:cxh99.com 发布时间:2014年04月15日
  • 咨询内容:

    CC:=(H+L)/2;

    DIRECTION:=CC-REF(CC,N1);
    VOLATILITY:=SUM(ABS(CC-REF(CC,1)),N1);
    ER:=ABS(DIRECTION/VOLATILITY);

    FSC:=2/(2+1);
    SSC:=2/(30+1); 
    SC:=ER*(FSC-SSC)+SSC;
    SCSQ:=SC*SC;

    IF BARPOS=1 THEN AMA:=CC;
    REFAMA:=REF(AMA,1);
    IF BARPOS>1 THEN AMA:=REFAMA+SCSQ*(CC-REFAMA);
    AMAVALUE:AMA,COLORWHITE;

     

    请教,上面这段代码,为什么画不出AMAVALUE这条白线?问题在哪里?先谢过了!

     

  • 金字塔客服:

    CC:=(H+L)/2;
    n1:=1;
    VARIABLE:ama=0;
    DIRECTION:=CC-REF(CC,N1);
    VOLATILITY:=SUM(ABS(CC-REF(CC,1)),N1);
    ER:=ABS(DIRECTION/VOLATILITY);

    FSC:=2/(2+1);
    SSC:=2/(30+1); 
    SC:=ER*(FSC-SSC)+SSC;
    SCSQ:=SC*SC;

    IF BARPOS=1 THEN AMA:=CC;

    IF BARPOS>1 THEN AMA:=AMA+SCSQ*(CC-AMA);
    AMAVALUE:AMA,COLORWHITE;

     

     

    做了这样的修改,就OK了,如果想要修改N1的话,按照下面思路做修改

    N1是多少很关键,N1是1,那么就需要定义barpso=1时AMA是多少,N1是2,那么就要定义barpos=1和barpos=2时,AMA是多少,N1是3时,就要定义barpos=1,barpos=2和barpos=3时,AMA是多少,以此类推

     

  • 用户回复: 以下是引用jinzhe在2013/9/30 10:51:32的发言:

    CC:=(H+L)/2;
    n1:=1;
    VARIABLE:ama=0;
    DIRECTION:=CC-REF(CC,N1);
    VOLATILITY:=SUM(ABS(CC-REF(CC,1)),N1);
    ER:=ABS(DIRECTION/VOLATILITY);

    FSC:=2/(2+1);
    SSC:=2/(30+1); 
    SC:=ER*(FSC-SSC)+SSC;
    SCSQ:=SC*SC;

    IF BARPOS=1 THEN AMA:=CC;

    IF BARPOS>1 THEN AMA:=AMA+SCSQ*(CC-AMA);
    AMAVALUE:AMA,COLORWHITE;

     

     

    做了这样的修改,就OK了,如果想要修改N1的话,按照下面思路做修改

    N1是多少很关键,N1是1,那么就需要定义barpso=1时AMA是多少,N1是2,那么就要定义barpos=1和barpos=2时,AMA是多少,N1是3时,就要定义barpos=1,barpos=2和barpos=3时,AMA是多少,以此类推

     

    多谢您的及时回复!也就是说,如果修改为下面这样,应该就可以通用了:

     

    VARIABLE:AMA=0;

    CC:=(H+L)/2;
    DIRECTION:=CC-REF(CC,N1);
    VOLATILITY:=SUM(ABS(CC-REF(CC,1)),N1);
    ER:=ABS(DIRECTION/VOLATILITY);

    FSC:=2/(2+1);
    SSC:=2/(30+1); 
    SC:=ER*(FSC-SSC)+SSC;
    SCSQ:=SC*SC;

    IF BARPOS=N1 THEN AMA:=CC;

    IF BARPOS>N1 THEN AMA:=AMA+SCSQ*(CC-AMA);
    AMAVALUE:AMA,COLORWHITE;

     

  • 网友回复:

    是的,如果原来的思路上最开N1个周期的AMA是这样定义的话,那么这样写就是对的了

     

  • 网友回复: 以下是引用jinzhe在2013/9/30 11:01:30的发言:

    是的,如果原来的思路上最开N1个周期的AMA是这样定义的话,那么这样写就是对的了

     

    谢谢!另外再请教,下面的白线和红线,画出来不一样,原因在哪里?

     

    VARIABLE:AMA=0;
    VARIABLE:AMA2=0;


    DIRECTION:=CC-REF(CC,N1);
    VOLATILITY:=SUM(ABS(CC-REF(CC,1)),N1);
    ER:=ABS(DIRECTION/VOLATILITY);

    FSC:=2/(2+1);       

    SSC:=2/(30+1);       
    SC:=ER*(FSC-SSC)+SSC;
    SCSQ:=SC*SC;    

     

    IF BARPOS=N1 THEN AMA:=CC;
    IF BARPOS=N1 THEN AMA2:=CC;
    REFAMA2:=REF(AMA2,1);
    IF BARPOS>N1 THEN AMA:=AMA+SCSQ*(CC-AMA);
    IF BARPOS>N1 THEN AMA2:=REFAMA2+SCSQ*(CC-REFAMA2);

     

    AMAVALUE:AMA,COLORWHITE;
    AMAVALUE2:AMA2,COLORRED;

打印本文打印本文 关闭窗口关闭窗口