hur min Maskininlärningshandelsalgoritm överträffade SP500 i 10 år

Du kan läsa den ursprungliga artikeln på min blogg.

Austrian Quant

den österrikiska Quant är uppkallad efter den österrikiska Handelshögskolan som tjänar som inspiration för hur jag strukturerade portföljen. Jag utformade en handelsstrategi bestående av 3 olika investeringsfonder för att få en bättre förståelse för investeringar, maskininlärning och programmering och hur de alla kombineras i finansvärlden och tekniken.

de 3 olika fonderna som används i denna strategi inkluderar: Den permanenta Portföljfonden, den spekulativa fonden och den grundläggande fonden. 70% av den totala portföljen investerades i den permanenta portföljen, med en lika 15% viktning fördelad på den spekulativa och grundläggande fonden vardera. Grundfonden är fortfarande under uppbyggnad så jag kan lägga till en uppföljning av denna uppsats med fondens resultat senare. Resten av denna artikel baseras dock på en portföljviktning på 85% i den permanenta Portföljfonden och 15% i den spekulativa fonden.

jag har också delat koden för detta projekt på min Github.

den permanenta Portföljfonden

den permanenta portföljen är en ide av Harry Browne, baserad på den österrikiska Handelshögskolan, en solid ekonomisk ram och ett mycket användbart sätt att se på livet i allmänhet. Den permanenta portföljen är inte för investerare som vill slå marknaden, uppenbar av de stora kassa-och guldinnehaven; det är för personer med en långsiktig investeringshorisont, som beskriver min investeringsstil väl och därmed är min största fördelning.fonden inspirerades av den permanenta portföljen quantopian notebook på Quantopian och den österrikiska skolan för investerare bok av Rahim Reghezda et. al. vilket är en annan bok som jag starkt rekommenderar. Portföljen är också delvis inspirerad av alla väderprinciperna från Ray Dalios Bridgewater, som fungerade som en användbar ram för att hantera min riskexponering samtidigt som den riktade sig mot stark avkastning.

inom denna fond gick 30% av portföljen till aktier, obligationer och guld medan 10% gick in i kontanter (eller mer specifikt 1-3 års statsskuldväxlar). Fördelningen i den österrikiska skolan för investerarens bok föreslog lika 25% vikt mellan varje tillgångsklass men eftersom jag är ung och har få ansvarsområden tänkte jag att jag kan vara lite mer aggressiv och ta lite mer risk. Således sänkte jag min kontantallokering och ökade de andra tillgångsfördelningarna.

portföljen balanseras om med Markowitz-stiloptimeringsalgoritmen för att hitta det mest effektiva gränsförhållandet mellan risk (standardavvikelse) och avkastning.Markowitz-optimeringen är en intressant algoritm eftersom den bygger på normalt distribuerad avkastning, men aktiemarknadens avkastning är föremål för kraftlagen och feta svansar. Så man måste undra hur exakta algoritmer som Markowitz optimeringar faktiskt är; kanske är det bara tänkt att användas som en heuristisk för att förenkla mycket komplexa problem.

en ganska omfattande backtest kördes och spårade fondens resultat från 1 januari 2006 till 2 juni 2017.

uppdatering: Detta är backtest från innan Quantopian började beräkna riskrelaterade data.

syftet med den permanenta portföljen är inte att slå indexet utan att generera stabil avkastning på lång sikt. Med detta i åtanke var jag mycket nöjd med resultaten från backtestet. Även om fonden underpresterade SPY benchmark med ~500 punkter, var det betydligt mindre riskabelt. Mer specifikt hade den tillväxt på tjurmarknaderna från 2006-2007 och 2010-2017, samtidigt som man undviker förluster på björnmarknaden 2008/09.

