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 

Gann
Ga naar pagina Vorige  1, 2, 3 ... 6, 7, 8 ... 10, 11, 12  Volgende
 
Plaats nieuw bericht   Plaats reactie    TA-script.com forum index -> Vraag en antwoord
Vorige onderwerp :: Volgende onderwerp  
Auteur Bericht
Janus



Geregistreerd op: 30-1-2008
Berichten: 301

BerichtGeplaatst: Zo Mei 24, 2009 10:19 pm    Onderwerp: Reageer met quote

Eric,

In mijn grafiek in bovenstaande link, welke ik hieronder even neerzet, staat de waarde van de diverse volume gewogen steunlijnen weergegeven in 4 cijfers achter de komma, en dat is natuurlijk absurd.
Eén cijfer achter de komma is meer dan genoeg, het is tenslotte een gebied, geen exacte waarde.

Nu heb ik lopen zoeken naar een 'opdracht' om die 4 cijfers achter de komma af te kappen naar 1 cijfer achter de komma.
Ik kan die helaas niet vinden.
Zie ik die over het hoofd, of is die er niet?
Zoniet, dan kan ik dat wel bewerkstelligen via een kort stukje code, maar een opdracht is gemakkelijker.

Grafiek:


Vriendelijke groet,

JanS Wink
_________________
Vriendelijke groet,
JanS Wink
Naar boven
Bekijk gebruikers profiel Stuur privé bericht Verstuur e-mail Bekijk de homepage
Eric



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

BerichtGeplaatst: Ma Mei 25, 2009 7:42 am    Onderwerp: Reageer met quote

Jan,

Goed dat je er weer bent!

Voor het afronden sec is er geen ingebouwde functie, maar met iets van round(x*100)/100 is dat voor elkaar.

Voor het omzetten naar een string kun je wel het aantal decimalen bepalen met de functie FormatFloat. FormatFloat('0.00', x) geeft x in twee decimalen weer (met afronding).

---
Eric
Naar boven
Bekijk gebruikers profiel Stuur privé bericht
Janus



Geregistreerd op: 30-1-2008
Berichten: 301

BerichtGeplaatst: Ma Mei 25, 2009 10:21 pm    Onderwerp: Reageer met quote

Bedankt voor de goede raad Eric, dat loste het probleem in één keer op, vooral die tip omtrent FormatFloat.
Die volume gewogen weerstand/steun lijnen heb ik geprogrammeerd volgens een idee van Dr. Levine.
Een gepensioneerde (naar ik weet inmiddels overleden) arts uit de vorige eeuw.
Artsen hebben vaak een hersencelletje meer dan ik, dus ik luister daar graag naar; lees graag hun werk Smile
Het algoritme welke ik toepas in de code, komt uit het werk van Dr. Levine.
Deze Beta 1.03 code geeft pas een stukje van het totaal weer, dus er volgt nog meer.

In de hieronder geplaatste grafiek zijn de kronkel lijnen de volume gewogen steun/weerstand lijnen volgens het idee van Dr. Levine.
Ik kan zeer veel grafieken plaatsen met een "fantastische passing" maar het leek me leuk om dit even te volgen voor de AEX.

Deze lijnen, daar hoort nog een heel verhaal bij, met onder andere het OBV, en de BollingerBands, candlestick patronen etc.

Doen we een keer wanneer ik meer tijd heb Smile

Nu even de grafiek:



Een dagelijkse zeer korte blik vindt u onder de vaste link:

http://www.jstas.com/2009/Dageljiks%20verloop%20van%20de%20AEX%20grafieken.htm

Hieronder vast even de Beta-code voor zover als die nu is, hij wordt in de toekomst nog gecomplementeerd; tot iets héél moois Smile

Let op, het gebruik van onderstaande code ( zolang u de regels niet exact kent), is voor eigen risico !

Wanneer u daarmee dus miljonair wordt, moet u niet bij mij komen klagen Smile
In het tegenovergestelde geval ook niet .... a.u.b. Smile


Code:


Code is aangepast tbv. Alex, zie een paar postings verder voor de aangepaste code.


_________________
Vriendelijke groet,
JanS Wink


Laatst aangepast door Janus op Ma Jun 01, 2009 9:42 pm, in totaal 1 keer bewerkt
Naar boven
Bekijk gebruikers profiel Stuur privé bericht Verstuur e-mail Bekijk de homepage
PaulM



Geregistreerd op: 6-4-2006
Berichten: 366
Woonplaats: Enschede

BerichtGeplaatst: Di Mei 26, 2009 7:39 am    Onderwerp: Reageer met quote

Jan,

Bedankt voor jouw fantastische bijdrage!
Ik heb een kanttekening, als je deze VWAP op de AEX toepast kun je naar mijn mening niet spreken van een Volume Gewogen steun-weerstand.

Mvg,

Paul M
Naar boven
Bekijk gebruikers profiel Stuur privé bericht
Janus



Geregistreerd op: 30-1-2008
Berichten: 301

BerichtGeplaatst: Di Mei 26, 2009 8:54 am    Onderwerp: Reageer met quote

Dank je Paul.

Telkens wanneer ik koersen binnenhaal via WallStreet, wordt er via een Excellsheet het volume voor de AEX uitgerekend.
Ik heb zodoende elke dag het volume voor de AEX beschikbaar, en daardoor kan ik deze indicator dus ook gebruiken voor de AEX.
.
_________________
Vriendelijke groet,
JanS Wink
Naar boven
Bekijk gebruikers profiel Stuur privé bericht Verstuur e-mail Bekijk de homepage
Janus



Geregistreerd op: 30-1-2008
Berichten: 301

BerichtGeplaatst: Ma Jun 01, 2009 1:18 am    Onderwerp: Reageer met quote

Een ( bijna) dagelijkse update vindt u onder de link: http://www.jstas.com/2009/Dageljiks%20verloop%20van%20de%20AEX%20grafieken.htm

Ik begin weer iets meer tijd te krijgen, en zal proberen een overzicht te verschaffen wat betreft de eerdere postings en hun toepassings gebied..

Heb geduld, alles zal goed komen Smile
.
_________________
Vriendelijke groet,
JanS Wink
Naar boven
Bekijk gebruikers profiel Stuur privé bericht Verstuur e-mail Bekijk de homepage
Janus



Geregistreerd op: 30-1-2008
Berichten: 301

BerichtGeplaatst: Ma Jun 01, 2009 9:41 pm    Onderwerp: Reageer met quote

De code voor de volume gewogen steun-weerstandlijnen heb ik iets aangepast zodat deze nu ook goed werkt in Alex.
Let op ! ... deze code is voor end-of-day grafieken.
Hieronder de nieuwe code:
.

Code:

{- Filename: volume gewogen steun-weerstand -}
//  www.JSTAS.com
// Naar een idee van Dr. Levine.
// Beta-versie 1.04

Function KleurSelec(Selec:Integer): TColor;
 Begin
   case Selec of
     1:  Result := clAqua;
     2:  Result := clBlack;
     3:  Result := clBlue;
     4:  Result := clDkGray;
     5:  Result := clFuchsia;
     6:  Result := clGray;
     7:  Result := clGreen;
     8:  Result := clLime;
     9:  Result := clltGray;
     10: Result := clMaroon;
     11: Result := clNavy;
     12: Result := clOlive;
     13: Result := clPurple;
     14: Result := clRed;
     15: Result := clSilver;
     16: Result := clTeal;
     17: Result := clWhite;
     18: Result := clYellow;
     else
       Result := clGray;
   end;
End;
 //

var
a,i,Jaar,Maand,Dag,TopBod,Ch,KlrTxt : Integer  ;
RS1, AvP                            : TSeries  ;
DatBeg                              : TDateTime;
Vs, Ps, H1,H3,Cv1,CvP1              : Real     ;
TextAan                             : Boolean  ;

