CMO werkt niet meer?

Vragen en suggesties over Vesticode

Moderator: Perry

CMO werkt niet meer?

Berichtdoor Jo » di 01 feb 2005, 10:09

Hoi,

Vandaag stel ik vast dat de funktie CMO niet meer werkt! Waarom???


----------------Funktie CMO--------------

value function CMO(value xSeries[]=Close, value xNumberOfBars=10, ?value xInclZeros=true) begin
{--- Declare the local variables ---}
?value xSumUp,xSumDown;
{--- Initialize the variables ---}
?xSumUp:=0;
?xSumDown:=0;
{--- Calculate the value based on this parameter InclZeros ---}
?if xInclZeros=true then ?begin
? ?xSumUp := Summation((xSeries-xSeries[1])>>0, xNumberOfBars);
? ?xSumDown := -(Summation((xSeries-xSeries[1])<<0, xNumberOfBars)); ? ?
?end
?else begin
{--- Declare the variables, only needed for current scope ---}
? ?value xCounterUp,xCounterDown,xI;
{--- Initialize the variables ---}
? ?xI := 0;
? ?xCounterUp := 0;
? ?xCounterDown := 0;
{--- Loop to calculate the quantities - BarsUp and BarsDown ---}
? ?while (xCounterUp+xCounterDown < xNumberOfBars) do
? ?begin
? ? ?if (xSeries[xI] > xSeries[xI+1]) then
? ? ?begin
? ? ? ?xSumUp:=xSumUp + (xSeries[xI] - xSeries[xI+1]);
? ? ? ?xCounterUp := xCounterUp + 1;
? ? ?end
? ? ?else if (xSeries[xI] < xSeries[xI+1]) then
? ? ?begin
{--- Momentum is subtracted since it is negative and we want a positive sum ---}
? ? ? ?xSumDown := xSumDown - (xSeries[xI] - xSeries[xI+1]);
? ? ? ?xCounterDown := xCounterDown + 1;
? ? ?end;
? ? ?xI := xI + 1;
? ?end;

{--- Now both sums are calculated. ?Assign CMO to return ---}
?CMO := 100 *((xSumUp - xSumDown) / (xSumUp + xSumDown));

-----------Indicator----------

value function zCMO(value xSeries[]=Close, value xNumberOfBars=10,value xInclZeros=true)
begin
plot1(CMO( xSeries,xNumberOfBars,xInclZeros),'CMO');
end;

Kan iemand helpen??,

Jo
Jo
 
Berichten: 44
Geregistreerd op: wo 07 jan 2004, 14:00

CMO werkt niet meer?

Berichtdoor Paul M » di 01 feb 2005, 21:46

Hallo Jo,

Ik heb de functie aangepast.

Functie:

value function zzCMO(value xSeries[]=Close, value xNumberOfBars=10, ?value xInclZeros=true) begin
{--- Declare the local variables ---}
value xSumUp,xSumDown;
{--- Initialize the variables ---}
xSumUp:=0;
xSumDown:=0;
{--- Calculate the value based on this parameter InclZeros ---}
if xInclZeros=true then ?begin
? xSumUp := Summation((xSeries-xSeries[1])>>0, xNumberOfBars);
? xSumDown := -(Summation((xSeries-xSeries[1])<<0, xNumberOfBars)); ? ?
end
else begin
{--- Declare the variables, only needed for current scope ---}
? value xCounterUp,xCounterDown,xI;
{--- Initialize the variables ---}
? xI := 0;
? xCounterUp := 0;
? xCounterDown := 0;
{--- Loop to calculate the quantities - BarsUp and BarsDown ---}
? while (xCounterUp+xCounterDown < xNumberOfBars) do
? begin
? ? if (xSeries[xI] > xSeries[xI+1]) then
? ? begin
? ? ? xSumUp:=xSumUp + (xSeries[xI] - xSeries[xI+1]);
? ? ? xCounterUp := xCounterUp + 1;
? ? end
? ? else if (xSeries[xI] < xSeries[xI+1]) then
? ? begin
{--- Momentum is subtracted since it is negative and we want a positive sum ---}
? ? ? xSumDown := xSumDown - (xSeries[xI] - xSeries[xI+1]);
? ? ? xCounterDown := xCounterDown + 1;
? ? end;
? ? xI := xI + 1;
? end;
? ?end;
{--- Now both sums are calculated. ?Assign CMO to return ---}
zzCMO := 100 *((xSumUp - xSumDown) / (xSumUp + xSumDown));
end;

