Gann

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

Bericht door Janus »

Erg korte weekend update geplaats onder de vaste link:
http://www.jstas.com/2009/Dageljiks%20v ... fieken.htm

Teveel tijd besteed aan de uitleg omtrent Market Profile, daarom zo kort.

Grafiekje erbij:

Afbeelding

Volg de grafiek, niet het idee.
.
Vriendelijke groet,
JanS ;)
Janus
Berichten: 1406
Lid geworden op: wo jan 30, 2008 2:07 am
Contacteer:

Bericht door Janus »

Korte update geplaatst onder de link:
http://www.jstas.com/2009/Dageljiks%20v ... fieken.htm

Grafiekje d'rbij ;)
Afbeelding
.
Volg je eigen idee, laat je niet gek maken !
Vriendelijke groet,
JanS ;)
Janus
Berichten: 1406
Lid geworden op: wo jan 30, 2008 2:07 am
Contacteer:

Bericht door Janus »

Korte weekendupdate, er wijzigt niet zoveel in het verloop van de AEX index ( tot nu toe?) .
Daarom alvast een klein voorstukje toegevoegt omtrend een werkstukje wat ik nog wil gaan schrijven over een methode die Gann heeft uitgedacht ...ik heb als voorbeeld even de Euro / Dollar grafiek gepakt.
U leest er alles over onder de link:

http://www.jstas.com/2009/Dageljiks%20v ... fieken.htm

Grafiekje erbij ;-)
Afbeelding
.
Succes voor Maandag, en laat je niet gekmaken ;-))
.
Vriendelijke groet,
JanS ;)
Janus
Berichten: 1406
Lid geworden op: wo jan 30, 2008 2:07 am
Contacteer:

Bericht door Janus »

De bell trend.
U kan er wat over lezen in deze topic op pagina 12 onder de datum 14-September-2010.
Het idee is ontstaan naar aanleiding van een geschreven stukje door Ron Black, die al meer dan 15 jaar zelfstandig handelt in aandelen en futures.
.
Deze indicator zit zeer kort op de markt, in feite is er geen naijlende factor zoals bijvoorbeeld bij een 15-daags gemiddelde, waarvan de eerste waarde immers pas na 15-dagen wordt weergegeven.
Die ma-s moeten echter niet worden onderschat vanwege hun naijlende factor, nog moet u zomaar een MA- kiezen, een verkeerde keuze kan immers een volledige cyclus doen verdwijnen !
Meer over MA-s kunt u lezen in mijn stukje:
http://www.jstas.com/Gemiddelden/middelen_maar.htm
*
Een indicator zonder lag zal net zo nerveus zijn als het instrument ( de index of aandeel) waar het op wordt losgelaten.
*
Een koersbeweging kan in feite maar drie kanten op:
1 -> Omhoog
2 -> omlaag
3 -> zijwaarts.
Wat u ook doet zonder na te denken, u heeft 33,33 procent kans dat u goed zit.
Maar u moet niet proberen te voorspellen, want wat er ook gebeurt, 'de markt' heeft - krijgt hoe dan ook --> gelijk !
Wanneer u toch 'voorspellingen' wil maken; maak ze dan voor alledrie de mogelijkheden zodat u weet wat te doen wanneer ...
*
Ron Black vertelde u al in mijn vorige posting, ik sprak even voor hem ;), dat zolang de market -profiles elkaar overlappen dat er geen trend aanwezig is, pas wanneer een profile uitbreekt omhoog of omlaag, vindt er een trend in die richting plaats.
MurreyMath zegt (via de Gann-rules) dat de koersbeweging zich de meeste tijd in een zijwaartse range bevindt; ofwel: Trendloos !
Ron Black zegt: wanneer de koerstrend omhoog is, zal elke opvolgende bar een hogere HIGH neerzetten.
Zodra er geen hogere HIGH wordt geplaatst, is de koers beweging: zijwaarts, trendloos
Idem maar viceversa voor een dalende trend.
Ron Black noemt een zijwaartse koersperiode: -> ruis.
Hij waarschuwt ons ook voor het teveel 'personificeren' van de koers beweging, omdat het koersverloop 'geen mens is' .. maar de beweging ontstaan door alle factoren die daarop inwerken.
Zo is de markt nooit: 'indicisive nor exhausted'.
Allemaal termen die we wel op 'mensen ' toepassen.
Hij geeft als voorbeeld: wanneer we naar het strand gaan, en een rustige zee zien, dan zeggen we ook niet:-> dat er geen grote golven te zien zijn omdat de zee uitgeput is .. !! .. :)
Wanneer de koersbeweging van de huidige dag in de range van de vorige dag ligt, dan betekent dat niets anders dan dat de "de condities waarop de waarde wordt bepaald van het onderliggende aandeel of index in de visie van de 'beleggers of speculanten' niet 'belangrijk'is gewijzigd".!.
Dit heeft niets met uitputting te maken !
Een 'markt' kan niet uitgeput zijn!
Een 'markt' kan niet beslissingsloos zijn, immers de marktwaarde is tot stand gekomen -doorwelke beslissing dan ook - .
Ik heb de indicator voor de Bell-trend even aangepast voor weergave van zijwaartse perioden.
In de code hieronder kan u de weergave van die zijwaartse perioden in of uit schakelen.
Een overgang van bijvoorbeeld een uptrend (groen) naar een zijwaartse periode betekent niet dat de uptrend beëindigt is, doch slechts dat de condities waarop de koers wordt bepaald hetzelfde zijn als de dag van gisteren.
Een pauze in de uptrend?
Een pauze voor koersommekeer ?
U / ik weet het niet ... wees alert!
.
Hieornder de ta-code voor de 2-e versie van de Bell-trend indicator.
.

Code: Selecteer alles


{- Filename: Bell-Trend -}
// naar een idee van Ron Black
// www.JSTAS.com
// Oktober-2010
// Versie 1.02

{*----------------------------------------------------------------------------*}
// Definïeren Functies en Procedures
{*----------------------------------------------------------------------------*}
{*-------------------------Definïeren B_Trend record -------------------------*}
Type
  B_Trend = Record
     HH,HL,LL,LH,SwLne                  : TSeries;
     UpSw,hUpSw, BarUp,BarDown,BarZijw,
     ColorUp,ColorDwn,ClrZijw, ClrNV,
     Hpos,Vpos, TXTGrt                  : Integer;
     NameInd ,Versie                    : Boolean;
  End;
Var
BT : B_Trend;
//
{*----------------------------------------------------------------------------*}
{* ---Functie om een TColor te selecteren doormiddel van een Integer getal----*}
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;
     19: Result := RGB(196,196,0);
     else
       Result := clGray;
   end;
 End;
