Spiral Calendar

Stel hier uw vragen over TA-script, of help anderen met het oplossen van hun probleem
Plaats reactie
Janus
Berichten: 1401
Lid geworden op: wo jan 30, 2008 2:07 am
Contacteer:

Spiral Calendar

Bericht door Janus »

01-Mei --> AEX beurs etc. gesloten.
M'n poedel verveelde zich dus en dook de bibliotheek in.
Vond daar het boek van Christopher Carolan wat handelde over: 'The Spiral Calendar'.
*
Ten tijde van de beurscrach in 1987 werkte Carolan op de beurs, en had op andere signalen op tijd afstand genomen van zijn aandelen etc.
Wat hem intrigeerde was de overeenkomst van deze crach van 1987 met die van 1929.
Een exact gelijk koersverloop, en wat hem nu zo bezig hield was --> hoe 'link' ik nu de crach van 1929 met die van 1987.
Na veel gepuzzel vond hij het antwoord in de Fibonacci reeks en de orbit van de maan.
De maan kent in principe twee orbits, één waarbij de maan exact zijn rondje rondom de aarde heeft gemaakt (Siderische maand) en één waarbij we de verplaatsing van de Aarde in die Siderische maand meenemen, en dat wordt de Synodische maand genoemd.
Carolan nu ondekte dat wanneer hij de Fibonacci reeks nam, uit het getal de wortel nam, en dat vermenigvuldigde met de maan orbit op Synodische basis, er een perfecte 'passing' plaats vond tussen de top van 1929 en die van 1987.
Om kort te gaan, hij heeft een boek geschreven over zijn bevindingen en hoe mooi dat vaak perfect klopt.
En dat boek haalde mijn Poedel nu net uit mijn bibliotheek... de hond.
**
En .. zoals het een echte Poedel betaamt (eigenwijs tot op de laatste krul) heeft hij er een stukje ta-script over geschreven, met als toevoeging de Lucas getallen (daar zit immers ook Phi in verwerkt); en het beest wilde even de mogelijkheden zien wanneer er in plaats van de Moon-orbit op Synodische basis wordt gekozen voor een Moon orbit op Siderische basis; en in plaats van de Fibonacci reeks er wordt gekozen voor de Lucas reeks.
Mooi man ;)
Hij heeft er een stukje ta-script over geschreven, wat het mogelijk maakt te experimenteren met een en ander....
..
Hieronder de code en een grafiek...
maar ..
onthoudt een belangrijk ding ---> beurs gesloten ---> bibliotheek op slot ... dat bespaart ons deze Poedel nonsens ;)
U bent gewaarschuwd!.

Code: Selecteer alles

{- Filename: Spiral Calendar -}
// Naar een idee van Christopher Carolan
// Uitgebreid met keuze voor Fibonacci of Lucas serie
// Uitgebreid met keuze voor maan-orbit: synodisch of siderisch
// Vertaling: www.JSTAS.com
// Versie 1.00  02-Mei-2012

Type
 Spiral=Record
  MnOrb   : Real;
  Rks     : Integer;
  Klr     : TColor;
  LynVrl, Tkst1, Tkst2 : Boolean;
  LnStrt : Array[1..5 ] Of Integer;
  LnEnd  : Array[1..5 ] Of Integer;
  WrGv   : Array[1..5 ] Of Boolean;
  Clr    : Array[1..5 ] Of TColor;
  SrtLn  : Array[1..5 ] Of Integer;
  Tblnum : Array[1..33] Of TDateTime;
  StrtDt : Array[1..5 ] Of TDateTime;
  End;

Var
sc: Spiral;

//
{******************************************************************************}
{************************** Initialisaties ************************************}
Procedure Initialisaties();
Begin
With Indicator Do
 Begin
  NewBand      := False;
  ScaleRange   := SrCommon;
  HiddenParams := True;
 End;
