Omdat hier op Fok het traden van macrocijfers tegenwoordig helemaal de hype is heb ik een onderzoekje gedaan.
Doel van het onderzoekDit is een onderzoek naar de mogelijkheid om te profiteren van een snelle koerssprong zoals die vaak optreedt als er macrocijfers worden gepubliceerd. Het doel van dit onderzoek is
niet om macrocijfers en/of de richting van de de spike te voorspellen. Ik ga er vanuit dat we het niet beter weten dan de experts die worden geinterviewd en waarop het consensus cijfer is gebaseerd.
Maar wat we
wel weten is dat er op het moment van publicatie van het macrocijfer een grote kans is op een sprong in de koersgrafiek. In dit onderzoek bekijk ik of het mogelijk is om met een vooraf vastgestelde strategie te profiteren van deze verwachte spike zonder op voorhand de richting te kennen, oftewel: is er een tijdelijke inefficientie in de markt die we kunnen uitbuiten?
Twee mogelijke benaderingenEr zijn ruwweg twee benaderingen die je zou kunnen volgen:
1. Vlak na het uitkomen van het cijfer kijk je welke kant de spike opgaat en stapt dan in in de richting van de spike. Dat zou o.a. kunnen via stoporders (“bracketing”).
2. Vlak voor het uitkomen het macrocijfer nemen we een positie in met een stoploss daaronder. Als de trade de (voor ons) verkeerde kant opgaat dan wordt hij uitgestopt, gaat hij de goede kant op dan proberen we zo lang mogelijk op de spike mee te liften
Het nadeel van benadering 1 is dat de spike erg snel is en dat je snel te laat bent met instappen en dat er een enorme slippage kan optreden. Het nadeel van benadering 2 is dat je in ieder geval 50% van de tijd fout zit. Echter, als je goed zit kun je mogelijk een lange rit uitzitten. Ook benadering 2 heeft last van slippage (op de stoploss) maar dat is dus alleen als je uitgestopt wordt. In benadering 1 heb je alijd slippage. Voor dit onderzoek kies ik voor benadering 2. Benadering 1 kan misschien nog eens in een volgend onderzoek worden bekeken.
De strategieEntryWe nemen onze positie in 1 minuut voordat de macrocijfers bekend worden gemaakt.
Aangezien we geen macrocijfers kunnen voorspellen en we de richting van een mogelijke spike niet kennen verwacht je dat we 50% van de tijd goed gokken en 50% van de tijd fout. Oftewel, we kunnen net zo goed random bepalen of we long gaan of short.
In dit onderzoek doe ik voor elke parameterset twee testen: Long en short. De resultaten tel ik op. Op die manier elimineer ik een eventuele marketbias en het effect van een gelukkige of ongelukkige gok op long of short. Als het systeem de trader een edge geeft, dan moet de som van die twee winstgevend zijn.
Initiele stopDe strategie die hier wordt getest bevat twee elementen: we hebben een methode nodig om winst te nemen als die ontstaat (een trailingstop) en we hebben een vangnet nodig voor als de strategie niet de kant opgaat die we gewenst hadden (een initial stop). Als initiele stoploss gebruik ik een vast percentage onder de prijs waarop de trade is geplaatst.
TrailingstopAangezien we een verschijnsel gaan traden dat naar verwachting een beperkte tijdsduur heeft ligt het voor de hand om een exitstrategie te kiezen die naast een prijselement ook een tijd element heeft. Ik kies in dit onderzoek daarom voor een trailingstop die een variatie is op de bekende “Parabolic SAR”. Deze trail start als initiele stop en loopt dan in de richting van de prijs. Deze trailingstop gaat automatisch sneller lopen als de koers de gewenste richting oploopt om zo weinig mogelijk van de winst op te geven. Maar ook bij een (uiteindelijk) zijwaarts bewegen van de koers loopt deze trailingstop verder op en zorgt uiteindelijk voor winst (of verlies) nemen. Dit sluit goed aan bij het idee achter macrocijfers traden: je wilt gemaakte winst veiligstellen en niet langer in de markt blijven dan nodig is als de koers zijwaarts gaat bewegen. Natuurlijk is dit maar één van de vele mogelijke exitstrategieen, maar dit is wat ik voor deze test heb gekozen.
Dat ziet er in de praktijk dan als volgt uit:
De plaatjes laten een bijna ideaal scenario zien. In het eerste plaatje gaat de trade precies zoals we willen. We hadden toevallig een longpositie gekozen en blijven long totdat de koers de trailingstop raakt. In het tweede plaatje hadden we een shortpositie gekozen. We worden vrijwel onmiddellijk uitgestopt. In dit ideale geval is het verlies op de shortpositie kleiner dan de winst op de longpositie, oftewel de verwachte winst is positief. Als de koers altijd op deze manier zou reageren tijdens de publicatie van macrocijfers dan hebben we winstgevende strategie, zelfs als we 50% van de tijd de richting fout gokken.
ParametersEr zij dus twee belangrijke parameters: de initiele stop en de snelheid van de trailingstop. Omdat deze grote invloed hebben op de karakteristiek van onze handelsstrategie zullen we de strategie testen met verschillende waarden voor deze parameters.
In het plaatje hieronder zie je het effect als we de trailingstop sneller maken.
En zie hieronder het effect van een strakkere of lossere initiele stop. In dit specifieke plaatje heeft het weinig consequenties omdat de prijs in één spurt direct omhoog gaat, maar vaak schiet de koers even beide kanten op (undershoot) en word je direct uitgestopt als de initiele stop te strak is, ondanks dat je eigenlijk een trade in de juiste richting had gedaan.
De backtestNu we de strategie hebben bepaald en de belangrijke parameters hebben gedefinieerd is het tijd voor de backtest. De strategie is getest op de S&P500 future (ES) op een resolutie van 1 minuut over de periode maart 2007-november 2009. Als input voor macrodata heb ik een file gebruikt met Bloomberg data (met dank aan Sitting_Elfling). Deze file bevat 109 verschillende typen macroevents. De meeste van die events komt maandelijks terug, dus deze events leveren elk gemiddeld zo’n 28 trades op.
De strategie wordt op elk van die events apart geanalyseerd en zowel intiele stop als trailingstop worden in stappen gevarieerd zoals op de twee plaatjes hierboven.
Resumerend:
- S&P500 future (ES), 1-minuten data, maart 2007-november 2009
- Macrodata van Bloomberg
- 109 verschillende typen macro events
- Initiele stop wordt gevarieerd in 10 stappen
- Trailing stop wordt gevarieerd in 9 stappen
- Dit alles zowel voor long als short positie
- Totaal dus 19.620 backtests
- Totaal 548.280 virtuele trades
Analyse van de dataValkuilenBij het analyseren van de data moeten we oppassen om niet in de levensgrote valkuil te stappen die we ook wel “curve fitting” noemen. Simpel gezegd: als je maar genoeg parameters varieert vind je altijd wel een geoptimaliseerde strategie die achteraf gezien winstgevend zou zijn geweest. Maar vaak is dat het gevolg van het feit dat parameters in hoge mate zijn “gefit” op de specifieke trades. Een resultaat lijkt dan op het eerste gezicht goed, maar zal in de toekomst niet herhaalbaar zijn.
Daarom moet je naast de winstgevendheid ook kijken naar de robuustheid van een strategie. Van een robuuste strategie kun je de parameters over een breed gebied varieren zonder dat je extreme verschillen in resultaten krijgt. Een optimum moet een “vlak” optimum zijn.
BenaderingDe benadering die ik daarom volg is om van elk type event een relevante winstparameter te plotten als functie van de twee variabelen Initiele Stop en Trailing Stop. Als relevante winstparameter kies ik “Average Trade”. Average Trade is de netto winst gedeeld door het totale aantal trades. Ik bekijk de Average Trade uitgedrukt in indexpunten. Dit is mijn favoriete methode omdat je dan heel snel kunt zien of een methode tradable is niet. Je weet dat 1 tick op een ES contract 0,25 punt is. Een spread zal tijdens markturen 1 of twee ticks zijn, transactiekosten zijn een fractie van 1 tick, en dan moet je nog een schatting maken van slippage. Note: Spread en slippage kunnen overigens aanzienlijk meer zijn in pre- en aftermarket, wanneer veel van de macrocijfers worden gepubliceerd.
Al met al is daarom een strategie die een bruto Average Trade heeft van minder dan 4 ticks (1 indexpunt) waarschijnlijk niet bruikbaar, dus die kan ik dan al direct terzijde schuiven. Daar bovenop moet je nog wat marge hebben, dus eigenlijk wil ik een Average Trade zien van minimaal 6 ticks (1,5 punt) om verder onderzoek te rechtvaardigen. Dus strategieen die onder de 4 ticks (1,0 punt) blijven sluit ik zonder meer uit want dat is pure tijdverspilling..
Hieronder volgen een aantal 3D grafieken. De x-as geeft de parameter die ik heb gebruikt om de trailingstop te schalen. Hoe kleiner het getal, deste sneller de trailingstop. Het schalen gebeurt exponentieel, dus “0” is 2x zo snel als “1”, “1” is 2x zo snel als “2”, etc. “0” is dus bloedsnel, “8” is traag. Als referentie kun je kijken naar het eerder geposte plaatje.
De y-as is de initiele stop in %. Lineair geschaald, dus niks ingewikkelds. Ook hier kun je als referentie het eerder geposte plaatje gebruiken.
De z-as is de Average Trade in punten. Dit is de winst gedeeld door het aantal trades.
ResultatenHieronder volgen van de 109 geteste macro events de grafieken waarvan de Average Trade op enig punt
boven de 1,0 punt uitkomt. De rest kan wat mij betreft zonder meer terzijde worden geschoven. We hebben dan een voorselectie voor verdere analyse. Let op dat soms de assen in de verschillende grafieken niet altijd in dezelfde richting lopen om de contour beter zichtbaar te maken!
Event 13 = “Average Hourly Earnings MoM”, “Average Hourly Earnings YoY”, “Average Weekly Hours”, “Change in Manufact. Payrolls”, “Change in Nonfarm Payrolls”, “Unemployment Rate” (allen gepubliceerd op zelfde datum/tijd)
Bij Event 13 komt het optimum net boven de 1,0 punt uit. Echter het gebied waarin we boven deze grens zitten is minuscuul en daarom niet geschikt voor irl trading. Dat is jammer want er is wel een mooie trend zichtbaar waarin resultaten beter worden met een snelle trailingstop en niet te losse stoploss. Reject.
Event 22 = “Wholesale Inventories”
Event 22: De twee zeer scherpe pieken suggereren curvefitting. Maar zelfs met deze curve-fitting komt de maximale winst maar net boven de 1,0 punt uit. Reject.
Event 25 = “Business Inventories”
Event 25: Relatief strakke initial stop en snelle trailingstop zijn hier essentieel, precies wat je verwacht van een “event trade”. Het >1,0 gebied is helaas erg klein. Toch een kandidaat voor verdere analyse.
Event 50 = “Existing Home Sales” en “Existing Home Sales MoM” (zelfde datum en tijd)
Event 50: Er is een mooie trend zichtbaar. Een strakke initial stop geeft betere resultaten. Het geeft wel te denken dat het optimum ligt bij een relatief trage trailingstop. Dat zou kunnen betekenen dat de performance niet zozeer uit de macro trade komt maar uit iets anders. Kandidaat voor verder onderzoek.
Event 52 = “Help Wanted Index”
Event 52: Miniscuul >1,0 gebied. Reject.
Event 63 = “Employment Cost Index”
Note: Gebaseerd op slechts 11 trades!
Event 63: Dit plaatje is werkelijk lachwekkend. Het laat een soort backtestmonster zien met twee oortjes en geeft mooi aan waarom optimalisatie zo’n valkuil is bij backtesting. De top van de achterste piek ligt op maar liefst 1,88 punt bij een trailingstop van 2 en een initial stop van 0,2%. Zou je echter de inital stop op 0,1% of op 0,3% leggen dan wordt de winst resp. -0,70 en -0,06 punt, oftewel een sterk winstgevend systeem verandert in een loser. Reject.
Event 68 = “FOMC Rate Decision”
Event 68: Dit is het eerste redelijk veelbelovende plaatje, daarom post ik hem van twee kanten bekeken. Het >1,0 gebied is zeer groot en zelfs het >1,50 gebied mag er zijn. Een relatief strakke initiele stop geeft het beste resultaat. Wat verder opvalt is dat de rol van de trailingstop beperkt is. Deze twee dingen suggereren een grote snelle stap in de koers, waarna er niet zoveel meer gebeurt met de prijs. Dat is inderdaad ook wat je van een goede eventtrade verwacht. Of dit correct is moet een verdere analyse uitwijzen.
Event 69 = “PCE Core (MoM)”, “ PCE Core (YoY)”, “PCE Deflator (YoY)”, “Personal Income” and “Personal Spending” (zelfde datum en tijd)
Event 69: Het >1,0 gebied is klein en een scherp optimum voor de trailingstop op een specifieke plek suggereert curve-fitting. Reject.
Event 80 = “Current Account Balance”
Note: Gebaseerd op slechts 11 trades!
Event 80: Deze is nog lachwekkender dan nummer 63. Op de piek is er een mooie winst maar bijna de hele ijsberg ligt onder water. Pure curve-fit. Reject.
Event 87 = “RPX Composite 28dy Index” en “RPX Composite 28dy YoY” (zelfde datum en tijd)
Event 87: Goed gedefinieerde “sweet spot” die redelijk breed is. Helaas komt de de berg maar nipt boven de >1,0 uit. Wat vooral te denken geeft is dat het optimum ligt bij zeer trage waarden van de trailingstop, terwijl het gebied met een snelle trailingstop grotendeels onder water ligt. Dit suggereert dat de winst niet komt uit de macroevent trade maar uit iets anders. Niet direct rejected, maar het is waarschijnlijk niets.
Event 94 = “Bloomberg Global Confidence”
Event 94: Raar plaatje, maar er ligt een aanzienlijk gebied boven flink water. Het linkse gebied is verdacht vanwege de trage trailingstop. Het heeft mogelijk niks met het macrocijfer te maken. De scherpe drop-off van het rechtse gebied lijkt op een curve-fit. Toch even verder naar kijken.
Event 100 = “Dallas Fed Manf. Activity”
Note: gebaseerd op slechts 10 trades!
Event 100: Redelijk winstgebied, maar ook hier is de trage trailingstop verdacht. Bovendien gebaseerd op slechts 10 trades. Evengoed niet direct een reject maar weinig hoopvol.
Verdere analyseUit bovenstaande analyse komt eigenlijk maar één event naar voren waar de strategie echt goed had gewerkt: Event 68, de “FOMC Rate Decision”. Deze steekt met kop en schouders boven de rest uit. Ik beperkt voor nu de verdere analyse tot deze event.
Zie hieronder de equitycurve voor de long posities en de short posities met trailingstop setting op 2 en initialstop setting op 0,4%. Dat is niet exact de top maar ergens in het midden van een breed winstgebied. Zoals je kunt zien heeft de strategie gewerkt zoals het was bedoeld: Winsten op long worden gecomplementeerd met kleinere verliezen op short en vice versa. Per saldo had de methode een duidelijke edge.
Los van de strategie valt het op dat short vooral winstgevend was tot midden juli 2008 toen de FED nog rente aan het verhogen was en long het goed deed vanaf het punt dat de zeer agressieve reeks renteverlagingen begon. Je ziet ook zowel long als short geen goede performance meer halen sinds begin 2009. Sinds de FED de rente "exceptionally low" for an "extended period" houdt valt er natuurlijk niet veel meer te traden op die event.
ConclusieMet een handje vol macro events en specifieke parameterset levert de methode
bruto een kleine edge (1,0-1,5 indexpunten), althans op deze dataset. Of dat in de praktijk tradable is is de vraag, want er gaan nog spread, slippage en transactiekosten af. Het is echter niet uitgesloten dat er 1 of 2 ticks (0,25-0,50 indexpunten) netto winst overblijft.
De enige macro event die met deze strategie vrij robuuste resultaten oplevert is de “FOMC Rate Decision”. Echter, sinds begin 2009 worden daarmee geen goede resultaten meer gehaald.
Uiteraard is dit slechts
een mogelijke implementatie van een dergelijke strategie. Met andere entry en/of stop kun je natuurlijk tot andere conclusies komen.
Kudos voor iedereen die dit topic van begin tot eind heeft gelezen[ Bericht 0% gewijzigd door SeLang op 12-03-2010 17:54:00 ]