//
{*----------------------------------------------------------------------------*}
{*--------------------------Create and Fill Series----------------------------*}
Procedure Create_Series();
Begin
  BT.HH := FillSeries(CreateSeries(BarCount),0);
  BT.LL := FillSeries(CreateSeries(BarCount),0);
  BT.LH := FillSeries(CreateSeries(BarCount),0);
  BT.HL := FillSeries(CreateSeries(BarCount),0);
  BT.SwLne := CreateSeries(BarCount);
End;
//
{*----------------------------------------------------------------------------*}
{*----------------------------------User_Choices------------------------------*}
Procedure UserChoices();
Var
KleurKze: String;
Begin
  KleurKze := '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' #9


BT.Versie  :=CreateParameterBoolean('Trendloos inkleuren?',True,False);
BT.ColorUp :=1+CreateParameterSelect('Geef Kleur UpSwing  :',Kleurkze,6 ,False);
BT.ColorDwn:=1+CreateParameterSelect('Geef Kleur DownSwing:',Kleurkze,13,False);
BT.ClrZijw :=1+CreateParameterSelect('Geef Kleur Trendloos:',Kleurkze,2 ,False);
BT.BarUp   :=1+CreateParameterSelect('Geef Kleur Bar-Up   :',Kleurkze,6 ,False);
BT.BarDown :=1+CreateParameterSelect('Geef Kleur Bar-Down :',Kleurkze,13,False);
BT.BarZijw :=1+CreateParameterSelect('Geef Kleur Trendloos:',Kleurkze,2 ,False);
BT.NameInd :=CreateParameterBoolean ('Naam indicator weergeven?',True,False);
BT.ClrNV  :=1+CreateParameterSelect('Geef Kleur Vermelding:',Kleurkze,6 ,False);
BT.TXTGrt := CreateParameterInteger('Tekst formaat: ',8,12,9,False);
BT.Hpos   := CreateParameterInteger('Horiz. pos. Vermelding:',1,99,1,False);
BT.Vpos   := CreateParameterInteger('Vert.  pos. Vermelding:',2,100,100,False);
End;
//
{*----------------------------------------------------------------------------*}
{*----------------------------------Startwaarden------------------------------*}
Procedure Startwaarden(i:Integer);
Begin
  BT.HH[i] := H[i];
  BT.LL[i] := L[i];
  BT.LH[i] := H[i];
  BT.HL[i] := L[i];
  BT.hUpSw := 1;
End;
//
{*----------------------------------------------------------------------------*}
{*----------------------------------UpTrend-----------------------------------*}
Procedure UpTrend(i:integer);
Begin
  If H[i] > BT.HH[i-1] Then BT.HH[i] := H[i]
   Else BT.HH[i] := BT.HH[i-1];
  If L[i] > BT.HL[i-1] Then BT.HL[i] := L[i]
   Else BT.HL[i] := BT.HL[i-1];
  BT.LH[i] := H[i]  ;
  If H[i] <BT.HL[i-1] Then
    Begin
      BT.hUpSw := 0;
      BT.LL[i]:= L[i];
      BT.LH[i]:= H[i];
    End;
End;
//
{*----------------------------------------------------------------------------*}
{*---------------------------------DownTrend----------------------------------*}
Procedure DownTrend(i:Integer);
Begin
  If (L[i] < BT.LL[i-1]) Then BT.LL[i] := L[i]
   Else BT.LL[i] := BT.LL[i-1];
  If (H[i] < BT.LH[i-1]) Then BT.LH[i] := H[i]
   Else BT.LH[i] := BT.LH[i-1];
  BT.HL[i] := L[i];
  If L[i] > BT.LH[i-1] Then
    Begin
      BT.hUpSw :=1;
      BT.HH[i] := H[i];
      BT.HL[i] := L[i];
    End;
End;
//
{*----------------------------------------------------------------------------*}
{*-----------------------------Vul-Swingline-serie----------------------------*}
Procedure  FillSWLine(i:Integer);
Begin
   If BT.UpSw = 1 Then
    Begin
      BT.SwLne[i] := BT.HL[i];
      SetBarColor(0,i,KleurSelec(BT.ColorUp));
      SetBarColor(1,i,KleurSelec(Bt.BarUp));
      If BT.Versie Then
      Begin
       If(BT.HL[i])<=(BT.HL[i-1]) Then SetBarColor(0,i,KleurSelec(BT.ClrZijw));
       If(BT.HL[i])<=(BT.HL[i-1]) Then SetBarColor(1,i,KleurSelec(BT.BarZijw));
      End;
    End;
  If BT.UpSw = 0 Then
    Begin
      BT.SwLne[i] := BT.LH[i];
      SetBarColor(0,i,KleurSelec(BT.ColorDwn));
      SetBarColor(1,i,KleurSelec(BT.BarDown));
      If BT.Versie THen
      Begin
       If(BT.LH[i] >= BT.LH[i-1]) Then SetBarColor(0,i,KleurSelec(BT.ClrZijw));
       If(BT.LH[i] >= BT.LH[i-1]) Then SetBarColor(1,i,KleurSelec(BT.BarZijw));
      End;
    End;
End;
//
{*----------------------------------------------------------------------------*}
{*-------------------------------Teken-lijnen-----------------------------------*}
 Procedure TekenLijn();
 Begin
  With CreateLine(BT.SwLne) Do
   Begin
    Color:= ClGray;
    LineType := LTOpen;
    Width :=2;
   End;
 End;
 //
 Procedure Tekenlijn2();
 Begin
  With CreateLineOHLC(O,H,L,C) Do
    Begin
      Width :=1;
      Color := ClGray;
      LineType := LtCandlestick;
    End;
 End;
//
{******************************************************************************}
{****************** Naam Indicator en aandeel-index vermelding ****************}
Procedure NaamVermeld();
Begin
  { $IFDEF SCRIPTVERSION-4}
    With CreateText(0,0,Instrument.ID + '  Bell-trend ') Do
      Begin
        Y1PCT := BT.Vpos;
        X1Pct := BT.Hpos;
        Color := KleurSelec(BT.ClrNV);
        Font.Size := BT.TXTGrt;
      End;
  {ENDIF}
End;
//
{*----------------------------------------------------------------------------*}
{*----------Koppelt de Functies en Procudures en User-Choices-----------------*}
Procedure BC_Trend();
Var
i : Integer;
Begin
 Indicator.NewBand := False;
 Indicator.ScaleRange:= SrCommon;
 Create_Series();
 UserChoices();

 For i := 1 To BarCount-1 Do
  Begin
   If i=1 Then
    Begin
     Startwaarden(i);
    End;
  //
   If (i>1) Then
    Begin
     If (BT.UpSw=1) Then UpTrend(i);
     If (BT.UpSw=0) Then DownTrend(i);
     FillSWLine(i)
    End;
  BT.UpSw := BT.hUpSw;
