 |
TA-script.com Geavanceerde technische analyse - indicatoren en handelssystemen in TA-script
|
| Vorige onderwerp :: Volgende onderwerp |
| Auteur |
Bericht |
Eric
Geregistreerd op: 10-9-2005 Berichten: 1413 Woonplaats: Den Haag
|
Geplaatst: Vr Nov 27, 2009 6:44 pm Onderwerp: Domino score van Nico Bakker |
|
|
Op de dag van de belegger 2009 hield Nico Bakker een presentatie over zijn Domino indicator. Deze indicator gebruikt 5 korte en 5 lange MA's, telt het aantal kruisingen van korte MA's en lange MA's, telt deze twee getallen op en deelt door 2. De uitkomst varieert tussen -10 en 10, en dit geeft een indicatie van de fase waarin de trend zit (-10=bear tot +10=bull).
De presentatie is ook te bekijken op www.ta-script.com/downloads/DOMINOSCORE.ppt.
De eerste indicator laat de 10 MA's zien, de tweede berekent de domino score.
| Code: | {- Filename: Domino score MA's -}
var
nMAKort, nMALang: array[0..4] of integer;
sMAKort, sMALang: array[0..4] of TSeries;
i: integer;
begin
{ Parameters }
nMAKort[0] := CreateParameterInteger('MA kort 1', 1, 999, 3, true);
nMAKort[1] := CreateParameterInteger('MA kort 2', 1, 999, 5, true);
nMAKort[2] := CreateParameterInteger('MA kort 3', 1, 999, 8, true);
nMAKort[3] := CreateParameterInteger('MA kort 4', 1, 999, 13, true);
nMAKort[4] := CreateParameterInteger('MA kort 5', 1, 999, 21, true);
nMALang[0] := CreateParameterInteger('MA lang 1', 1, 999, 35, true);
nMALang[1] := CreateParameterInteger('MA lang 2', 1, 999, 40, true);
nMALang[2] := CreateParameterInteger('MA lang 3', 1, 999, 45, true);
nMALang[3] := CreateParameterInteger('MA lang 4', 1, 999, 50, true);
nMALang[4] := CreateParameterInteger('MA lang 5', 1, 999, 55, true);
{ Indicator eigenschappen }
with Indicator do
begin
RequiredBars := nMALang[4]; // Aantal benodigde koersen om eerste indicatorwaarde te berekenen
NewBand := false;
ScaleRange := srCommon;
end;
{ Berekening }
for i:=0 to 4 do
begin
sMAKort[i] := MA(Close, maSimple, nMAKort[i]);
sMALang[i] := MA(Close, maSimple, nMALang[i]);
end;
{ Weergave }
for i:=0 to 4 do
begin
with CreateLine(sMAKort[i]) do
begin
Name := 'MA kort '+IntToStr(i);
Color := clYellow;
end;
with CreateLine(sMALang[i]) do
begin
Name := 'MA lang '+IntToStr(i);
Color := clNavy;
end;
end;
end. |
|
|
| Naar boven |
|
 |
Eric
Geregistreerd op: 10-9-2005 Berichten: 1413 Woonplaats: Den Haag
|
Geplaatst: Vr Nov 27, 2009 6:46 pm Onderwerp: |
|
|
| Code: | {- Filename: Domino score -}
var
nMAKort, nMALang: array[0..4] of integer;
sMAKort, sMALang: array[0..4] of TSeries;
sCount1, sCount2, sCount3, sCount4, sSentiment1, sSentiment2, sSentiment3: TSeries;
i, i1, i2, i3: integer;
begin
{ Parameters }
nMAKort[0] := CreateParameterInteger('MA kort 1', 1, 999, 3, true);
nMAKort[1] := CreateParameterInteger('MA kort 2', 1, 999, 5, true);
nMAKort[2] := CreateParameterInteger('MA kort 3', 1, 999, 8, true);
nMAKort[3] := CreateParameterInteger('MA kort 4', 1, 999, 13, true);
nMAKort[4] := CreateParameterInteger('MA kort 5', 1, 999, 21, true);
nMALang[0] := CreateParameterInteger('MA lang 1', 1, 999, 35, true);
nMALang[1] := CreateParameterInteger('MA lang 2', 1, 999, 40, true);
nMALang[2] := CreateParameterInteger('MA lang 3', 1, 999, 45, true);
nMALang[3] := CreateParameterInteger('MA lang 4', 1, 999, 50, true);
nMALang[4] := CreateParameterInteger('MA lang 5', 1, 999, 55, true);
{ Indicator eigenschappen }
with Indicator do
begin
RequiredBars := nMALang[4]; // Aantal benodigde koersen om eerste indicatorwaarde te berekenen
NewBand := true;
end;
{ Berekening }
for i:=0 to 4 do
begin
sMAKort[i] := MA(Close, maSimple, nMAKort[i]);
sMALang[i] := MA(Close, maSimple, nMALang[i]);
end;
sCount1 := FillSeries(CreateSeries(BarCount), 0);
sCount2 := FillSeries(CreateSeries(BarCount), 0);
sCount3 := FillSeries(CreateSeries(BarCount), 0);
sCount4 := FillSeries(CreateSeries(BarCount), 0);
for i:=0 to BarCount-1 do
begin
i1 := 0;
i2 := 0;
i3 := 1;
while (i1 < 10) and (i2 < 5) do
begin
if IsValid(sMAKort[i2][i]) and IsValid(sMAKort[i3][i]) then
if sMAKort[i2][i] > sMAKort[i3][i] then sCount1[i] := sCount1[i]+1 else sCount3[i] := sCount3[i] - 1;
if IsValid(sMALang[i2][i]) and IsValid(sMALang[i3][i]) then
if sMALang[i2][i] > sMALang[i3][i] then sCount2[i] := sCount2[i]+1 else sCount4[i] := sCount4[i] - 1;
i1 := i1 + 1;
i3 := i3 + 1;
if i3 > 4 then
begin
i2 := i2 + 1;
i3 := i2 + 1;
end;
end;
end;
sSentiment1 := AddSeries(sCount1, sCount3);
sSentiment2 := AddSeries(sCount2, sCount4);
sSentiment3 := DivideSeriesBy(AddSeries(sSentiment1, sSentiment2), 2);
for i:=0 to BarCount-1 do
if sSentiment3[i] > 0 then SetBarColor(0, i, clLime) else
if sSentiment3[i] < 0 then SetBarColor(0, i, clRed);
{ Weergave }
with CreateLine(sSentiment3) do
begin
Color := clLime;
Name := 'Sentiment3';
LineType := ltBar;
LineContent := lcTAR;
end;
with CreateLine(FillSeries(CreateSeries(BarCount), 0)) do
begin
Color := clSilver;
Name := '0';
LineContent := lcConstant;
end;
end. |
|
|
| Naar boven |
|
 |
|
|
Je mag geen nieuwe onderwerpen plaatsen Je mag geen reacties plaatsen Je mag je berichten niet bewerken Je mag je berichten niet verwijderen Ja mag niet stemmen in polls
|
Powered by phpBB © 2001, 2005 phpBB Group

|