en av de riktigt insiktsfulla sakerna jag lärde mig när jag undersökte algoritmisk handel är att bra strategier tenderar att vara mycket efemära. Investerare tenderar att vara mycket kloka och därmed om en tillgångsklass tenderar att fungera bra, blir strategin mycket snabbt arbitraged bort som andra investerare flockar till den handelsstrategin. Jag förutser inte den permanenta portföljritningen för många imitatorer på grund av det försiktiga tillvägagångssätt som det tar även på tjurmarknader; investerare verkar ignorera det betydande nackdelskyddet som erbjuds. Överraskande har denna fond konsekvent överträffat indexet, utan att ledningen är arbitraged bort.

Jag testar för närvarande nu detta i en levande handelsmiljö och det verkar som om en längre testperiod måste användas innan några avgörande observationer kan göras. Men baserat på tidigare data verkar resultaten mycket lovande och det här är en handelsstrategi som jag seriöst överväger att sätta lite hud i spelet och testa med riktiga pengar.

Spekulationsfonden

som tidigare nämnts har jag en högre risktolerans så jag tänkte att jag kunde ägna en liten del av min portfölj till rena spekulationer. Spelande strider strikt mot mina investeringsprinciper men den kunskap jag fick och mängden roligt jag hade när jag byggde denna portfölj är min motivering för hyckleriet. Det påminner mig om den tid då Jack Bogle förklarade varför han investerade i sin sons aktiva investeringsbolag, medan han predikade evangeliet om indexinvestering; ”om det inte är konsekvent, Ja, Livet är inte alltid konsekvent.”

den spekulativa fonden är inspirerad av Python programming quantopian tutorial, som jag starkt rekommenderar för alla som lär sig python och Harrison Kinley är en mycket bra lärare.

den spekulativa fonden använder en relativt enkel maskininlärningsstödvektorklassificeringsalgoritm. Algoritmen utbildas med historiska aktiekursdata, genom att titta på prisrörelsen för ett lager under de senaste 10 dagarna och lära sig om aktiekursen ökade eller minskade den 11: e dagen. Då kan algoritmen förutsäga huruvida en aktiekurs kommer att öka baserat på hur priset har förbättrats under de senaste 10 dagarna.

en stödvektormaskin (SVM) klassificerare användes istället för K-närmaste grannar eftersom beräkningsintensiva processer som krävs i Quantopian gjorde hastighet till en hög prioritet och det kunde bäst uppnås med SVMs. En sammanfattning av koden ingår nedan, rader har tagits bort för att spara utrymme men hela koden finns i den här filen:

komplexa algoritmer trots att resultaten var mycket dåliga:

spekulation Fund

detta var en besvikelse för mig eftersom den förmodligen utarbetade algoritmen jag använde inte ens kunde slå en enkel momentumstrategi. Faktum är att när spekulationsfonden kombinerades med momentum-strategin minskade avkastningen med över 5000 punkter (50%).

Momentum Fund

Speculation + Momentum Fund

I was also expecting volatility and max drawdown to be even higher in the pure speculation fund because I have been very fascinated by Nassim Taleb’s work and I was very worried about the ”black swan” effekt utplåna min portfölj. Mark Spitznagel har ett mycket bra papper om detta ämne som hjälpte mig att förstå den underskattade effekten av svansriskhändelser på finansmarknaderna.kort sagt, genom att spekulera i kortsiktiga prisförändringar fick jag ~1-2% kortsiktiga vinster men utsatte mig för situationer där jag snabbt kunde förlora >50%. (Charlie Munger kallar detta att plocka pennies framför en ångrulle.) Förmågan att korta och säkra mina positioner visade sig dock vara mycket användbar i mars 2009. När marknaden hade sina största förluster hade jag mina största vinster. Även om min hävstångsgrad aldrig översteg ~4%, är detta en annan strategi som skulle behöva testas ordentligt i en levande miljö på grund av räntekostnader och premier på kortslutning som kan ha en väsentlig inverkan på avkastningen. Så lång historia kort, jag lärde mig mycket och jag tyckte verkligen om att använda maskininlärning i ett praktiskt handelsexempel, men försök inte det här hemma.

den grundläggande fonden

