ROCEMA - verbeteren/aanpassen ROCEMA, Interesse???

Gebruikers bij elkaar brengen

Moderator: Perry

ROCEMA

Berichtdoor Paul M » za 17 mei 2003, 14:06

Hallo Douwe en de rest,

Een eerste aanzetje.

Op de AEX, op dagbasis:

Value function zNewROC (value xSeries[]=Close,
value xROCBars=15,value xEMABars=6,value Length1=40,value Length2=11)begin
Value xEMA[], xROCEMA[], xTrend,;

xEMA := XAverage(Close,xEMABars);
xROCEMA := 100*xEMA/xEMA[xROCBars]-100;
xTrend := XAverage(Close,Length1);

?{---- check for signals ----}
?if xROCEMA>0 then begin
if Close>xTrend[Length2] AND Close < Close[Length2] AND Close > Close[Length1 + Length2]then Buy ?;
? ?end;
?if xROCEMA<0 then begin
? if Close<xTrend[Length2] AND Close > Close[Length2] AND Close < Close[Length1 + Length2]then Sell ;
end;
?end;

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

ROCEMA

Berichtdoor Paul M » za 17 mei 2003, 14:09

Ik zie net dat de formule niet correct weergegeven wordt. Even via edit.

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

ROCEMA

Berichtdoor acp010107 » ma 19 mei 2003, 10:44

Paul,
- zowel stoplevel als profitlevel weggelaten. Waarom ?
? Wordt het resultaat daardoor beter ?


Wellicht is het zinvol om bij een passing van een systeem ook even te vermelden wat het resultaat daarvan is.

- ?bij "check for signals" test je of je long of short moet
? ?gaan. Maar je test niet of je al niet long of short bent.
? ?Ik ben daarom bang dat wanneer bijv. 10
? ?opeenvolgende bars voldoen aan de test om long te
? ?gaan, je ook 10 keer een koopsignaal krijgt. Het kan
? ?zijn dat je denkt als het goed gaat moet ik bijkopen,
? ?maar dat ik volgens mij niet je bedoeling (hetzelfde
? ?geldt ook natuurlijk ook voor signalen om short te
? ?gaan). ?
? ?Of zie ik het soms verkeerd ?
Aad
acp010107
 
Berichten: 101
Geregistreerd op: di 05 maart 2002, 23:48

ROCEMA

Berichtdoor acp010107 » ma 19 mei 2003, 10:45

Paul,
- zowel stoplevel als profitlevel weggelaten. Waarom ?
? Wordt het resultaat daardoor beter ?


Wellicht is het zinvol om bij een aanpassing van een systeem ook even te vermelden wat het resultaat daarvan is.

- ?bij "check for signals" test je of je long of short moet
? ?gaan. Maar je test niet of je al niet long of short bent.
? ?Ik ben daarom bang dat wanneer bijv. 10
? ?opeenvolgende bars voldoen aan de test om long te
? ?gaan, je ook 10 keer een koopsignaal krijgt. Het kan
? ?zijn dat je denkt als het goed gaat moet ik bijkopen,
? ?maar dat ik volgens mij niet je bedoeling (hetzelfde
? ?geldt ook natuurlijk ook voor signalen om short te
? ?gaan). ?
? ?Of zie ik het soms verkeerd ?
Aad
acp010107
 
Berichten: 101
Geregistreerd op: di 05 maart 2002, 23:48

ROCEMA

Berichtdoor Paul M » ma 19 mei 2003, 12:45

Hallo Aad,

Je bedoelt dit.
Het toevoegen van marketposition<>1 of -1 gaf geen verschil.
Value function zNewROC (value xSeries[]=Close,
value xROCBars=15,value xEMABars=6,value Length1=40,value Length2=11,value xProfit=17, value xStopLoss=21)begin
Value xEMA[], xROCEMA[], xTrend, xStopLevel, xProfitLevel,xExitprice;

xEMA := XAverage(Close,xEMABars);
xROCEMA := 100*xEMA/xEMA[xROCBars]-100;
xTrend := XAverage(Close,Length1);

?{---- check for signals ----}
?if marketposition<>1 and xROCEMA>0 then begin
if ?Close>xTrend[Length2] AND Close < Close[Length2] AND Close > Close[Length1 + Length2]then Buy ?;
? ?end;
?if marketposition<>-1 and xROCEMA<0 then begin
? if ?Close<xTrend[Length2] AND Close > Close[Length2] AND Close < Close[Length1 + Length2]then Sell ;
end;
{---- handle long site ----}
?if MarketPosition=1 then begin
xExitprice:=Entryprice-(Entryprice/100)*xStopLoss;
? ?xProfitLevel = Entryprice+(Entryprice/100)*xProfit;
? ?
? ?if Close>xProfitLevel or Close<xExitprice then exitlong; ?
? ?end;