Paul
Paul M
 
Berichten: 263
Geregistreerd op: vr 13 dec 2002, 23:21

CMO werkt niet meer?

Berichtdoor Jo » wo 02 feb 2005, 16:47

Paul,

Bedankt voor de reaktie, maar helaas werkt deze zCMO nog steeds niet. Nog steeds de nul-waarde.

Ik stel me ook de vraag wat doet die teller " xCounterUp := xCounterUp + 1; ?& ?xCounterDown := xCounterDown + 1; ?"
in deze code ,daar er toch nergens gebruik wordt van gemaakt?

Jo
Jo
 
Berichten: 44
Geregistreerd op: wo 07 jan 2004, 14:00

CMO werkt niet meer?

Berichtdoor Paul M » wo 02 feb 2005, 23:13

Hallo Jo,

Ik weet niet wat er bij jou fout gaat maar bij mij functioneert de zzCMO functie,
De counterup en counterdown zijn tellers, ze tellen het aantal keren dat "xSeries[xI] > xSeries[xI+1]) ", bv close groter ?dan ?close[1] dan wordt de variabele countup vermeerdert met de waarde 1. Deze waarden worden gebruikt in de ?WHILE instructie:
"while (xCounterUp+xCounterDown < xNumberOfBars) do begin".

Paul

ps. Heb je de indicator tekst aangepast,plot1(CMO( xSeries,xNumberOfBars,xInclZeros),'CMO'); ?moet worden plot1(zzCMO( xSeries,xNumberOfBars,xInclZeros),'CMO');

(Edited by Paul M at 8:34 am op 3,feb. 2005)
Paul M
 
Berichten: 263
Geregistreerd op: vr 13 dec 2002, 23:21

CMO werkt niet meer?

Berichtdoor Jo » do 03 feb 2005, 10:16

Paul,

Jammer genoeg bij mij werkt deze code niet,nog steeds de waarde Nul als resultaat! ? ?Reden ??

Als ik volgende code verwijder :

" ? value xInclZeros=true "

