Systeem - hulp

Vragen en suggesties over Vesticode

Moderator: Perry

Systeem - hulp

Berichtdoor Paul M » wo 05 maart 2003, 8:47

Ik ben met het volgende systeem bezig, alleen het exit gedeelte doet niet wat ik wil dat het moet doen. Kan iemand mij uitleggen hoe je dit binnen Vestics doet?

Value function T3System (value xSeries[]=close, value XnumberOfBars1=6,value XnumberOfBars2=12,
value XnumberOfBars3=18,value xFactor=.7)begin
Value xAvg1[],xAvg2[],xAvg3[];
xAvg1 :=vGD(vGD(vGD(xSeries,xNumberOfBars1,xFactor),xNumberOfBars1,xFactor),xNumberOfBars1,xFactor);
xAvg2 :=vGD(vGD(vGD(xSeries,xNumberOfBars2,xFactor),xNumberOfBars2,xFactor),xNumberOfBars2,xFactor);
xAvg3 :=vGD(vGD(vGD(xSeries,xNumberOfBars3,xFactor),xNumberOfBars3,xFactor),xNumberOfBars3,xFactor);
if xAvg1 crosses above xAvg2 and xAvg2>xAvg3 then begin
Buy next bar at Open;
{if xAvg1<xAvg2 then ExitLong next bar at Open;}
end;
if xAvg1 crosses below xAvg2 and xAvg2<xAvg3 then begin
Sell next bar at Open;
{if xAvg1<xAvg2 then ExitShort next bar at Open;}
end;
end;
groetjes Paul


(Edited by Paul M at 1:28 pm op 5,mar. 2003)
Paul M
 
Berichten: 263
Geregistreerd op: vr 13 dec 2002, 23:21

Systeem

Berichtdoor FM » wo 05 maart 2003, 11:57

Paul,

Het laatste deel van je systeem is me niet helemaal duidelijk maar het is ook nog niet af.
Wat je sowieso anders moet doen is crosses above/below vervangen door vCrossesAbove vCrossesBelow.

Buy Next Bar at open kun je vervangen door Buy.

De volgende regel verandert dan van:

if xAvg1 crosses above xAvg2 and xAvg2>xAvg3 then begin
Buy next bar at Open;

in

if xAvg1 vcrossesabove xAvg2 and xAvg2>xAvg3 then buy;

succes,

Frans.
FM
 
Berichten: 113
Geregistreerd op: do 15 aug 2002, 12:58

Systeem

Berichtdoor acp010107 » wo 05 maart 2003, 12:14