End;
TekenLijn();
Tekenlijn2();
If BT.NameInd Then NaamVermeld();
End;
//
{*----------------------------------------------------------------------------*}
{*-----------------------------HoofdProgramma---------------------------------*}
Begin
 BC_Trend();
End.
*
**
***
!!!!!!!!!!!!!!!!!!!
**
Bovenstaand stukje ta-code geeft alleen de riching van de trend weer.
Deze code is opgezet als ondersteuning van het stukje omtrent de Bell_curve.
Ga -- AUB -- NIET handelen op basis van deze indicator alleen...
Er zit geen Moneymanagement in verwerkt ...
Er zit geen StopLoss in verwerkt ....
Niet doen dus !!
Handel nooit alleen op 1 - indicator ...
The Draw-down van deze indic. kan de waarde van uw portefeuille te boven gaan !!
Doe het dus niet !!
Volg altijd meerdere indicatoren !
.
Jan@JSTAS.com
.

De code is gemaakt voor weergave via een candlestick grafiek.
TA-script laat helaas het later wijzigen van de LineType niet toe.
Wanneer u toch een andere bar-weergave wilt zien dan zal dat in de ta-code aangepast moeten worden, eenvoudig te doen, maar toch .
Vragen of opmerkingen zijn , zoals altijd, welkom; ook ik probeer van een en ander wat te leren tenslotte.
.
Hieronder een grafiekje met bovengeplaatste indicator:

Afbeelding
.
Groen is uptrend
Rood is downtrend
zwart is geen trend
.
Vriendelijke groet,
JanS ;)
Janus
Berichten: 1406
Lid geworden op: wo jan 30, 2008 2:07 am
Contacteer:

Bericht door Janus »

De code voor de 'Bell Trend' is iets gewijzigd.
Nu wordt rechtstreeks de koersbar ingekeurd ( indien dat aangevinkt is) waardoor het eenvoudiger is om met diverse koersbars te werken zoals o-h-l-c streepjes of met candlesticks etc.
.

Code: Selecteer alles

{- Filename: Bell-Trend -}
// naar een idee van Ron Black
// www.JSTAS.com
// Oktober-2010
// Versie 1.03

{*----------------------------------------------------------------------------*}
// Definïeren Functies en Procedures
{*----------------------------------------------------------------------------*}
{*-------------------------Definïeren B_Trend record -------------------------*}
Type
  B_Trend = Record
     HH,HL,LL,LH,SwLne                  : TSeries;
     UpSw,hUpSw, BarUp,BarDown,BarZijw,
     ColorUp,ColorDwn,ClrZijw, ClrNV,
     Hpos,Vpos, TXTGrt                  : Integer;
     NameInd ,Versie, Inkleur           : Boolean;
  End;
Var
BT : B_Trend;
//
{*----------------------------------------------------------------------------*}
{* ---Functie om een TColor te selecteren doormiddel van een Integer getal----*}
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;
     19: Result := RGB(196,196,0);
     else
       Result := clGray;
   end;
 End;
//
{*----------------------------------------------------------------------------*}
{*--------------------------Create and Fill Series----------------------------*}
Procedure Create_Series();
Begin
  BT.HH := FillSeries(CreateSeries(BarCount),0);
  BT.LL := FillSeries(CreateSeries(BarCount),0);
  BT.LH := FillSeries(CreateSeries(BarCount),0);
  BT.HL := FillSeries(CreateSeries(BarCount),0);
  BT.SwLne := CreateSeries(BarCount);
End;
//
{*----------------------------------------------------------------------------*}
{*----------------------------------User_Choices------------------------------*}
Procedure UserChoices();
Var
KleurKze: String;
Begin
  KleurKze := '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' #9


BT.Versie  :=CreateParameterBoolean('Trendloos inkleuren?',True,False);
BT.ColorUp :=1+CreateParameterSelect('Geef Kleur UpSwing  :',Kleurkze,6 ,False);
BT.ColorDwn:=1+CreateParameterSelect('Geef Kleur DownSwing:',Kleurkze,13,False);
BT.ClrZijw :=1+CreateParameterSelect('Geef Kleur Trendloos:',Kleurkze,2 ,False);
BT.Inkleur := CreateParameterBoolean('Koersbars inkleuren?:',True,False);
BT.BarUp   :=1+CreateParameterSelect('Geef Kleur Bar-Up   :',Kleurkze,6 ,False);
BT.BarDown :=1+CreateParameterSelect('Geef Kleur Bar-Down :',Kleurkze,13,False);
BT.BarZijw :=1+CreateParameterSelect('Geef Kleur Trendloos:',Kleurkze,2 ,False);
BT.NameInd :=CreateParameterBoolean ('Naam indicator weergeven?',True,False);
BT.ClrNV  :=1+CreateParameterSelect('Geef Kleur Vermelding:',Kleurkze,6 ,False);
BT.TXTGrt := CreateParameterInteger('Tekst formaat: ',8,12,9,False);
BT.Hpos   := CreateParameterInteger('Horiz. pos. Vermelding:',1,99,1,False);
BT.Vpos   := CreateParameterInteger('Vert.  pos. Vermelding:',2,100,100,False);
End;
//
{*----------------------------------------------------------------------------*}
{*----------------------------------Startwaarden------------------------------*}
Procedure Startwaarden(i:Integer);
Begin
  BT.HH[i] := H[i];
  BT.LL[i] := L[i];
  BT.LH[i] := H[i];
  BT.HL[i] := L[i];
  BT.hUpSw := 1;
End;
//
{*----------------------------------------------------------------------------*}
{*----------------------------------UpTrend-----------------------------------*}
Procedure UpTrend(i:integer);
Begin
  If H[i] > BT.HH[i-1] Then BT.HH[i] := H[i]
   Else BT.HH[i] := BT.HH[i-1];
  If L[i] > BT.HL[i-1] Then BT.HL[i] := L[i]
   Else BT.HL[i] := BT.HL[i-1];
  BT.LH[i] := H[i]  ;
  If H[i] <BT.HL[i-1] Then
    Begin
      BT.hUpSw := 0;
      BT.LL[i]:= L[i];
      BT.LH[i]:= H[i];
    End;
