haco

Stel hier uw vragen over TA-script, of help anderen met het oplossen van hun probleem
Plaats reactie
tesjoeva
Berichten: 157
Lid geworden op: vr jul 07, 2017 3:10 pm

haco

Bericht door tesjoeva » wo mei 15, 2019 12:31 pm

Hallo Eric,

Vind je het niet erg dat ik nog even kom shoppen...?

Zou je de HACO heikin ashi candle oscillator kunnen voorzien van buy/sell arrows en de mogelijkheid tot optimalisatie?

Vast bedankt, vriendelijke groet.

Eric
Berichten: 3040
Lid geworden op: za sep 10, 2005 2:41 am
Locatie: Den Haag

Re: haco

Bericht door Eric » wo mei 22, 2019 9:47 am

Je schrijft niet welk moment de signalen moeten komen dus ik heb maar een gokje gedaan.

Code: Selecteer alles

{- Filename: HACO -}

function Tema(Close: TSeries; Periode: integer): TSeries;
var
  xSeries1, xSeries2, xSeries3: TSeries;
begin
  xSeries1 := MultiplySeriesBy(MA(Close, maExponential, Periode), 3);
  xSeries2 := MultiplySeriesBy(MA(MA(Close, maExponential, Periode), maExponential, Periode), 3);
  xSeries3 := MA(MA(MA(Close, maExponential, Periode), maExponential, Periode), maExponential, Periode);
  Result := AddSeries(SubtractSeries(xSeries1, xSeries2), xSeries3);
end;

function HeikinAshiClose: TSeries;
var
  AvgPrice, haOpen: TSeries;
  i: integer;
begin
  AvgPrice := DivideSeriesBy(AddSeries(AddSeries(AddSeries(Open, High), Low), Close), 4);
  haOpen := FillSeries(CreateSeries(BarCount), 0);
  for i:=1 to BarCount-1 do
    haOpen[i] := (haOpen[i-1] + AvgPrice[i])/2;

  Result := DivideSeriesBy(AddSeries(AvgPrice, AddSeries(haOpen, AddSeries(MaxSeries(High, haOpen), MinSeries(Low, haOpen)))), 4);
end;

var
  Periode: integer;
  shaC, sTMA1, sTMA2, sDiff, sZlHa, sZlCl, sZlDif, sZero: TSeries;
begin
{ Parameters }
  Periode := CreateParameterInteger('MA periode', 1, 999, 34, true);

{ Indicator eigenschappen }
  with Indicator do 
  begin
    RequiredBars := 15*Periode;    // Aantal benodigde koersen om eerste indicatorwaarde te berekenen
    NewBand := true;            // indicator standaard in nieuwe sectie plaatsen
    ScaleRange := srAuto;       // indicatorschaal automatisch
  end;

{ Berekening }
  shaC := HeikinAshiClose;
  sTMA1 := Tema(shaC, Periode);
  sTMA2 := Tema(sTMA1, Periode);
  sDiff := SubtractSeries(sTMA1, sTMA2);
  sZlHa := AddSeries(sTMA1, sDiff);

  sTMA1 := Tema(DivideSeriesBy(AddSeries(High, Low), 2), Periode);
  sTMA2 := Tema(sTMA1, Periode);
  sDiff := SubtractSeries(sTMA1, sTMA2);
  sZlCl := AddSeries(sTMA1, sDiff);

  sZlDif := SubtractSeries(sZlCl, sZlHa);
  sZero := FillSeries(CreateSeries(BarCount), 0);
  
  Signals := CrossingsToEntrySignals(Crossings(sZlDif, sZero));
  
{
 TMA1= Tema(haC,avg);
 TMA2= Tema(TMA1,avg);
 Diff= TMA1 - TMA2;
 ZlHa= TMA1 + Diff;
 TMA1= Tema((H+L)/2,avg);
 TMA2= Tema(TMA1,avg);
 Diff= TMA1 - TMA2;
 ZlCl= TMA1 + Diff;
 
 ZlDif=ZlCl-ZlHa;
 Plot1( ZlDif,”ZlDif”);
 Plot2(0,”Zero Line”);
*)

{ Weergave }
  with CreateLine(sZlDif) do
  begin
    Name := 'ZlDif';
    Color := clLime;
  end;
  with CreateLine(sZero) do
  begin
    Name := '0';
    Color := clSilver;
  end;
end.
---
Eric

tesjoeva
Berichten: 157
Lid geworden op: vr jul 07, 2017 3:10 pm

Re: haco

Bericht door tesjoeva » wo mei 22, 2019 10:42 am

Hallo Eric,

Je hebt de meest logische genomen......wederom dank.

vr.gr.

Plaats reactie