?{---- handle short site ----}
?if MarketPosition=-1 then begin
xExitprice:=Entryprice+(Entryprice/100)*xStopLoss;
? ?xProfitLevel = Entryprice-(Entryprice/100)*xProfit;
?
? ?if Close<xProfitLevel or Close>xExitprice then exitshort; ?
? ?end;
?end;
Graag weer enig commentaar, alvast bedankt.
Groetjes Paul.

Het valt me op dat vaak delen van de tekst niet worden weergegen, zo ook bij deze.
Voor de volledige tekst weer via edit.

(Edited by Paul M at 9:14 am op 20,mei 2003)
Paul M
 
Berichten: 263
Geregistreerd op: vr 13 dec 2002, 23:21

ROCEMA

Berichtdoor acp010107 » ma 19 mei 2003, 14:59

Hoi Paul,
- misschien er even bijzetten dat de profit en stoploss
? in % moeten worden opgegeven (omdat het bij de
? originele rocema punten zijn)
- if ?Close>xTrend[Length2] AND Close < Close
? [Length2] AND Close > Close[Length1 + Length2]then
? Buy ?;

? moet close<close[length2] niet zijn groter dan ipv
? kleiner dan

? close > close[length1+length2]
? Bedoel je hiermee het gemiddelde van close[length1]
? en close[length2] ?
? Zo ja, moet je ze dan niet apart benoemen en door 2
? delen ?
? Ik heb geen idee wat de uitkomst van jouw codering
? is.
?
? Dezelfde ?vragen heb ik voor de shortkant(zij het dan
? deels met een tegengesteld teken).
? Aad
acp010107
 
Berichten: 101
Geregistreerd op: di 05 maart 2002, 23:48

ROCEMA

Berichtdoor ReneV » ma 19 mei 2003, 15:09

Ik heb jullie aanpassingen tov het originele ROCTrend systeem nog niet getest in TS. Maar ik heb zelf op EStoxx futures data getest en de drawdown drastisch terug gebracht door een limiet order te gebruiken. De limit is dan een kort evg +/- factor * range. Zo voorkom je dat je in een choppy markt een extreme waarde koopt. Ook het toevoegen van een break even stop helpt in het veilig stellen van de winst.

Ter indicatie:
Stoxx 01-07-98/31-03-03 80.122,52 / DD 5141,20 bij 50 euro kosten en slippage
Dax
DAX 01-01-97/31-03-03 384636,75 / DD 17883,75 bij 100 euro kosten en slippage

AEX nooit getest want ik heb geen itd data.

Hou er rekening mee dat een serie van 10 verliezers bepaald geen uitzondering is op vooral de EStoxx.
Groetjes Ren
ReneV
 
Berichten: 36
Geregistreerd op: wo 14 mei 2003, 20:21

ROCEMA

Berichtdoor acp010107 » ma 19 mei 2003, 15:58

Ren?,
Kan jij ?" kort evg +/- factor * range" ook vertalen in vesticode-taal ?
Eventueel door het systeem van Paul aan te passen

Zo mogelijk ook met de waarden van bars voor de evg, de factor en de range.

Dan kan er met jouw toevoeging verder getest worden.
B.v.d.
Aad
acp010107
 
Berichten: 101
Geregistreerd op: di 05 maart 2002, 23:48

ROCEMA

Berichtdoor ReneV » ma 19 mei 2003, 16:22

Dag Aad,

Ik heb nog geen vestics, ik ben een beetje voorzichtig met het instaleren van een nieuw TA pakket, ik heb al een muisarm dus besteed ik mijn pc tijd liever effici?nt.

Ik zal het in Tradestation in kloppen en op het forum zetten.

Als ik de code goed begrijp proberen proberen jullie met: Close < Close[Length2] AND Close > Close[Length1+Length2] een dip te vinden in een uptrend en short andersom ?

Het originele systeem gaat overigens alleen de markt in op een kruising van het Roc met de 0. Dit reduceerd het aantal trades=gunstig.
Groetjes Ren
ReneV
 
Berichten: 36
Geregistreerd op: wo 14 mei 2003, 20:21

ROCEMA

Berichtdoor ReneV » ma 19 mei 2003, 17:57

Ik heb de" Close < Close[LT2] AND Close > Close[LT1 + LT2] " er in gebakken, maar de resultaten zijn beroerd. Minder dan 20% winnende trades op de dax. Hou het maar bij het origineel, voeg er wat stops en targets aan toe, eventueel nog een break even stop. Bij futures data zorgt een limit order voor een lagere drawdown in een vlakke markt. Voor de "Range" kun je ook de "TrueRange" gebruiken.