End;
//
{*----------------------------------------------------------------------------*}
{*---------------------------------DownTrend----------------------------------*}
Procedure DownTrend(i:Integer);
Begin
  If (L[i] < BT.LL[i-1]) Then BT.LL[i] := L[i]
   Else BT.LL[i] := BT.LL[i-1];
  If (H[i] < BT.LH[i-1]) Then BT.LH[i] := H[i]
   Else BT.LH[i] := BT.LH[i-1];
  BT.HL[i] := L[i];
  If L[i] > BT.LH[i-1] Then
    Begin
      BT.hUpSw :=1;
      BT.HH[i] := H[i];
      BT.HL[i] := L[i];
    End;
End;
//
{*----------------------------------------------------------------------------*}
{*--------------------------Vul-Kleur Swingline-serie-------------------------*}
Procedure  FillSWLine(i:Integer);
Begin
If BT.UpSw = 1 Then
 Begin
  BT.SwLne[i] := BT.HL[i];
  SetBarColor(0,i,KleurSelec(BT.ColorUp));
  If BT.Inkleur Then SetParentBarColor(i,KleurSelec(BT.BarUp));
  If BT.Versie Then
   Begin
    If(BT.HL[i])<=(BT.HL[i-1]) Then SetBarColor(0,i,KleurSelec(BT.ClrZijw));
    If BT.Inkleur Then
    Begin
    If(BT.HL[i])<=(BT.HL[i-1]) Then SetParentBarColor(i,KleurSelec(BT.BarZijw));
    End;
   End;
  End;
If BT.UpSw = 0 Then
 Begin
  BT.SwLne[i] := BT.LH[i];
  SetBarColor(0,i,KleurSelec(BT.ColorDwn));
  If BT.Inkleur Then SetParentBarColor(i,KleurSelec(BT.BarDown));
  If BT.Versie Then
   Begin
    If(BT.LH[i] >= BT.LH[i-1]) Then SetBarColor(0,i,KleurSelec(BT.ClrZijw));
    If BT.Inkleur Then
    Begin
    If(BT.LH[i] >= BT.LH[i-1]) Then SetParentBarColor(i,KleurSelec(BT.BarZijw));
    End;
   End;
 End;
End;
//
{*----------------------------------------------------------------------------*}
{*-------------------------------Teken-lijnen-----------------------------------*}
 Procedure TekenLijn();
 Begin
  With CreateLine(BT.SwLne) Do
   Begin
    Color:= ClGray;
    LineType := LTOpen;
    Width :=2;
   End;
 End;
 //
{******************************************************************************}
{****************** Naam Indicator en aandeel-index vermelding ****************}
Procedure NaamVermeld();
Begin
  { $IFDEF SCRIPTVERSION-4}
    With CreateText(0,0,Instrument.ID + '  Bell-trend ') Do
      Begin
        Y1PCT := BT.Vpos;
        X1Pct := BT.Hpos;
        Color := KleurSelec(BT.ClrNV);
        Font.Size := BT.TXTGrt;
      End;
  {ENDIF}
End;
//
{*----------------------------------------------------------------------------*}
{*----------Koppelt de Functies en Procudures en User-Choices-----------------*}
Procedure BC_Trend();
Var
i : Integer;
Begin
 Indicator.NewBand := False;
 Indicator.ScaleRange:= SrCommon;
 Create_Series();
 UserChoices();

 For i := 1 To BarCount-1 Do
  Begin
   If i=1 Then
    Begin
     Startwaarden(i);
    End;
  //
   If (i>1) Then
    Begin
     If (BT.UpSw=1) Then UpTrend(i);
     If (BT.UpSw=0) Then DownTrend(i);
     FillSWLine(i)
    End;
  BT.UpSw := BT.hUpSw;
End;
TekenLijn();
If BT.NameInd Then NaamVermeld();
End;
//
{*----------------------------------------------------------------------------*}
{*-----------------------------HoofdProgramma---------------------------------*}
Begin
 BC_Trend();
End.
*
**
***
!!!!!!!!!!!!!!!!!!!
**
Bovenstaand stukje ta-code geeft alleen de riching van de trend weer.
Deze code is opgezet als ondersteuning van het stukje omtrent de Bell_curve.
Ga -- AUB -- NIET handelen op basis van deze indicator alleen...
Er zit geen Moneymanagement in verwerkt ...
Er zit geen StopLoss in verwerkt ....
Niet doen dus !!
Handel nooit alleen op 1 - indicator ...
The Draw-down van deze indic. kan de waarde van uw portefeuille te boven gaan !!
Doe het dus niet !!
Volg altijd meerdere indicatoren !
.
Jan@JSTAS.com
.

.
Vriendelijke groet,
JanS ;)
Janus
Berichten: 1406
Lid geworden op: wo jan 30, 2008 2:07 am
Contacteer:

Bericht door Janus »

In mijn update van dit weekend, te lezen onder de link:
http://www.jstas.com/2009/Dageljiks%20v ... fieken.htm
ziet u de rainbow indicator van Mel Widner weergegeven.
Hieronder vindt u de ta-script code daarvoor.

Code: Selecteer alles


{- Filename: Rainbow -}
{ Rainbow }
{ naar een idee van Mel Widner }
{ www.JSTAS.com }
{ *****************************************************************************}

Type
  T_Rainbow = Record
   MA1,MA2,MA3,MA4,MA5,MA6,MA7,MA8,MA9,MA10                     : TSeries;
   MaT                                                          : Integer;
   CLMa1,CLMa2,CLMa3,CLMa4,CLMa5,CLMa6,CLMa7,CLMa8,CLMa9,CLMa10 : Integer;
  End;
Var
RB: T_Rainbow;
{******************************************************************************}
{* ---Functie om een TColor te selecteren doormiddel van een Integer getal----*}
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;
     19: Result := RGB(255,127,39);
     else
       Result := clGray;
   end;
 End;
//
{******************************************************************************}
{****************** MA-type selectie ******************************************}
Function MaSelec(Selec:Integer):TMaType;
Begin
 Case Selec Of
  0 : Result := MaSimple;
  1 : Result := MaWeighted;
  2 : Result := MaExponential;
 End;
End;
//
{*----------------------------------------------------------------------------*}
{*********************** Indicator eigenschappen ******************************}
Procedure Indic_Waarden();
Begin
  With Indicator DO
   Begin
    ScaleRange := SrCommon;
    NewBand    := False;
   End;
End;
 //
 {*****************************************************************************}
 {******************Fill Series ***********************************************}
