Page 1 of 1

2 codes

Posted: 29 Jul 2013 12:50
by dirk
op internet vond ik 2 codes terug die mij enorm interesseren, mbt dmi en adx dat ik op het internet vond, dit samen met de DMI stochastic. Kunnen deze aangepast worden, zodat ik deze kan gebruiken in futurestation?

Deze ivm stochastic

{- Filename: DMI_Stochastics -}

//DMI-Stochastic
// naar een idee van Barbara Star
// vertaling www.JSTAS.com
//versie 1.00 31-01-2013
//

Type DMI_Stochastic=Record
sOscil, sDiP, sDiM, sSlowK : TSeries;
BrUp, BrDown, Nv20Clr, OBClr : TColor;
PrBrClr, Nv20, OBOS : Boolean;
StchOB, StchOS, WNv20 : Integer;
End;
Var
ds : DMI_Stochastic;
///

Procedure Tekenlijn(niveau:Integer;Kleur:TColor;Lijnsoort:TTrendLineStyle);
Begin
With CreateTrendLine(0,niveau,0,niveau) Do
Begin
X1Pct := 0;
X2Pct := 100;
Color := Kleur;
Style := Lijnsoort;
End;
End;
///

Procedure Initialisatie();
Begin
Indicator.NewBand := True;
Indicator.RequiredBars := 50;
Tekenlijn(0,ClBlack,LsSolid);

End;
///

Procedure UserChoices();
Begin
ds.BrUp := CreateParameterColor('Kleur UpBar Oscillator',RGB(0,128,255));
ds.BrDown := CreateParameterCOlor('Kleur DownBar Oscillator',ClRed);
ds.PrBrClr:= CreateParameterBoolean('Koers-bar meekleuren?',True,False);
ds.Nv20 := CreateParameterBoolean('Niveau 20 lijn in Oscillator?',False,False);
ds.WNv20 := CreateParameterInteger('Waarde Niveau 20 lijn:',10,30,20,False);
ds.Nv20Clr := CreateParameterColor('Kleur niveau 20 lijn',ClBlack);
ds.OBOS := CreateParameterBoolean(' OB - OS lijn weergeven?' ,True,False);
ds.StchOB := CreateParaMeterInteger('OB niveau Stochastic',20,50,40,False);
ds.StchOS := CreateparameterInteger('OS niveau Stochastic',-50,-20,-40,False);
ds.OBClr := CreateParameterColor('Kleur OB en OS lijn:',ClBlack);

End;
///

Procedure DiOscillator();
Var
i : Integer;
Begin
DMI(H,L,C,10,ds.sDiP,ds.sDiM);
ds.sOscil := SubtractSeries(ds.sDiP,ds.sDiM);

With CreateLine(ds.sOscil) Do
Begin
Color:=clGray;
LineType := ltBar;
End;

For i := 10 To BarCount-1 Do
Begin
If (ds.sOscil>=0) Then
Begin
SetBarColor(0,i,ds.BrUp);
If ds.PrBrClr Then SetParentBarColor(i,ds.BrUp);
End;
If (ds.sOscil<0) Then
Begin
SetBarColor(0,i,ds.BrDown);
If ds.PrBrClr Then SetParentBarColor(i,ds.BrDown);
End;
End;

If ds.Nv20 Then
Begin
Tekenlijn(ds.WNv20,ds.NV20Clr,LsDot);
Tekenlijn(ds.WNv20*-1,ds.NV20Clr,LsDot);
End;

End;
///

Procedure
TekenPijltje(Xpos:TDateTime;Ypos:Real;ArrowDir:TArrowDirection;Kleur:TColor);
Begin
With CreateArrow(Xpos,Ypos,ArrowDir) Do
Begin
Color := Kleur;
End;
End;
/////

Procedure DiStochastic();
Var
i, OBd, OSd : Integer;
Begin
OBd := -1;
OSd := -1;
ds.sSlowK := StochasticsK(ds.sOscil,ds.sOscil,ds.sOscil,10,3);
ds.sSlowK := AddSeries(ds.sSlowK,FillSeries(CreateSeries(BarCount),-50));
CreateLine(ds.sSlowK).color:=clBlue;