De enige min van het ROC Trend systeem is dat het soms de boot mist. De Roc kruising heeft soms reeds plaatsgehad voordat de koers het trend gemiddelde is gepasseerd. PMult is een schaal factor, zodat het ook op andere data te testen is.
----------------- let op TRADESTATION code ----------------

Inputs: RocAvgL(10), RocL(50), TrendL(100);
Inputs:LT1(40), LT2(11);
Inputs:ST1(40), ST2(11);
Inputs:SmoothL(10), LLimit(1.0), SLimit(1.0), VolatilityL(10);
Inputs:LTargetPts(10), STargetPts(10);
Inputs: LStpPts(0.6), LBepAPts(1.00), LBepBPts(0.01), SStpPts(0.6), SBepAPts(1.00), SBepBPts(0.01);
Inputs:PMult(100);
Variables: ?Smooth(0), Roc(0), Avg(0), Trend(0);
Variables: ?Atr(0), LStop(0), SStop(0);
Variables:LBep(False), SBep(False);

Smooth = XAverage((High+Low)*0.5, SmoothL);
Avg = XAverage(Close, RocAvgL);
Roc = Momentum(Avg, RocL);
Trend = XAverage(Close, TrendL);

If Marketposition = 1 Then
Begin
{ Break even stop }
If Close > Entryprice + LBepAPts * PMult Then
LBep = True;
If LBep Then
ExitLong ("L-Bep") Entryprice + LBepBPts * PMult Stop;

{ Profit Target }
Exitlong ("L-PT") Entryprice + LTargetPts * PMult Limit;
{ Stop Loss }
ExitLong ("L-Stp") Entryprice - LStpPts * PMult Stop;
End;

If Marketposition = -1 Then
Begin
{ Break even stop }
If Close < Entryprice - SBepAPts * PMult Then
SBep = True;
If SBep Then
ExitShort ("S-Bep") Entryprice - SBepBPts * PMult Stop;

{ Profit Target }
ExitShort ("S-PT") Entryprice - STargetPts * PMult Limit;
{ Stop Loss }
ExitShort ("S-Stp") Entryprice + SStpPts * PMult Stop;
End;

If (Marketposition <> 1 AND Close > Trend AND Roc Crosses Above 0) Then
{If (Marketposition <> 1 AND Close > Trend AND Close < Close[LT2] AND Close > Close[LT1 + LT2] AND Roc Crosses Above 0) Then}
Begin
Buy ("L-Roc-1") Smooth + LLimit * XAverage(Range, VolatilityL) Limit;
LBep = False;
End;

If (Marketposition <> -1 AND Close < Trend AND Roc Crosses Below 0) Then
{If (Marketposition <> -1 AND Close < Trend AND Close > Close[ST2] AND Close < Close[ST1 + ST2] AND Roc Crosses Below 0) Then}
Begin
Sell("S-Roc-1") Smooth - SLimit * XAverage(Range, VolatilityL) Limit;
SBep = False;
End;
Groetjes Ren
ReneV
 
Berichten: 36
Geregistreerd op: wo 14 mei 2003, 20:21

ROCEMA

Berichtdoor Paul M » ma 19 mei 2003, 21:27

Hoi Rene,

Het systeem zoals door jou gepost werkt in die vorm volgens mij niet binnen Vestics.
Ik krijg enkele trades van hooguit 2 bars.

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

ROCEMA

Berichtdoor ReneV » ma 19 mei 2003, 22:02

> Ik krijg enkele trades van hooguit 2 bars.

Ik weet niet hoe vestics werkt, maar het zal wel aan de instellingen liggen (stop loss bv).

Onderstaand zijn werkende instellingen voor eurostoxx, al maakte ik daar gebruik van de average true range en niet van de range.

Overigens LpstpPnts = 0.54 => 0.54 * PMult = 54 punten stop.

Denk eraan dat er in de code {} staan om jullie 'trend' detectie, het werkt dus op de ouderwetse manier.

De LBepAPts is de drempel voor een breakeven stop en LBepBPts is de waarde waarop wordt uitgestopt.

Tip: controleer of de LBep=True wordt onthouden nadat deze is geset, ik weet niet hoe vestics dit oplost.
----- Settings Stoxx50 ---------------------------------------
RocAvgTrend_Lmt_RocAvgL 8
RocAvgTrend_Lmt_RocL 28
RocAvgTrend_Lmt_TrendL 82
RocAvgTrend_Lmt_LLimit 1
RocAvgTrend_Lmt_SLimit 1.58
RocAvgTrend_Lmt_VolatilityL 50
RocAvgTrend_Lmt_LTargetPts 1.66
RocAvgTrend_Lmt_STargetPts 1.94
RocAvgTrend_Lmt_LStpPts 0.54
RocAvgTrend_Lmt_LBepAPts 0.74
RocAvgTrend_Lmt_LBepBPts 0.18
RocAvgTrend_Lmt_SStpPts 0.29
RocAvgTrend_Lmt_SBepAPts 1.1
RocAvgTrend_Lmt_SBepBPts 0.48
RocAvgTrend_Lmt_PMult 100
Groetjes Ren
ReneV
 
