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.
			
			
									
						
										
						2 codes
Re: 2 codes
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!!!
			
			
									
						
										
						- WHS Support
- Posts: 2443
- Joined: 14 Feb 2013 10:27
Re: 2 codes
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
			
			
									
						
										
						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
