Trading Strategi I Python


Lær kvant ferdigheter Hvis du er handelsmann eller investor og ønsker å skaffe seg et sett med kvantitative handelsferdigheter, er du på rett sted. Trading med Python-kurset vil gi deg de beste verktøyene og rutene for kvantitativ handelsforskning, inkludert funksjoner og skrifter skrevet av ekspertkvantitative handelsfolk. Kurset gir deg maksimal effekt for din investerte tid og penger. Det fokuserer på praktisk anvendelse av programmering til handel i stedet for teoretisk datavitenskap. Kurset vil betale seg raskt, ved å spare tid i manuell behandling av data. Du vil bruke mer tid på å forske på strategien og gjennomføre lønnsomme handler. Kursoversikt Del 1: Grunnleggende Du lærer hvorfor Python er et ideelt verktøy for kvantitativ handel. Vi vil starte med å sette opp et utviklingsmiljø og vil da introdusere deg til de vitenskapelige bibliotekene. Del 2: Håndtere data Lær hvordan du får data fra ulike gratis kilder som Yahoo Finance, CBOE og andre nettsteder. Les og skriv flere dataformater, inkludert CSV - og Excel-filer. Del 3: Forsker strategier Lær å beregne PL og tilhørende resultatmålinger som Sharpe og Drawdown. Bygg en handelsstrategi og optimaliser ytelsen. Flere eksempler på strategier diskuteres i denne delen. Del 4: Going live Denne delen er sentrert rundt Interactive Brokers API. Du lærer hvordan du får realtids lagerdata og plasserer livebestillinger. Massevis av eksemplskode Kursmaterialet består av notatbøker som inneholder tekst sammen med interaktiv kode som denne. Du vil kunne lære ved å samhandle med koden og endre den til din egen smak. Det vil være et godt utgangspunkt for å skrive egne strategier Mens noen emner blir forklart i detalj, for å hjelpe deg med å forstå de underliggende konseptene, vil du i de fleste tilfeller ikke trenger å skrive din egen lavnivåkode på grunn av støtte fra eksisterende åpne - kilder biblioteker. TradingWithPython bibliotek kombinerer mye av funksjonaliteten som diskuteres i dette kurset som en ferdig til bruk-funksjon, og vil bli brukt gjennom hele kurset. Pandas vil gi deg all den kraftige løftekraften som trengs for datatrykk. Alle koden er gitt under BSD-lisensen, og tillater bruk i kommersielle forpliktelser. Kursusvurdering En pilot av kurset ble avholdt våren 2013, dette er hva studentene fikk å si: Matej godt utformet kurs og god trener. Absolutt verdt sin pris og min tid Lave Jev visste åpenbart hans ting. dybde av dekning var perfekt. Hvis Jev kjører noe slikt igjen, er jeg den første som melde meg på. John Phillips Ditt kurs fikk meg til å hoppe, begynte å tenke på python for lageranalyse. Python Algorithmic Trading Library PyAlgoTrade er et Python Algorithmic Trading Library med fokus på backtesting og support for papirhandel og live-trading. La oss si at du har en ide for en handelsstrategi, og du vil gjerne vurdere den med historiske data og se hvordan den oppfører seg. PyAlgoTrade lar deg gjøre det med minimal innsats. Hovedfunksjoner Fullt dokumentert. Eventdrevet. Støtter Market, Limit, Stop og StopLimit bestillinger. Støtter Yahoo Finance, Google Finance og NinjaTrader CSV-filer. Støtter alle typer tidsseriedata i CSV-format, for eksempel Quandl. Bitcoin trading støtte gjennom Bitstamp. Tekniske indikatorer og filtre som SMA, WMA, EMA, RSI, Bollinger Bands, Hurst eksponent og andre. Ytelsesmålinger som Sharpe-forhold og drawdown-analyse. Håndtere Twitter-hendelser i sanntid. Event profil. TA-Lib integrasjon. Veldig lett å skalere horisontalt, det vil si å bruke en eller flere datamaskiner til å teste en strategi. PyAlgoTrade er gratis, åpen kildekode, og den er lisensiert under Apache-lisensen, versjon 2.0.Backtesting a Moving Average Crossover i Python med pandas I den forrige artikkelen om Research Backtesting Environments I Python With Pandas opprettet vi en objektorientert forskningsbasert backtesting miljø og testet det på en tilfeldig prognosestrategi. I denne artikkelen vil vi gjøre bruk av maskineri vi introduserte for å utføre forskning på en faktisk strategi, nemlig Moving Average Crossover på AAPL. Flytte Gjennomsnittlig Crossover Strategy Den Moving Average Crossover teknikken er en ekstremt kjent, forenklet momentum strategi. Det regnes ofte som Hello World-eksempelet for kvantitativ handel. Strategien som skissert her er langvarig. To separate enkle bevegelige gjennomsnittsfiltre opprettes, med varierende tilbakekallingsperioder, av en bestemt tidsserie. Signaler for å kjøpe eiendelen oppstår når det kortere tilbakegangsgjenomsnittet overstiger det lengre tilbakegående glidende gjennomsnittet. Hvis det lengre gjennomsnittet senere overgår kortere gjennomsnitt, blir aktiva solgt tilbake. Strategien fungerer bra når en tidsserie går inn i en periode med sterk trend og så sakte reverserer trenden. For dette eksempelet har jeg valgt Apple, Inc. (AAPL) som tidsserien, med en kort oversikt over 100 dager og en lang tilbakekalling på 400 dager. Dette er eksemplet fra zipline algoritmiske handelsbiblioteket. Således, hvis vi ønsker å implementere vår egen backtester, må vi sikre at den samsvarer med resultatene i zipline, som et grunnleggende middel for validering. Gjennomføring Sørg for å følge den tidligere opplæringen her. som beskriver hvordan det opprinnelige objekthierarkiet for backtesteren er konstruert, ellers vil koden under ikke fungere. For denne bestemte implementeringen har jeg brukt følgende biblioteker: Implementeringen av macross. py krever backtest. py fra den forrige opplæringen. Det første trinnet er å importere de nødvendige modulene og objektene: Som i den tidligere opplæringen skal vi subclass strategisk abstrakt baseklasse for å produsere MovingAverageCrossStrategy. som inneholder alle detaljer om hvordan man genererer signaler når de bevegelige gjennomsnittene av AAPL krysser over hverandre. Objektet krever en shortwindow og en longwindow å operere. Verdiene er satt til standardverdier på henholdsvis 100 dager og 400 dager, som er de samme parametrene som brukes i hovedeksempelet på zipline. De bevegelige gjennomsnittene opprettes ved å bruke pandas rollingmean-funksjonen på stolpene. Sluttprisen på AAPL-aksjen er avsluttet. Når de individuelle bevegelige gjennomsnittene er blitt konstruert, genereres signalet Serie ved å sette kolonnen lik 1,0 når det korte glidende gjennomsnittet er større enn det lange glidende gjennomsnittet, eller 0,0 ellers. Herfra kan stillingsordrene genereres for å representere handelssignaler. MarketOnClosePortfolio er subclassed fra Portfolio. som finnes i backtest. py. Det er nesten identisk med implementeringen beskrevet i den tidligere opplæringen, med unntak av at handlingene nå utføres på nært hold, i stedet for en åpen til åpen basis. For detaljer om hvordan porteføljeobjektet er definert, se den forrige opplæringen. Ive forlot koden for fullstendig og å holde denne opplæringen selvstendig: Nå som MovingAverageCrossStrategy og MarketOnClosePortfolio-klassene er definert, vil en hovedfunksjon bli kalt for å knytte alle funksjonalitetene sammen. I tillegg vil utførelsen av strategien bli undersøkt via en kurve av egenkapitalkurven. Pandas DataReader-objektet laster ned OHLCV-priser på AAPL-lager for perioden 1. januar 1990 til 1. januar 2002, hvor signalene DataFrame er opprettet for å generere langvarige signaler. Deretter genereres porteføljen med en startkapital på 100 000 USD og avkastningen beregnes på egenkapitalkurven. Det endelige trinnet er å bruke matplotlib til å tegne en tofigurert plot av begge AAPL-prisene, overlaid med de bevegelige gjennomsnittene og buysell-signaler, samt egenkapitalkurven med de samme buysell-signalene. Plottingskoden er tatt (og endret) fra zipline implementeringseksemplet. Kodenes grafiske utgang er som følger. Jeg benyttet seg av IPython Paste-kommandoen for å sette dette direkte inn i IPython-konsollen mens du var i Ubuntu, slik at den grafiske utgangen forblir i visning. Den rosa oppturen representerer kjøp av aksjen, mens de svarte downticks representerer å selge den tilbake: Som det kan sees, mister strategien penger over perioden, med fem rundturer. Dette er ikke overraskende gitt AAPLs oppførsel i perioden, noe som var på en liten nedadgående trend, etterfulgt av en signifikant oppgang i 1998. Reflekteringsperioden for de bevegelige gjennomsnittssignalene er ganske stor og dette påvirket resultatet av den endelige handel , som ellers kan ha gjort strategien lønnsom. I etterfølgende artikler vil vi skape et mer sofistikert middel til å analysere ytelse, samt å beskrive hvordan man optimaliserer tilbakekallingsperioder for de enkelte bevegelige gjennomsnittssignaler. Bare Komme i gang med Quantitative TradingTrading med Python Ive har nylig lest et flott innlegg av turinginansbloggen om hvordan å være en quant. Kort sagt beskriver den en vitenskapelig tilnærming til å utvikle handelsstrategier. For meg personlig, å observere data, å tenke på modeller og danne hypoteser er en annen natur, som det burde være for enhver god ingeniør. I dette innlegget skal jeg illustrere denne tilnærmingen ved å gå gjennom en rekke trinn (bare et par, ikke alle) involvert i utviklingen av en handelsstrategi. La oss se på det vanligste handelsinstrumentet, SampP 500 ETF SPY. Jeg begynner med observasjoner. Observasjoner Det skjedde for meg at det meste av tiden det er mye snakk i media om at markedet krasjer (etter store tap i flere dager), er det en ganske betydelig tilbakemelding noen ganger. Ive gjorde ive et par feil ved å lukke mine stillinger for å kutte tap kort, bare for å savne et utvinning i de følgende dagene. Allmennteori Etter en periode med sammenhengende tap, vil mange handelsmenn avvikle sine stillinger ut av frykt for enda større tap. Mye av denne oppførselen er styrt av frykt, i stedet for beregnet risiko. Smartere handelsmenn kommer inn da for gode kjøp. Hypotes: Neste dags retur av SPY vil vise en oppadgående forspenning etter en rekke påfølgende tap. For å teste hypotesen beregnet Ive antall påfølgende neddager. Alt under -0,1 daglig retur kvalifiserer som en down day. Avkastningsserien er nær tilfeldig, slik som man forventer, er sjansene for 5 eller flere påfølgende neddager lave, noe som resulterer i et svært begrenset antall forekomster. Lavt antall hendelser vil resultere i upålitelige statistiske estimater, så jeg stopper ved 5. Nedenfor er en visualisering av nex-tday retur som en funksjon av antall neddager. Ive har også tegnet 90 konfidensintervall for avkastningen mellom linjene. Det viser seg at gjennomsnittlig avkastning er positivt korrelert med antall neddager. Hypotesen bekreftet. Du kan imidlertid tydeligvis se at denne ekstra alpha er svært liten sammenlignet med bandet av de sannsynlige returresultatene. Men selv en liten kant kan utnyttes (finn en statistisk fordel og gjenta så ofte som mulig). Neste trinn er å undersøke om denne kanten kan bli omgjort i en handelsstrategi. Gitt dataene ovenfor, kan en handelsstrategi være forumlated: Etter konsekutiv 3 eller flere tap, gå lang. Avslutt på neste lukk. Nedenfor er et resultat av denne strategien sammenlignet med rent buy-and-hold. Dette ser ikke dårlig ut i det hele tatt Ser man på de skarpe forholdene, er strategien en nedstigning 2,2 mot 0,44 for BampH. Dette er faktisk ganske bra (ikke bli for opphisset skjønt, da jeg ikke gjorde rede for kommisjonskostnader, slippe osv.). Mens strategien ovenfor ikke er noe jeg vil gjerne handle bare på grunn av den lange tidsperioden, utfordrer teorien seg videre tanker som kan gi noe nyttig. Hvis samme prinsipp gjelder for intradagdata, kan en form for scalping-strategi bygges. I eksemplet ovenfor har I oversimplified verden litt ved bare å telle antall neddager uten å være oppmerksom på dybden av drawdownen. Også posisjonen utgang er bare en grunnleggende neste dag-tett. Det er mye å forbedre, men essensen etter min mening er dette: fremtidig avkastning av SPY er ifluenced av drawdown og drawdown varighet over de foregående 3 til 5 dager. En erfaren handelsmann vet hvilken oppførsel å forvente fra markedet basert på et sett med indikatorer og deres tolkning. Sistnevnte gjøres ofte basert på hans minne eller en slags modell. Å finne et godt sett med indikatorer og behandle sin informasjon utgjør en stor utfordring. Først må man forstå hvilke faktorer som er korrelert med fremtidige priser. Data som ikke har noen forutsigbar kvalitet innvirker bare på støy og kompleksitet, og reduserer strategien. Å finne gode indikatorer er en egen vitenskap, som ofte krever dyp forståelse av markedsdynamikken. Denne delen av strategisk design kan ikke lett automatiseres. Heldigvis, når et godt sett med indikatorer er funnet, kan handelsmennets minne og intuisjon enkelt erstattes med en statistisk modell, som sannsynligvis vil utføre mye bedre da datamaskiner har feilfri minne og kan lage perfekte statistiske estimater. Når det gjelder volatilitetshandel, tok det meg litt tid å forstå hva som påvirker bevegelsene sine. Spesielt er jeg interessert i variabler som forutsier fremtidig avkastning av VXX og XIV. Jeg vil ikke gå inn i full lengde forklaring her, men bare presentere en konklusjon. mine to mest verdifulle indikatorer for volatilitet er begrepet strukturhelling og nåværende volatilitetspremie. Min definisjon av disse to er: volatilitetsprinsippet VIX-realizedVol delta (termisk strukturhelling) VIX-VXV VIX amp VXV er de forente 1 og 3 måneders implisitte volatiliteter i SampP 500. realisertVol her er en 10-dagers realisert volatilitet i SPY, beregnet med Yang-Zhang formel. delta har ofte blitt diskutert på VixAndMore blogg, mens premie er kjent fra opsjonshandel. Det er fornuftig å gå kort volatilitet når premien er høy og futures er i contango (delta lt 0). Dette vil forårsake en halevind fra både premie og daglig rulle langs termstrukturen i VXX. Men dette er bare et grovt anslag. En god handelsstrategi vil kombinere informasjon fra både premium og delta for å komme med en prognose på handelsretning i VXX. Jeg har kjempet veldig lenge for å komme med en god måte å kombinere støyende data fra begge indikatorene. Ive prøvde de fleste av de vanlige tilnærmingene, som lineær regresjon, og skrev en haug med om det. men alle med en svært liten forbedring sammenlignet med å bruke bare en indikator. Et godt eksempel på en slik indikatorstrategi med enkle regler finnes på TradingTheOdds blog. Ser ikke ut, men det kan gjøres med flere indikatorer. Jeg begynner med noen VXX-data som jeg ikke har fått fra MarketSci. Merk at dette er simulerte data, før VXX ble opprettet. Indikatorene for samme periode er skissert nedenfor: Hvis vi tar en av indikatorene (premie i dette tilfellet) og plott den mot fremtidig avkastning av VXX, kan det ses en viss sammenheng, men dataene er ekstremt støyende: Det er fremdeles klart den negative premien vil trolig ha positiv VXX-avkastning neste dag. Kombinere både premie og delta i en modell har vært en utfordring for meg, men jeg ønsket alltid å gjøre en statistisk tilnærming. I utgangspunktet, for en kombinasjon av (delta, premium), synes Id å finne alle historiske verdier som er nærmest dagens verdier, og anslå fremtidig avkastning basert på dem. Noen ganger har jeg begynt å skrive mine egne nabointerpolasjonsalgoritmer, men hver gang jeg måtte gi opp. til jeg kom over scikit nærmeste naboens regresjon. Det gjorde at jeg raskt kunne bygge en prediktor basert på to innganger, og resultatene er så gode at jeg er litt bekymret for at jeg har gjort en feil et sted. Her er det jeg gjorde: Opprett et datasett for delta, premium-VXX neste dags retur (in-of-sample) opprett en nærmeste nabo-spådommer basert på datasettet over handelsstrategien (utenfor prøven) med reglene: gå lenge hvis forventet retur gt 0 gå kort hvis forventet retur lt0 Strategien kan ikke være enklere. Resultatene virker ekstremt gode og blir bedre når flere benytter seg til estimering. Først, med 10 poeng, er strategien utmerket i prøven, men er flat ut av prøven (rød linje i figuren nedenfor er siste poeng i prøven) Da blir ytelsen bedre med 40 og 80 poeng: I det siste to tomter, synes strategien å utføre samme inn - og ut-av-prøve. Sharpe-forholdet er rundt 2,3. Jeg er veldig fornøyd med resultatene og har følelsen av at jeg bare har klødd på overflaten av det som er mulig med denne teknikken. Mitt søk på et ideelt backtesting verktøy (min definisjon av ideell er beskrevet i tidligere Backtesting dilemma innlegg) resulterte ikke i noe jeg kunne bruke med en gang. Men gjennomgangen av tilgjengelige alternativer hjalp meg til å forstå bedre hva jeg egentlig vil ha. Av alternativene jeg så på, pybacktest var den jeg likte mest på grunn av sin enkelhet og fart. Etter å ha gått gjennom kildekoden, har jeg noen ideer for å gjøre det enklere og litt mer elegant. Derfra var det bare et lite skritt for å skrive min egen backtester, som nå er tilgjengelig i TradingWithPython biblioteket. Jeg har valgt en tilnærming hvor backtesteren inneholder funksjonalitet som alle handelsstrategier deler og som ofte blir kopiert. Ting som å beregne posisjoner og pnl, ytelsesstatistikk og lage tomter. Strategispesifikk funksjonalitet, som å bestemme inn - og utgangspunkter, bør gjøres utenfor backtesteren. En typisk arbeidsflyt vil være: finne inntasting og utganger - kalkulere pnl og lage tomter med backtester - g post-prosess strategidata For øyeblikket er modulen veldig minimal (se kilden her), men i fremtiden planlegger jeg på å legge til gevinster og stop-loss-utganger og multi-asset porteføljer. Bruk av backtesting-modulen er vist i denne bærbare notatboken. Jeg organiserer mine IPython-notatbøker ved å lagre dem i forskjellige kataloger. Dette gir imidlertid en ulempe, for å få tilgang til notatbøkene må jeg åpne en terminal og skrive ipython notisbok - pylabinline hver gang. Jeg er sikker på at ipython-teamet vil løse dette i det lange løp, men i mellomtiden er det en fin nedstignings måte å raskt få tilgang til notatbøkene fra filutforskeren. Alt du trenger å gjøre er å legge til en kontekstmeny som starter ipython-serveren i ønsket katalog: En rask måte å legge til sammenhengsposten er ved å kjøre dette registeroppdateringen. (Merk at oppdateringen antar at du har pythoninstallasjonen din plassert i C: Anaconda. Hvis ikke, må du åpne. reg-filen i en tekstredigerer og angi den rette banen på den siste linjen). Instruksjoner om å legge til registernøklene manuelt, finnes på Frolians blogg. Mange tror at leveranse av etfs på lang sikt underperformer sine referanser. Dette gjelder for hakkede markeder, men ikke i tilfelle trending, enten opp eller ned. Utnyttelse har bare effekt på det mest sannsynlige resultatet, ikke på forventet utfall. For mer bakgrunn, vennligst les dette innlegget. 2013 har vært et veldig godt år for aksjer, som trente opp for det meste av året. Lar se hva som ville skje hvis vi shorted noen av de leverte etfsene akkurat for et år siden og sikret dem med sine referanser. Å kjenne den løftede etf-oppførelsen, jeg forventer at leverte etfs overgikk deres referanse, så den strategien som ville forsvinne fra forfallet, ville tape penger. Jeg vurderer disse parene: SPY 2 SSO -1 SPY -2 SDS -1 QQQ 2 QLD -1 QQQ -2 QID -1 IYF -2 SKF -1 Hver leveraged ETF holdes kort (-1) og sikret med en 1x ETF. Legg merke til at for å sikre en invers etf, holdes en negativ stilling i 1x etf. Her er et eksempel: SPY vs SSO. Når vi normaliserer prisene til 100 i begynnelsen av backtestperioden (250 dager) er det tydelig at 2x etf overgår 1x etf. Nå er resultatet av backtestet på parene over: Alle 2x etfsene (inkludert inverse) har overgått sine referanser i løpet av 2013. Ifølge forventningene ville strategien som utnytter beta-forfall ikke være lønnsom. Jeg tror at det å spille levebrødt etfs mot deres unleveraged motpart ikke gir noen kanten, med mindre du vet markedsforholdene på forhånd (trending eller range-bound). Men hvis du vet det kommende markedsregimet, er det mye enklere måter å tjene på det. Dessverre har ingen ennå vært veldig vellykket til å forutse markedsregimet selv på kort sikt. Full kildekode for beregningene er tilgjengelig for abonnenter av Trading With Python-kurset. Notebook 307 Her er min skutt på Twitter-verdsettelse. Jeg liker å begynne med en ansvarsfraskrivelse: for øyeblikket består en stor del av portrolio min av kort TWTR-posisjon, så min mening er ganske skjev. Grunnen til at jeg har gjort min egen analyse er at min innsats ikke fungerte bra, og Twitter gjorde et parabolsk trekk i desember 2013. Så spørsmålet jeg prøver å svare her er, bør jeg ta mitt tap eller holde fast i min shorts. På tidspunktet for skrivingen handler TWTR rundt 64 mark, med en markedsverdi på 34,7 B. Hittil har selskapet ikke gjort noen fortjeneste, og tapte 142 millioner i 3013 etter å ha gjort 534 millioner i inntekter. De to siste tallene gir oss årlige bedriftsutgifter på 676M. Pris hentet fra brukerverdi Twitter kan sammenlignes med Facebook, Google og LinkedIn for å få en ide om brukernumre og deres verdier. Tabellen nedenfor oppsummerer brukernumre per selskap og en verdi per bruker som er avledet fra markedsverten. (kilde for antall brukere: Wikipedia, antall for Google er basert på antall unike søk) Det ser ut til at markedsverdien per bruker er svært lik for alle selskapene, men min personlige mening er at: TWTR er for tiden mer verdifull per bruker som FB eller LNKD. Dette er ikke logisk da begge konkurrentene har mer verdifulle personlige brukerdata til rådighet. GOOG har vært utmerket for å utvinne annonsenes inntekter fra sine brukere. For å gjøre det har den et sett med svært varierte tilbud, fra søkemotor til Google. Dokumenter og Gmail. TWTR har ingenting som ligner det, mens verdien per bruker bare er 35 lavere enn den av Google. TWTR har et begrenset rom for å utvide sin brukervennlighet, da det ikke tilbyr produkter som kan sammenlignes med FB eller GOOG-tilbud. TWTR har eksistert i sju år nå, og de fleste som ønsker en accout har fått sin sjanse. Resten bryr seg bare ikke. TWTR brukerbasen er flyktig og vil sannsynligvis flytte til neste varme når den blir tilgjengelig. Jeg tror den beste referansen her vil være LNKD, som har en stabil nisje i det profesjonelle markedet. Ved denne metriske TWTR vil være overvurdert. Innstilling av brukerverdi til 100 for TWTR ville gi en rettferdig TWTR-pris på 46. Pris hentet fra fremtidig inntjening Det er nok data tilgjengelig for fremtidige inntjeningsestimater. En av de mest nyttige som jeg har funnet er her. Bruke disse tallene mens du trekker selskapsutgifter, som jeg antar å forbli konstant. produserer dette tallet: Konklusjon Basert på tilgjengelig informasjon bør optimistisk verdsettelse av TWTR være i 46-48-serien. Det er ingen klare grunner til at det skal handle høyere og mange operasjonelle risikoer for å handle lavere. Min gjetning er at i løpet av IPO har nok fagfolk vurdert prisen, og sett det til et rimelig prisnivå. Det som skjedde neste var et irrasjonelt markedstrinn ikke begrunnet med ny informasjon. Bare ta en titt på den bullish frenesen på stocktwits. med folk som hevder ting som denne fuglen, flyr til 100. Ren følelse, som aldri fungerer bra. Det eneste som hviler meg nå er å sette pengene mine der munnen min er og holde fast i min shorts. Tiden vil vise. Kortslutning av den kortsiktige volatiliteten etn VXX kan virke som en god ide når du ser på diagrammet fra ganske avstand. På grunn av contango i volatilitet futures, opplever etnene en del hovvind mesteparten av tiden og mister litt verdi hver dag. Dette skjer på grunn av daglig rebalancing, for mer informasjon vennligst se på prospektet. I en ideell verden, hvis du holder det lenge nok, er et fortjeneste som genereres av tidsforfall i futures og etn rebalancing garantert, men på kort sikt må du gå gjennom noen ganske store drawdowns. Bare se tilbake på sommeren 2011. Jeg har vært uheldig (eller tåpelig) nok til å holde en kort VXX-stilling like før VIX gikk opp. Jeg har nesten blåst kontoen min da: 80 drawdown på bare et par dager, noe som resulterer i en trussel om marginaloppringing fra megleren. Marginanrop ville bety at innløsningen ble tapt. Dette er ikke en situasjon Id vil gjerne være igjen. Jeg visste at det ikke ville være lett å holde hodet kult hele tiden, men det var noe annet å oppleve stress og press av situasjonen. Heldigvis visste jeg hvordan VXX har en tendens til å oppføre seg, så jeg gjorde ikke panikk, men byttet side til XIV for å unngå et marginanrop. Historien slutter bra, 8 måneder senere var porteføljen min tilbake med styrke, og jeg har lært en veldig verdifull leksjon. For å starte med et varselvarsel her: Ikke handle volatilitet med mindre du vet nøyaktig hvor mye risiko du tar. Når vi har sagt det, kan vi se på en strategi som minimerer noen av risikoene ved å kortslutte VXX bare når det er hensiktsmessig. Strategioppgave: VXX opplever mest dra når futureskurven er i en bratt contango. Futures kurven er tilnærmet av VIX-VXV forholdet. Vi vil kort VXX når VXV har en uvanlig høy premie over VIX. Først kan vi se på VIX-VXV-forholdet: Tabellen over viser VIX-VXV-data siden januar 2010. Datapunkter fra i fjor er vist i rødt. Jeg har valgt å bruke en kvadratisk passform mellom de to, tilnærmende VXV f (VIX). F (VIX) er plottet som en blå linje. Verdiene over linjen representerer situasjon når futures er sterkere enn normal contango. Nå definerer jeg en deltaindikator, som er avviket fra passformen: delta VXV-f (VIX). Nå kan vi se på prisen på VXX sammen med delta: Over: Pris på VXX på loggskala. Under: delta. Grønne markører indikerer delta gt 0. røde markører deltalt0. Det er tydelig at grønne områder svarer til en negativ avkastning i VXX. Lar oss simulere en strategi med disse disse antagelsene: Kort VXX når delta gt 0 Konstant kapital (innsatsen på hver dag er 100) Ingen slipp - eller transaksjonskostnader Denne strategien sammenlignes med den som handler kort hver dag, men tar ikke hensyn til deltakelse . Den grønne linjen representerer vår VXX korte strategi, den blå linjen er den dumme. Sharpe på 1,9 for en enkel end-of-day strategi er ikke dårlig i det hele tatt etter min mening. Men enda viktigere er at gut-wrenching drawdowns i stor grad unngås ved å ta hensyn til fremtiden futures kurven. Å bygge denne strategien trinn for trinn vil bli diskutert i løpet av det kommende Trading With Python-kurset. Pris på en eiendel eller ETF er selvfølgelig den beste indikatoren der, men dessverre er det bare bare så mye informasjon som finnes i den. Noen mennesker synes å tro at de flere indikatorene (rsi, macd, glidende gjennomsnittlig crossover osv.). jo bedre, men hvis alle av dem er basert på samme underliggende prisserie, vil de alle inneholde en delmengde av samme begrensede informasjonen i prisen. Vi trenger mer informasjon i tillegg til hva som er inkludert prisen for å gi et mer informert gjetning om hva som skal skje i nær fremtid. Et utmerket eksempel på å kombinere all slags info til en smart analyse finner du på The Short Side of Long blog. Å produsere denne typen analyse krever mye arbeid, som jeg bare ikke har tid da jeg bare handler deltid. Så jeg bygget mitt eget marked dashbord som automatisk samler informasjon for meg og presenterer det i en lett fordøyelig form. I dette innlegget skal jeg vise hvordan man bygger en indikator basert på kort volumdata. Dette innlegget vil illustrere prosessen med datainnsamling og - behandling. Trinn 1: Finn datakilde. BATS-utveksling gir daglig volumdata gratis på nettstedet deres. Trinn 2: Få data manuelt inspeksjon Kort volumdata i BATS-utvekslingen finnes i en tekstfil som er zippet. Hver dag har sin egen zip-fil. Etter å ha lastet ned og pakket ut txt-filen, er dette hva som er inne (først flere linjer): Totalt inneholder en fil rundt 6000 symboler. Disse dataene trenger litt arbeid før det kan presenteres på en meningsfull måte. Trinn 3: Få automatisk data Hva jeg egentlig vil ha, er ikke bare dataene for en dag, men et forhold på kort volum til totalt volum de siste årene, og jeg føler meg ikke veldig som å laste ned 500 zip-filer og kopiere dem inn i utmerke seg manuelt. Heldigvis er full automatisering bare et par kode linjer unna: Først må vi dynamisk opprette en URL der en fil skal lastes ned: Nå kan vi laste ned flere filer samtidig: Trinn 4. Parse nedlastede filer Vi kan bruke zip og pandas biblioteker for å analysere en enkelt fil: Den returnerer et forhold for Short VolumeTotal Volume for alle symboler i zip-filen: Trinn 5: Lag et diagram: Nå er det eneste som igjen er å analysere alle nedlastede filer og kombinere dem med et enkelt bord og plott Resultatet: I figuren ovenfor har jeg skrevet det gjennomsnittlige korte volumforholdet de siste to årene. Jeg kunne også ha brukt et delsett med symboler hvis jeg ønsket å se på en bestemt sektor eller lager. Hurtig titt på dataene gir meg et inntrykk av at høye kortvolumforhold vanligvis samsvarer med markedsbunn og lave forhold ser ut til å være gode inngangspunkter for en lang posisjon. Fra dette tidspunktet kan denne korte volumforholdet brukes som grunnlag for strategiutvikling. Handel med Python-kurs Hvis du er en handelsmann eller en investor og ønsker å skaffe seg et sett med kvantitative handelsferdigheter, kan du vurdere å ta Trading With Python-couse. Nettkurset vil gi deg de beste verktøyene og rutene for kvantitativ handelsforskning, inkludert funksjoner og skript skrevet av ekspertkvantitative handelsfolk. Du lærer hvordan du får og behandler utrolige mengder data-, design - og backteststrategier og analyserer handelsprestasjoner. Dette vil hjelpe deg med å ta informerte beslutninger som er avgjørende for en handelsmennes suksess. Klikk her for å fortsette til Trading With Python-kursets nettsted. Jeg heter Jev Kuznetsov, om dagen er jeg forskerengineer i et selskap som er involvert i trykkeribransjen. Resten av tiden er jeg handelsmann. Jeg studerte anvendt fysikk med spesialisering i mønstergenkjenning og kunstig intelligens. Mitt daglige arbeid involverer alt fra rask algoritme prototyping i Matlab og andre språk til maskinvare design amp programmering. Siden 2009 har jeg brukt min tekniske ferdigheter i finansmarkedene. Før jeg kommer til den konklusjonen at Python er det beste verktøyet, jobbet jeg mye i Matlab, som er dekket på min andre blogg.

Comments

Popular posts from this blog

Salg Trening Strategi Ppt

Ivafe Su Aksjeopsjoner

Książki Forex Opinie