rhk ma dmi

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

rhk ma dmi

Bericht door tesjoeva » do feb 07, 2019 10:10 pm

Code: Selecteer alles

{- Filename: rhk_MA_DMI -}

(************************************************
Indicator gemaakt op: 28-12-2005
Auteur: <rhk>
*************************************************)

var
// declaraties variabelen
  ParamMA,ParamDMI,I: integer;  // parameterwaarde
  nullijn: Tseries; 
  momentum: Tseries;

  dmikruising, makruising: TlineCrossings;
  dmilong, dmishort, malong, mashort: boolean;
  
begin

  // Indicator eigenschappen
  with Indicator do
  begin
    ShortName := 'rhk_MA_DMI';  // naam boven grafiek
    SupportedSignals := [sgEnterLong, sgEnterShort];  // aan/verkoopsignalen
  end;

  // Indicator parameters
  ParamMA := CreateParameterInteger('Parameter MA', 1, 999, 30, true);
  ParamDMI := CreateParameterInteger('Parameter DMI', 1, 999, 14, true);
  nullijn := Createseries(BarCount);
  FillSeries(nullijn,0);
  // Aantal benodigde koersen om eerste indicatorwaarde te berekenen
  Indicator.RequiredBars := ParamMA;
  momentum := CreateSeries(Barcount);
  dmikruising := Crossings(DIplus(High,low,close,ParamDMI), DIMinus(High,low,close,ParamDMI))
  makruising:= Crossings(Close, MA(Close, maSimple, ParamMA))
  malong:= false
  mashort:=false
 for i:=paramMA to BarCount-1 do
  Begin
    If dmikruising[i] = lc1over2 then begin dmilong := true ; dmishort := false; end;
    If dmikruising[i] = lc2over1 then begin dmishort := true ; dmilong := false; end;
    if makruising[i] = lc1over2 then begin malong := true ; mashort := false; end;
    if makruising[i] = lc2over1 then begin mashort:= true ; malong := false; end;
    If dmilong and malong then Enterlong(i);
    If dmishort and mashort then Entershort(i);

    
  End;  
 
  // Indicatorberekening 
  with CreateLine(SubtractSeries(Close, MA(Close, maSimple, ParamMA))) do
  begin
  // Indicator lijn eigenschappen
    Name := 'rhk_dmi_ma (1)';
    Color := RGB(0,255,0);
  end;
  with CreateLine(nullijn) do
  begin
  // Indicator lijn eigenschappen
    Name := 'rhk_dmi_ma (2)';
    Color := RGB(255,255,255);
  end;

end.   [code\]

Hallo Eric,

Wil je zo vriendelijk zijn hier een profit target aan toe te voegen?
Te optimaliseren aub.

bvd en groet,

Bakstenen
Berichten: 466
Lid geworden op: zo jul 19, 2015 7:51 pm

Re: rhk ma dmi

Bericht door Bakstenen » za feb 09, 2019 11:16 am

Tesjoeva,
je vraag zit verscholen in de software,nu is Eric wel de man die dat door heeft,maar een stenestapelaar niet nu vlug

petdev
Berichten: 71
Lid geworden op: wo jun 12, 2013 4:25 pm

Re: rhk ma dmi

Bericht door petdev » za feb 09, 2019 12:25 pm

Quote luidt:
Hallo Eric,

Wil je zo vriendelijk zijn hier een profit target aan toe te voegen?
Te optimaliseren aub.

bvd en groet,

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

Re: rhk ma dmi

Bericht door Eric » za feb 09, 2019 10:30 pm

Dat wordt zoiets:

Code: Selecteer alles

{- Filename: rhk_MA_DMI -}

(************************************************
Indicator gemaakt op: 28-12-2005
Auteur: <rhk>
*************************************************)

var
// declaraties variabelen
  ParamMA,ParamDMI, I, MP: integer;  // parameterwaarde
  Takeprofit, Stop: real;
  Nullijn: Tseries;
  Momentum: Tseries;

  dmikruising, makruising: TlineCrossings;
  dmilong, dmishort, malong, mashort: boolean;
begin
  // Indicator parameters
  ParamMA := CreateParameterInteger('Parameter MA', 1, 999, 30, true);
  ParamDMI := CreateParameterInteger('Parameter DMI', 1, 999, 14, true);
  Takeprofit := CreateParameterReal('Takeprofit (%)', 0, 99, 0, true);

  // Indicator eigenschappen
  with Indicator do
  begin
    RequiredBars := ParamMA+5*ParamDMI;
  end;

  nullijn := Createseries(BarCount);
  FillSeries(nullijn,0);
  momentum := CreateSeries(Barcount);
  dmikruising := Crossings(DIplus(High,low,close,ParamDMI), DIMinus(High,low,close,ParamDMI));
  makruising:= Crossings(Close, MA(Close, maSimple, ParamMA));
  malong:= false;
  mashort:=false;
  for i:=paramMA to BarCount-1 do
  Begin
    If dmikruising[i] = lc1over2 then begin dmilong := true ; dmishort := false; end;
    If dmikruising[i] = lc2over1 then begin dmishort := true ; dmilong := false; end;
    if makruising[i] = lc1over2 then begin malong := true ; mashort := false; end;
    if makruising[i] = lc2over1 then begin mashort:= true ; malong := false; end;
    MP := MarketPosition(i);
    If (MP <= 0) and dmilong and malong then
    begin
      if Enterlong(i) then Stop := Close[i]*(100+Takeprofit)/100;
    end else
    If (MP >= 0) and dmishort and mashort then
    begin
      if Entershort(i) then Stop := Close[i]*(100-Takeprofit)/100;
    end else
    if (Takeprofit <> 0) and (MP > 0) and (High[i] >= Stop) then
      ExitLongLimit(i, Stop)
    else
    if (Takeprofit <> 0) and (MP < 0) and (Low[i] <= Stop) then
      ExitShortLimit(i, Stop);
  End;
 
  // Indicatorberekening 
  with CreateLine(SubtractSeries(Close, MA(Close, maSimple, ParamMA))) do
  begin
  // Indicator lijn eigenschappen
    Name := 'rhk_dmi_ma (1)';
    Color := RGB(0,255,0);
  end;
  with CreateLine(nullijn) do
  begin
  // Indicator lijn eigenschappen
    Name := 'rhk_dmi_ma (2)';
    Color := RGB(255,255,255);
  end;
end.
---
Eric

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

Re: rhk ma dmi

Bericht door tesjoeva » zo feb 17, 2019 6:47 pm

beetje laat, maar uiteraard bedankt.

Plaats reactie