Begin
 Indicator.NewBand    := False;
 Indicator.ScaleRange := SrCommon;
 RS1      := CreateSeries(Barcount);
 Jaar     := CreateParameterInteger('Jaar',1900,2100,2009,False);
 Maand    := CreateparameterInteger('Maand',1,12,3,False)       ;
 Dag      := CreateParameterInteger('Dag',1,31,9,False)         ;
 TopBod   := CreateParameterSelect ('Welke Startkoers?','Van de High'
                          #9'Van de Low'#9'De Openingskoers'#9
                          'De Slotkoers'#9'De Gemiddeldel prijs',1,False);
 TextAan  := CreateParameterBoolean('Waarde weergave in grafiek',True,False);
 KlrTxt   := 1+ CreateparameterSelect('Tekst kleur: ','Aqua'#9'Black'#9'Blue'#9'DkGray'
                       #9'Fuchsia'#9'Gray'#9'Green'#9'Lime'#9'LtGray'#9'Maroon'#9'Navy'
              #9'Olive'#9'Purple'#9'Red'#9'Silver'#9'Teal'#9'White'#9'Yellow',17,False);
 DatBeg   := EncodeDate(Jaar,Maand,Dag);
 Indicator.RequiredBars := Round(Date-DatBeg);
 Ch   :=0;
 Cv1  :=0;
 CvP1 :=0;

 Case TopBod of
  0: Avp:=H;
  1: AvP:=L;
  2: Avp:=O;
  3: Avp:=C;
  4: Avp:=DivideSeriesBy((AddSeries(H,L)),2);
 End;

 For i:= 0 To BarCount-1 Do
   Begin
     If Trunc(DateTime[i]) = Trunc(DatBeg) Then
       Begin
         Vs := V[i];
         If V[i]=0 Then Vs:=1;
         a  :=i;
         Ch :=1;
         Ps := Avp[i];
       End;
   H3 := 0.97*Close[BarCount-1];
   End;

If Ch=1 Then
 Begin
  For i:= a to BarCount-1 Do
   Begin
     H1 := V[i];
     If V[i]=0 Then H1 := V[i-1];
     If H1=0   Then H1 := 1;
     If (i=a) Then RS1[i] := AvP[i];
     If (i>a) Then RS1[i] := (((CvP1 + AvP[i]*H1)-(Vs*Ps))/((Cv1+ H1)-Vs));
     Cv1 :=  Cv1+ H1;
     CvP1:=  CvP1 + AvP[i]*H1 ;
     If (i=Barcount-1) And TextAan Then
      Begin
       With CreateText(Now,Rs1[i],FormatFloat('0.0',(Round(((Rs1[i])*10)))/10))
        Do Begin
         Color := KleurSelec(KlrTxt);
         Font.Size := 8 ;
        End;
       End;

  End;
 End ;

 With CreateLine(RS1)Do
  Begin
   color:= ClYellow;
  End;

  If Ch=0 Then
    Begin
      With CreateText(Now-7,H3,'Foutieve datum !') Do
        Begin
          color  :=ClRed;
          Font.Size :=15;
        End;
    End;
   
end.

.
_________________
Vriendelijke groet,
JanS Wink
Naar boven
Bekijk gebruikers profiel Stuur privé bericht Verstuur e-mail Bekijk de homepage
sij



Geregistreerd op: 28-9-2008
Berichten: 33

BerichtGeplaatst: Di Jun 02, 2009 9:17 am    Onderwerp: Reageer met quote

Hallo Jan, bedankt voor je mooie indicator. Maar met de opmerking van paul in gedachten neem ik toch aan dat bovenstaande niet zomaar op de aex is toe te passen (in alex!).
Naar boven
Bekijk gebruikers profiel Stuur privé bericht
sij



Geregistreerd op: 28-9-2008
Berichten: 33

BerichtGeplaatst: Di Jun 02, 2009 9:22 am    Onderwerp: Reageer met quote

Even toevoegend: lijkt me dat we de fti wel goed kunnen gebruiken.
Ook beter voor de trade natuurlijk.
Naar boven
Bekijk gebruikers profiel Stuur privé bericht
Janus



Geregistreerd op: 30-1-2008
Berichten: 301

BerichtGeplaatst: Di Jun 02, 2009 11:40 pm    Onderwerp: Reageer met quote

Sij,

Inderdaad wordt ons het volume voor de AEX en sinds een aantal maanden ook voor de S&P500 onthouden.
"Men' doet dat met opzet, want het volume is bij 'hen' wel aanwezig.
Door ons het volume te onthouden werken diverse indicatoren niet meer, zoals OBV, MFI en mijn indicator.
Daarom hou ik ook elke dag zelf het volume bij.
.
Maar, je kan de indicator ook gebruiken voor de aandelen, en daar voor geeft men (nog wel) het volume weer.
.
Ik heb weer even een korte update geschreven welke u vindt onder de volgende link:
http://www.jstas.com/2009/Dageljiks%20verloop%20van%20de%20AEX%20grafieken.htm
.
Op de indicator komen nog diverse uitbreidingen, 'effe' geduld Wink
.
_________________
Vriendelijke groet,
JanS Wink
Naar boven
Bekijk gebruikers profiel Stuur privé bericht Verstuur e-mail Bekijk de homepage
Janus



Geregistreerd op: 30-1-2008
Berichten: 301

BerichtGeplaatst: Ma Jun 08, 2009 8:56 pm    Onderwerp: Reageer met quote

Ik heb een paar regels tekst aan de code voor de volume gewogen weerstand lijn toegevoegd.
De indicator rekent nu voor u aan de hand van een op te geven referentiepunt een koerskanaal uit.

Hieronder vindt u eerst de code, welke werkt in Wallstreet for Windows en in Alex Pro.
Na de code vindt u enkele voorbeeld grafieken zodat u een indruk krijgt hoe u de indicator kunt instellen.

Code:

{- Filename: volume gewogen steun-weerstand -}
//  www.JSTAS.com
// Naar een idee van Dr. Levine.
// Beta-versie 1.06a

Function KleurSelec(Selec:Integer):TColor;
 Begin
   case Selec of
     1:  Result := clAqua;
     2:  Result := clBlack;
     3:  Result := clBlue;
     4:  Result := clDkGray;
     5:  Result := clFuchsia;
     6:  Result := clGray;
     7:  Result := clGreen;
     8:  Result := clLime;
     9:  Result := clltGray;
     10: Result := clMaroon;
     11: Result := clNavy;
     12: Result := clOlive;
     13: Result := clPurple;
     14: Result := clRed;
     15: Result := clSilver;
     16: Result := clTeal;
     17: Result := clWhite;
     18: Result := clYellow;
   else
     Result := clGray;
   end;
End;
//
Function Datumcheck(Yr,Mnth,Dy :Integer):Integer ;
Begin
If (Mnth=4 ) And (Dy>30) Then Dy:=30;
If (Mnth=6 ) And (Dy>30) Then Dy:=30;
If (Mnth=9 ) And (Dy>30) Then Dy:=30;
If (Mnth=11) And (Dy>30) Then Dy:=30;
If Mnth=2 Then
  Begin
    If ((Yr/4.0)= (Trunc(Yr/4.0))) And (Dy>29) Then Dy:=29;
    If ((Yr/4.0)<>(Trunc(Yr/4.0))) And (Dy>28) Then Dy:=28;
   End;
Result :=Dy;
End;
//
Procedure Meldtekst(datum:TDateTime;plaats:Real;Tekst:String;Kleur:TColor;Size:Integer);
Begin
  With CreateText(datum,plaats,Tekst) Do
    Begin
      Color     := Kleur;
      Font.Size := Size ;
    End;
End;
//
var
a,i,Jaar,Maand,Dag,TopBod,Chck1,Chck2        : Integer  ;
Lijnlngt,Lijnlngt2,L1,L2,L3,L4               : Integer  ;
RefJr,RefMnd,RefDg,RDg,KlrTxt,dg,Chck3,Chck4 : Integer  ;
RS1, AvP, RSb                                : TSeries  ;
DatBeg, RefDat ,Dt,Dt2                       : TDateTime;
Vs, Ps, H1,h2,H3,Cv1,CvP1,RefWrde,GFact      : Real     ;
TextAan, GreedCh, RefWrgv, ChWrgv            : Boolean  ;
T1                                           : String   ;

Begin
 Indicator.NewBand    := False;
 Indicator.ScaleRange := SrCommon;
 Indicator.Shortname  := 'VG-SW';
 RS1      := CreateSeries(Barcount);
 RSb      := CreateSeries(BarCount);
 Jaar     := CreateParameterInteger('Jaar',1900,2100,2009,False);
 Maand    := CreateparameterInteger('Maand',1,12,3,False)       ;
 Dag      := CreateParameterInteger('Dag',1,31,9,False)         ;
 TopBod   := CreateParameterSelect ('Welke Startkoers?','Van de High'
                          #9'Van de Low'#9'De Openingskoers'#9
                          'De Slotkoers'#9'De Gemiddeldel prijs',1,False);
 TextAan  := CreateParameterBoolean('Waarde weergave in grafiek',True,False);
 GreedCh  := CreateParameterBoolean( 'G-kanaal aan ?',True,False);
 RefJr    := CreateParameterInteger('Referentie-Jaar',1900,2100,2009,False);
 RefMnd   := CreateParameterInteger('Referentie-Maand',1,12,2,False);
 RefDg    := CreateParameterInteger('Referentie-Dag',1,31,26,False);
 ChWrgv   := CreateParameterBoolean('Kanaalwaarde weergeven ?',True,False);
 Refwrgv  := CreateparameterBoolean('Referentiepunt weergeven?',True,False);
 KlrTxt   := 1+ CreateparameterSelect('Tekst kleur: ','Aqua'#9'Black'#9'Blue'#9'DkGray'
                       #9'Fuchsia'#9'Gray'#9'Green'#9'Lime'#9'LtGray'#9'Maroon'#9'Navy'
              #9'Olive'#9'Purple'#9'Red'#9'Silver'#9'Teal'#9'White'#9'Yellow',17,False);
 Lijnlngt := CreateParameterSelect
             ('Lengte van de lijnen: ','Naar einde grafiek'#9'Zelf lengte opgeven',0,False);
 L1       := CreateParameterInteger('Geef lengte in koersbars',5,10000,30,False);
 Lijnlngt2:= CreateParameterSelect('Lengte kanaallijn:','Gelijke lengte'#9'Zelf opgeven',0,False);
 L3       := CreateParameterInteger('Geef lengte in koersbars',5,10000,30,False);
 Dg :=Dag;
 Dag :=Datumcheck(Jaar,Maand,Dag);
 DatBeg := EncodeDate(Jaar,Maand,Dag);
 RDg := RefDg
 RefDg :=Datumcheck(RefJr,RefMnd,RefDg);
 RefDat := EncodeDate(RefJr,RefMnd,RefDg);
 Indicator.RequiredBars := Round(Date-RefDat);
 Chck1 :=0;
 Chck2 :=0;
 Chck3 :=0;
 Chck4 :=0;
 Cv1   :=0;
 CvP1  :=0;
 If Dg<>Dag    Then Chck3:=1;
 If RDg<>RefDg Then Chck4:=1;
 
 Case TopBod of
  0: Avp:=H;
  1: AvP:=L;
  2: Avp:=O;
  3: Avp:=C;
  4: Avp:=DivideSeriesBy((AddSeries(H,L)),2);
 End;

 For i:= 0 To BarCount-1 Do
   Begin
     If Trunc(DateTime[i]) = Trunc(DatBeg) Then
       Begin
         Vs := V[i];
         If V[i]=0 Then Vs:=1;
         a  :=i;
         Chck1 :=1;
         Ps := Avp[i];
       End;
    H3 := 0.97*Close[BarCount-1];
   End;
If Lijnlngt=0 Then L2:=1;
If Lijnlngt=1 Then L2:= BarCount-a-L1;
If L2<1 Then L2:=1;
If Lijnlngt2=0 Then L4:=1;
If Lijnlngt2=1 Then L4:=BarCount-a-L3;
If L4<1  Then L4:=1;
If L4<L2 Then L4:=L2;

If Chck1=1 Then
 Begin
  For i:= a to BarCount-L2 Do
   Begin
     H1 := V[i];
     If V[i]=0 Then H1 := V[i-1];
     If H1=0   Then H1 := 1;
     If (i=a) Then RS1[i] := AvP[i];
     If (i>a) Then RS1[i] := (((CvP1 + AvP[i]*H1)-(Vs*Ps))/((Cv1+ H1)-Vs));
     Cv1 :=  Cv1+ H1;
     CvP1:=  CvP1 + AvP[i]*H1 ;
     If (i=BarCount-L2) Then Dt :=Trunc(DateTime[i]);
     If (i=Barcount-L2) And TextAan Then Meldtekst(Dt,RS1[i],
          FormatFloat('0.0',(Round(((RS1[i])*10)))/10),KleurSelec(KlrTxt),10);
   End;
 End ;

 If GreedCh Then
  Begin
      For i:=0 To BarCount-1 Do
      Begin
        If Trunc(DateTime[i]) = Trunc(RefDat) Then
          Begin
            Case TopBod of
              0:  RefWrde :=L[i];
              1:  RefWrde :=H[i];
              2:  RefWrde :=C[i];
              3:  RefWrde :=O[i];
              4:  RefWrde :=(H[i]+L[i])/2;
          End;
       Chck2 :=1;
       If (RefWrde<Ps) Then h2:=L[i];
       If (RefWrde>Ps) Then h2:=H[i]*1.01;
       If RefWrgv Then Meldtekst(refdat,h2,'R',KleurSelec(KlrTxt),10);
     End;
   End;
   
  If (Chck1=1) And (Chck2=1) Then
    Begin
      For i:=0 to BarCount-L4 Do
        Begin
          If (i>=a) Then
            Begin
              If (RefWrde>Ps) Then GFact:=(RefWrde-Ps)/RefWrde;
              If (RefWrde<Ps) Then GFact:=(Ps-RefWrde)/RefWrde;
              If (RefWrde>Ps) Then RSb[i]:=  RS1[i]/(1-GFact);
              If (RefWrde<Ps) Then RSb[i]:=  RS1[i]/(1+GFact);
              T1 := FormatFloat('0.0',(Round(((RSb[i])*10)))/10);
              If (i=BarCount-L4) Then Dt2 :=Trunc(DateTime[i]);
              If (i=BarCount-L4) And (Chck1=1) And TextAan And ChWrgv
                  Then Meldtekst (Dt2,RSb[i],'Ch '+T1,KleurSelec(KlrTxt),10);
            End;
        End;
    End;
  End;

 With CreateLine(RS1)Do
  Begin
   color:= ClYellow;
  End;
 
 With CreateLine(RSb) Do
  Begin
    Color:=ClYellow;
  End;

 If Chck1=0 Then Meldtekst(Now-7,H3,'Startdatum Fout !',ClRed,15);
 If(Chck2=0) And (GreedCh) Then Meldtekst(Now-7,(0.99*H3),'Ref.datum Fout !',ClRed,15);
 If Chck3=1 Then Meldtekst(Now-7,(0.98*H3),'Startdatum aangepast !',ClPurple,15);
 If Chck4=1 Then Meldtekst(Now-7,(0.97*H3),'Ref.datum aangepast !',ClPurple,15);

 {$IFDEF SCRIPTVERSION-4}
  With CreateText(0,0,'www.JSTAS.com * Volume gewogen weerstandlijnen*') Do
    Begin
      Y1Pct := 95;
      X1Pct :=  1;
      VertPosition := vpTop;
      Color:=KleurSelec(KlrTxt);
      Font.Size:=9;
    End;
 {$ENDIF}

end.
{
Korte beschrijving:

Deze indicator berekent een weerstandlijn uit de koerswaarde en het volume volgens de ideeën van Dr. Levine.

U moet een start datum opgeven waar op het sentimanet is gedraaid, dus een top of bodem.

Na ingave van de datum moet u opgeven of dit een top of een bodem is, door middel van een keuze menu.
Soms blijkt dat de gekozen datum 1-2 koersbars later moet worden gekozen dan de ultieme top of bodem.

De opgegeven datum wordt gecontroleerd op bestaanbaarheid volgens de kalender.
Indien u 30 Februari opgeeft zal de indicator de datum automatisch aanpassen naar 28 Februari,
of indien het een schrikkeljaar is naar 29 Februari.
Zo zal ook 31 April worden aangepast naar 30-April.
Rechts in de grafiek wordt dan de melding weergegeven dat de datum is aangepast.

Kiest u een datum waarvoor geen koersbar beschikbaar is, bijvoorbeeld een Zondag, of
de automatisch aangepaste datum valt op een dag waarvoor er geen koersbar aanwezig is,
dan wordt er geen weerstandlijn weergegeven en ziet u een melding rechts in de grafiek.

Het is ook mogelijk een koerskanaal door de indictor uit te laten rekenen.
Dit koerskanaal wordt berekent uit de koerswaarde op startdatum en uit de koerswaarde op een op te geven
referentie datum.
Als referentie datum moet u de datum ingeven van een voorgaande top of bodem,
kies voor een voorafgaande bodem indien de weerstandlijn start op een top en vice versa.

De kleur van de weergegeven tekst is instelbaar via de parameters.

Ook kunt u er voor kiezen bepaalde teksten niet weer te geven.

Verder is de lengte van de weergegeven lijnen instelbaar.

U kunt de kanaallijn een andere lengte mee geven dan de weerstandlijn,
maar deze kan niet langer zijn dan de weerstandlijn.

De kleur van de lijnen en de dikte van de lijnen kunt u instellen via het parameter menu van Wall-$treet;
u kunt dit parameter menu onder andere oproepen door te dubbelklikken op de weerstandlijn of op de kanaallijn,
of indien deze niet zichtbaar is/zijn te dubbelklikken in de grafiek.

Problemen of gewenste wijzigingen kunt u opgeven via de e-mail: Jan@JSTAS.com
:))
}


Volume gewogen weerstand lijnen
Enkele voorbeelden van grafieken met deze indicator:
9 Maart 2009 was een duidelijk omslag punt, een bodem.
Op zo'n moment kunnen we mooi een volume gewogen weerstandlijn ( tegen dalen) starten.



Mooi is te zien hoe de koers diverse malen steun vindt op deze weerstandlijn.
.
We kunnen een tweede lijn starten.



U ziet hoe mooi deze rode lijn wederom steun biedt aan de koers.
En zo kunt u verder door bouwen, waarbij u dan een reeks weerstandlijnen krijgt waar u een reactie van de koers mag verwachten indien deze die zone nadert.
Laten we bij deze rode weerstandlijn eens het kanaal inschakelen.



U ziet dat de rode kanaallijn wordt gekenmerkt met de letters Ch en daarna de waarde.
Het referentie punt wordt weergegeven met de letter R.
U ziet dat in April de koers telkens weerstand ondervindt van de rode kanaal lijn, er later doorheen breekt en de laatste weken diverse malen steun vindt op deze kanaallijn, zo ook vandaag.
Indien de rode R in de weg zit, dan kunt u de weergave ervan uitschakelen.
Indien u de rode kanaallijn wilt inkorten zodra deze wordt doorbroken door de koers, dan kan dat ook:



In bovenstaande grafiek ziet u dat de rode kanaallijn is ingekort.
De blauwe weerstandlijn is ook ingekort, deze is weer langer te schakelen zodra bijvoorbeeld de rode in gevaar komt.
De weergave bij elke lijn is ook uitschakelbaar.
..
Bovenstaande grafieken staan weergegeven met candles, maar werkt natuurlijk ook met een andere koers weergave, bijvoorbeeld een slot-koers-lijn.


.



.
Dit waren zomaar even enkele voorbeeldjes van wat de indicator doet/kan.
.
Er komt tz.t nog een extra functie in deze indicator.
Ook komt er nog een intraday versie.
En ik zal nog een keer een stukje schrijven hoe u deze indicator samen met andere indicatoren kan gebruiken.
.
Vriendelijke groet,
Jan Smile
.
jan@jstas.com
.
.
Disclaimer: Bovenstaande zijn slechts ideeën, verwachtingen en hersenspinsels. Ze hoeven dan ook helemaal niet te kloppen met de werkelijkheid. Handelen met deze gegevens op de beurs is derhalve voor eigen risico, en wordt afgeraden. U kunt daarbij al uw geld verliezen, en meer dan dat !!
.
09-06-2009; indicator-shortname toegevoegd aan de code
_________________
Vriendelijke groet,
JanS Wink
Naar boven
Bekijk gebruikers profiel Stuur privé bericht Verstuur e-mail Bekijk de homepage
Janus



Geregistreerd op: 30-1-2008
Berichten: 301

BerichtGeplaatst: Do Jun 11, 2009 11:22 pm    Onderwerp: Reageer met quote

Ik heb de code voor de volume gewogen steun-weerstandlijnen aangepast, zodat deze nu ook moet werken voor intraday gebruik.
.
Als alles goed is gegaan werkt deze voor Alex-pro en voor Wallstreet for Windows.

Er is een keuze mogelijkheid bijgekomen waarin u kunt opgeven of u op End Of Day basis wilt werken of op Intraday basis.

Wanneer u kiest voor Intraday, dient ook het juiste uur en de juiste minuten op te geven.

Hierbij moet u scherp opletten of de tijd welke u opgeeft wel voorkomt in uw intraday grafiek.

Wanneer u bijvoorbeeld een 5-minuten grafiek op uw beeldscherm heeft, zal de eerste intraday-dag-candle als tijd hebben 9:04 uur.
Geeft u dan 9:05 uur op, dan zal er geen lijn worden berekent en krijgt u een foutcode.

Ik heb nog geen tijd gehad om deze code te testen op een en ander.
Ik heb alleen even globaal gekeken of de code werkt.

U kunt dus tegen fouten aanlopen.

Mocht u iets ontdekken wat niet klopt, wilt u dan zo vriendelijk zijn dit even te melden, hier op het forum of op mijn mail-adres jan@jstas.com
.
Wanneer u iets gewijzigd wilt hebben,meldt dat dan ook even, dan kan ik zien of ik dat voor elkaar kan prutsen
.
Hieronder even de code:

Code:

{- Filename: Volume gewogen weerstand intraday -}

 {- Filename: VG-SW-itd -}
//  www.JSTAS.com
// Naar een idee van Dr. Levine.
// Beta-versie 1.08

Function KleurSelec(Selec:Integer):TColor;
 Begin
   case Selec of
     1:  Result := clAqua;
     2:  Result := clBlack;
     3:  Result := clBlue;
     4:  Result := clDkGray;
     5:  Result := clFuchsia;
     6:  Result := clGray;
     7:  Result := clGreen;
     8:  Result := clLime;
     9:  Result := clltGray;
     10: Result := clMaroon;
     11: Result := clNavy;
     12: Result := clOlive;
     13: Result := clPurple;
     14: Result := clRed;
     15: Result := clSilver;
     16: Result := clTeal;
     17: Result := clWhite;
     18: Result := clYellow;
   else
     Result := clGray;
   end;
End;
//
Function Datumcheck(Yr,Mnth,Dy :Integer):Integer ;
Begin
If (Mnth=4 ) And (Dy>30) Then Dy:=30;
If (Mnth=6 ) And (Dy>30) Then Dy:=30;
If (Mnth=9 ) And (Dy>30) Then Dy:=30;
If (Mnth=11) And (Dy>30) Then Dy:=30;
If Mnth=2 Then
  Begin
    If ((Yr/4.0)= (Trunc(Yr/4.0))) And (Dy>29) Then Dy:=29;
    If ((Yr/4.0)<>(Trunc(Yr/4.0))) And (Dy>28) Then Dy:=28;
   End;
Result :=Dy;
End;
//
Procedure Meldtekst(datum:TDateTime;plaats:Real;Tekst:String;Kleur:TColor;Size:Integer);
Begin
  With CreateText(datum,plaats,Tekst) Do
    Begin
      Color     := Kleur;
      Font.Size := Size ;
    End;
End;
//
var
a, Chck1, Chck2, Chck3, Chck4, Dag, dg , Eod,
hr ,hr2, i, Jaar, KlrTxt, Lijnlngt, Lijnlngt2,
L1, L2, L3, L4, Maand, mn, mn2, RefJr, RefMnd,
RefDg, RDg, TopBod                            : Integer  ;
AvP, RS1, RSb                                 : TSeries  ;
DatBeg, Dt, RefDat                            : TDateTime;
Cv1, CvP1, GFact, H1, h2, H3, Ps, RefWrde, Vs : Real     ;
ChWrgv, GreedCh, RefWrgv, TextAan             : Boolean  ;
T1                                            : String   ;
Dagdeel, Dagdeel2                             : Extended ;

Begin
 Indicator.NewBand    := False;
 Indicator.ScaleRange := SrCommon;
 Indicator.Shortname  := 'VG-SW-itd';
 RS1      := CreateSeries(Barcount);
 RSb      := CreateSeries(BarCount);
 Jaar     := CreateParameterInteger('Jaar',1900,2100,2009,False);
 Maand    := CreateparameterInteger('Maand',1,12,6,False)       ;
 Dag      := CreateParameterInteger('Dag',1,31,9,False)         ;
 Eod      := CreateParameterSelect('Soort koersen:','Intraday'#9'End of Day',1,False);
 hr       := CreateParameterInteger('Uur',0,23,12,False);
 mn       := CreateParameterInteger('Minuten',0,59,0,False);
 TopBod   := CreateParameterSelect ('Welke Startkoers?','Van de High'
                          #9'Van de Low'#9'De Openingskoers'#9
                          'De Slotkoers'#9'De Gemiddeldel prijs',1,False);
 TextAan  := CreateParameterBoolean('Waarde weergave in grafiek',True,False);
 GreedCh  := CreateParameterBoolean( 'G-kanaal aan ?',False,False);
 RefJr    := CreateParameterInteger('Referentie-Jaar',1900,2100,2009,False);
 RefMnd   := CreateParameterInteger('Referentie-Maand',1,12,2,False);
 RefDg    := CreateParameterInteger('Referentie-Dag',1,31,26,False);
 hr2      := CreateParameterInteger('Uur',0,23,12,False);
 mn2      := CreateParameterInteger('Minuten',0,59,0,False);
 ChWrgv   := CreateParameterBoolean('Kanaalwaarde weergeven ?',True,False);
 Refwrgv  := CreateparameterBoolean('Referentiepunt weergeven?',True,False);
 KlrTxt   := 1+ CreateparameterSelect('Tekst kleur: ','Aqua'#9'Black'#9'Blue'#9'DkGray'
                       #9'Fuchsia'#9'Gray'#9'Green'#9'Lime'#9'LtGray'#9'Maroon'#9'Navy'
              #9'Olive'#9'Purple'#9'Red'#9'Silver'#9'Teal'#9'White'#9'Yellow',17,False);
 Lijnlngt := CreateParameterSelect
             ('Lengte van de lijnen: ','Naar einde grafiek'#9'Zelf lengte opgeven',0,False);
 L1       := CreateParameterInteger('Geef lengte in koersbars',5,10000,30,False);
 Lijnlngt2:= CreateParameterSelect('Lengte kanaallijn:','Gelijke lengte'#9'Zelf opgeven',0,False);
 L3       := CreateParameterInteger('Geef lengte in koersbars',5,10000,30,False);

 Dagdeel  := ((hr*60)+mn)/1440;
 If Eod=1 Then Dagdeel  := 0.00000001;
 Dagdeel2 := ((hr2*60)+mn2)/1440;
 If Eod=1 Then Dagdeel2 := 0.00000001;

 Dg :=Dag;
 Dag :=Datumcheck(Jaar,Maand,Dag);
 DatBeg := EncodeDate(Jaar,Maand,Dag);

 RDg := RefDg
 RefDg :=Datumcheck(RefJr,RefMnd,RefDg);
 RefDat := EncodeDate(RefJr,RefMnd,RefDg);

 Indicator.requiredBars := Round(Date-Datbeg);
 If ChWrgv Then Indicator.RequiredBars := Round(Date-RefDat);

 Chck1 :=0;
 Chck2 :=0;
 Chck3 :=0;
 Chck4 :=0;
 Cv1   :=0;
 CvP1  :=0;

 If Dg<>Dag    Then Chck3:=1;
 If RDg<>RefDg Then Chck4:=1;

 Case TopBod of
  0: Avp:=H;
  1: AvP:=L;
  2: Avp:=O;
  3: Avp:=C;
  4: Avp:=DivideSeriesBy((AddSeries(H,L)),2);
 End;

 For i:= 0 To BarCount-1 Do
   Begin
     If (CmpFloat(DateTime[i],DatBeg+Dagdeel,5)=0) Then
       Begin
         Vs := V[i];
         If V[i]=0 Then Vs:=1;
         a  :=i;
         Chck1 :=1;
         Ps := Avp[i];
       End;
    H3 := 0.97*Close[BarCount-1];
    If Eod=0 Then H3 :=Close[BarCount-1];
   End;

If Lijnlngt=0 Then L2:=1;
If Lijnlngt=1 Then L2:= BarCount-a-L1;
If L2<1 Then L2:=1;
If Lijnlngt2=0 Then L4:=1;
If Lijnlngt2=1 Then L4:=BarCount-a-L3;
If L4<1  Then L4:=1;
If L4<L2 Then L4:=L2;

If Chck1=1 Then
 Begin
  For i:= a to BarCount-L2 Do
   Begin
     H1 := V[i];
     If V[i]=0 Then H1 := V[i-1];
     If H1=0   Then H1 := 1;
     If (i=a) Then RS1[i] := AvP[i];
     If (i>a) Then RS1[i] := (((CvP1 + AvP[i]*H1)-(Vs*Ps))/((Cv1+ H1)-Vs));
     Cv1 :=  Cv1+ H1;
     CvP1:=  CvP1 + AvP[i]*H1 ;
     If (i=Barcount-L2) And TextAan Then Meldtekst(DateTime[i],RS1[i],
          FormatFloat('0.0',(Round(((RS1[i])*10)))/10),KleurSelec(KlrTxt),10);
   End;
 End ;

 If GreedCh Then
  Begin
      For i:=0 To BarCount-1 Do
      Begin
         If (CmpFloat(DateTime[i],RefDat+Dagdeel2,5)=0) Then
           Begin
            Case TopBod of
              0:  RefWrde :=L[i];
              1:  RefWrde :=H[i];
              2:  RefWrde :=C[i];
              3:  RefWrde :=O[i];
              4:  RefWrde :=(H[i]+L[i])/2;
          End;
       Chck2 :=1;
       If (RefWrde<Ps) Then h2:=L[i];
       If (RefWrde>Ps) Then h2:=H[i]*1.005;
       If RefWrgv Then Meldtekst(refdat+Dagdeel2,h2,'R',KleurSelec(KlrTxt),10);
     End;
   End;

  If (Chck1=1) And (Chck2=1) Then
    Begin
      For i:=0 to BarCount-L4 Do
        Begin
          If (i>=a) Then
            Begin
              If (RefWrde>Ps) Then GFact:=(RefWrde-Ps)/RefWrde;
              If (RefWrde<Ps) Then GFact:=(Ps-RefWrde)/RefWrde;
              If (RefWrde>Ps) Then RSb[i]:=  RS1[i]/(1-GFact);
              If (RefWrde<Ps) Then RSb[i]:=  RS1[i]/(1+GFact);
              T1 := FormatFloat('0.0',(Round(((RSb[i])*10)))/10);
              If (i=BarCount-L4) And (Chck1=1) And TextAan And ChWrgv
                  Then Meldtekst (DateTime[i],RSb[i],'Ch '+T1,KleurSelec(KlrTxt),10);
            End;
        End;
    End;
  End;

 With CreateLine(RS1)Do
  Begin
   color:= ClYellow;
  End;

 With CreateLine(RSb) Do
  Begin
    Color:=ClYellow;
  End;
 Dt := Now-7;
 If Eod=0 Then Dt :=Now;
 If Chck1=0 Then Meldtekst(Dt,H3,'Startdatum Fout !',ClRed,15);
 If(Chck2=0) And (GreedCh) Then Meldtekst(Dt,(0.99*H3),'Ref.datum Fout !',ClRed,15);
 If Chck3=1 Then Meldtekst(Dt,(0.98*H3),'Startdatum aangepast !',ClPurple,15);
 If Chck4=1 Then Meldtekst(Dt,(0.97*H3),'Ref.datum aangepast !',ClPurple,15);

 {$IFDEF SCRIPTVERSION-4}
  With CreateText(0,0,'www.JSTAS.com * Volume gewogen weerstandlijnen*') Do
    Begin
      Y1Pct := 95;
      X1Pct :=  1;
      VertPosition := vpTop;
      Color:=KleurSelec(KlrTxt);
      Font.Size:=9;
    End;
 {$ENDIF}

end.
{
Korte beschrijving:

Deze indicator berekent een weerstandlijn uit de koerswaarde en het volume volgens de ideeën van Dr. Levine.

U moet een start datum opgeven waar op het sentimanet is gedraaid, dus een top of bodem.

Indien u kiest voor de optie: Intraday koersen, dan moet u ook de tijd opgeven in uren en minuten.
Houdt rekening met de tijden van de candles in uw grafiek.
Bij een 5-minuten grafiek liggen die tijden bijvoorbeeld op 12:04 en niet op 12:05 !!

Na ingave van de datum moet u opgeven of dit een top of een bodem is, door middel van een keuze menu.
Soms blijkt dat de gekozen datum 1-2 koersbars later moet worden gekozen dan de ultieme top of bodem.

De opgegeven datum wordt gecontroleerd op bestaanbaarheid volgens de kalender.
Indien u 30 Februari opgeeft zal de indicator de datum automatisch aanpassen naar 28 Februari,
of indien het een schrikkeljaar is naar 29 Februari.
Zo zal ook 31 April worden aangepast naar 30-April.
Rechts in de grafiek wordt dan de melding weergegeven dat de datum is aangepast.

Kiest u een datum waarvoor geen koersbar beschikbaar is, bijvoorbeeld een Zondag, of
de automatisch aangepaste datum valt op een dag waarvoor er geen koersbar aanwezig is,
dan wordt er geen weerstandlijn weergegeven en ziet u een melding rechts in de grafiek.

Het is ook mogelijk een koerskanaal door de indictor uit te laten rekenen.
Dit koerskanaal wordt berekent uit de koerswaarde op startdatum en uit de koerswaarde op een op te geven
referentie datum.
Als referentie datum moet u de datum ingeven van een voorgaande top of bodem,
kies voor een voorafgaande bodem indien de weerstandlijn start op een top en vice versa.

De kleur van de weergegeven tekst is instelbaar via de parameters.

Ook kunt u er voor kiezen bepaalde teksten niet weer te geven.

Verder is de lengte van de weergegeven lijnen instelbaar.

U kunt de kanaallijn een andere lengte mee geven dan de weerstandlijn,
maar deze kan niet langer zijn dan de weerstandlijn.

De kleur van de lijnen en de dikte van de lijnen kunt u instellen via het parameter menu van Wall-$treet;
u kunt dit parameter menu onder andere oproepen door te dubbelklikken op de weerstandlijn of op de kanaallijn,
of indien deze niet zichtbaar is/zijn te dubbelklikken in de grafiek.

Problemen of gewenste wijzigingen kunt u opgeven via de e-mail: Jan@JSTAS.com
:))
}

.
_________________
Vriendelijke groet,
JanS Wink
Naar boven
Bekijk gebruikers profiel Stuur privé bericht Verstuur e-mail Bekijk de homepage
Janus



Geregistreerd op: 30-1-2008
Berichten: 301

BerichtGeplaatst: Vr Jun 12, 2009 11:52 pm    Onderwerp: Reageer met quote

Even snel een korte posting, waarin u een grafiek ziet welke gemaakt is met bovenstaande indicator.
Het betreft de intraday grafiek voor de ES - Juni (S&P future)
Op uur basis
.

.
U ziet in deze grafiek heel mooi hoe de paarse lijn als steun van de eerste generatie geldt.
De blauwe lijn is de tweede generatie.
Opzet van het geheel is, dat wanneer de koers door de tweede generatie daalt, er steun wordt gevonden op de eerste generatie.
Oordeelt u zelf.
Neem ook de OBV eens mee in uw oordeel, ziet u het aankoop signaal?
.
Bij tijd zal ik er eens een stukje over schrijven, gelijkwaardig aan mijn stukje ovr de RSI Wink
.
Maar laten we ook de andere indicatoren in deze topic niet vergeten, neem bijvoorbeeld de SQ-wtb-indicator welke een square berekent vanuit de koerswaarde zelf.
Deze indicator ziet u in de volgende grafiek:



De 45 gradenlijn, welke start links onder in de hoek, wordt automatisch berekent door deze indicator, en we zien dat er afgelopen week al twee maal een serieuze aanval op deze lijn plaats vindt.
Dit kwam vanaf 9 Maart niet eerder voor, de koers bleef steeds keurig boven de 45-graden lijn ( 1X1 ).
Dit kan een voorbode zijn ...
.
_________________
Vriendelijke groet,
JanS Wink
Naar boven
Bekijk gebruikers profiel Stuur privé bericht Verstuur e-mail Bekijk de homepage
Janus



Geregistreerd op: 30-1-2008
Berichten: 301

BerichtGeplaatst: Zo Jun 21, 2009 10:50 pm    Onderwerp: Reageer met quote

Korte update onder de vaste link:

http://www.jstas.com/2009/Dageljiks%20verloop%20van%20de%20AEX%20grafieken.htm

Even weg met vakantie, tot na de vakantie.
.
_________________
Vriendelijke groet,
JanS Wink
Naar boven
Bekijk gebruikers profiel Stuur privé bericht Verstuur e-mail Bekijk de homepage
Janus



Geregistreerd op: 30-1-2008
Berichten: 301

BerichtGeplaatst: Ma Jul 27, 2009 9:13 pm    Onderwerp: Reageer met quote

In WalStreet vinden we een mogelijkheid om Fibonacci retracements te tekenen, en omdat men zelf de percentages in kan vullen kan deze indicator ook gebruikt worden voor bij voorbeeld het verdelen van de range in acht stukjes, zoals Gann/MurreyMath dat deed/doet.
.
Een instinkertje bij het toepassen van deze indicator is dat in feite het 'scherm' wordt verdeeld in de ingegeven percentages, en niet de gelopen koers !
Dit geeft afwijkingen indien de grafiek weergave logaritmisch is.
.
Verder vind ik het handig indien ik met een muisklik bepaalde lijnen kan inschakelen of uitschakelen zonder daarna weer de percentages in te moeten typen.
Verder leek we wel handig indien ik de verschillende niveaus (percentages) een verschillend kleurtje kan geven.
.
Dan is het ook mogelijk om de lijnen links en/of rechts te verlengen, wat gebruikt wordt indien u de instelling open/hoog/laag/slot wilt bepalen aan de hand van het verleden (zie daarvoor de diverse door mij geschreven stukjes over Fiboancci op mijn site).
.
U kunt met één muisklik overschakelen van Fibonaci verdeling naar de achtste verdeling van Gann.
.
Verder kunt u automatisch lijnen laten tekenen vanaf de eerste referentiedatum door het retracement niveau op de tweede referentie datum.
.
De volgorde van ingave van de datums is niet belangrijk, het script bepaalt zelf top of bodem enz. .
.
U zult zien dat de retracement percentages doorlopen tot ver boven de 100%. Dit is geen foutje, maar u zult het hoe en waarom tegenkomen in de verschillende extensie methodes waarover ik nog een keer een stukje schrijf/ een indicator schrijf.
.
Omdat er nogal een spaghetti boven in het grafiekvenster, kunt u de weergave ervan uitschakelen in WallStreet.
In WallStreet 224 en hoger plaats de ta-code links bovenin het grafiekvenster de naam van de Index of Fonds, en de naam van de indicator.
In het parameter menu van de indicator kunt u ingeven op welke plaats u deze weergave wilt hebben, en in dien u die weergave liever niet ziet kunt u deze buiten het venster plaatsen door een waarde hoger dan 100 in te geven.
Dit laatste werkt niet in Alex-po en ok niet in versies ouder dan 224.
.
.
Indien u fouten ontdekt: graag commentaar.
Indien u dingen onhandig aangepakt vindt: graag commentaar.
Indien u graag iets gewijzigd ziet: graag commentaar.

Vriendelijke groet,
jan Smile



Code:

{- Filename: Fibonacci-Gann-retracement -}
//.
//Fibonacci en Gann retracements
// www.JSTAS.com

Function KleurSelec(Selec:Integer):TColor;
 Begin
   case Selec of
     1:  Result := clAqua;
     2:  Result := clBlack;
     3:  Result := clBlue;
     4:  Result := clDkGray;
     5:  Result := clFuchsia;
     6:  Result := clGray;
     7:  Result := clGreen;
     8:  Result := clLime;
     9:  Result := clltGray;
     10: Result := clMaroon;
     11: Result := clNavy;
     12: Result := clOlive;
     13: Result := clPurple;
     14: Result := clRed;
     15: Result := clSilver;
     16: Result := clTeal;
     17: Result := clWhite;
     18: Result := clYellow;
   else
     Result := clGray;
   end;
End;
////
Function Lijnsoort(Lijntype:Integer):TTrendLineStyle;
 Begin
  Case Lijntype of
    1: Result:=LsSolid   ;
    2: Result:=LsDash    ;
    3: Result:=LsDot     ;
    4: Result:=LsDashDot ;
    5: Result:=LsDashDotDot;
  End;
 End;
 ////
 Procedure Trendlijn(Date1,Date2:TDateTime;LnStrt,LnEnd:Real;Kleur:TColor;Lijntype:TLineType;Lv,Rv:Boolean);
 Begin
  With CreateTrendLine(Date1,LnStrt,Date2,LnEnd)Do
   Begin
     Color:= Kleur;
     Style:= Lijntype;
     If Lv Then ExtendLeft  :=True;
     If RV Then ExtendRight :=True;
   End;
 End;
////
Function Datumcheck(Yr,Mnth,Dy :Integer):Integer ;
Begin
If (Mnth=4 ) And (Dy>30) Then Dy:=30;
If (Mnth=6 ) And (Dy>30) Then Dy:=30;
If (Mnth=9 ) And (Dy>30) Then Dy:=30;
If (Mnth=11) And (Dy>30) Then Dy:=30;
If Mnth=2 Then
  Begin
    If ((Yr/4.0)= (Trunc(Yr/4.0))) And (Dy>29) Then Dy:=29;
    If ((Yr/4.0)<>(Trunc(Yr/4.0))) And (Dy>28) Then Dy:=28;
   End;
Result :=Dy;
End;
////
Procedure Txt(X:TDateTime;Y:Real;Tekst:String;Kleur:TColor;tekengrootte:Integer);
  Begin
    With CreateText(X,Y,Tekst) Do
      Begin
        Color    := Kleur;
        Font.Size:= tekengrootte;
      End;
  End;
///
Function TextInvul(Indic:Integer;Perc:String;Waarde:Real):String;
  Begin
    Case Indic Of
      0: Result := '';
      1: Result := Perc;
      2: Result := FormatFloat('0.0',(Round(((Waarde*10)))/10));
      3: Result := Perc+' - '+ FormatFloat('0.0',(Round(((Waarde*10)))/10));
    End;
  End;
///
Function TekFiboLijn(RefDat,Datum:TDateTime;Wrd1:Real;Kleur:TColor;Lijnsoort:TLineType;Lverl,Rverl:Boolean;Text1:String):Real;
  Begin
     Trendlijn(RefDat,Datum,Wrd1,Wrd1,Kleur,Lijnsoort,Lverl,Rverl);
     Txt(Now+5,Wrd1,Text1,Kleur,8);
     Result := Wrd1;
  End;
///

{Initiëren  variabelen}
var
 Lverlng,Rverlng                                : Boolean;
 Datum1,Datum2,RefDat, AngStrt                  : TDateTime;
 KrsWrd1 , KrsWrd2, RefKrs, Range, Vert, AngKrs,Hulp1 : Real;
 Jaar1,Mnd1,Dag1,Jaar2,Mnd2,Dag2, Methode, Indic, KlrVrt, TypVrt, GnlnTyp,PltsTXT : Integer;
 KrswrdDtm1,KrswrdDtm2, RknFct, RBars, i, Verlengen, KlrRef, TypRef, GnlnClr, TypAnglLn      : Integer;
  Kleurkeuzes, KoersType, Lijntypes, Methoden, Verleng, Weergave          : String;
 _009,_014,_023,_038,_061,_078,_088,_094,_127,_161,_261,_423,_685                 : Real;
 G1_8, G2_8, G3_8, G4_8, G5_8, G6_8, G7_8, G8_8                                   : Real;
 _L009,_L014,_L023,_L038,_L050,_L061,_L078,_L088,_L094,_L100,_L127,_L161,_L200,_L261,_L423,_L685 : Real;
 W_L009,W_L014,W_L023,W_L038,W_L050,W_L061,W_L078,W_L088,W_L094,W_L100,W_L127,W_L161,W_L200,W_L261,W_L423,W_L685 : Boolean;
 C_L009,C_L014,C_L023,C_L038,C_L050,C_L061,C_L078,C_L088,C_L094,C_L100,C_L127,C_L161,C_L200,C_L261,C_L423,C_L685 : Integer;
 LT_L009,LT_L014,LT_L023,LT_L038,LT_L050,LT_L061,LT_L078,LT_L088,LT_L094,LT_L100,LT_L127,LT_L161,LT_L200,LT_L261,LT_L423,LT_L685 : Integer ;

Begin
{Voor initialisatie Strings}
 Kleurkeuzes :='Aqua'#9'Black'#9'Blue'#9'DkGray'
                #9'Fuchsia'#9'Gray'#9'Green'#9'Lime'#9'LtGray'#9'Maroon'#9'Navy'
                #9'Olive'#9'Purple'#9'Red'#9'Silver'#9'Teal'#9'White'#9'Yellow'
 KoersType   :='Open'#9'Hoog'#9'Laag'#9'Slot';
 Lijntypes   :='Doorgetrokkenlijn'#9'Gestreepte lijn'#9'Gestippelde lijn'
                #9'Streep-Stippel lijn'#9'Streep-Stip-Stip-lijn';
 Methoden    := 'Fibonacci Retracement'#9'Fibonacci Retr. + Angles'#9'Gann Retracement';
 Verleng     := 'Niet'#9'Links'#9'Rechts'#9'Links & Rechts';
 Weergave    := 'Geen'#9'Percentage'#9'Koerswaarde'#9'Percentage & Koerswaarde';

{ Ophalen Parameters }
  Methode    := CreateParameterSelect('Kies Methode:',Methoden,0,False);
  TypAnglLn  := 1 + CreateParameterSelect(' Lijn-type van de Angel-lines',Lijntypes,1,False);
  Verlengen  := CreateparameterSelect('Weergave lijn verlengen ? ',Verleng,0,False);
  Indic      := CreateparameterSelect(' % en/of Koerswaarde: ',Weergave,1,False);
  Jaar1      := CreateParameterInteger('1-e datum  Jaar',1900,2100,2007,False);
  Mnd1       := CreateParameterInteger('1-e datum Maand',1,12,10,False);
  Dag1       := CreateParameterInteger('1-e datum   Dag',1,31,11,False);
  KrswrdDtm1 := CreateParameterSelect('Koerswaarde datum 1',Koerstype,3,False);
  Jaar2      := CreateParameterInteger('2-e datum  Jaar',1900,2100,2009,False);
  Mnd2       := CreateParameterInteger('2-e datum Maand',1,12,3,False);
  Dag2       := CreateParameterInteger('2-e datum   Dag',1,31,6,False);
  KrsWrdDtm2 := CreateParameterSelect('Koerswaarde datum 2',Koerstype,3,False);

   W_L009 := CreateParameterBoolean('  9% lijn weergeven ? ',False,False);
   C_L009 := 1+ CreateParameterSelect ('Kies kleur   9% lijn:',Kleurkeuzes,17,False);
  LT_L009 := 1+ CreateParameterSelect('Lijn-type   9% lijn:',Lijntypes,2,False);
   W_L014 := CreateParameterBoolean(' 14% lijn weergeven ? ',False,False);
   C_L014 := 1+ CreateParameterSelect ('Kies kleur  14% lijn:',Kleurkeuzes,17,False);
  LT_L014 := 1+ CreateParameterSelect('Lijn-type  14% lijn:',Lijntypes,2,False);
   W_L023 := CreateParameterBoolean(' 23% lijn weergeven ? ',False,False);
   C_L023 := 1+ CreateParameterSelect ('Kies kleur  23% lijn:',Kleurkeuzes,17,False);
  LT_L023 := 1+ CreateParameterSelect('Lijn-type  23% lijn:',Lijntypes,2,False);
   W_L038 := CreateParameterBoolean(' 38% lijn weergeven ? ',True ,False);
   C_L038 := 1+ CreateParameterSelect ('Kies kleur  38% lijn:',Kleurkeuzes,17,False);
  LT_L038 := 1+ CreateParameterSelect('Lijn-type  38% lijn:',Lijntypes,2,False);
   W_L050 := CreateparameterBoolean(' 50% lijn weergeven ? ',True ,False);
   C_L050 := 1+ CreateParameterSelect ('Kies kleur  50% lijn:',Kleurkeuzes,13,False);
  LT_L050 := 1+ CreateParameterSelect('Lijn-type  50% lijn:',Lijntypes,2,False);
   W_L061 := CreateParameterBoolean(' 61% lijn weergeven ? ',True ,False);
   C_L061 := 1+ CreateParameterSelect ('Kies kleur  61% lijn:',Kleurkeuzes,17,False);
  LT_L061 := 1+ CreateParameterSelect('Lijn-type  61% lijn:',Lijntypes,2,False);
   W_L078 := CreateParameterBoolean(' 78% lijn weergeven ? ',False,False);
   C_L078 := 1+ CreateParameterSelect ('Kies kleur  78% lijn:',Kleurkeuzes,17,False);
  LT_L078 := 1+ CreateParameterSelect('Lijn-type  78% lijn:',Lijntypes,2,False);
   W_L088 := CreateParameterBoolean(' 88% lijn weergeven ? ',False,False);
   C_L088 := 1+ CreateParameterSelect ('Kies kleur  88% lijn:',Kleurkeuzes,17,False);
  LT_L088 := 1+ CreateParameterSelect('Lijn-type  88% lijn:',Lijntypes,2,False);
   W_L094 := CreateParameterBoolean(' 94% lijn weergeven ? ',False,False);
   C_L094 := 1+ CreateParameterSelect ('Kies kleur  94% lijn:',Kleurkeuzes,17,False);
  LT_L094 := 1+ CreateParameterSelect('Lijn-type  94% lijn:',Lijntypes,2,False);
   W_L100 := CreateParameterBoolean('100% lijn weergeven ? ',False,False);
   C_L100 := 1+ CreateParameterSelect ('Kies kleur 100% lijn:',Kleurkeuzes,17,False);
  LT_L100 := 1+ CreateParameterSelect('Lijn-type 100% lijn:',Lijntypes,2,False);
   W_L127 := CreateParameterBoolean('127% lijn weergeven ? ',False,False);
   C_L127 := 1+ CreateParameterSelect ('Kies kleur 127% lijn:',Kleurkeuzes,17,False);
  LT_L127 := 1+ CreateParameterSelect('Lijn-type 127% lijn:',Lijntypes,2,False);
   W_L161 := CreateParameterBoolean('161% lijn weergeven ? ',False,False);
   C_L161 := 1+ CreateParameterSelect ('Kies kleur 161% lijn:',Kleurkeuzes,17,False);
  LT_L161 := 1+ CreateParameterSelect('Lijn-type 161% lijn:',Lijntypes,2,False);
   W_L200 := CreateParameterBoolean('200% lijn weergeven ? ',False,False);
   C_L200 := 1+ CreateParameterSelect ('Kies kleur 200% lijn:',Kleurkeuzes,17,False);
  LT_L200 := 1+ CreateParameterSelect('Lijn-type 200% lijn:',Lijntypes,2,False);
   W_L261 := CreateParameterBoolean('261% lijn weergeven ? ',False,False);
   C_L261 := 1+ CreateParameterSelect ('Kies kleur 261% lijn:',Kleurkeuzes,17,False);
  LT_L261 := 1+ CreateParameterSelect('Lijn-type 261% lijn:',Lijntypes,2,False);
   W_L423 := CreateParameterBoolean('423% lijn weergeven ? ',False,False);
   C_L423 := 1+ CreateParameterSelect ('Kies kleur 423% lijn:',Kleurkeuzes,17,False);
  LT_L423 := 1+ CreateParameterSelect('Lijn-type 423% lijn:',Lijntypes,2,False);
   W_L685 := CreateParameterBoolean('685% lijn weergeven ? ',False,False);
   C_L685 := 1+ CreateParameterSelect('Kies kleur 685% lijn:',Kleurkeuzes,17,False);
  LT_L685 := 1+ CreateParameterSelect('Lijn-type 685% lijn:',Lijntypes,2,False);
  GnLnClr := 1+ CreateParameterSelect('Kies kleur Gann lijnen:',Kleurkeuzes,0,False);
  GnLnTyp := 1+ CreateParameterSelect('Lijntype Gannlijnen:',Lijntypes,2,False);
  KlrRef  := 1+ CreateparameterSelect('Kleur Referentie lijn:',Kleurkeuzes,0,False);
  TypRef  := 1+ CreateParameterSelect('Lijntype Referentielijn:',Lijntypes,2,False);
  KlrVrt  := 1+ CreateParameterSelect('Kleur Verticale lijn:',Kleurkeuzes,0,False);
  TypVrt  := 1+ CreateParameterSelect('Lijntype Verticale lijn:',Lijntypes,0,False);
  PltsTXT := CreateparameterInteger('Geef niveau Text :',1,200,94,False);

{Omzetten parameters naar bruikbare TDateTime waarde}
    Dag1 := DatumCheck(Jaar1,Mnd1,Dag1);
  Datum1 := EncodeDate(Jaar1,Mnd1,Dag1);
    Dag2 := Datumcheck(Jaar2,mnd2,Dag2);
  Datum2 := EncodeDate(Jaar2,Mnd2,Dag2);

{Bepalen minimale aantal koersbars via de variabele RBars}
If (Datum1 < Datum2) Then RBars := Round(Date-Datum1) ;
If (Datum2 < Datum1) Then RBars := Round(Date-Datum2) ;

{Eigenschappen van de indicator}
With Indicator do
  begin
    RequiredBars := RBars;
    NewBand      := False;
    ScaleRange   := srCommon;
    Shortname    := 'Retracements';
  end;



{Ophalen koerswaarden datum 1 en datum 2 naargelang ingegeven parameters}
 For i:= 0 to BarCount-1 Do
  Begin
   If (Trunc(DateTime[i])= Trunc(Datum1)) Then
    Begin
      Case KrsWrdDtm1 Of
        0:  KrsWrd1 := O[i];
        1:  KrsWrd1 := H[i];
        2:  KrsWrd1 := L[i];
        3:  KrsWrd1 := C[i];
      End;
    End;
   If (Trunc(DateTime[i]) = Trunc(Datum2)) Then
    Begin
      Case KrsWrdDtm2 Of
        0: KrsWrd2 := O[i];
        1: KrsWrd2 := H[i];
        2: KrsWrd2 := L[i];
        3: KrsWrd2 := C[i];
      End;
    End;
   If (i= BarCount-1) Then Hulp1 := C[i];
  End;
 
{ Bij "ongeldige"  datum geen lijnweergave en meldtekst}
 If KrsWrd1 <=0 Then Txt(Now-40,Hulp1,'Op datum-1 geen koers informatie',Kleurselec(14),15);
 If KrsWrd2 <=0 Then Txt(Now-40,Hulp1,'Op datum-2 geen koers informatie',KleurSelec(14),15);
 If (KrsWrd1<=0) Or (KrsWrd2<=0) Then Methode :=99;

{Ervoor zorgen dat Range altijd een positieve waarde is}
 Range := Sqrt(Sqr(Krswrd1 - KrsWrd2));
 
{Bepalen referentiepunt bij retracement:}
 If datum1 > datum2 Then
  Begin
    RefDat := Datum1 ;
    RefKrs := krsWrd1;
    AngStrt:= Datum2 ;
    AngKrs := KrsWrd2;
    If KrsWrd1  < KrsWrd2 Then RknFct :=  1;
    If KrsWrd1 >= KrsWrd2 Then RknFct := -1;
  End
 Else
  Begin
    RefDat := Datum2 ;
    RefKrs := KrsWrd2;
    AngStrt:= Datum1 ;
    AngKrs := KrsWrd1;
    If KrsWrd2  > KrsWrd1 Then RknFct := -1;
    If KrsWrd2 <= krsWrd1 Then RknFct :=  1;
  End;

{Caluclatie Phi en afgeleiden }
  _061 := ((1+Sqrt(5))/2)-1;
  _038 := Sqr(_061);
  _014 := Sqr(_038);
  _023 := _038-_014;
  _009 := _023-_014;
  _078 := Sqrt(_061);
  _088 := Sqrt(_078);
  _094 := Sqrt(_088);
  _161 := ((1 + Sqrt(5))/2);
  _127 := Sqrt(_161);
  _261 := Sqr(_161);
  _423 := _261*_161;
  _685 := Sqr(_261);
 
{Uitrekenen lijnwaarden Fibonacci}
  _L009 :=(_009*Range)*RknFct + Refkrs;
  _L014 :=(_014*Range)*RknFct + Refkrs;
  _L023 :=(_023*Range)*RknFct + Refkrs;
  _L038 :=(_038*Range)*RknFct + Refkrs;
  _L050 :=( 0.5*Range)*RknFct + Refkrs;
  _L061 :=(_061*Range)*RknFct + Refkrs;
  _L078 :=(_078*Range)*RknFct + Refkrs;
  _L088 :=(_088*Range)*RknFct + Refkrs;
  _L094 :=(_094*Range)*RknFct + Refkrs;
  _L100 := (    Range)*RknFct + Refkrs;
  _L127 :=(_127*Range)*RknFct + Refkrs;
  _L161 :=(_161*Range)*RknFct + Refkrs;
  _L200 :=(   2*Range)*Rknfct + refkrs;
  _L261 :=(_261*Range)*RknFct + Refkrs;
  _L423 :=(_423*Range)*RknFct + Refkrs;
  _L685 :=(_685*Range)*RknFct + Refkrs;
 
{Uitrekenen Gann Achtste waarden}
  G1_8 := (0.125*Range)*RknFct + Refkrs;
  G2_8 := (0.250*Range)*Rknfct + Refkrs;
  G3_8 := (0.375*Range)*Rknfct + Refkrs;
  G4_8 := (0.500*Range)*Rknfct + Refkrs;
  G5_8 := (0.625*Range)*Rknfct + Refkrs;
  G6_8 := (0.750*Range)*Rknfct + Refkrs;
  G7_8 := (0.875*Range)*Rknfct + Refkrs;
  G8_8 := (1.000*Range)*Rknfct + refkrs;

{Lijn links en/of rechts verlengen}
  Case Verlengen Of
    0:  Begin
          Lverlng := False;
          Rverlng := False;
        End;
    1:  Begin
          Lverlng := True ;
          Rverlng := False;
        End;
    2:  Begin
          Lverlng := False;
          Rverlng := True ;
        End;
    3: Begin
          Lverlng := True;
          Rverlng := True;
       End;
  End;

{Fibonacci weergave}
 If (Methode=0) Or (Methode=1)Then
  Begin
   If W_L009 Then Vert:=TekFiboLijn(RefDat,Now+10,_L009,KleurSelec(C_L009),Lijnsoort(LT_L009),Lverlng,Rverlng,TextInvul(Indic,'9,%'   ,_L009));
   If W_L014 Then Vert:=TekFiboLijn(RefDat,Now+10,_L014,KleurSelec(C_L014),Lijnsoort(LT_L014),Lverlng,Rverlng,TextInvul(Indic,'14%'   ,_L014));
   If W_L023 Then Vert:=TekFiboLijn(RefDat,Now+10,_L023,KleurSelec(C_L023),Lijnsoort(LT_L023),Lverlng,Rverlng,TextInvul(Indic,'23,6%' ,_L023));
   If W_L038 Then Vert:=TekFiboLijn(RefDat,Now+10,_L038,KleurSelec(C_L038),Lijnsoort(LT_L038),Lverlng,Rverlng,TextInvul(Indic,'38,2%' ,_L038));
   If W_L050 Then Vert:=TekFiboLijn(RefDat,Now+10,_L050,KleurSelec(C_L050),Lijnsoort(LT_L050),Lverlng,Rverlng,TextInvul(Indic,'50%'   ,_L050));
   If W_L061 Then Vert:=TekFiboLijn(RefDat,Now+10,_L061,KleurSelec(C_L061),Lijnsoort(LT_L061),Lverlng,Rverlng,TextInvul(Indic,'61,8%' ,_L061));
   If W_L078 Then Vert:=TekFiboLijn(RefDat,Now+10,_L078,KleurSelec(C_L078),Lijnsoort(LT_L078),Lverlng,Rverlng,TextInvul(Indic,'78,6%' ,_L078));
   If W_L088 Then Vert:=TekFiboLijn(RefDat,Now+10,_L088,KleurSelec(C_L088),Lijnsoort(LT_L088),Lverlng,Rverlng,TextInvul(Indic,'88,6%' ,_L088));
   If W_L094 Then Vert:=TekFiboLijn(RefDat,Now+10,_L094,KleurSelec(C_L094),Lijnsoort(LT_L094),Lverlng,Rverlng,TextInvul(Indic,'94,2%' ,_L094));
   If W_L100 Then Vert:=TekFiboLijn(RefDat,Now+10,_L100,KleurSelec(C_L100),Lijnsoort(LT_L100),Lverlng,Rverlng,TextInvul(Indic,'100%'  ,_L100));
   If W_L127 Then Vert:=TekFiboLijn(RefDat,Now+10,_L127,KleurSelec(C_L127),Lijnsoort(LT_L127),Lverlng,Rverlng,TextInvul(Indic,'127,2%',_L127));
   If W_L161 Then Vert:=TekFiboLijn(RefDat,Now+10,_L161,KleurSelec(C_L161),Lijnsoort(LT_L161),Lverlng,Rverlng,TextInvul(Indic,'161,8%',_L161));
   If W_L200 Then Vert:=TekFiboLijn(RefDat,Now+10,_L200,KleurSelec(C_L200),Lijnsoort(LT_L200),Lverlng,Rverlng,TextInvul(Indic,'200%'  ,_L200));
   If W_L261 Then Vert:=TekFiboLijn(RefDat,Now+10,_L261,KleurSelec(C_L261),Lijnsoort(LT_L261),Lverlng,Rverlng,TextInvul(Indic,'261,8%',_L261));
   If W_L423 Then Vert:=TekFiboLijn(RefDat,Now+10,_L423,KleurSelec(C_L423),Lijnsoort(LT_L423),Lverlng,Rverlng,TextInvul(Indic,'423,6%',_L423));
   If W_L685 Then Vert:=TekFiboLijn(RefDat,Now+10,_L685,KleurSelec(C_L685),Lijnsoort(LT_L685),Lverlng,Rverlng,TextInvul(Indic,'685,3%',_L685));
  End;

{Fibo angles}
  If (methode=1) Then
    Begin
      If W_L009 Then Trendlijn(AngStrt,RefDat,AngKrs,_L009,KleurSelec(C_L009),LijnSoort(TypAnglLn),False,True);
      If W_L014 Then Trendlijn(AngStrt,RefDat,AngKrs,_L014,KleurSelec(C_L014),LijnSoort(TypAnglLn),False,True);
      If W_L023 Then Trendlijn(AngStrt,RefDat,AngKrs,_L023,KleurSelec(C_L023),LijnSoort(TypAnglLn),False,True);
      If W_L038 Then Trendlijn(AngStrt,RefDat,AngKrs,_L038,KleurSelec(C_L038),LijnSoort(TypAnglLn),False,True);
      If W_L050 Then Trendlijn(AngStrt,RefDat,AngKrs,_L050,KleurSelec(C_L050),LijnSoort(TypAnglLn),False,True);
      If W_L061 Then Trendlijn(AngStrt,RefDat,AngKrs,_L061,KleurSelec(C_L061),LijnSoort(TypAnglLn),False,True);
      If W_L078 Then Trendlijn(AngStrt,RefDat,AngKrs,_L078,KleurSelec(C_L078),LijnSoort(TypAnglLn),False,True);
      If W_L088 Then Trendlijn(AngStrt,RefDat,AngKrs,_L088,KleurSelec(C_L088),LijnSoort(TypAnglLn),False,True);
      If W_L094 Then Trendlijn(AngStrt,RefDat,AngKrs,_L094,KleurSelec(C_L094),LijnSoort(TypAnglLn),False,True);
      If W_L100 Then Trendlijn(AngStrt,RefDat,AngKrs,_L100,KleurSelec(C_L100),LijnSoort(TypAnglLn),False,True);
      If W_L127 Then Trendlijn(AngStrt,RefDat,AngKrs,_L127,KleurSelec(C_L127),LijnSoort(TypAnglLn),False,True);
      If W_L161 Then Trendlijn(AngStrt,RefDat,AngKrs,_L161,KleurSelec(C_L161),LijnSoort(TypAnglLn),False,True);
      If W_L200 Then Trendlijn(AngStrt,RefDat,AngKrs,_L200,KleurSelec(C_L200),LijnSoort(TypAnglLn),False,True);
      If W_L261 Then Trendlijn(AngStrt,RefDat,AngKrs,_L261,KleurSelec(C_L261),LijnSoort(TypAnglLn),False,True);
      If W_L423 Then Trendlijn(AngStrt,RefDat,AngKrs,_L423,KleurSelec(C_L423),LijnSoort(TypAnglLn),False,True);
      If W_L685 Then Trendlijn(AngStrt,RefDat,AngKrs,_L685,KleurSelec(C_L685),LijnSoort(TypAnglLn),False,True);

    End;

{Gann lijnen weergave}
 If (Methode=2) Then
  Begin
    Vert := TekFiboLijn(RefDat,Now+10,G1_8,KleurSelec(GnLnClr),Lijnsoort(GnLnTyp),Lverlng,Rverlng,TextInvul(Indic,'12,5%',G1_8));
    Vert := TekFiboLijn(RefDat,Now+10,G2_8,KleurSelec(GnLnClr),Lijnsoort(GnLnTyp),Lverlng,Rverlng,TextInvul(Indic,'25%  ',G2_8));
    Vert := TekFiboLijn(RefDat,Now+10,G3_8,KleurSelec(GnLnClr),Lijnsoort(GnLnTyp),Lverlng,Rverlng,TextInvul(Indic,'37,5%',G3_8));
    Vert := TekFiboLijn(RefDat,Now+10,G4_8,KleurSelec(GnLnClr),Lijnsoort(GnLnTyp),Lverlng,Rverlng,TextInvul(Indic,'50%  ',G4_8));
    Vert := TekFiboLijn(RefDat,Now+10,G5_8,KleurSelec(GnLnClr),Lijnsoort(GnLnTyp),Lverlng,Rverlng,TextInvul(Indic,'62,5%',G5_8));
    Vert := TekFiboLijn(RefDat,Now+10,G6_8,KleurSelec(GnLnClr),Lijnsoort(GnLnTyp),Lverlng,Rverlng,TextInvul(Indic,'75% ' ,G6_8));
    Vert := TekFiboLijn(RefDat,Now+10,G7_8,KleurSelec(GnLnClr),Lijnsoort(GnLnTyp),Lverlng,Rverlng,TextInvul(Indic,'87,5%',G7_8));
    Vert := TekFiboLijn(RefDat,Now+10,G8_8,KleurSelec(GnLnClr),Lijnsoort(GnLnTyp),Lverlng,Rverlng,TextInvul(Indic,'100 %',G8_8));
  End;

If (Methode <99) Then
  Begin
   {Lijn tussen de referentie punten}
    With CreateTrendLine(Datum1,KrsWrd1,Datum2,KrsWrd2) Do
     Begin
      Color := KleurSelec(KlrRef);
      Style := Lijnsoort(TypRef);
     End;
   
   {Verticale lijn}
   With CreateTrendLine(RefDat,RefKrs,RefDat,Vert) Do
     Begin
      Color := KleurSelec(KlrVrt);
      Style := Lijnsoort(TypVrt);
     End;
  End;
 
{Werkt alleen in W$-224, en is handig wanneer de parameter weergave is uitgeschakeld}
{$IFDEF SCRIPTVERSION-4}
  With CreateText(0,0,Instrument.ID+'  '+'Retracement www.JSTAS.com') Do
    Begin
      Y1Pct := PltsTXT;
      X1Pct :=  1;
      VertPosition := vpTop;
      Color:=KleurSelec(1);
      Font.Size:=9;
    End;
 {$ENDIF}

End.

_________________
Vriendelijke groet,
JanS Wink
Naar boven
Bekijk gebruikers profiel Stuur privé bericht Verstuur e-mail Bekijk de homepage
Berichten van afgelopen:   
Plaats nieuw bericht   Plaats reactie    TA-script.com forum index -> Vraag en antwoord Tijden zijn in GMT + 1 uur
Ga naar pagina Vorige  1, 2, 3 ... 6, 7, 8 ... 10, 11, 12  Volgende
Pagina 7 van 12

 
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