[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [amibroker] Hull Moving Averages



PureBytes Links

Trading Reference Links

Below is what I coded from a news letter.  Can't remember from which one.

  /* Hull Moving Average (HMA)
  Author: Alan Hall
  web site: www.alanhall.com
  */
  //user paramters
  prmPeriod = Param("Period", 25, 2, 100, 1);
  prmColor = ParamColor("Color", colorAqua);
  prmStyle = ParamStyle("Style", styleLine, maskAll);
  prmField = ParamField("Fields", 3);
  //calculations
  HMA = WMA(2 * WMA(prmField,int(prmPeriod/2)) - WMA(prmField,prmPeriod),
int(sqrt(prmPeriod)));
  // paint the chart
  Plot(HMA,"HMA",prmColor, prmStyle);
John
  -----Original Message-----
  From: amibroker@xxxxxxxxxxxxxxx [mailto:amibroker@xxxxxxxxxxxxxxx]On
Behalf Of Ton Sieverding
  Sent: Sunday, December 31, 2006 7:15 AM
  To: amibroker@xxxxxxxxxxxxxxx
  Subject: Re: [amibroker] Hull Moving Averages


  Bruce do you know what is causing the difference between "YourHull" and
"MyHull" when changing the period ? Interesting to see that both
calculations for certain periods give the same result and for others not. I
just don't see the difference from a code point of view ...

  Ton.

  MA1=WMA(C,Periods);
  MA2=WMA(C,Periods/2);
  HMA=WMA(2*MA2-MA1,round(sqrt(Periods)));
  Plot( HMA, "MyHull", colorBlue,styleLine );

    ----- Original Message -----
    From: Bruce Hawkins
    To: amibroker@xxxxxxxxxxxxxxx
    Sent: Sunday, December 31, 2006 4:28 AM
    Subject: Re: [amibroker] Hull Moving Averages


    Try this:



    function HullMaFunction( P, Periods, Delay )

    {

    X = 2 * WMA(P,round(Periods/2)) - WMA(P,Periods);

    HullMA = WMA(X,round(sqrt(Periods)));

    HullMA = Ref(HullMA,-Delay);

    return HullMa;

    }


    PlotPriceField = ParamToggle("PriceField","HIDE|SHOW",1);

    P = ParamField("Price field",-1);

    Periods = Param("Periods", 15, 2, 200, 1, 10 );

    Delay = Param("Delay", 0, 0, 10, 1 );

    HullMA = HullMaFunction( P, Periods, Delay );

    if( PlotPriceField ) Plot(C,"",1,128);

    Plot( HullMA, _DEFAULT_NAME(), ParamColor( "Color", colorCycle ),

    ParamStyle("Style") );





    ianjw2 wrote:
      I've only just become aware of the Hull Moving Average.
      It seems to be on top of the normal MA lag and manages to maintain
nice
      smoothing at the same time.

      Has anyone done any AFL code for it and is willing to share?

      MetaStock Formula
      period:=Input("Period",1,200,20) ;
      sqrtperiod:=Input("Square Root of Period",1,20,4);
      Mov(2*(Mov(C,period/2,W))-Mov(C,period,W),sqrtperiod,W);

      Above is the Metastock code, but I have no idea how to convert it.

      ijw



--------------------------------------------------------------------------
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.1.409 / Virus Database: 268.15.28/604 - Release Date: 12/26/2006




  

Content-Description: "AVG certification"
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.5.432 / Virus Database: 268.16.1/611 - Release Date: 12/31/2006 12:47 PM