TA-script.com forum index TA-script.com
Geavanceerde technische analyse - indicatoren en handelssystemen in TA-script

 FAQFAQ   ZoekenZoeken   GebruikerslijstGebruikerslijst   GebruikersgroepenGebruikersgroepen   RegistreerRegistreer 
 ProfielProfiel   Log in om je privé berichten te bekijkenLog in om je privé berichten te bekijken   InloggenInloggen 

Multi-fonds en -timeframe functies in Wall Street build 224

 
Plaats nieuw bericht   Plaats reactie    TA-script.com forum index -> Nieuws
Vorige onderwerp :: Volgende onderwerp  
Auteur Bericht
Eric



Geregistreerd op: 10-9-2005
Berichten: 1413
Woonplaats: Den Haag

BerichtGeplaatst: Wo Jun 18, 2008 5:53 pm    Onderwerp: Multi-fonds en -timeframe functies in Wall Street build 224 Reageer met quote

Wall Street build 224 heeft een aantal TA-script uitbreidingen ondergaan, waaronder de mogelijkheid om meerdere fondsen te combineren en meerdere timeframes te gebruiken.

U kunt deze versie downloaden van de Wall Street downloadpagina, waar ook een overzicht van de nieuwe functies te vinden is.

De komende maanden zullen deze nieuwe functies uitgebreid in de praktijk worden getest - de nieuwe functies zullen pas later in AlexPro worden opgenomen.

Hieronder vind u enkele voorbeeldscripts voor het werken met de nieuwe functies; uiteraard is de TA-script on-line help bijgewerkt met de laatste informatie.


Als eerste voorbeeld een relatieve sterkte indicator in TA-script.

Code:

{- Filename: Sample - rel sterkte -}

var
  sFonds2: TSeriesEx;
  sRS: TSeries;
  factor: real;
  sFondsID: string;
  n: integer;
begin
{$IFDEF PLATFORM-ALEX}
  sFondsID := '3829'; // 3829 = AEX index
{$ELSE}
  sFondsID := 'IAEX';
{$ENDIF}

  if BarCount > 0 then
  begin
{ lees de koersen van het 2de fonds, zelfde periode en BarInterval als de hoofdgrafiek }
    sFonds2 := ReadPrices(sFondsID, BarInterval, DateTime[0], Now, 0);
{ synchroniseer de koersen met de hoofdgrafiek }
    sFonds2 := SyncSeriesEx(sFonds2, smInsDuplicate);
{ maak de eerste bar van de RS gelijk aan 100% }
    n := FirstValidIndex(sFonds2.Close);
    if n < BarCount then
      factor := sFonds2.Close[n] / Close[n] * 100;
    sRS := MultiplySeriesBy(DivideSeries(Close, sFonds2.Close), factor);
  end;

  with CreateLine(sRS) do
  begin
    Name := 'RS';
    Color := clLime;
  end;
end.


Zoals blijkt uit bovenstaand script moet de AEX in Alex en Wall Street met een verschillende naam/code worden geidentificeerd. Met het onderstaande script kunt u achterhalen wat de juiste code is voor een fonds, door de indicator in de grafiek van dat fonds te plaatsen.

Code:
{- Filename: ShowId -}

begin
  Indicator.NewBand := false;
  with CreateText(0, 0, Instrument.ID) do
  begin
    X1Pct := 100;
    Y1Pct := 100;
    HorzPosition := hpLeft;
  end;
end.


Het volgende voorbeeld is een indicator die een tweede timeframe (koerstype) weergeeft. U kunt hiermee dus bijvoorbeeld de weekkoersen onder de dagkoersen weergeven, of de kwartierbars onder de minuutbars. Aangezien u zowel in Wall Street als AlexPro ook een indicator van een indicator kunt maken, is het hierdoor mogelijk in 1 grafiek bijvoobeeld een MACD op dagbasis en op weekbasis te maken zonder hiervoor een speciaal TA-script te hoeven schrijven!

Code:
{- Filename: Sample - 2e timeframe -}

var
  sAEX: TSeriesEx;
  nInterval: TDateTime;
  bFill: boolean;
begin
  nInterval := CreateParameterBarInterval(biMonth);
  bFill := CreateParameterBoolean('Opvullen', false, false);

  if BarCount > 0 then
  begin
    sAEX := ReadPrices(Instrument.ID, nInterval, DateTime[0], Now, 0);

    if bFill then
      sAEX := SyncSeriesEx(sAEX, smInsDuplicate)
    else
      sAEX := SyncSeriesEx(sAEX, smInsNan);
  end;

  with CreateLineOHLC(sAEX.Open, sAEX.High, sAEX.Low, sAEX.Close) do
  begin
    Name := 'Koersen';
    Color := clLime;
  end;
end.


Als laatste voorbeeld een indicator die indicatoren op twee verschillende timeframes combineert in een handelssysteem. Dit is bedoeld als voorbeeld voor diegenen die zelf iets dergelijks willen maken in TA-script.

Code:
{- Filename: Sample - 15min MA & dag MA -}

var
  nMADag, nMAkwartier, i: integer;
  sDag: TSeriesEx;
  sMADag, sMAKwartier: TSeries;
begin
{ Indicator parameters }
  nMADag := CreateParameterInteger('MA dag', 1, 999, 13, true);
  nMAKwartier := CreateParameterInteger('MA kwartier', 1, 999, 13, true);

{ Indicator eigenschappen }
  with Indicator do
  begin
{ Aantal benodigde koersen om eerste indicatorwaarde te berekenen }
    RequiredBars := nMAkwartier;
    NewBand := false;
    ScaleRange := srCommon;
    SafeRefreshInterval := 10;
  end;

{ Indicatorberekening }
  if BarCount > 0 then
  begin
{ MA van kwartierkoersen berekenen }
    sMAKwartier := MA(Close, maSimple, nMAKwartier);
{ dagkoersen ophalen }
    sDag := ReadPrices(Instrument.ID, biDay, DateTime[0], Now, nMADag);
{ MA van dagkoersen berekenen }
    sMADag := MA(sDag.Close, maSimple, nMADag);
{ MA waarden en dagkoersen synchroniseren met de hoofdgrafiek (kwartierkoersen) }
    sMADag := SyncSeries(sMADag, sDag, smInsDuplicate);
    sDag := SyncSeriesEx(sDag, smInsDuplicate);

    for i:=0 to BarCount-1 do
    begin
      if IsValid(sMADag[i]) and IsValid(sMAKwartier[i]) then
      begin
        if (sDag.Close[i] > sMADag[i]) and
           (Close[i] > sMAKwartier[i]) then
          EnterLong(i)
        else
        if (sDag.Close[i] < sMADag[i]) and
           (Close[i] < sMAKwartier[i]) then
          EnterShort(i);
      end;
    end;
  end;

  with CreateLine(sDag.Close) do
  begin
    Name := 'MA dag';
    Color := clRed;
  end;
  with CreateLine(sMADag) do
  begin
    Name := 'Dag';
    Color := clYellow;
  end;
  with CreateLine(sMAKwartier) do
  begin
    Name := 'MA kwartier';
    Color := clWhite;
  end;
end.
Naar boven
Bekijk gebruikers profiel Stuur privé bericht
Berichten van afgelopen:   
Plaats nieuw bericht   Plaats reactie    TA-script.com forum index -> Nieuws Tijden zijn in GMT + 1 uur
Pagina 1 van 1

 
Ga naar:  
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