Berichten: 36
Geregistreerd op: wo 14 mei 2003, 20:21

ROCEMA

Berichtdoor Paul M » di 20 mei 2003, 7:22

Hoi Rene,

Ik heb de waarden toegevoegd, het resultaat nog beroerder, zwaar in de min. De trades werden niet langer alleen het verlies nam toe.
Ik stel dan ook voor ?gezien de doelstelling, het verbeteren en aanpassen ROCEMA systeem, om dit in Vesticode te doen. Zodat dit voor iedereen met Vestics toegankelijk is. Punt 2: Het backtesten te doen op data die van oorsprong aanwezig is in Vestics, weer met het oog op het kunnen controleren door iedereen met Vestics.
Punt 3: Een systeem neer te zetten met weinig argumenten.

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

ROCEMA

Berichtdoor ReneV » di 20 mei 2003, 8:43

Quote: from Paul M on 8:22 am op 20,mei 2003
Hoi Rene,

Ik heb de waarden toegevoegd, het resultaat nog beroerder, zwaar in de min. De trades werden niet langer alleen het verlies nam toe.
Ik stel dan ook voor ?gezien de doelstelling, het verbeteren en aanpassen ROCEMA systeem, om dit in Vesticode te doen. Zodat dit voor iedereen met Vestics toegankelijk is. Punt 2: Het backtesten te doen op data die van oorsprong aanwezig is in Vestics, weer met het oog op het kunnen controleren door iedereen met Vestics.
Punt 3: Een systeem neer te zetten met weinig argumenten.

Groetjes Paul.


Dag Paul,

Ik heb het afgelopen jaar in TS al diverse varianten getest op het ROC trend systeem. In ver uit de meeste gevallen nam dewinst af en de drawdawn toe. Ik basseer me dan op eurostoxx en DAX en vijf tot zes jaar koers historie. Als de code niet naar behoren werkt in vestics komt dat omdat vestics anders werkt dan tradestation. Daarnaast gaat het om het idee (limit order, stops etc), en dat is wel met vestics te realiseren.

Hou er rekening mee dat je op lange termijn (jaren)koersdata moet testen en niet een paar maanden. De wijziging die ik op het forum heb gezien, leid tot een drastische afname van de winst, het missen van goede trades en beperkte afname van drawdown.

Ik zou wel eens willen weten wat de opbrengst is van de wijziging die jullie hebben aangebracht, ik heb nog geen resultaten gezien ?

Daarnaast moet je interday systemen (ik neem aan dat jullie niet op dag koersen testen) bijvoorkeur testen op futures data, dat maakt nogal verschil in de drawdawn, deze data is namelijk veel wilder.

Het origineel is gewoon goed, alleen moet je het lef hebben het systeem te traden..........
Groetjes Ren
ReneV
 
Berichten: 36
Geregistreerd op: wo 14 mei 2003, 20:21

ROCEMA

Berichtdoor acp010107 » di 20 mei 2003, 10:16

Paul,
Even een vervolg op mijn vorige bericht.
1. er was een stuk weggevallen. Het was alleen goed ?
? ?zichtbaar via "reageren" en
2. ik had 2 vragen/opmerkingen m.b.t. de codering
? ? ?
? ? if ?Close>xTrend[Length2] AND Close < Close
? ? [Length2] AND Close > Close[Length1 + Length2] ?
? ? then
? ? Buy ?;

? ? a. ?moet close<close[length2] niet zijn groter dan ipv
? ? ? ? ?kleiner dan

? ? b. ?close > close[length1+length2]
? ? ? ? ?Bedoel je hiermee het gemiddelde van close ?
? ? ? ? ?[length1] ? en close[length2] ?
? ? ? ? ?Zo ja, moet je ze dan niet apart benoemen en ?
? ? ? ? ?door 2 delen ?

?Uit het verhaal van Ren? heb ik begrepen dat a. toch goed is en omdat het daarbij gaat om het zoeken van een dip.
Kan jij mij vertellen wat daarvan de achterliggende gedachte is ?

Ook b. kwam ik tegen in het verhaal van Ren?.
Is dat een manier om een gemiddelde, in dit geval van 2 Closes, ?uit te rekenen ?
Zo ja, over hoeveel waarden kan je dat dan doen ?

B.v.d. voor het antwoord,
Aad
acp010107
 
Berichten: 101
Geregistreerd op: di 05 maart 2002, 23:48

VorigeVolgende

Keer terug naar Contact en Oproep

Wie is er online

Gebruikers op dit forum: Geen geregistreerde gebruikers en 3 gasten

cron