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

.
Code: Selecteer alles
{- Filename: Bell-Trend -}
// www.JSTAS.com
//September-2010
{*----------------------------------------------------------------------------*}
// Definïeren Functies en Procedures
{*----------------------------------------------------------------------------*}
{*-------------------------Definïeren B_Trend record -------------------------*}
Type
B_Trend = Record
HH,HL,LL,LH,SwLne : TSeries;
UpSw,hUpSw,ColorUp,ColorDwn : Integer;
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.ColorUp :=1+CreateParameterSelect('Geef Kleur UpSwing :',Kleurkze,6,False);
BT.ColorDwn:=1+CreateParameterSelect('Geef Kleur DwnSwing:',Kleurkze,13,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 BT.UpSw = 1 Then
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;
End;
//
{*----------------------------------------------------------------------------*}
{*---------------------------------DownTrend----------------------------------*}
Procedure DownTrend(i:Integer);
Begin
If BT.UpSw = 0 Then
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;
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));
End;
If BT.UpSw = 0 Then
Begin
BT.SwLne[i] := BT.LH[i];
SetBarColor(0,i,KleurSelec(BT.ColorDwn));
End;
End;
//
{*----------------------------------------------------------------------------*}
{*-------------------------------Teken-lijn-----------------------------------*}
Procedure TekenLijn();
Begin
With CreateLine(BT.SwLne) Do
Begin
Color:=CLGray;
LineType := LTOpen;
Width :=2;
End;
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
UpTrend(i);
DownTrend(i);
FillSWLine(i)
End;
BT.UpSw := BT.hUpSw;
End;
TekenLijn();
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
.