tanken bakom denna fond var att titta på företagets grunder för att se vilka finansiella mätvärden som är mest prediktiva för en ökning av aktiekursen. Träna en maskininlärningsalgoritm för att förutsäga vilka företagets grundläggande funktioner som skulle presentera en övertygande köparguement och investera i dessa värdepapper. Intressant nog fick jag algoritmen att fungera i min Python-miljö på min kommandorad men jag försöker fortfarande få programmet att fungera i Quantopian så att jag kan göra lite mer rigorös backtesting.

Fundamental Fund

även om resultaten i mina preliminära tester var lovande, blir jag inte alltför upphetsad än eftersom bristen på rigorösa tester i en ordentlig backtesting-miljö betyder att det är svårt att mäta hur bra min portfölj realistiskt skulle fungera som en levande handelsstrategi. Teorin och matematiken bakom algoritmen verkar dock vara ljud vilket är ett gott tecken.

att sätta ihop

Efter att ha sett hur bra den permanenta portföljen och Momentumfonderna hade gjort i jämförelse med Spekulationsfondens urusla resultat verkar det galet att kombinera dessa medel. Men återigen var syftet inte att maximera avkastningen utan att lära sig mer om investeringar och programmering. Det var intressant att titta på hur portföljen presterade i andra mätvärden.

jag bestämde mig för att fokusera på Sortino-förhållandet i motsats till det mer konventionella Sharpe-förhållandet, eftersom Sharpe-förhållandet straffar både upp-och nedåtvänd volatilitet medan Sortino-förhållandet bara straffar nedåtvänd volatilitet. Den praktiska skillnaden mellan de två är dock inte tydlig eftersom både Sharpe och Sortino-förhållandena hade exakt samma ordinalitet. Om två listor skapades, en med Sharpe-förhållande i fallande ordning och en med Sortino-förhållande i fallande ordning (Se tabell); båda listorna skulle ha samma ordning.

strängt taget hade spekulations-och momentfonden den största kumulativa avkastningen så det verkar vara den bästa strategin. Men jag identifierade mina mål som en långsiktig handelsstrategi, med relativt liten risk och spekulation + Momentum-fonden kränkte den principen med en stor maximal neddragning av -48.90% och ett sortino-förhållande på 0.75.

att välja mellan den österrikiska Quant-fonden och den permanenta portföljen är ett exempel på varför människor hänvisar till att investera som mer av en konst än en vetenskap. Medan den permanenta portföljen överträffade den österrikiska kvanten med cirka 13 000 punkter, erbjöd den österrikiska kvanten mycket mindre volatilitet och bättre nackskydd. Jag är inte helt bekväm med de kortfristiga korta affärer som används i den österrikiska Quant-fonden på grund av de asymmetriska utbetalningarna; medan den permanenta Portföljfonden erbjuder en förenklad, köp, håll och sömn enkel strategi. Därför är jag benägen att välja den permanenta Portföljfonden.Även om jag tror att jag borde vänta och se data från resultaten av dessa två fonder i den levande handelsmiljön innan jag drar några slutsatser.

” en investering i kunskap betalar det bästa intresset.”Benjamin Franklin

slutsats

Jag lärde mig mycket när jag byggde detta projekt och jag hade mycket roligt, vilket i slutändan är det viktigaste. Tangentiellt, en annan intressant sak jag lärde mig när jag undersökte detta projekt är tendensen för finansiella områden att bli alltför teoretiska och ekvationsdrivna. Detta är bra inom naturvetenskap som biologi eller fysik, men ekonomi är i allmänhet en samhällsvetenskap, som har större exponering för svarta svanhändelser och svansrisker.

Jag påminner alla om att tillämpa försiktighet och kom ihåg att inte förväxla precision med noggrannhet. Slutligen avslutar jag med den vise Benjamin Franklin som påminner oss om att ”en investering i kunskap betalar det bästa intresset.”

Du kan läsa den ursprungliga artikeln på min blogg.

OBS från Towards Data Sciences redaktörer: även om vi tillåter oberoende författare att publicera artiklar i enlighet med våra regler och riktlinjer, stöder vi inte varje författares bidrag. Du bör inte lita på författarens verk utan att söka professionell rådgivning. Se våra Läsarvillkor för mer information.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *