Een EMA indicator in vier kleuren

Vragen en suggesties over Vesticode

Moderator: Perry

Een EMA indicator in vier kleuren

Berichtdoor cdjansen » do 09 feb 2006, 18:49

Hallo

Ik heb ergens code opgepikt, ik meen van Pierre en ik heb een kleur variant gemaakt van de EMA
indicator. Dit werkt goed;

value function EMAColor (
value xSeries[] { series used in calculation } = Close,
value xNumberOfDays { bars used in calculation } = 20)
begin
value xValue[],xI,xY,xCount;
xValue := vEMA(xSeries,xNumberOfDays);
xI=0;
xY=0;
condition1= close>xValue;
condition2= close<xValue;
if Condition1 then begin
xY=0;
xI=xI[1]+1;
for xCount=0 to xI do begin Plot1[xCount]=xValue[xCount];
end else plot1=_NA;
plot1(xValue,'EMAColor');
end;

if Condition2 then begin
xI=0;
xY=xY[1]+1;
for xCount=0 to xY do begin Plot2[xCount]=xValue[xCount];
end else plot2=_NA;
Plot2(xValue,'EMAColor');
end;
end;

Ik heb geprobeerd een indicator maken, die in b.v. in de ROC subgrafiek is te plaatsen.
Ik wil een horizontale lijn krijgen, die de sterkte van een stijging of daling van een EMA curve aangeeft in kleuren.

Mijn code:

value function EMAColorHor (
value xSeries[] { series used in calculation } = Close,
value xNumberOfDays { bars used in calculation } = 20,
value xNiveau_01 = 0
)
begin
value xValue[],xI,xY,xZ,xZZ,xCount,xWaarde,xOffset;
if xNiveau_01 = 0 then xOffset:=100 else xOffset:=-100;
xValue := vEMA(xSeries,xNumberOfDays);
xI=0; xY=0; xZ=0; xZZ=0;
xWaarde:=xValue[0]-xValue[1];
{in de vier conditions zijn alle waarde gevangen}
condition1= xWaarde>.00001; {relatief sterke stijging}
condition2=(xWaarde<-.00001); {relatief sterke daling}
condition3= (xWaarde>=0 and xWaarde<=.00001); {lichte stijging}
condition4= (xWaarde<0 and xWaarde>=-.00001); {lichte daling}

if Condition1 then begin
xY=0;
xI=xI[1]+1;
for xCount=0 to xI do begin
Plot1[xCount]=xOffset;
end else plot1=_NA;
plot1(xOffset);
end;

if Condition2 then begin
xI=0;
xY=xY[1]+1;
for xCount=0 to xY do begin
Plot2[xCount]=xOffset-10; {-10 om de lijnen tijdens het testen, te scheiden}
end else plot2=_NA;
Plot2(xOffset-10);
end;

if Condition3 then begin
xZZ=0;
xZ=xZ[1]+1;
for xCount=0 to xZ do begin
Plot3[xCount]=xOffset-20;
end else plot3=_NA;
Plot3(xOffset-20);
end;

if Condition4 then begin
xZ=0;
xZZ=xZZ[1]+1;
for xCount=0 to xZZ do begin
Plot4[xCount]=xOffset-30;
end else plot4=_NA;
Plot4(xOffset-30);
end;

end;

Ik de indicator getest op de EURUSD en krijg dan de vier kleuren.
De vier de gekleurde lijnen blijken gedeeltelijk samen te vallen.

Ik heb ook nog gekeken bij AEX. Ik krijg daar maar twee kleuren, maar die vallen ook
gedeeltelijk samen.
Wat kan ik veranderen om de lijnstukken aaneen te laten sluiten?

Vr. gr.

Cor
cdjansen
 
Berichten: 31
Geregistreerd op: vr 08 feb 2002, 21:05
Woonplaats: zeist

Berichtdoor Pierre » do 09 feb 2006, 20:59

Hallo Cor,

Je kunt op dit forum code apart formateren. Dat ziet er dan als volgt uit...

Code: Selecteer alles
if Condition1 then begin
  xY=0;
  xI=xI[1]+1;
  plot1(xOffset);
  end;


Je doet dat door de code eerst te tikken (of te plakken), deze vervolgens te markeren en op de knop 'Code' boven het berichtenvenster te klikken. Je ziet daar ook speciale knoppen om iets vet of cursief weer te geven, URL's te markeren, enz.

Nu naar je vraag... ik heb de indicator even in Vestics geplakt, en kreeg toen afwisselend een rode en blauwe lijn. Nadat ik de +10, +30 en +40 had verwijderd kwamen de rode en blauwe lijn op hetzelfde niveau te liggen en kreeg ik een doorgetrokken lijn die soms rood was en soms blauw. Dat is toch wat je wilde?

vr. groeten,
Pierre Dolmans
Vestics helpdesk
Pierre
 
Berichten: 412
Geregistreerd op: di 02 okt 2001, 9:46
Woonplaats: Leerdam

Berichtdoor cdjansen » do 09 feb 2006, 21:40

Hallo Pierre,

Ik heb voor de tekst voor het bericht notepad gebruikt en de code was toen keurig
geformateerd. Bij het plaatsen op het forum was mij niet opgevallen, dat de layout was
veranderd, sorry.


Ik had de waarden -10 -20 -30, toegevoegd zodat opviel dat op sommige plaatsen twee lijnen op
hetzelfde moment en rood en blauw waren.

Inderdaad is het vervangen van "Plot1[xCount]=xOffset;" door "Plot1(xOffset);" de oplossing; Bedankt voor je hulp.

vr. gr.

Cor
cdjansen
 
Berichten: 31
Geregistreerd op: vr 08 feb 2002, 21:05
Woonplaats: zeist


Keer terug naar Vesticode

Wie is er online

Gebruikers op dit forum: Geen geregistreerde gebruikers en 1 gast

cron