If ds.OBOS Then
Begin
TekenLijn(ds.StchOB,ds.OBClr,LsDot);
TekenLijn(ds.StchOS,ds.OBClr,LsDot);
//End;
For i:= 20 To BarCount-1 Do
Begin
If (ds.sSlowK>ds.StchOB) Then OBd := 1;
If (ds.sSlowK<ds.StchOs) Then OSd := 1;
If (OBd=1) And (ds.sSlowK<ds.StchOB) Then
Begin
TekenPijltje(BarPosition,ds.StchOB,AdDown,ds.BrDown);
OBd := -1;
End;
If (OSd=1) And (ds.sSlowK>ds.StchOS) Then
Begin
TekenPijltje(BarPosition,ds.StchOS,AdUp,ds.BrUp);
OSd := -1;
End;
End;
End; ///////////
End;
///

Begin
Initialisatie();
Userchoices();
DiOscillator();
DiStochastic();

End.



deze van de dmi en adx is:



{- Filename: TAC_DMI -}

// Clusters van ADX - DMI+ - DMI- signalen
// www.JSTAS.com
// naar een idee van BC. Low CMT
// versie 1.00
//
Type
TacDMI=Record
wgv,OBADX,OSADX,lndk,
OB1DMIP,OS1DMIP,OS2DMIP,
ADX1p,ADX2p,ADX3p,DMI1p,DMI2p,DMI3p : Integer;
sADX1,sADX2,sADX3,
sDMIPl1,sDmiPl2,sDMIPl3,
sLijn1,sLijn2,sLijn3,sLijn4,
sLijn5,sLijn6,sLijn7,
sDMIMin1,sDMIMin2,sDMIMin3 : TSeries;
ClrTkst : TColor;

End;
Var
tc : TacDmi;
///


Procedure Userchoices();
Var
tonen : String;
Begin
Tonen := 'ADX cluster'#9
'DMI+ cluster'#9
'DMI- cluster';

tc.wgv := CreateparameterSelect('Weergave van:',tonen,0,False);
tc.lndk := CreateParameterInteger('Lijndikte OB-OS lijn',1,5,1,False);

tc.ADX1p := CreateParameterInteger('Periode ADX1:',1,99,3,False);
tc.ADX2p := CreateParameterInteger('Periode ADX2:',1,99,4,False);
tc.ADX3p := CreateParameterInteger('Periode ADX3:',1,99,5,False);
tc.OBADX := CreateParameterInteger('Niveau ADX OB2 lijn',70,99,90,False);
tc.OSADX := CreateParameterInteger('Niveau ADX OS2 lijn', 1,30,20,False);

tc.DMI1p := CreateParameterInteger('Periode DMI 1:',1,99, 5,False);
tc.DMI2p := CreateParameterInteger('Periode DMI 2:',1,99, 8,False);
tc.DMI3p := CreateParameterInteger('Periode DMI 3:',1,99,14,False);
tc.OB1DMIP := CreateParameterInteger('Niveau DMI+ OB lijn',40,60,50,False);
tc.OS1DMIP := CreateParameterInteger('Niveau DMI+ OS1 lijn',5,15,10,False);
tc.OS2DMIP := CreateParameterInteger('Niveau DMI+ OS2 lijn',1,10,5,False);

tc.ClrTkst := CreateParameterColor('Kleur tekst:',clLime);
End;
///

Procedure Initialisaties();
Begin
with Indicator do
begin
RequiredBars := 500;
HiddenParams := True;
end;
End;
///

Procedure Vulseries();
Begin
DMI(H,L,C,tc.DMI1p,tc.sDMIPl1,tc.sDMIMin1);
DMI(H,L,C,tc.DMI2p,tc.sDMIPl2,tc.sDMIMin2);
DMI(H,L,C,tc.DMI3p,tc.sDMIPl3,tc.sDMIMin3);
tc.sADX1 := ADX(High, Low, Close, tc.ADX1p);
tc.sADX2 := ADX(High, Low, Close, tc.ADX2p);
tc.sADX3 := ADX(High, Low, Close, tc.ADX3p);
tc.sLijn1 := FillSeries(CreateSeries(BarCount),tc.OBADX);
tc.sLijn2 := FillSeries(CreateSeries(BarCount),tc.OSADX);
tc.sLijn3 := FillSeries(CreateSeries(BarCount),tc.OB1DMIP);
tc.sLijn4 := FillSeries(CreateSeries(BarCount),tc.OS1DMIP);
tc.sLijn5 := FillSeries(CreateSeries(BarCount),tc.OS2DMIP);
tc.sLijn6 := FillSeries(CreateSeries(BarCount),30);
tc.sLijn7 := FillSeries(CreateSeries(BarCount),70);
End;
///