Procedure vulseries();
Begin
    RB.MA1  := MA(     c,MaSelec(RB.MaT),2);
    RB.MA2  := MA(RB.MA1,MaSelec(RB.MaT),2);
    RB.MA3  := MA(RB.MA2,MaSelec(RB.MaT),2);
    RB.MA4  := MA(RB.MA3,MaSelec(RB.MaT),2);
    RB.MA5  := MA(RB.MA4,MaSelec(RB.MaT),2);
    RB.MA6  := MA(RB.MA5,MaSelec(RB.MaT),2);
    RB.MA7  := MA(RB.MA6,MaSelec(RB.MaT),2);
    RB.MA8  := MA(RB.MA7,MaSelec(RB.MaT),2);
    RB.MA9  := MA(RB.MA8,MaSelec(RB.MaT),2);
    RB.MA10 := MA(RB.MA9,MaSelec(RB.MaT),2);
End;
//
{******************************************************************************}
{************************ weergave lijnen**************************************}
Procedure Weergave(Lijn:TSeries; Kleur, Lijnwrd, LineW : Integer);
Var
i: Integer;
Begin
 With CreateLine(Lijn) Do
  Begin
   Color:= ClGray;
   Width:= LineW;
  End;
 For i := FirstValidIndex(Lijn) to BarCount-1 Do
  Begin
   SetBarColor(Lijnwrd-1,i,KleurSelec(Kleur));
  End;
End;
//
{******************************************************************************}
{**********************Gebruiker keuzes ***************************************}
Procedure UserChoices();
Var
KleurKze, MaKeuzes : String;
Begin
 MaKeuzes := 'Gewoon'      #9
             'Gewogen'     #9
             'Exponentieel' ;
 KleurKze :=  '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' #9
              'Orange' ;
RB.MaT:= CreateParameterSelect('Welk type gemiddelde :',MaKeuzes,0,False);
RB.CLMa1 :=1+CreateParameterSelect('Kleur van MA-1 :',KleurKze,13,False);
RB.CLMa2 :=1+CreateParameterSelect('Kleur van MA-2 :',KleurKze,18,False);
RB.CLMa3 :=1+CreateParameterSelect('Kleur van MA-3 :',KleurKze,17,False);
RB.CLMa4 :=1+CreateParameterSelect('Kleur van MA-4 :',KleurKze,7 ,False);
RB.CLMa5 :=1+CreateParameterSelect('Kleur van MA-5 :',KleurKze,6 ,False);
RB.CLMa6 :=1+CreateParameterSelect('Kleur van MA-6 :',KleurKze,15,False);
RB.CLMa7 :=1+CreateParameterSelect('Kleur van MA-7 :',KleurKze,0 ,False);
RB.CLMa8 :=1+CreateParameterSelect('Kleur van MA-8 :',KleurKze, 2,False);
RB.CLMa9 :=1+CreateParameterSelect('Kleur van MA-9 :',KleurKze,10,False);
RB.CLMa10:=1+CreateParameterSelect('Kleur van MA-10:',KleurKze,12,False);

End;
//
{******************************************************************************}
{******************** Koppelen procedures *************************************}
Procedure Rainbow();
Begin
Indic_Waarden();
UserChoices()
vulseries();

Weergave(RB.MA1 , RB.CLMa1 ,1, 3 );
Weergave(RB.MA2 , RB.CLMa2 ,2, 2 );
Weergave(RB.MA3 , RB.CLMa3 ,3, 2 );
Weergave(RB.MA4 , RB.CLMa4 ,4, 2 );
Weergave(RB.MA5 , RB.CLMa5 ,5, 2 );
Weergave(RB.MA6 , RB.CLMa6 ,6, 2 );
Weergave(RB.MA7 , RB.CLMa7 ,7, 2 );
Weergave(RB.MA8 , RB.CLMa8 ,8, 2 );
Weergave(RB.MA9 , RB.CLMa9 ,9, 2 );
Weergave(RB.MA10, RB.CLMa10,10,2 );

End;
//
{******************************************************************************}
{************************** Hoofdprogramma*************************************}
Begin
Rainbow();
End.
////////////////////////////////////////////////////////////////////////////////
 
Grafiekje erbij ;)

Afbeelding
.
Vriendelijke groet,
JanS ;)
paulkr
Berichten: 379
Lid geworden op: ma jun 25, 2007 1:34 pm
Locatie: Den Bosch

Bericht door paulkr »

Janus, met de rainbow indicator oogt de beurs in ieder geval kleurrijk :D . We gaan ermee stoeien. Aangaande de MurreyMath indicator, wat mogen we als nieuwe reset datum invoeren?
Gr Paulkr
Janus
Berichten: 1406
Lid geworden op: wo jan 30, 2008 2:07 am
Contacteer:

Bericht door Janus »

Paulkr,
Inderdaad brengt de Rainbow weer een beetje kleur ;)
In de MurreyMath topic heb ik op 17-Oktober een berichtje geplaatst dat de nieuwe datum 11-Oktober-2010 is, waarschijnlijk heb je dat gemist.
.
Vriendelijke groet,
JanS ;)
Janus
Berichten: 1406
Lid geworden op: wo jan 30, 2008 2:07 am
Contacteer:

Bericht door Janus »

2010-11-03:
Intraday wel een beweging vandaag, maar het vuurwerk bleef uit.
Misschien morgen ?
U, ik , we weten het niet op voorhand.
Zo ziet u dat het speculeren op dat wat misschien gaat gebeuren ...--> weinig zin heeft.
Volg gewoon de grafiek.
Ik plaats vandaag één grafiek, verder echt geen tijd.
Er staat niets nieuws in, alleen een bevestiging van dat wat ik al jaren probeer bij te brengen.
Grafiek 1:
Afbeelding

Grafiek 1 is een 15-minuten grafiek van de AEX-cash-index die gewoon elke dag bijna 24-uur per dag doorloopt en waarop u dan ook bijna 24 uur per dag mag handelen.
Afgebeeld zijn de laatste twee dagen.
Onder de koers grafiek staat een RSI(14), wat had u anders verwacht ;)
De schuine lijnen in de grafiek zijn Gann lijnen.
U ziet paarse strepen, perfecte setups.
Dikke blauwe strepen, idem.
Dunne blauw-paarse streep, waarschuwing, divergentie, kan effe aanhouden.
De lijnen zijn allemaal uitgelegd in mijn stukje over de RSI, onder de link: http://www.jstas.com/AEXoed/rsi.htm
Voor verdere uitleg mag u dat stukje lezen .
Volg de grafiek, niet: 'welk idee dan ook'.
Succes voor morgen !
.
Vriendelijke groet,
JanS;)
Vriendelijke groet,
JanS ;)
Janus
Berichten: 1406
Lid geworden op: wo jan 30, 2008 2:07 am
Contacteer:

Bericht door Janus »

Een paar regels geplaatst dit weekend, te lezen in mijn stukje:
http://www.jstas.com/2009/Dageljiks%20v ... fieken.htm
.
Grafiekje erbij:
Afbeelding
.
Vriendelijke groet,
JanS ;)
paulkr
Berichten: 379
Lid geworden op: ma jun 25, 2007 1:34 pm
Locatie: Den Bosch

Bericht door paulkr »

JanS,
In de weekend update wordt de term auto-ma gebruikt en ik begrijp even niet waar deze term voor staat / naar welke indicator wordt verwezen. Zou je me op weg kunnen helpen met ’n hint / korte toelichting aub?

Gr Paulkr
Janus
Berichten: 1406
Lid geworden op: wo jan 30, 2008 2:07 am
Contacteer:

Bericht door Janus »

Paulkr,
auto-ma is een zichzelf op de juiste lengte instellende moving-average.
De lengte van de overheersende cyclus wordt uitgerekend waarna de ma wordt ingesteld op de helft van de cycluslengte min 1.
Voor codes zie de topics:
--> MA ideal http://ta-script.com/forum/viewtopic.ph ... ght=automa
--> en de eerste pagina's van de topic 'probleempje' http://ta-script.com/forum/viewtopic.php?t=166&start=0
.
Vriendelijke groet,
JanS ;)
paulkr
Berichten: 379
Lid geworden op: ma jun 25, 2007 1:34 pm
Locatie: Den Bosch

Bericht door paulkr »

Bedankt voor de uitleg JanS
Gr Paulkr
Janus
Berichten: 1406
Lid geworden op: wo jan 30, 2008 2:07 am
Contacteer:

Bericht door Janus »

Korte update vandaag,
geplaatst onder de link:
http://www.jstas.com/2009/Dageljiks%20v ... fieken.htm
.
Tja, is ergens buiten de topic van dit forum, ik zal de komende tijd alle 'onzin' berichtjes van 'dit soort' verwijderen uit deze topic, maakt de topic gelijk een stuk korter ;)
.
Succes !
.
Vriendelijke groet,
JanS ;)
Janus
Berichten: 1406
Lid geworden op: wo jan 30, 2008 2:07 am
Contacteer:

Bericht door Janus »

Een klein stukje terug in deze topic plaatste ik de 'Rainbow'- indicator naar een idee van Mel Widner.
Bij die indicator hoort ook een oscilator welke ik daarom maar de 'Rainbow-oscillator' genoemd heb,
Omdat de Rainbow in het venster van de koersgrafiek tekent, en de oscillator in het venster onder de koersgrafiek heb ik er twee aparte ta-scripts voor gemaakt.
Het script voor de Rainbow is:

Code: Selecteer alles


{- Filename: Rainbow -}
{ Rainbow }
{ naar een idee van Mel Widner }
{ www.JSTAS.com }
{ *****************************************************************************}

Type
  T_Rainbow = Record
   MA1,MA2,MA3,MA4,MA5,MA6,MA7,MA8,MA9,MA10   : TSeries;
   MaT,CLMa1,CLMa2,CLMa3                      : Integer;
   CLMa4,CLMa5,CLMa6,CLMa7,CLMa8,CLMa9,CLMa10 : Integer;
  End;
Var
RB: T_Rainbow;
{******************************************************************************}
{* ---Functie om een TColor te selecteren doormiddel van een Integer getal----*}
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;
     19: Result := RGB(255,127,39);
     else
       Result := clGray;
   end;
 End;
//
{******************************************************************************}
{****************** MA-type selectie ******************************************}
Function MaSelec(Selec:Integer):TMaType;
Begin
 Case Selec Of
  0 : Result := MaSimple;
  1 : Result := MaWeighted;
  2 : Result := MaExponential;
 End;
End;
//
{*----------------------------------------------------------------------------*}
{*********************** Indicator eigenschappen ******************************}
Procedure Indic_Waarden();
Begin
  With Indicator DO
   Begin
    ScaleRange := SrCommon;
    NewBand    := False;
   End;
End;
 //
 {*****************************************************************************}
 {******************Fill Series ***********************************************}
Procedure vulseries();
Begin
    RB.MA1  := MA(     c,MaSelec(RB.MaT),2);
    RB.MA2  := MA(RB.MA1,MaSelec(RB.MaT),2);
    RB.MA3  := MA(RB.MA2,MaSelec(RB.MaT),2);
    RB.MA4  := MA(RB.MA3,MaSelec(RB.MaT),2);
    RB.MA5  := MA(RB.MA4,MaSelec(RB.MaT),2);
    RB.MA6  := MA(RB.MA5,MaSelec(RB.MaT),2);
    RB.MA7  := MA(RB.MA6,MaSelec(RB.MaT),2);
    RB.MA8  := MA(RB.MA7,MaSelec(RB.MaT),2);
    RB.MA9  := MA(RB.MA8,MaSelec(RB.MaT),2);
    RB.MA10 := MA(RB.MA9,MaSelec(RB.MaT),2);
End;
//
{******************************************************************************}
{************************ weergave lijnen**************************************}
Procedure Weergave(Lijn:TSeries; Kleur, Lijnwrd, LineW : Integer);
Var
i: Integer;
Begin
 With CreateLine(Lijn) Do
  Begin
   Color:= ClGray;
   Width:= LineW;
  End;
 For i := FirstValidIndex(Lijn) to BarCount-1 Do
  Begin
   SetBarColor(Lijnwrd-1,i,KleurSelec(Kleur));
  End;
End;
//
{******************************************************************************}
{**********************Gebruiker keuzes ***************************************}
Procedure UserChoices();
Var
KleurKze, MaKeuzes : String;
Begin
 MaKeuzes := 'Gewoon'      #9
             'Gewogen'     #9
             'Exponentieel' ;
 KleurKze :=  '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' #9
              'Orange' ;
RB.MaT:= CreateParameterSelect('Welk type gemiddelde :',MaKeuzes,0,False);
RB.CLMa1 :=1+CreateParameterSelect('Kleur van MA-1 :',KleurKze,13,False);
RB.CLMa2 :=1+CreateParameterSelect('Kleur van MA-2 :',KleurKze,18,False);
RB.CLMa3 :=1+CreateParameterSelect('Kleur van MA-3 :',KleurKze,17,False);
RB.CLMa4 :=1+CreateParameterSelect('Kleur van MA-4 :',KleurKze,7 ,False);
RB.CLMa5 :=1+CreateParameterSelect('Kleur van MA-5 :',KleurKze,6 ,False);
RB.CLMa6 :=1+CreateParameterSelect('Kleur van MA-6 :',KleurKze,15,False);
RB.CLMa7 :=1+CreateParameterSelect('Kleur van MA-7 :',KleurKze,0 ,False);
RB.CLMa8 :=1+CreateParameterSelect('Kleur van MA-8 :',KleurKze, 2,False);
RB.CLMa9 :=1+CreateParameterSelect('Kleur van MA-9 :',KleurKze,10,False);
RB.CLMa10:=1+CreateParameterSelect('Kleur van MA-10:',KleurKze,12,False);
End;
//
{******************************************************************************}
{******************** Koppelen procedures *************************************}
Procedure Rainbow();
Begin
Indic_Waarden();
UserChoices()
vulseries();