End;
//
{******************************************************************************}
{**************************** Lijn -Type -Trendlijn ***************************}
Function Lijnsoort(nummer:Integer):TTrendLineStyle;
Begin
Case nummer Of
 0 :  Result := lsSolid  ;
 1 :  Result := lsDash   ;
 2 :  Result := lsDot    ;
 3 :  Result := lsDashDot;
 4 :  Result := lsDashDotDot;
End;
End;
//
{******************************************************************************}
{********************************** Gebruiker keuzes **************************}
 Procedure Userchoices();
 Var
 Kz1, j : Integer;
 reeks, MnOrbit, Dt, Lijntype : String;
 Color : Array[1..5] Of TColor;
 Begin
 reeks   := 'Fibonacci nummers'#9
            'Lucas nummers    ' ;
            
 MnOrbit := 'Synodische maand '#9
            'Siderische maand ' ;
            
 Lijntype  := 'Doorgetrokken lijn     '#9
              'Gestreepte lijn        '#9
              'Gestippelde lijn       '#9
              'Gestr./gestippelde lijn'#9
              'Streep/stip/stip       ' ;
              
Color[1] := ClBLue;
Color[2] := ClRed;
Color[3] := ClGreen;
Color[4] := ClPurple;
Color[5] := ClAqua;
 
 sc.Rks := CreateParameterSelect('Kalender op basis van:',reeks,0,False);
    Kz1 := CreateParameterSelect('Omlooptijd van de Maan :',MnOrbit,0,False);

For j:=1 To 5 Do
 Begin
  Dt := IntToStr(j);
  sc.StrtDt[j]:=CreateparameterDate('Start datum set '+Dt,
                                                    EncodeDate(2009,03,(08+j)));
  If j>1 Then
  sc.WrGv[j] := CreateParameterBoolean('Set '+Dt+' weergeven?',False,False);
 sc.Clr[j]  := CreateParameterColor('Kleur lijnenset '+Dt,color[j]);
 Sc.SrtLn[j]:= CreateParameterSelect('lijntype set '+Dt,Lijntype,2,False);
 Sc.LnStrt[j]:=CreateParameterInteger('Lijnweergave vanaf nummer',1,32,2,False);
 Sc.LnEnd[j] :=CreateParameterInteger('Lijnweergave t/m nummer',3,33,33,False);
 End;
 
sc.LynVrl := CreateParameterBoolean('Verticale lijnen verlengen?',False,False);
sc.Tkst1  := CreateParameterBoolean('Lijnnummer weergeven ?',False,False);
sc.Tkst2  := CreateParameterBoolean('Reekssoort en MaanOrbit weergave?'
                                                                   ,True,False);
sc.Klr := CreateParameterColor('Kleur reeksweergave:',ClBlue);

sc.WrGv[1] :=True;
If Kz1=0 Then
   sc.MnOrb := 29.5306
  Else
   sc.MnOrb := 27.3216;
 End;
//
{******************************************************************************}
{****************************** vul tabel dmv reeks ***************************}
Procedure FillTblnum(A,B : Integer);
Var
j : Integer;
Begin
sc.Tblnum[1] :=A;
sc.Tblnum[2] :=B;

For j:= 3 To 33 Do
Begin
 sc.Tblnum[j] := sc.Tblnum[j-1]+sc.Tblnum[j-2];
End;

For j:= 1 To 33 Do
Begin
  sc.Tblnum[j] := Sqrt(sc.Tblnum[j])*sc.MnOrb;
End;

End;
//
{******************************************************************************}
{**************************** Tekenen van de lijnen ***************************}
Procedure Tekenlijn();
Var
j,k : Integer;

Begin

For k:=1 To 5 Do
Begin
If sc.WrGv[k] Then
Begin

With CreateTrendline(sc.StrtDt[k],0,sc.StrtDt[k]+1,0)  Do
 Begin
     Y1Pct := 1+((k-1)*4);
     Y2Pct := 1+((k-1)*4);
    ExtendRight :=True;
    Color := sc.Clr[k];
    Style := Lijnsoort(sc.SrtLn[k]);
 End;

