Sidoprojekt – bibliotek av finansiell data

Denna vecka så har jag satt in mig i programmeringsspråket Python då jag både tänkt använda det på jobbet men också för ett sidoprojekt här på bloggen. Som ni vet så gillar jag göra backtester och har hittills gjort det i excel av ren lathet (enkelt att klippa och klistra). Däremot så slutar det alltid med att jag har enormt fula excel-ark. Detta är en utzoomad vy från de senaste backtesterna jag gjorde här på bloggen:

Det är lätt att använda för att testa små enskilda saker, men vill man testa flera saker blir det riktigt svårt att både begripa och arbeta med (se ovan…). Därför så tänkte jag nu gå över till att göra backtestandet med kod.

Mitt mål med detta projekt är att dels sammanställa ett bibliotek av data för finansiella marknader med så lång historik som möjligt samt att testa olika strategier. Har skrivit här om bloggen om absolut och relativ momentum och hur bra de har varit för att skapa en bra stadig avkastning. Då det finns data för svenska börsen från 1870-talet och liknande för den amerikanska så tänkte jag testa på denna. Detta kommer jag löpande lägga upp här på bloggen för att visa hur bra olika momentumregler fungerar. I dagsläget har jag svenska räntor från 1850-talet, svenska börsen från 1870-talet, amerikanska från 50-talet, guldpriser i USD från 50-talet, världsindex från 80/90-talet och SEK/USD från 90-talet. Dessa har jag tänkt kombinera med moderna tidsserier för att få data fram tills idag. Utöver det så har jag tänkt använda Fama-French data. Totalt så blir det ett ganska omfattande bibliotek av data från olika källor.

Som första steg ska jag förfina Riksbankens data för de svenska finansiella marknaderna, komplettera med aktuell data och utöka mitt test av absolut momentum att innefatta ca 1870-idag.

Så varför just Python? Jag gjorde en djupdykning i de olika populära kodspråken och kom fram till att Python är det bästa att använda för detta syfte (och för mig som fysiker med mindre krävande beräkningar). Anledningen är för att det är lättläst, lätt att koda, har många funktioner och bibliotek och är gratis. Själv använder jag i dagsläget MATLAB, men detta gör en ganska låst och man har inte alls samma frihet(däremot mer funktioner),  plus att det kostar . Python är ett av de populäraste programmeringsspråken och mycket lättare att koda i jämförelse med de större språken Java och C++. Däremot tappar man lite hastighet, då det egentligen är byggt på C, men när det kommer till dessa enklare beräkningar så är det ingen fara. Läste ett inlägg som sa att det tar ca 10 gånger längre tid att skriva i C++, vilket gör att något som tar en månad att skriva i Python kan ta 10 månader i C++. Den extra hastighet man då fick går nog troligtvis förlorad (om man inte gör extremt tunga beräkningar på en superdator) och det bör inte vara någon större skillnad med simpla backtester. Därför har Python blivit ett av de största programmeringsspråken inom både kvantitativ finans och inom många vetenskaper. Ett annat språk för statistik och dataanalys är R, men det är ganska begränsat till just dataanalys medan Python är mer allsidigt.

För er som är intresserade av att själva arbeta med finansiell data och lite sifferhackande kan jag rekommendera denna sida:
http://www.quantsportal.com/
Deras inlägg på bloggen håller en riktigt bra kvalité där de går igenom dels akademisk forskning men också har guider till hur man kan göra backtester. Där kan man också se en serie filmer om kvantitativ finans och hur man kan använda Python i finans. Det finns också en Coursera-kurs i Python (föreläsaren är också med i en av presentationerna på Quantsportal):
https://www.coursera.org/course/compinvesting1

Lämna en kommentar

E-postadressen publiceras inte. Obligatoriska fält är märkta *