Weergave(RB.MA1 , RB.CLMa1 ,1, 2 );
Weergave(RB.MA2 , RB.CLMa2 ,2, 1 );
Weergave(RB.MA3 , RB.CLMa3 ,3, 1 );
Weergave(RB.MA4 , RB.CLMa4 ,4, 1 );
Weergave(RB.MA5 , RB.CLMa5 ,5, 1 );
Weergave(RB.MA6 , RB.CLMa6 ,6, 1 );
Weergave(RB.MA7 , RB.CLMa7 ,7, 1 );
Weergave(RB.MA8 , RB.CLMa8 ,8, 1 );
Weergave(RB.MA9 , RB.CLMa9 ,9, 1 );
Weergave(RB.MA10, RB.CLMa10,10,1 );

End;
//
{******************************************************************************}
{************************** Hoofdprogramma*************************************}
Begin
Rainbow();
End.
////////////////////////////////////////////////////////////////////////////////
Het script voor de Rainbow-oscillator is:

Code: Selecteer alles


{- Filename: Rainbow-Osc -}
{ Rainbow - Oscillator    }
{ naar een idee van Mel Widner }
{ Vertaling:  www.JSTAS.com    }
{ *****************************************************************************}

Type
  T_Rainbow = Record
   High,Low,MaxC,MinC,TotalAVG,BandPl,BandMin,RO  : TSeries;
   SMA                           : Array [0..10] of TSeries;
   SC                            : Array [1..11] of TSeries;
   MaT,clUB,clLB,clOU,clOD,clZ0,RfO,RfB,ClRf,RLT  : Integer;
   RefUp,RefDwn                                   : Tseries;
  End;
Var
RB: T_Rainbow;
{******************************************************************************}
{* ---Functie om een TColor te selecteren doormiddel van een Integer getal----*}
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;
     19: Result := RGB(255,127,39);
     else
       Result := clGray;
   end;
 End;
//
{******************************************************************************}
{****************** MA-type selectie ******************************************}
Function MaSelec(Selec:Integer):TMaType;
Begin
 Case Selec Of
  0 : Result := MaSimple;
  1 : Result := MaWeighted;
  2 : Result := MaExponential;
 End;
End;
//
{*----------------------------------------------------------------------------*}
{*********************** Indicator eigenschappen ******************************}
Procedure Indic_Waarden();
Begin
  With Indicator DO
   Begin
    NewBand      := True;
    RequiredBars :=   20;
   End;
End;
 //
{******************************************************************************}
{************************** Hoog_laag-Series **********************************}
procedure
HighLowSeries(SeriesAr: array of TSeries; var HighSeries, LowSeries: TSeries);
var
  BarCount, SCount, i, j: integer;
begin
  SCount := GetArrayLength(SeriesAr);
  if SCount = 0 then Exit;
  BarCount := GetArrayLength(SeriesAr[0]);
  HighSeries := CreateSeries(BarCount);
  LowSeries  := CreateSeries(BarCount);
  for i:=0 to BarCount-1 do
  begin
    HighSeries[i] := SeriesAr[0][i];
    LowSeries[i]  := SeriesAr[0][i];
    for j:=1 to SCount-1 do
    begin
    if IsValid(SeriesAr[j][i]) then
      begin
      if SeriesAr[j][i] > HighSeries[i] then HighSeries[i] := SeriesAr[j][i];
      if SeriesAr[j][i] < LowSeries[i]  then LowSeries[i]  := SeriesAr[j][i];
      end;
    end;
  end;
end;
//
{******************************************************************************}
{**************** Het gemiddelde van X-aantal-series***************************}
function AvgSeries(SeriesAr: array of TSeries; MAType: TMAType): TSeries;
var
  BarCount, SCount, i, j: integer;
  TmpSeries: TSeries;
begin
  SCount := GetArrayLength(SeriesAr);
  if SCount = 0 then Exit;
  BarCount := GetArrayLength(SeriesAr[0]);
  Result := CreateSeries(BarCount);
  TmpSeries := CreateSeries(SCount);
  for i:=0 to BarCount-1 do
   begin
    for j:=0 to SCount-1 do TmpSeries[j] := SeriesAr[j][i];
    TmpSeries := MA(TmpSeries, MAType, SCount);
    Result[i] := TmpSeries[SCount-1];
   end;
end;
//
 {*****************************************************************************}
 {******************Fill Series ***********************************************}
Procedure vulseries();
Begin
 RB.SMA[0]  := Close  ;
 RB.SMA[1]  := MA(    Close,MaSelec(RB.MaT),2);
 RB.SMA[2]  := MA(RB.SMA[1],MaSelec(RB.MaT),2);
 RB.SMA[3]  := MA(RB.SMA[2],MaSelec(RB.MaT),2);
 RB.SMA[4]  := MA(RB.SMA[3],MaSelec(RB.MaT),2);
 RB.SMA[5]  := MA(RB.SMA[4],MaSelec(RB.MaT),2);
 RB.SMA[6]  := MA(RB.SMA[5],MaSelec(RB.MaT),2);
 RB.SMA[7]  := MA(RB.SMA[6],MaSelec(RB.MaT),2);
 RB.SMA[8]  := MA(RB.SMA[7],MaSelec(RB.MaT),2);
 RB.SMA[9]  := MA(RB.SMA[8],MaSelec(RB.MaT),2);
 RB.SMA[10] := MA(RB.SMA[9],MaSelec(RB.MaT),2);

 RB.SC[1 ] := Close ;
 RB.SC[2 ] := ShiftSeries(Close,1);
 RB.SC[3 ] := ShiftSeries(Close,2);
 RB.SC[4 ] := ShiftSeries(Close,3);
 RB.SC[5 ] := ShiftSeries(Close,4);
 RB.SC[6 ] := ShiftSeries(Close,5);
 RB.SC[7 ] := ShiftSeries(Close,6);
 RB.SC[8 ] := ShiftSeries(Close,7);
 RB.SC[9 ] := ShiftSeries(Close,8);
 RB.SC[10] := ShiftSeries(Close,9);
 RB.SC[11] := ShiftSeries(Close,10);
    
 HighLowSeries(RB.SMA,RB.High,RB.Low);
 HighLowSeries(RB.SC,RB.MaxC,RB.MinC);

 RB.BandPl:=MultiplySeriesBy((DivideSeries((SubtractSeries(RB.High,RB.Low)),
                                     (SubtractSeries(RB.MaxC,RB.MinC)))),100.0);
                                     
 RB.BandMin := MultiplySeriesBy(RB.BandPl,-1.0);
 RB.TotalAVG := AvgSeries(RB.SMA,MaSelec(RB.MaT));
 
 RB.RO:= MultiplySeriesBy( (DivideSeries(SubtractSeries(Close,RB.TotalAVG),
                                      SubtractSeries(RB.MaxC,RB.MinC))),100.0);

 RB.RefUp := FillSeries((CreateSeries(BarCount)),RB.RfB);
 RB.RefDwn:= FillSeries((CreateSeries(BarCount)),RB.RfO*-1.0);

