Arnaud Legoux Moving Average ALMA

Stel hier uw vragen over TA-script, of help anderen met het oplossen van hun probleem
Plaats reactie
Janus
Berichten: 1394
Lid geworden op: wo jan 30, 2008 2:07 am
Contacteer:

Arnaud Legoux Moving Average ALMA

Bericht door Janus »

Een gemiddelde naar het idee van Arnaud Legoux & Dimitris Kouzis-Loukas met de naam ALMA

U kunt een stukje hierover lezen via de volgende link:
http://www.jstas.com/ALMA.pdf

Onderstaand de TA-script code.

Ik heb de ALMA als een functie erin geplaatst, zodat u die functie kan overnemen in een ander stukje code.

AEX grafiek met ALMA erin weergegeven
Afbeelding

AEX grafiek met daarin ALMA (blauw) en een EMA (rood)
Afbeelding

Code:

Code: Selecteer alles

{- Filename: ALMA -}

//Arnaud Legoux Moving Average   ALMA
//Versie 1.0 dd. 2021-08-16
//vertaling: jstas.com

Function ALMA(serie:Tseries; Offset:Real; Sigma,Per:Integer):TSeries;
var
aDen, aNum, m, s, w :real;
i, j :integer;
begin
Result := CreateSeries(BarCount);
m := (Offset*(Per-1));
s := Per/Sigma;
for i:= (Per+1) to (BarCount-1) do
begin
 aNum := 0;
 aDen := 0;
 for j := 0 to Per-1 do
  begin
   w := exp(-1.0* ((j-m)*(j-m)/ (2*s*s)));
   aNum := aNum + Serie[i-(Per-(j+1))]*w;
   aDen := aDen +w;
  end;
 if aDen<>0 then Result[i] := aNum /aDen;
end;
end;
//*************************************************************************

Procedure Initialisatie(Per : Integer);
begin
with Indicator do
  begin
    ShortName    := 'ALMA';
    RequiredBars := 5 * Per;
    NewBand      := false;
    ScaleRange   := srCommon;
  end;
end;
// *********************************************************************

Procedure Tekenlijn(serie : TSeries);
begin
 with CreateLine(serie) do
  begin
   Color := ClRed;
  end;
end;
//*************************************************************************

var
Offset : Real;
Sigma, Per : Integer;

begin
Sigma := CreateParameterInteger('Sigma:',1,10,6,True);
Offset := CreateParameterReal('Offset:',0,10,0.85,True);
Per := CreateParameterInteger('Periode:',1,300,9,True);

Initialisatie(Per);

Tekenlijn(ALMA(Close,Offset,Sigma,Per));

end.

.
Vriendelijke groet,
JanS ;)
Rombout Kerstens
Berichten: 110
Lid geworden op: wo sep 14, 2005 6:27 pm
Locatie: Kantoor Keyword BV
Contacteer:

Re: Arnaud Legoux Moving Average ALMA

Bericht door Rombout Kerstens »

Deze MA kende ik nog niet, interessant, ik blijf bijleren!

Bedankt voor de post Jan!

Groet, Rombout.
Plaats reactie