Procedure Tekst(V1,H1:Integer;naam:String;Klr:TColor);
Begin
With CreateText(0,0,naam) DO
Begin
X1Pct := V1;
Y1Pct := H1;
Color := Klr;
Font.size := 8;
End;
End;
///

Procedure Lijn(Serie:TSeries;Naam:String;Klr:TColor;Dkt:Integer;LtT:TLineType);
Begin
With CreateLine(Serie) Do
Begin
Name := Naam;
Color := Klr;
Width := Dkt;
LineType := LtT;
End;
End;
///

Procedure tekenlijntjes();
Begin
Case tc.wgv Of
0: Begin
Lijn(tc.sADX1,'Lijn1',clAqua ,1,lsSolid);
Lijn(tc.sADX2,'Lijn2',clYellow,1,lsSolid);
Lijn(tc.sADX3,'Lijn3',clRed ,1,lsSolid);
Lijn(tc.sLijn1,'OB2' ,clGray ,tc.lndk,lsDash );
Lijn(tc.sLijn2,'OS2' ,clGray ,tc.lndk,lsDash );
Lijn(tc.sLijn6,'OB1' ,clGray ,tc.lndk,lsSolid);
Lijn(tc.sLijn7,'OS1' ,clGray ,tc.lndk,lsSolid);
Tekst(1,9,'ADX',tc.ClrTkst);
End;
1: Begin
Lijn(tc.sDMIPl1,'Lijn1',clAqua ,1,lsSolid);
Lijn(tc.sDMIPl2,'Lijn2',clYellow,1,lsSolid);
Lijn(tc.sDMIPl3,'Lijn3',clRed ,1,lsSolid);
Lijn(tc.sLijn5,'OS2',clGray,tc.lndk,lsDash);
Lijn(tc.sLijn3,'OB1',clGray,tc.lndk,lsDash);
Lijn(tc.sLijn4,'OS1',clGray,tc.lndk,lsDash);
Tekst(1,9,'DMI+',tc.ClrTkst);
End;
2: Begin
Lijn(tc.sDMIMin1,'Lijn1',clAqua ,1,lsSolid);
Lijn(tc.sDMIMin2,'Lijn2',clYellow,1,lsSolid);
Lijn(tc.sDMIMin3,'Lijn3',clRed ,1,lsSolid);
Lijn(tc.sLijn5,'OS2',clGray,tc.lndk,lsDash);
Lijn(tc.sLijn3,'OB1',clGray,tc.lndk,lsDash);
Lijn(tc.sLijn4,'OS1',clGray,tc.lndk,lsDash);
Tekst(1,9,'DMI-',tc.ClrTkst);
End;
End;
End;
///

Begin
Userchoices();
Initialisaties();
Vulseries();
Tekenlijntjes();
End.

Re: 2 codes

Posted: 31 Jul 2013 10:55
by dirk
ik weet niet goed of het zal lukken, hoop echt van wel, bedoeling is dus om de DMI- en + in een afzonderlijk venster te krijgen en 3verschillende tijdsframes van elk in 1 venster te krijgen, hopelijk lukt het!!!

Re: 2 codes

Posted: 02 Aug 2013 12:02
by WHS Support
Beste Dirk,

Deze programmaties zijn zeker in Express om te zetten maar dat zal door een programmeur moeten worden gedaan omdat dit toch wat meer tijd zal kosten.

Met de volgende programmeurs werken wij al geruime tijd samen en hebben we goede ervaringen:

http://www.4sure.fr
info [at] 4sure.fr
Support in Nederlands, Frans en Engels.

http://www.signalworks.de
info [at] signalworks.de
Support in Duits en Engels.

Met vriendelijke groet,
Bastiaan
WHS