End;
//
{******************************************************************************}
{*************************** weergave lijnen **********************************}
Procedure Weergave(Lijn:TSeries; Kleur, Lijnwrd, Lijntype : Integer);
Var
i: Integer;
Begin
 With CreateLine(Lijn) Do
  Begin
   Color:= ClGray;
   If (Lijntype=1) Then LineType := LTBar;
   If (Lijntype=2) Then LineType := LTDot;
  End;
 For i := FirstValidIndex(Lijn) to BarCount-1 Do
  Begin
   SetBarColor(Lijnwrd,i,KleurSelec(Kleur));
   If (Lijn[i] <0.0)  And (Lijnwrd=2) Then
    SetBarColor (Lijnwrd,i,KleurSelec(RB.clOD));
  End;
End;
//
{******************************************************************************}
{**********************Gebruiker keuzes ***************************************}
Procedure UserChoices();
Var
KleurKze, MaKeuzes :String;
Begin
 MaKeuzes := 'Gewoon'      #9
             'Gewogen'     #9
             'Exponentieel' ;
             
 KleurKze :=  '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' #9
              'Orange'  ;
RB.MaT:= CreateParameterSelect('Welk type gemiddelde :',MaKeuzes,0,False);
RB.clUB:=1+CreateParameterSelect('Kleur van de Upper-band:',KleurKze,6 ,False);
RB.clLB:=1+CreateParameterSelect('Kleur van de Lower-band:',KleurKze,13,False);
RB.clOU:=1+CreateParameterSelect('Kleur Oscillator Positief:',KleurKze,6,False);
RB.clOD:=1+CreateParameterSelect('Kleur oscillator Negatief:',KleurKze,13,False);
RB.ClZ0:=1+CreateParameterSelect('Kleur van de Nullijn:',KleurKze,2,False);
RB.RfB := CreateParameterInteger('Geef % bovenste Ref.lijn:',0,100,23,False);
RB.RfO := CreateParameterInteger('Geef % onderste Ref.lijn:',0,100,23,False);
RB.ClRf:=1+CreateParameterSelect('Kleur van de Ref. lijn:',KleurKze,3,False);
End;
//
{******************************************************************************}
{******************** Koppelen procedures *************************************}
Procedure RainbowOsc();
Begin
 Indic_Waarden();
 UserChoices();
 vulseries();
 Weergave(RB.BandPl ,RB.clUB,0,0);
 Weergave(RB.BandMin,RB.clLB,1,0);
 Weergave(RB.RO,RB.clOU,2,1);
 Weergave(FillSeries(CreateSeries(Barcount),0),RB.clZ0,3,0);
 Weergave(RB.RefUp,RB.clRf,4,2);
 Weergave(RB.RefDwn,RB.clRF,5,2);
End;
//
{******************************************************************************}
{************************** Hoofdprogramma*************************************}
Begin
RainbowOsc();
End.
////////////////////////////////////////////////////////////////////////////////
.
Bovenstaand stukje code is de oscillator van de Rainbow code, welke gebruikt
kan worden samen met de Rainbow code.
.
.

Even een stukje grafiek van de oscillator:
Grafiek 1:

Afbeelding

Korte uitleg van de indicator:
Oscillator onder 0 is verkoop (rood)
Oscillator boven 0 is koop (groen)
De gestippelde lijntjes zijn een soort drempel; wanneer je bijvoorbeeld op verkoop zit, en de oscillator slaat om naar groen maar blijft onder het referentie niveau ( het stippellijntje) dan koop je niet,
Je koopt pas wanneer de staaf boven het referentie niveau komt.
Ik heb even als voorbeeld twee pijlen in de grafiek geplaatst.
De grafiek begint waarbij we even veronderstellen dat je zonder positie zit.
De eerste groen staaf vanaf links in de grafiek komt duidelijk boven de referentielijn, en je krijgt dan een koopsignaal van deze oscillator.
Je ziet dan verder naar rechts in de grafiek af en toe een rode Bar, maar die komen niet onder de referentielijn uit.
Pas bij de rode pijl ziet u een bar die onder de referentielijn uitkomt, en dat is dan een verkoop signaal volgens deze oscillator.
De banden kunnen op de gebruikelijke wijze bekeken worden, wanneer ze beide bijvoorbeeld naar de 0-lijn duiken wijst dat vaak op een mogelijke wijziging.
Ik heb even het de koersverloop boven de oscillator geplaatst.
Grafiek 2:

Afbeelding

Ik heb even twee rode verticale lijnen geplaatst waar het koop en verkoop signaal tot stand kwam.
*
Twijfelmoment zijn natuurlijk altijd die plaatsen in de grafiek waaar de rode bar onder de 0-lijn tevoorschijn komt ( of vice versa de groene lijn boven de 0-lijn).
De clou zit 'm in het instellen van het nveau van de referentielijn, en die waarde bepaal je vanuit het verleden.
Het beste is dan ook deze indicator samen met andere indicatoren te gebruiken, zet bijvoorbeeld de composite-index en de RSI(14) eronder, je kan dan sneller bepalen hoe je de omslag van de Rainbow indicator moet waarderen.
*
Is de indicator nuttig ?
Ik weet het nog niet, het was een idee van Mel Widner en ik dacht dat het misschien wel leuk was om even uit te werken in TA-script.
Ik hou de oscillator er voorlopig even bij, dan zie ik het vanzelf.
Succes ermee !
.
Vriendelijke groet,
JanS ;)
Plaats reactie