Skip to main content

Quantmod Bevegelig Gjennomsnitt Krysning


Flytte gjennomsnittlige overganger Flytte gjennomsnittlige overganger er en vanlig måte handelsmenn kan bruke Moving Averages. En kryssovergang oppstår når en raskere bevegelig gjennomsnitt (dvs. en kortere periode flytende gjennomsnitt) krysser enten over en langsommere bevegelig gjennomsnitt (dvs. en lengre periode flytende gjennomsnitt) som anses å være et bullish kryssover eller under som regnes som en bearish crossover. Diagrammet nedenfor for SampP Depository Receipts Exchange Traded Fund (SPY) viser 50-dagers Simple Moving Average, og 200-dagers Simple Moving Average dette Moving Average pair blir ofte sett på av store finansinstitusjoner som en langvarig indikator for markedsretningen : Legg merke til hvordan den langsiktige 200-dagers Simple Moving Average er i en uptrend dette tolkes ofte som et signal om at markedet er ganske sterkt. En forhandler kan vurdere å kjøpe når kortsiktig 50-dagers SMA krysser over 200-dagers SMA og kontrastvis, kan en næringsdrivende vurdere å selge når 50-dagers SMA krysser under 200-dagers SMA. I diagrammet over SampP 500 hadde begge potensielle kjøpssignaler vært svært lønnsomme, men det ene potensielle salgssignalet ville ha forårsaket et lite tap. Husk at 50-dagers, 200-dagers Simple Moving Average crossover er en veldig langsiktig strategi. For de handelsmenn som ønsker mer bekreftelse når de bruker Moving Average crossovers, kan 3 Simple Moving Average crossover teknikken bli brukt. Et eksempel på dette er vist i tabellen under Wal-Mart (WMT) lager: Den 3 Simple Moving Average-metoden kan tolkes som følger: Den første crossover av den raskeste SMA (i eksempelet ovenfor, 10-dagers SMA) På tvers av den neste raskeste SMA (20-dagers SMA) fungerer som en advarsel om at prisene kan være reverserende trend, men vanligvis vil en forhandler ikke legge en faktisk kjøps - eller salgsordre da. Deretter kan det andre krysset over den raskeste SMA (10-dagers) og den langsomme SMA (50-dagers) utløse en næringsdrivende å kjøpe eller selge. Det finnes mange varianter og metoder for bruk av 3 Simple Moving Average crossover-metoden, noen er gitt nedenfor: En mer konservativ tilnærming kan være å vente til den midterste SMA (20-dagers) krysser over den langsommere SMA (50-dagers), men dette er i utgangspunktet en to SMA crossover teknikk, ikke en tre SMA teknikk. En forhandler kan vurdere en pengehåndteringsteknikk for å kjøpe en halv størrelse når den raske SMA krysser over neste raskeste SMA og deretter gå inn i den andre halvdelen når den raske SMA krysser over den langsommere SMA. I stedet for halvdeler, kjøp eller selg en tredjedel av en posisjon når den raske SMA krysser over neste raskeste SMA, en annen tredjedel når den raske SMA krysser over den langsomme SMA, og den siste tredjedelen når den andre raskeste SMA krysser over den langsomme SMA . En Moving Average Crossover-teknikk som bruker 8 Moving Averages (eksponentiell), er Moving Average Exponential Ribbon Indicator (se: Eksponentielt bånd). Flytte Gjennomsnittlige overganger er ofte sett på verktøy av handelsfolk. Faktisk er kryssoverføringer ofte inkludert i de mest populære tekniske indikatorene, inkludert indikatoren Moving Average Convergence Divergence (MACD) (se: MACD). Andre bevegelige gjennomsnitt fortjener nøye vurdering i en handelsplan: Informasjonen ovenfor er kun til informasjons - og underholdningsformål, og utgjør ikke handelsrådgivning eller en oppfordring til å kjøpe eller selge noen aksje-, opsjons-, fremtidige, vare - eller forexprodukt. Tidligere resultater er ikke nødvendigvis en indikasjon på fremtidig ytelse. Handel er iboende risikabelt. OnlineTradingConcepts er ikke ansvarlig for eventuelle spesielle eller følgeskader som skyldes bruk av eller manglende evne til å bruke, materialene og informasjonen som tilbys av dette nettstedet. Se full ansvarsfraskrivelse. Undersøkelse av en flytende gjennomsnittsoverskridelse i Python med pandas I den forrige artikkelen om Research Backtesting Environments I Python With Pandas opprettet vi et 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. Dermed hvis vi ønsker å implementere vår egen backtester, må vi sørge for 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 kvantitativ TradingSimple glidende gjennomsnittlig crossover backtest opplæring 18 Jeg er ny på SIT og vil bruke den til å teste min strategi. Jeg søkte google for en enkel opplæring om bruk av SIT, men fant ingenting. Den eneste opplæringen jeg fant var fra Inovance og din, men det er veldig komplisert, og jeg har ingen anelse om hvordan du skal utføre en enkel, flytende gjennomsnittsovergangsstrategi med en aksjekurs (MSFT) nær pris ved hjelp av SIT og quantmod (jeg kjenner dette biblioteket). Om mulig kan du skrive en opplæring for MA crossover strategi dette er kode jeg skrev Hvordan kan jeg bruke over kode med SITs verktøy for backtesting Også jeg har installert SIT i R, men da jeg prøvde dette, gir den denne Hvorfor det å gi dette er det en feil Hei takk for det raske svaret. Jeg prøver denne koden. Jeg er forvirret med denne delprisdataprisen, datavekt NA, datavektssignal. Jeg rewrote koden min. men det gir feil i kodestrategier. Du kan ikke utføre denne handlingen på dette tidspunktet. Du logget på med en annen fane eller et vindu. Oppdater for å oppdatere økten din. Du logget ut i en annen kategori eller et vindu. Oppdater for å oppdatere sesjonen. Python vs R 3: En enkel glidende gjennomsnittlig crossover-backtest på SPY Dette er den tredje i en serie som sammenligner Python og R for kvantitativ handelsanalyse. Ved hjelp av zipline-rammen for Python og arbeidet med Systematic Investor Toolbox for R. implementerer jeg samme glidende gjennomsnittsovergangsmodell på hvert språk. På grunn av OTP-naturen til Python er det mange forskjeller mellom de to språkene, noe som fører til omtrent dobbelt så mye kode. Formentlig er den tilsatte OO-kompleksiteten nyttig i mye mer kompliserte strategier. Neste i serien vil se på de innebygde ytelsesstatistikkene til språkene og tilgjengelige backtesting-pakker.

Comments