"" {--- Calculate the value based on this parameter InclZeros ---}
if xInclZeros=true then ?begin
?xSumUp := Summation((xSeries-xSeries[1])>>0, xNumberOfBars);
?xSumDown := -(Summation((xSeries-xSeries[1])<<0, xNumberOfBars)); ? ?
end
else begin ?"""


Krijg ik nu wel waarden analoog met volgende berekening
CMO =100*((Close-Close[xBars]) /(Summation(AbsValue(Close-Close[1]),xBars)));

Nu is mijn bedenking, geef deze code nogwel dezelfde waarden als voor voorgaande code (zonder deze verwijderingen)?



value function zfCMO (value xSeries[]=Close,value xNumberOfBars=10)begin
value xCounterUp,xCounterDown,xI,xSumUp,xSumDown;
xSumUp:=0; xSumDown:=0; xCounterUp := 0; xCounterDown := 0;
xI :=0;
while (xCounterUp + xCounterDown < xNumberOfBars do
begin
? if (xSeries[xI] > xSeries[xI+1]) then begin
? ?xSumUp:=xSumUp + (xSeries[xI] - xSeries[xI+1]);
? ?xCounterUp := xCounterUp + 1;
? end
? else if (xSeries[xI] < xSeries[xI+1]) thenbegin
? ?xSumDown := xSumDown - (xSeries[xI] - xSeries[xI+1]);
? ?xCounterDown := xCounterDown + 1;
? end;
? xI := xI + 1;
end;
CMO := 100 *((xSumUp - xSumDown) / (xSumUp + xSumDown));
end;

Dank voor de uitleg van de teller.

Jo
Jo
 
Berichten: 44
Geregistreerd op: wo 07 jan 2004, 14:00

CMO werkt niet meer?

Berichtdoor Paul M » do 03 feb 2005, 12:11

Jo,

Hetzelfde probleem had ik toen ik de originele code,zoals door jou gepost, gebruikte. Door de aanpassing was dit verholpen. Heb je de indicator aangepast? Plot1(CMO veranderen in Plot1(zzCMO, doe je dit niet dan roept hij nog steeds de functie CMO aan en blijft het probleem bestaan.

Paul
Paul M
 
Berichten: 263
Geregistreerd op: vr 13 dec 2002, 23:21

CMO werkt niet meer?

Berichtdoor Jo » do 03 feb 2005, 12:15

Paul,

Jawel, ik heb alles verandert.

Jo
Jo
 
Berichten: 44
Geregistreerd op: wo 07 jan 2004, 14:00

CMO werkt niet meer?

Berichtdoor Paul M » do 03 feb 2005, 12:59

Jo,

Heel vreemd, zoals ik al eerder schreef bij mij functioneert het. Om jouw vraag te beantwoorden, de code is tweeledig. Je kunt ervoor kiezen, middels xInclzeros, om ook in het gemiddelde de 0 waarden mee te tellen. Als de close <close[1] dan wordt bij de variabele xSumup voor die bar de waarde 0 opgetelt. Het mag dus duidelijk zijn dat dit een andere uitkomst geeft dan wanneer ?alleen waarden optelt worden waarbij de close alleen maar groter is dan ?de close[1].

Paul

(Edited by Paul M at 1:00 pm op 3,feb. 2005)
Paul M
 
Berichten: 263
Geregistreerd op: vr 13 dec 2002, 23:21

CMO werkt niet meer?

Berichtdoor Paul M » do 03 feb 2005, 13:01

Jo,

Heel vreemd, zoals ik al eerder schreef bij mij functioneert het. Om jouw vraag te beantwoorden, de code is tweeledig. Je kunt ervoor kiezen, middels xInclzeros, om ook in het gemiddelde de 0 waarden mee te tellen. Als de close <close[1] dan wordt bij de variabele xSumup voor die bar de waarde 0 opgetelt. Het mag dus duidelijk zijn dat dit een andere uitkomst geeft dan wanneer ?alleen waarden optelt worden waarbij de close alleen maar groter is dan ?de close[1].

Paul

(Edited by Paul M at 1:00 pm op 3,feb. 2005)
Paul M
 
Berichten: 263
Geregistreerd op: vr 13 dec 2002, 23:21

CMO werkt niet meer?

Berichtdoor Paul M » do 03 feb 2005, 13:03

Jo, De tekst wordt bij mij niet volledig weergegeven,
via edit kun je het volledige antwoord lezen.
Paul
Paul M
 
Berichten: 263
Geregistreerd op: vr 13 dec 2002, 23:21

CMO werkt niet meer?

Berichtdoor Jo » zo 13 feb 2005, 19:28

Hoi Paul,

Na lang zoeken krijg ik plots resultaat, als ik de code aanpas met het volgende:

if (xInclZeros) ?then ?begin ?
.....

in plaats van

if xInclZeros=true then ?begin
....

Reden hiervoor ..... ??

Jo
?
Jo
 
Berichten: 44
Geregistreerd op: wo 07 jan 2004, 14:00

CMO werkt niet meer?

Berichtdoor Paul M » ma 14 feb 2005, 11:47

Hoi Jo,

Geen idee???????
Het is beide hetzelfde, of ik nu schrijf "if xInclZeros ?then ?begin " of "if xInclZeros=true then ?begin". In beide gevallen zeg je "als xInclZeros=waar dan doe het volgende".

Paul ?
Paul M
 
Berichten: 263
Geregistreerd op: vr 13 dec 2002, 23:21


Keer terug naar Vesticode

Wie is er online

Gebruikers op dit forum: Geen geregistreerde gebruikers en 2 gasten

cron