Paul,
Is het niet zo dat:
- bij een stijging van een koers normaliter het korte
? gemiddelde eerst door het middellange gemiddelde
? en DAARNA door het lange gemiddelde stijgt en
- bij een daling van een koers normaliter het korte ?
? gemiddelde eerst door het middellange en DAARNA
? door het lange gemiddelde daalt.
- dus als jij voor een Buy test of op het moment dat ?
? de xAvg1 de xAvg2 kruist de xAvg2 ook groter is dan
? de xAvg3, dan mag daar normaliter niet aan worden
? voldaan.
- Dus ik denk dat je je test moet aanpassen. De test
? xAvg1 kruist xAvg2 en xAvg2 > xAvg3 zou voor mijn
? gevoel moeten zijn xAvg1 > xAvg2 en xAvg2 > xAvg3 ?
? (het nadeel van de test "crosses" in combinatie met
? een andere test is voor mijn gevoel dat op eenzelfde
? moment aan beide testen moet worden voldaan. In
? jouw situatie krijg je bijv. tijdens bar 100 een signaal
? van ?de Cross en tijdens bar 101 krijg je een signaal
? dat de ?xAvg2 groter is geworden dan de xAvg3. Het
? signaal van de Cross heb je dan echter niet meer.

Voor de Sell geldt het tegengestelde ( < i.p.v. >).

Plot de xAvg1/2/3 is, werkt wellicht verhelderend.

Kijk is in de TKA van jan. 2002 naar het artikel over het Trigonomics-systeem, want volgens mij maak je zoiets.

Ik hoop dat mijn verhaal klopt.

Veel succes,
Aad ? ? ?
acp010107
 
Berichten: 101
Geregistreerd op: di 05 maart 2002, 23:48

Systeem

Berichtdoor acp010107 » wo 05 maart 2003, 12:31

N.a.v. de opmerking van Frans: "Het laatste deel van je systeem is me niet helemaal duidelijk maar het is ook nog niet af " het volgende:
Als je een reactie intoetst op een bericht op het forum ?kan je scrollen in die berichten.
Het wonderlijke is dat de teksten die je dan ziet completer kunnen zijn dan die op het forum zelf. Toen ik het systeem van Paul op het forum zag miste ik ook wat. Maar bij het scrollen zag ik dat het wel compleet was. ?
Aad
acp010107
 
Berichten: 101
Geregistreerd op: di 05 maart 2002, 23:48

Systeem

Berichtdoor STM » wo 05 maart 2003, 14:52

Frans

Is de volgende commando regel niet de juiste ?

if ?(vcrossesAbove(xAvg1,xAvg2)) and xAvg2>xAvg3 then Buy on Close;
ipv ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? if xAvg1 vcrossesabove xAvg2 and xAvg2>xAvg3 then buy; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
Wat een foutmelding heeft.

STM
STM
 
Berichten: 11
Geregistreerd op: wo 05 feb 2003, 11:44

Systeem

Berichtdoor FM » wo 05 maart 2003, 17:13

Klopt, kopieer foutje.

De regel moet zijn.

if ?(vcrossesAbove(xAvg1,xAvg2)) and xAvg2>xAvg3 then Buy;

bedantk,

Frans.
FM
 
Berichten: 113
Geregistreerd op: do 15 aug 2002, 12:58

Systeem

Berichtdoor Paul M » do 06 maart 2003, 10:37

Wat ik eigenlijk wil is bijvoorbeeld het volgende:
koopzijde ?wanneer xAvg1 crosses above xAvg2 en bevestigd word xAvg2>xAvg3.
Exitlong xAvg2 crosses below xAvg3.
Verkoopzijde wanneer xAvg1 crosses below xAvg2 en bevestigd word door xAvg2<xAvg3.
ExitShort xAvg2 crosses above xAvg3.

Mijn vraag hoe doe je dit binnen Vestics?

groetjes Paul

ps. Frans het artikel uit deTKA, jan 2002 ken ik niet, ben wel benieuwd.
Paul M
 
Berichten: 263
Geregistreerd op: vr 13 dec 2002, 23:21

Systeem

Berichtdoor acp010107 » do 06 maart 2003, 14:51

Beste Paul,
Naar aanleiding van jouw vraag het volgende;
Het kruisen van lijnen kun je o.m. testen op de volgende manieren:
- via Crosses
- via het testen op groter/kleiner dan.
Voor-/nadelen:
- voordeel Crosses
? . je krijgt eenmaal een signaal en wel tijdens de bar waarin gekruist wordt
- nadeel crosses
? Omdat je alleen maar een signaal krijgt tijdens de bar waarin gekruist wordt,kunnen de volgende problemen ontstaan: ?
? . je handelt bijv. wanneer een koers door een MA gaat. Nu gebeurt dat bijv. 's-avonds om 19.45 uur of 's-morgens om 9.15 uur, terwijl jouw systeem alleen maar handelt tussen 09.30 en 19.00 uur. Omdat het signaal van het kruisen alleen maar gegeven wordt bij het kruisen, mist het systeem dit signaal, wordt er niet gehandeld en mis jij wellicht een dikke winst.
Oplossing: testen op kleiner/groter of de oplossing die Pierre laatst op het Forum gezet heeft.
? . je test gelijktijdig op 2 zaken, bijv. de koers moet de korte MA kruisen en de korte MA moet groter zijn dan de lange MA. Je krijgt dan alleen maar het goede signaal als beide zaken zich tijdens dezelfde bar voordoen. Maar gebeurt het kruisen in bar 1 en wordt de korte MA pas in bar 2 groter dan de lange MA, dan krijg je nooit een signaal om te handelen.
Hierbij moet wel opgemerkt worden dat naarmate de barperiode groter wordt dit risico kleiner wordt.
Oplossing: testen op kleiner/groter
- voordeel testen kleiner/groter
? Je hebt geen last van de nadelen zoals aangegeven bij Crosses
- nadeel testen kleiner/groter
? Bij het kruisen krijg je 1 signaal, en wel op het moment zelf. Daar kan je wat mee. Bij het testen op kleiner/groter krijg je echter bij iedere bar dat aan die conditie wordt voldaan een signaal. Daar is lastig en daar kan je niets mee. Je moet dus die test conditioneren, zodat je alleen maar een signaal krijgt bij de eerste keer dat aan de test wordt voldaan.

Aan de hand van het vorenstaande moet je m.i. na kunnen gaan of jouw systeem (met de correcties van Frans en STM) in jouw situatie voldoet of dat het gewijzigd of aangevuld moet worden.

P.S.
- Ik ben nog niet zo lang bezig op dit gebied. Het kan dus zijn dat mijn verhaal niet of niet helemaal klopt of niet compleet is.
Ik houd mij dus aanbevolen voor commentaar. De reden van mijn reactie op de vraag van Paul is dat ik de discussies gaande wil houden. Tot lering van mijzelf en anderen. ?
- als je je adres even e-mailt (acpronk@xs4all) kan ik je wat laten zien van het trigonomics-systeem
acp010107
 
Berichten: 101
Geregistreerd op: di 05 maart 2002, 23:48

Systeem

Berichtdoor FM » do 06 maart 2003, 16:01

Beste Paul,

Is dit wat je zoekt?

System: zPaul

Value function zPaul (value xSeries[]=close, value XnumberOfBars1=6, value XnumberOfBars2=12,
value XnumberOfBars3=18,value xFactor=.7) begin
value xAvg1[],xAvg2[],xAvg3[];

{***** Calculaties EMA's *****}
xAvg1 :=vGD(vGD(vGD(xSeries,xNumberOfBars1,xFactor),xNumberOfBars1,xFactor),xNumberOfBars1,xFactor);
xAvg2 :=vGD(vGD(vGD(xSeries,xNumberOfBars2,xFactor),xNumberOfBars2,xFactor),xNumberOfBars2,xFactor);
xAvg3 :=vGD(vGD(vGD(xSeries,xNumberOfBars3,xFactor),xNumberOfBars3,xFactor),xNumberOfBars3,xFactor);

{***** Long Positie Handling *****}
if xAvg1 > xAvg2 and xAvg2 > xAvg3 AND (xAvg3 > xAvg3[1] AND xAvg3[1] > xAvg3[2]) {trend validatie} then Buy; ?
if xAvg1 <xAvg2 OR (xAvg3 < xAvg3[1] AND xAvg3[1] < xAvg3[2]) then vExitLong; {Van de OR statements kan er ook een enkele geselecteerd worden}

if xAvg1 < xAvg2 and xAvg2 < xAvg3 AND (xAvg3 < xAvg3[1] AND xAvg3[1] < xAvg3[2]) {trend validatie} then Sell; ?
if xAvg1 > xAvg2 OR (xAvg3 > xAvg3[1] AND xAvg3[1] > xAvg3[2]) then vExitShort; {Van de OR statements kan er ook een enkele geselecteerd worden}

{***** Plot Statements *****}
plot1 (xAvg1,'xAvg1'+NumToStr(xNumberOfBars1));
plot2 (xAvg2,'xAvg2'+NumToStr(xNumberOfBars1));
plot3 (xAvg3,'xAvg3'+NumToStr(xNumberOfBars1));

end;



Function: vGD

Value function vGD (value xSeries[],value xNumberOfBars,value xFactor) begin
Value xX1[],xX2[];

xX1 :=xAverage(xSeries,xNumberOfBars)*(1+xFactor);
xX2 :=xAverage(xAverage(xSeries,xNumberOfBars),xNumberOfBars)*xFactor;
vGD :=xX1-xX2;
end;


Testresultaten op kwartierkoersen 2002
Total net profit ? ? ?41095.99 ?
Gross profit ? ? ? ? 177576.01 ?

Total # of trades ? ? ? ? 261 ?
Percentage profitable ? ? 42%
Number winning trades ? ? 109 ?
Number losing trades ? ? ?152

Largest winning trade ?7408.00 ?
Largest losing trade ?-4256.00
Average winning trade ?1629.14 ?
Average losing trade ? -897.89
Ration avg win/loss ? ? ? 1.81 ?
Max intraday drawdown ? ? 2.01
Profit factor ? ? ? ? ? ? 1.30 ?


De performance is nog niet echt fantastisch maar voor een trendvolgend systeem is het niet al te slecht. Je kunt nog naar de volgende mogelijkheden kijken.
Combinatie TEMA en EMA's, StopLoss en TrailingStop inbouwen, trend valideren met een andere indicator eventueel aparte waarden voor Long en Short posities

succes,

Frans.
FM
 
Berichten: 113
Geregistreerd op: do 15 aug 2002, 12:58

Systeem

Berichtdoor FM » do 06 maart 2003, 17:17

Beste Paul,

Allereerst een kleine correctie op de plot statements, hier moet xNumberOfBars resepectievelijk 1,2 en 3 zijn.

Ik heb het systeem getest op kwartierkoersen en dat leverde veel trades op, 261 in een jaar = drie per dag.
Het resultaat is echter wel redelijk robuust.

Wanneer je het test op dagkoersen gaat het totaal rendement omlaag maar is er ook sprake van een minder robuust systeem. Het toevoegen van StopLoss en TrailingStop opties kan de risico's echter inperken.

met groet,

Frans.
FM
 
Berichten: 113
Geregistreerd op: do 15 aug 2002, 12:58

Systeem

Berichtdoor Paul M » do 06 maart 2003, 23:55

Beste Frans en Aad,

Bedankt ?voor jullie reactie, het ziet er zeer leerzaam uit.
Ik zal het de komende dagen bestuderen en zonodig aanvullen.
Bedankt 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 8 gasten

cron