With CreateTrendLine(sc.StrtDt[k],0,sc.StrtDt[k],0) Do
  Begin
    Y1Pct := 1+((k-1)*4);
    Y2Pct := k*4;
    Color := sc.Clr[k];
    Style := Lijnsoort(sc.SrtLn[k]);
    If sc.LynVrl Then Y2Pct := 100;
  End;

For j:=sc.LnStrt[k] To sc.LnEnd[k] Do
Begin

With CreateTrendLine(sc.StrtDt[k]+sc.Tblnum[j],0,sc.StrtDt[k]+sc.Tblnum[j],0) Do
 Begin
   Y1Pct :=1+((k-1)*4);
   Y2Pct :=k*4;
   If sc.LynVrl Then Y2Pct:=100;
   Color := sc.Clr[k];
   Style := Lijnsoort(sc.SrtLn[k]);
 End;
 
 If (sc.Tkst1) And (j>1) Then
 Begin
 With CreateText(sc.StrtDt[k],0,'0') DO
  Begin
   Y1Pct :=(k*4)-1;
   Color := sc.Clr[k];
   Font.Size:= 8;
  End;
 
 With CreateText(sc.StrtDt[k]+sc.Tblnum[j],0,IntToStr(j)) Do
  Begin
   Y1Pct :=(k*4)-1;
   Color:= sc.Clr[k];
   Font.Size := 8;
  End;
 End; //tkst1
 
End; //j

End; //sc.wrgv

End; //k
End;
{******************************************************************************}
{**************************** Weergave tekst reeks ****************************}
Procedure TekstReeks();
Var
Tk1,Tk2 : String;
Begin
If sc.Rks=0 Then
   Tk1 := 'Fibonacci'
  Else
   Tk1 := 'Lucas';

If (Sc.MnOrb=29.5306) Then
   Tk2 := 'Synodische maand'
  Else
   Tk2 := 'Siderische maand';
   
With CreateText(0,0,Tk1+', '+Tk2) Do
 Begin
  Y1Pct := 98;
  X1Pct := 80;
  Color := sc.Klr;
  Font.Size := 8;
 End;

End;
//
{******************************************************************************}
{****************************** Hoofdprogramma ********************************}
Begin

Initialisaties();
UserChoices();

If sc.Rks=0 Then
   FillTblnum(1,1)
  Else
   FillTblnum(2,1);

Tekenlijn();

If sc.Tkst2 Then TekstReeks();

End.

Groetjes van de Poedel ;)
Grafiek waarin u mooi kan zien hoe het getal in de Fibonacci reeks leidde tot de perfecte combinatie van de top in 1929 en in 1987 ...
Afbeelding

In deze grafiek ziet u vermeld staan 29, dat is het 29-e Fibonacci getal (514229); daaruit werd de wortel getrokken (zo'n oranje ding) en dat werd vermenigvuldigt met de orbit van de maan op Synodische basis, en dat gaf exact de top in 1987.
Het werkt ook prachtig voor de bodem van de krach.

Ik heb er even mee mogen spelen van de Poedel, en ook voor onze AEX-index zie je mooie resultaten op dit gebied.

De tijd ontbreekt me voor verdere uitleg (consulteer m'n poedel) maar wat ik wel begrepen heb inmiddels is dat de langere termijn cycli vaak beter werken dan het kortere termijn werk, de Poedel heeft dan ook ingeprogrammeerd dat je kan instellen vanaf wat .. tot dat ...

Opmerkingen zijn meer dan welkom, maar zie dit als een eerste begin tot een reeks wat leidt tot koppeling van natuurlijke cycli met de beurs.

Wanneer de Poedel terug is van de kapper volgt er wellicht meer .. ;)
;-)
Vriendelijke groet,
JanS ;)
Plaats reactie