Sunday 29 October 2017

Building En Lager Trading System


Handelssystemer: Konstruere et system 13 Så langt har vi diskutert de grunnleggende komponentene i handelssystemer, kriteriene de må møte, og noen av de mange empiriske beslutninger som en systemdesigner må gjøre. I denne delen skal vi undersøke prosessen med å bygge et handelssystem, overveielsene som må gjøres, og noen viktige punkter å huske. Seks-trinns systemkonstruksjon 1. Oppsett - For å begynne å bygge et handelssystem trenger du flere ting: Data - Fordi systemdesigneren må bruke omfattende backtesting. Tidligere prishistorikk er viktig for å bygge et handelssystem. Slike data kan integreres i handelssystemutviklingsprogramvare, eller som en egen datafeed. Live data er ofte gitt for en månedlig avgift, mens alderen data kan fås gratis. Programvare - Selv om det er mulig å utvikle et handelssystem uten programvare, er det svært upraktisk. Helt siden slutten av 90-tallet, har programvare blitt en integrert del av å bygge handelssystemer. Noen vanlige funksjoner gjør det mulig for næringsdrivende å gjøre følgende: Sett opp handler automatisk - Dette krever ofte tillatelse fra meglerens slutt fordi det må være en konstant tilkobling mellom programvaren og meglerhuset. Handler må utføres umiddelbart og til eksakte priser for å sikre samsvar. For å få programvareplassen din for deg, er alt du trenger å gjøre, å skrive inn kontonummer og passord, og alt annet gjøres automatisk. Vær oppmerksom på at bruk av denne funksjonen er strengt valgfri. Kode et handelssystem - Denne programvarefunksjonen implementerer et proprietært programmeringsspråk som lar deg enkelt bygge regler. MetaTrader bruker for eksempel MQL (MetaQuotes Language). Heres et eksempel på sin kode for å selge hvis fri marginal er mindre enn 5000: Hvis FreeMargin lt 5000, avslutt deretter Ofte, bare å lese manualen og eksperimentere skal tillate deg å hente opp grunnleggende om språket din programvare bruker. Backtest din strategi - Systemutvikling uten backtesting er som å spille tennis uten en racket. Systemutviklingsprogramvare inneholder ofte en enkel backtesting-applikasjon som lar deg definere en datakilde, inntast kontoinformasjon og backtest i hvilken som helst tid med et museklikk. Her er et eksempel fra MetaTrader: Etter at backtestet er kjørt, genereres en rapport som beskriver spesifikkene til resultatene. Denne rapporten inneholder vanligvis fortjeneste, antall mislykkede handler, etterfølgende dager ned, antall handler og mange andre ting som kan være nyttige når du prøver å bestemme hvordan du feilsøker eller forbedrer systemet. Til slutt oppretter programvaren vanligvis en graf som viser veksten i investeringen gjennom hele testperioden. 2. Design - Designet er konseptet bak systemet, måten parametrene brukes til å generere en fortjeneste eller tap på. Du implementerer disse reglene og parametrene ved å programmere dem. Noen ganger kan denne programmeringen gjøres automatisk via et grafisk brukergrensesnitt. Dette lar deg lage regler uten å lære et programmeringsspråk. Her er et eksempel på et bevegelige gjennomsnittsoverskridelsessystem: Hvis SMA (20) CrossOver EMA (13) deretter angir Hvis SMA (20) CrossUnder EMA (13) og avslutter Regler som disse som legges inn i kode, tillater programvaren automatisk generere oppføring og utganger på punktene når reglene gjelder. Her ser designgrensesnittet ut på MetaTrader: Systemet er opprettet ved å bare skrive reglene i vinduet og lagre dem. Referanser for de forskjellige tilgjengelige funksjonene (for eksempel oscillatorer og lignende) kan bli funnet ved å klikke på bokikonet. De fleste programvare vil ha en lignende referanse tilgjengelig enten i selve programmet eller på nettsiden. Etter å ha opprettet de ønskede reglene og kodet systemet, lagrer du bare filen. Deretter kan du sette den i bruk ved å velge den på hovedskjermen. 3. Beslutningstaking - Det er mange beslutninger som skal gjøres på dette tidspunktet: Hvilket marked ønsker jeg å handle i? 13 Hvilken tidsperiode skal jeg bruke? 13 Hvilken prisserie skal jeg bruke? 13 Hvilken delmengde av aksjer skal jeg bruke til testing? Hold inne Husk at handelssystemer konsekvent skal tjene penger på mange markeder. Ved å tilpasse tidsperioden og prisserien for mye, kan du ødelegge resultatene og gi ukarakteristiske resultater.4. Øvelse - Backtesting og papirhandel er avgjørende for vellykket utvikling av et handelssystem: Kjør flere backtests på ulike tidsperioder og sørg for at resultatene er konsistente og tilfredsstillende. Papirhandel systemet (bruk imaginære penger, men registrer handler og resultater), og igjen, se etter konsekvent lønnsomhet. Kontroller med jevne mellomrom for feil i programmet eller utilsiktede handler. Disse kan være et resultat av feil programmering eller manglende forutsetning av visse omstendigheter som har uønskede konsekvenser. 5. Gjenta - Gjentakelse er nødvendig. Fortsett å jobbe på systemet til du konsekvent kan tjene penger på de fleste markeder og forhold. Det er alltid uforutsette hendelser som oppstår så snart et system går live. Her er noen faktorer som ofte forårsaker skjevde resultater: Transaksjonskostnader - Pass på at du bruker den virkelige kommisjonen. og litt ekstra for å ta hensyn til unøyaktige fyllinger (forskjell mellom bud og pris). Med andre ord, unngå slippe (For å se på hva dette er og hvordan det skjer, se forrige avsnitt i denne opplæringen.) Vekten - Ikke ignorere tapende handler, hold øye med alle handler. Optimalisering - Ikke overoptimere systemet. Med andre ord, skreddersy ikke systemet til et meget spesifikt markedsmiljø, prøv å være lønnsomt så bredt som mulig. Risiko - Aldri ignorere eller glemme risiko. Det er svært viktig å ha måter å begrense tap (ellers kjent som stopp-tap), og måter å låse inn fortjeneste (ta fortjeneste). 6. Handel - Prøv det, men forvent utilsiktede resultater. Pass på at du bruker ikke-automatisert handel til du er sikker på systemets ytelse og konsistens. Det tar lang tid å utvikle et vellykket handelssystem, og før du fullfører det, må du kanskje tåle noen live trading tap for å oppdage feil: Back testing kan ikke perfekt representere live markedsforhold, og papirhandel kan være unøyaktig. Hvis systemet mister penger, gå tilbake til tegnebrettet og se hvor det gikk galt (se trinn 5). Konklusjon Disse seks trinnene gir deg oversikt over hele prosessen med å bygge et handelssystem. I neste avsnitt vil vi bygge videre på denne kunnskapen og ta en mer grundig titt på feilsøking og modifikasjon. Lag et aksjemarkedssystem for ditt liv Handel for å leve er en spennende ide, og aksjehandelssystemer kan gi deg livet du vil. Et system er ganske enkelt et sett med regler som definerer hvordan du vil gå inn og ut av finansmarkedene for å tjene penger. Aksjemarkedssystemer fungerer fordi de eliminerer følelser, skaper konsistens og fanger en kant i markedene. Mostxa0new-forhandlere feiler og mister moneyxa0because de tar tips fra andre, de gjør det som er populært, de gjør det som høres bra ut på middagsselskaper, de gjør det som markedsføres tungt av bransjen, de bruker noen elses aksjemarked systemxa0-de gjør ikke hva som er lønnsomt Jeg tror du kan lykkes der hvor mange andre har mislyktes Du kan tjene penger på handel, xa0YOU kan leve og jobbe hvor som helst i verden, og du kan være fri for bedrifts slaveri. Bygg ditt eget handelssystem som oppfyller dine mål, passer din personlighet og gir deg livet du ønsker er svaret. Jeg kan vise deg i fire enkle trinn hvordan du kan bygge et lønnsomt system som vil fungere for deg, uansett om du vil bytte aksjemarkedet, futuresmarkedet eller valutamarkedet. Mitt mål er å hjelpe deg å lykkes ved å bygge ditt eget lønnsomme aksjehandelssystem som oppfyller dine mål og gir deg det livet du vil ha. De fleste nye handelsfolk feiler fordi de ikke har en veiledning for å hjelpe dem å bygge et lønnsomt system som passer dem. På egen hånd er dette en vanskelig reise. La meg hjelpe deg med å bli en lønnsom næringsdrivende raskt. Pass på at du også sjekker ut mitt nye nettsted på Enlightened Stock Trading for å lære å utvikle et vinnende aksjehandelssystem som passer din personlighet, dine mål og din ideell livsstil. Hvor starter jeg? Det finnes utallige kurs, dyre abonnementstjenester og systemer for salg i denne bransjen. Ingen av disse er svaret i isolasjon. . Svaret er å designe ditt eget handelssystem med en forståelse av deg selv. Noen som liker handling vil ha problemer med å handle en langsiktig ukentlig tilnærming Pasienten, som anses som person, vil finne det vanskelig å flytte inn til og ut av markedene flere ganger om dagen som en daghandler. Den som liker å være rett, vil ha problemer med en handelsstil som er feil 80 av tiden (selv om de resterende 20 gir mye penger samlet) Personen som lærer å handle mens de er i en heltidsjobb, vil finne det enklest å gjøre analysen sin etter timer, slik at jobben sin ikke lider og vil trenge en slutt på dagen systemet som imøtekommer dette Spørsmålet som de fleste nye handelsfolk spør: Hvordan gjør du penger trading ER DEN SVEENDE SPØRSMÅL Spørsmålet hver handelsmann bør spørre er: Hvordan kan jeg tjene penger handel Alle er forskjellige, soxa0you kan ikke tjene penger konsekvent å ta tips fra venner, følge nyhetsbrev, abonnere på lager tipping tjenester, lese nyhetsbrev, betale for dyre seminarer å lære hemmelige handelsmetoder. hvorfor Fordi disse tingene alle har en ting til felles - de unnlater å ta hensyn til deg. Det er mange misforståelser om hvordan man skal få konsekvent handelsoverskudd. Sannheten er at du kan bygge økonomisk frihet gjennom handel. uten å være tvunget til å se på markedene hele dagen, uten dagshandling uten høyfrekvenshandel uten scalping uten innsiden. Til tross for all hype er disse akkurat som en stressende jobb som kjeder deg til dataskjermen. Du kan ha både fritid og penger. Middels til langsiktige handelsstrategier kan gi deg dette. Min 4 trinns tilnærming til aksjemarkedssystemer De gode nyhetene er at det beste systemet ikke er komplisert eller vanskelig å designe. Uansett om du handler aksjemarkedet, futures markedet, xa0forex eller alternativer eller noe annet instrument, er det beste systemet en du bygger for deg selv slik at du forstår hvordan og hvorfor det fungerer. Min tilnærming for å veilede deg er en enkel og gjennomsiktig prosess for handelssuksess. Gjennom dette nettstedet og mine andre ressurser vil jeg hjelpe deg: Trinn 1: Angi dine handelssystemmål xa0 Trinn 2: Velg den aksjehandelsstrategien som passer best for deg Trinn 3: Bygg opp handelshandelssystemene på riktig måte Trinn 4: Dokumentér handelen din plan Når du går gjennom disse trinnene, vil du også vurdere å utvikle risikostyring og porteføljestyringsregler for å oppfylle målene dine. Velge programvaren din for å sikre at det er opp til oppgaven å utvikle et robust system. Få de beste handelsbøkene for å utvide din kunnskap. Eliminere trading feil Ixa0had dyrebar liten støtte på min egen reise til trading suksess. Det tok flere år å finne en tilnærming som ga livsstilen jeg ønsket. Mitt mål var frihet gjennom handel, ikke en full tid handels jobb. Det var svært begrenset nyttig støtte i handelsbransjen, og gode ressurser var vanskelig å finne. Jeg utviklet gradvis min forståelse av handelens psykologi og undersøkte mange handelsstrategier og investeringsstrategier. Ixa0read utallige bøker om handelssystemer, designet og testet mine egne systemer, lærte programvaren og fant veien. Mange mislykkes fordi dette er en utfordrende vei, men utfallet er vel verdt reisen. Jeg håper at deling av reisen gir deg suksess og snarveier din læringskurve til trading profitably. Build et aksjemarkedssystem med maskinlæring Jeg har brukt mye tid nylig på hvordan å bygge og teste en aksjemarkedsstrategi ved hjelp av maskinlæring. På slutten av min forskning finner jeg det ganske umulig, men det er mye moro i prosessen og noen ganger kan det også være lønnsomt. Jeg vil dekke følgende emner i denne bloggen artikkelen: 1) Typer markedsanalyse Jeg vil begynne med noen nøkkeltermer og analysemetoder når det gjelder finansmarkeder. Det er mange økonomiske vilkår som aksjer, obligasjoner, fond, ETFer, valutaer og så videre. men jeg vil fokusere på aksjer og aksjemarkedet her. Når du kjøper aksjer og aksjer, har du egen del av selskapet rett til å stemme på generalforsamlingene. Hver aksje er en liten eierandel i et selskap, og du kan kjøpe et stort antall. Prisen på en aksje forventes å øke når fremtidsutsikter for selskapet stiger, og reduseres etter hvert som disse utsiktene synker. Investorer faller vanligvis inn i en av to leire. Den første leiren tror på grunnleggende analyse. Fundamental analytikere helle gjennom bedriftsfinansierte ser etter informasjon som indikerer at markedet på en eller annen måte undervurderer aksjene i et selskap. Disse investorene ser på ulike faktorer som inntekt, inntjening og kontantstrøm. De undersøker også tallrike forhold knyttet til disse verdiene. Mange ganger innebærer dette å se på hvordan en bedrift8217s økonomi sammenligner med another8217s. Den andre leiren av investorer er de tekniske analytikerne. Tekniske analytikere mener at aksjekursen på en aksje allerede gjenspeiler all tilgjengelig offentlig informasjon, og at å se gjennom grunnleggende er i stor grad sløsing med tid. De tror at ved å se på historiske priser kan kartene se områder hvor prisene sannsynligvis vil stige, falle eller stagnere. Vanligvis føler de at disse diagrammene viser ledetråder til investorpsykologi. Hva begge gruppene har til felles er en underliggende tro på at riktig analyse kan føre til fortjeneste. Er dette sant, men 2) Forskning på aksjemarkedet Basert på den effektive markedshypotesen (EMH), en av de mest innflytelsesrike teoriene på aksjemarkedet de siste 50 årene, er det ikke mye håp om å tjene penger ved å utnytte mønstre på aksjemarkedet. Heldigvis, mens markedet opererer på en i stor grad effektiv måte i det hele tatt, har forskjellige lommer av ineffektivitet blitt avdekket. De fleste av disse pleier å være efemere, men noen fortsetter. En av de mest gjennomgripende i henhold til 8216faren til EMH8217, er Eugene Fama utkonkurransen av momentumstrategier. Så, hva er en momentumstrategi? Det er en rekke variasjoner på temaet, men den grunnleggende ideen er at aksjene er rangert fra høyest til laveste etter retur i løpet av en tidligere periode. Toppspillerne kjøpes og holdes i en tidsperiode, og prosessen gjentas etter en fast holdingsperiode. En typisk, langvarig momentumstrategi kan innebære å kjøpe de 25 største aksjene i SampP 500 i løpet av det siste året, holde dem i et år, og deretter gjenta prosessen. Dette kan høres ut som en absurd enkel strategi og det er. Det har imidlertid konsekvent returnert resultater som tåler forventning. Hvorfor Som du kan forestille deg, har mye forskning undersøkt denne effekten, og hypotesen er at det er noe iboende, systematisk forutinntatt om hvordan mennesker håndterer ny informasjon. Forskning tyder på at de underreagerer på nyheter på kort sikt og deretter overreagerer til nyheter på sikt. Vil denne effekten bli arbitraged vekk som flere handelsfolk lærer av det og hauger i. Det har vært noe bevis for dette de siste årene, men det er fortsatt uklart. Uansett var effekten ekte og vedvarende langt lenger enn det som for øyeblikket kan regnes for av effektivmarkedshypotesen, så det er håp. Med denne lille glimmer av håp, går let8217 nå videre og ser hvordan vi kan gå om å finne våre egne anomalier. 3) Utvikle et aksjemarkedssystem Jeg vil begynne å utvikle et børshandelssystem i denne delen. Jeg bruker Python med maskinlæring og følgende vitenskapelige Python-pakker. Hvis du er ny på Machine Learning og Python, anbefaler jeg at du leser boken Python Machine Learning. pandas 8211 Python dataanalysebibliotek, inkludert strukturer som dataframmer. Dette gir oss tilgang til flere kilder til lagerdata, inkludert Yahoo og Google. scikit-learn 8211 maskinlæringsalgoritmene som brukes til dataanalyse og datautvinningsoppgaver, vennligst don8217t gjør dumme ting med informasjonen i denne delen. Ikke risiker penger som du ikke har råd til å tape. Hvis du bestemmer deg for å bruke alt du lærte her for å handle, er du alene. Dette bør ikke anses som investeringsrådgivning av noe slag, og jeg aksepterer intet ansvar for dine handlinger. Først må jeg installere dataradapteren. Deretter fortsetter vi å sette inn vår import, som følger: Nå får vi våre data til SPY ETF. Dette instrumentet representerer aksjene i SampP 500. We8217ll trekker data fra begynnelsen av 2010 til begynnelsen av mars 2016: Den forrige koden genererer følgende utdata: Vi kan nå plotte våre data. We8217ll velg bare sluttkurs, som følger: Koden genererer følgende utgang: I det foregående viser vi prisdiagrammet for den daglige sluttkursen til SampP 500 for perioden vi valgte. Let8217s driver litt analyse for å se hva avkastningen over denne perioden kunne ha vært hvis vi hadde investert i denne ETF. Let8217s trekker data for den første åpne først: Den forrige koden genererer følgende utdata: Neste, let8217s får sluttkursen på den siste dagen av perioden: Dette vil resultere i følgende utgang: Og endelig, let8217s se endringen over hele periode: Her er resultatet: Det ser ut til at et kjøp på 100 aksjer i begynnelsen av perioden ville ha kostet oss ca. 11 237, og ved utgangen av perioden ville de samme 100 aksjene ha blitt verdsatt til rundt 19 811. Denne transaksjonen ville ha gitt oss en gevinst på over 76 i løpet av perioden. Ikke verst. Let8217s nå ta en titt på avkastningen over samme periode for bare intradag gevinster. Dette forutsetter at vi kjøper aksjene på åpent hver dag og selger det på slutten av samme dag: Dette vil gi oss endringen fra åpen til nær hver dag. Let8217s tar en titt på dette: Den forrige koden genererer følgende utdata: Let8217s nå summere disse endringene i løpet av perioden: Koden genererer følgende utgang: Så, som du kan se, har vi gått fra en gevinst på over 85 poeng til en på litt over 41 poeng. Ouch Mer enn halvparten av markedet8217s gevinster kom fra å holde over natten i løpet av perioden. Den daglige avkastningen var bedre enn intradagens avkastning, men hva med volatiliteten Returns er alltid dømt på risikojustert basis, så let8217s tar en titt på hvordan overnattingen sammenlignet med intradaghandelen på grunnlag av standardavviket. Vi kan bruke NumPy til å beregne dette for oss, som følger: Den forrige koden genererer følgende utdata: Nå får let8217s standardavviket. Koden genererer følgende utgang: Så hadde vår natthandel hatt lavere volatilitet i forhold til intradaghandel også. Men ikke all volatilitet er opprettet like. Let8217s sammenligner gjennomsnittlig endring på ulemper dager mot oppadgående dager for begge strategier. Først ser let8217s på oppadgående dager: Den forrige koden genererer følgende utgang: Nå ser vi på nedadgående dager: Den forrige koden genererer følgende utgang: Igjen ser vi at gjennomsnittlig nedadgående bevegelse er mindre for vår over natten handelsstrategi mot vår intraday trading strategi. Så langt så vi på alt i forhold til poeng, men let8217s nå flytter til å se på avkastning. Dette vil bidra til å gi våre gevinster og tap i en mer realistisk sammenheng. Fortsett med våre tre strategier, we8217ll konstruerer en pandaserie for hvert scenario: Daglig avkastning (nær nær endring), intradagavkastning (åpen for å lukke), og over natten returnerer (nær å åpne) som følger: Det vi har gjort er å bruke pandaene. shift () - metoden for å trekke hver serie fra den forrige dag8217-serien. For eksempel, for den første serien i den forrige koden, trakk vi for en dag siden fra nåværende sluttkurs for hver dag. En ny serie genereres som inneholder et mindre datapunkt på grunn av differensieringen. Hvis du skriver ut den nye serien, kan du se følgende: Den forrige koden genererer følgende utdata: Let8217s nå ta en titt på statistikken for alle tre strategiene. We8217ll oppretter en funksjon som kan ta i hver serie avkastning, og vil skrive ut sammendragsresultater. We8217 kommer til å få statistikk for hver av våre vinnende, tapende og breakeven-bransjer, og noe som heter Sharpe-forholdet. Jeg sa tidligere at avkastningen vurderes på en risikojustert basis. Dette er nøyaktig hva Sharpe-forholdet gir oss. Det er en metode for å sammenligne avkastningen ved å regne med volatiliteten i disse avkastningene. Her bruker vi Sharpe-forholdet med en justering for å annualisere forholdet: Let8217s driver nå hver strategi for å se statistikken. We8217ll starter med buy and hold-strategien (daglig retur) og deretter flyttes til de andre to, som følger: Den forrige koden genererer følgende utgang: Den forrige koden genererer følgende utgang: Den forrige koden genererer følgende utgang: Som du kan se, kjøp og hold-strategien har høyest gjennomsnittlig avkastning, så vel som den høyeste standardavviket til de tre. Dette har også den største daglige nedturen (tap). Legg også merke til at selv om strategien over natten bare har nesten samme gjennomsnittlige avkastning som intradagstrategien, har den betydelig mindre volatilitet. Dette gir i sin tur et Sharpe-forhold som er høyere enn intradag-strategien. På dette tidspunktet har vi en solid grunnlinje for å sammenligne våre fremtidige strategier. Nå skal jeg fortelle deg om en strategi som blåser alle tre av disse strategiene ut av vannet. Let8217s ta en titt på statistikken for denne nye mysteriestrategien: Med denne strategien har jeg nesten tredoblet Sharpe-forholdet over kjøp og hold, senket volatiliteten vesentlig, økt maksimal gevinst og redusert maksimalt tap med nesten halvparten. Hvordan uttænkte jeg denne markedsbaserte strategien Vent på it8230. Jeg gjorde dette ved å generere 1000 prøver av tilfeldige over natten signaler (enten å kjøpe eller ikke) for testperioden og deretter plukket den beste utførelsen. Dette ga meg strategien med de beste 1000 tilfeldige signalene. Dette er åpenbart ikke veien å slå markedet. Så da, hvorfor gjorde jeg det jeg gjorde for å demonstrere at hvis du tester nok strategier, er faktum at bare ved tilfeldig tilfeldighet vil du komme over noen strategier som ser ut til å være fantastiske. Dette kalles data mining feil. og det er en reell risiko i handelsstrategiutvikling. Derfor er det så viktig at en strategi forankres i virkelighetsadferd som er systematisk forutinntatt på grunn av noen virkelige verdier. Hvis du vil ha en fordel i handel, handler du ikke med markedene, du handler med de som handler markeder. Vår kanten kommer fra omtanke å forstå hvordan folk kan reagere på bestemte situasjoner. Utvider vår analyseperiode Let8217s utvider nå vår analyse. Først trekker we8217ll data for indeksen fra 2000: Let8217s ser på vårt diagram nå: Den forrige koden genererer følgende utgang: Her ser vi prishandlingen for SPY fra begynnelsen av 2000 til 1. mars, 2016. Det har sikkert vært mye bevegelse i den perioden da markedet har opplevd både svært positive og svært negative regimer. Let8217s får vår grunnlinje for vår nye utvidede periode for våre tre basestrategier. Først sett let8217s våre variabler for hver av dem, som følger: Nå, let8217s se hva poengtallene er for hver av dem. Først, nær lukk: Den forrige koden genererer følgende utgang: Åpne deretter for å lukke: Den forrige koden genererer følgende utgang: Endelig, nær å åpne: Den forrige koden genererer følgende utdata: Nå ser let8217s på statistikken for hver av dem. Først får vi statistikken for å lukke nær: Den forrige koden genererer følgende utgang: Deretter henter vi gjensidige returstatistikk: Den forrige koden genererer følgende utgang: Endelig får vi den daglige returstatistikken: Den forrige koden genererer følgende utgang: Vi kan se at forskjellene mellom de tre er enda mer uttalt over en lengre periode. Hvis vi bare holdt denne SampP ETF i løpet av dagen de siste 16 årene, ville vi ha mistet penger. Hvis vi holdt ETF bare over natten, ville vi ha forbedret avkastningen med mer enn 50. Det antas at det ikke er noen handelskostnader og ingen avgifter sammen med perfekte fyllinger, men uansett er dette et bemerkelsesverdig funn. 4) Bygg og evaluer maskininnlæringsmodellen Jeg vil bygge den første handelsstrategien ved hjelp av en støttesvektorregresjon, og den andre handelsstrategien ved hjelp av dynamisk tidsspring. Bygg vår modell med en støttevektorregresjon Nå som vi har en grunnlinje å sammenligne med, lar let8217s bygge vår første regresjonsmodell. We8217 kommer til å begynne med en veldig grunnleggende modell som bare bruker stock8217s tidligere avsluttende verdier for å forutsi neste dag8217s nær. We8217 kommer til å bygge denne modellen ved hjelp av en støttevektorregresjon. Med dette la let8217s opp vår modell. Det første trinnet er å sette opp et DataFrame-objekt som inneholder prishistorikk for hver dag. We8217 kommer til å inkludere de siste 20 lukkene i modellen vår, som følger: Den forrige koden genererer følgende utgang: Denne koden gir oss hver dag8217s sluttkurs sammen med de forrige 20 alle på samme linje. Dette danner grunnlaget for X-arrayet som vi skal mate modellen vår. Men før vi er klar for dette, er det noen få trinn. Først venter we8217ll våre kolonner slik at tiden går fra venstre til høyre, som følger: Den forrige koden genererer følgende utdata: Nå importerer let8217s vår støttevektormaskin og setter vår trenings - og testmatriser og våre målvektorer for hver: Vi hadde bare litt over 4000 datapunkter til å jobbe med, og velger å bruke de siste 1000 for testing. Let8217s passer nå til vår modell og bruker den til å teste ut data utenfor prøven som følger: Nå som vi har våre spådommer, sammenligner let8217s dem med våre faktiske data: Den forrige koden genererer følgende utdata: Evaluering av vår modell8217s ytelse Let8217s nå se på ytelsen til modellen vår. We8217 kommer til å kjøpe neste dag8217s åpne dersom lukken forventes å være høyere enn den åpne. We8217ll selger så på slutten samme dag. We8217ll legger til et par ekstra datapunkter til vårt DataFrame-objekt for å beregne resultatene våre som følger: Den forrige koden genererer følgende utgang: Her legger vi8217ll følgende kode for å få vårt signal og vår fortjeneste og tap for signalet: Den forrige koden genererer følgende utgang: Let8217s ser nå om vi kunne lykkes med å forutsi neste dag8217s pris ved å bruke bare prishistorikken. We8217ll starter ved å beregne poengene som er oppnådd, som følger: Den forrige koden genererer følgende utgang: Ouch Ikke ser for varmt så langt. Men hva med perioden vi testet Vi har aldri vurdert det i isolasjon. Hvor mange poeng ville vår grunnleggende intradagstrategi ha generert i løpet av de siste 1000 dagene: Den forrige koden genererer følgende utgang: Så ser det ut som om vår strategi ikke har samsvarer med den grunnleggende intradag-kjøpsstrategien. Let8217s får full statistikk for å sammenligne de to. For det første er den grunnleggende intradagstrategien for perioden som følger: Den forrige koden genererer følgende utdata: Nå er resultatene for vår modell som følger: Den forrige koden genererer følgende utgang: Dette ser dårlig ut. Hva om vi endret vår handelsstrategi Hva om vi bare tok handler som ble forventet å være større med et punkt eller mer i stedet for bare å være noe større enn det åpne. Vil dette hjelpe Let8217s å prøve det ut. We8217ll re-run vår strategi med et modifisert signal, som følger: Den forrige koden genererer følgende utgang: Nå er statistikken som følger: Den forrige koden genererer følgende utgang: Vi har gått fra dårlig til verre. Det ser ut til at hvis fortidshistorikken antyder gode ting å komme, kan du forvente akkurat det motsatte. Vi ser ut til å ha utviklet en contrarian indikator med vår modell. Hva om vi undersøker dette Let8217s ser hvordan våre gevinster vil se ut hvis vi vinklet vår modell slik at når vi forutsier sterke gevinster, handler vi ikke, men ellers gjør vi det som følger: Den forrige koden genererer følgende output: Let8217s får vår statistikk : Dette vil resultere i følgende utgang: Det ser ut til at vi har en kontrarisk indikator her. Når modellen forutsetter sterk neste dags gevinster, har markedet vesentlig underprester (i hvert fall for vår testperiode). Ville dette holde fast i de fleste scenarier Ikke sannsynlig. Markeder har en tendens til å vende seg fra regimer med vesentlig reversering til regimer av trendutholdenhet. Let8217s gjenoppleder vår modell for en annen periode for å teste den videre: Den forrige koden genererer følgende utgang: Så kan vi se at vår nye modell og testperiode returnerte over 33 poeng. Let8217s sammenligner dette med intradagstrategien for samme tidsperiode: Dette resulterer i følgende utgang: Så det ser ut til at vår kontrariske modell har vesentlig bedre resultater enn vår nye testperiode. På dette tidspunktet er det en rekke utvidelser som vi kunne gjøre med denne modellen. Vi har også blitt berørt av å bruke tekniske indikatorer eller de grunnleggende dataene i vår modell, og vi har begrenset våre handler til en dag. Alt dette kan bli tweaked og utvidet på. Men på dette punktet vil jeg introdusere en annen modell som bruker en helt annen algoritme. Denne algoritmen kalles dynamisk tidsforskjøring. Hva det gjør er å gi deg en metrisk som representerer likheten mellom to tidsserier. Modeling med Dynamic Time Warping For å komme i gang, må we8217ll installere fastdtw-biblioteket fra kommandolinjen ved hjelp av pip install fastdtw. Når dette er gjort, importerer we8217ll de ekstra bibliotekene vi trenger, slik: Neste, we8217ll skaper funksjonen som vil ta i to serier og returnere avstanden mellom dem: Nå delte vi8217ll våre 16 års tidsseriedata inn i forskjellige fem dagperioder. We8217ll par sammen hver periode med ett ekstra punkt. Dette vil tjene til å lage våre x - og y-data som følger: Vi kan se på vår første serie for å få en ide om hvordan dataene ser ut: Den forrige koden genererer følgende utgang: Nå som vi har hver serie, vi kan kjøre dem gjennom vår algoritme for å få avstanden for hver serie mot hver andre serie: Når vi har dette, kan vi plassere det i et DataFrame-objekt. We8217ll drop serie som har null avstand som de representerer samme serie. We8217ll sorterer også etter dato for serien og ser bare på de der den første serien er kronologisk før den andre: Endelig begrenser vi våre bransjer til hvor avstanden er mindre enn 1 og den første serien har en positiv avkastning: Det forrige kode genererer følgende utdata: Let8217 ser hva et av våre toppmønstre ser ut når de tegnes: Den forrige koden genererer følgende utdata: Nå, we8217ll plotte den andre: Den forrige koden vil generere følgende utgang: Som vi kan se, kurver er nesten identiske, noe som er akkurat det vi ønsker. We8217 kommer til å prøve å finne alle kurvene som har positive neste dagers gevinster. Så, når vi har en kurve som er svært lik en av disse lønnsomme kurver, vil vi kjøpe det i påvente av en annen gevinst. Let8217s bygger nå en funksjon for å evaluere våre bransjer. We8217ll kjøper lignende kurver med mindre de ikke klarer å returnere et positivt resultat. Hvis dette skjer, eliminerer we8217ll dem: Nå som vi har alle avkastningene fra våre handler lagret i returlisten, vurderer let8217s resultatene: Den forrige koden genererer følgende utdata: Disse resultatene er langt det beste vi har sett. Winloss-forholdet og gjennomsnittet er langt over våre andre modeller. Det ser ut til at vi kan være på noe med denne nye modellen, spesielt i forhold til de andre som vi har sett. På dette tidspunktet, for å videreutvikle vår modell, bør vi utforske robustheten ved å undersøke andre tidsperioder for våre kamper. Går utvidelse utover de fire dagene, forbedrer modellen Bør vi alltid utelukke mønstre som gir et tap Det er mange flere spørsmål vi kan utforske på dette punktet, men I8217ll la det være som en øvelse for leseren. Hvis du bruker disse teknikkene, vet du at vi nettopp har kløftet overflaten, og at det er langt mer testing nødvendig over flere vinduer for å teste disse modellene på riktig måte. Bygge en handelsdatamaskin. kd2013 3 juni 2013, 3:31 Jeg vurderer å ha et tilpasset system bygget. Datamaskinen min døde, og jeg vet at når du bygger, får du vanligvis en bedre avtale enn å kjøpe en produsert modell. Når du bygger en datamaskin, hvilke er de viktigste funksjonene som vil gjøre en forskjell når du handler aksjer. Hvilke typer teknologi bruker de fleste nettverksmegler nettverk, systemplatforms bruker jeg leser et sted som thinkorswim har maksimale grenser for rambruk. Jeg vil ikke bruke hundrevis på funksjoner som egentlig ikke gjør så mye av en forskjell. I utgangspunktet noen veiledning og meninger om hva som virkelig er nødvendig, og hva som vil gjøre en drastisk forskjell i eksekveringshastighet, mønstergenkjenning etc. generelt, hvor går hastighet og minne virkelig forskjellig når det gjelder standardoppgraderinger når dagens handel er disse generelle spørsmålene som jeg prøver å sortere ut noen hjelp er verdsatt 1. CPU (prosessor) A. Does multi-core prosessering virkelig øke resultatene De fleste prosessorer nå en dag har et sted mellom 2-8 kjerner, synes 2 og 4 core cpus ganske populære. Så noen prosessorer har samme GHz, men flere kjerner er at noe betydelig, oppgavene er spredt over flere kjerner, noe som betyr at høyere kjerneprosessor i teorien burde være mye raskere for å fullføre samme oppgave. B. Gjør forskjeller i GHz-hastigheter merkbart bedre ytelse 2. ghz vs 3ghz vs 4ghz etc de fleste prosessorer faller i midten 3 til 4 rekkevidde, vil 3.5ghz virkelig være alt som er forskjellig fra 4.0ghz 2.Memory (ram). Jeg vet at ram er i utgangspunktet nåværende oppgavemultitasking minne. Så fort pålitelig minne bør være noe å investere i og prisforskjellene arent egentlig alt som er betydelig. Gjør ramhastighet en stor forskjell DDR3-1600 vs DDR3-2800 Jeg vet hvor mye brukbar ram som er avgjørende, men hvor mye er virkelig nødvendig, 4gb, 6gb, 8gb, 16gb Jeg planlegger bare å kjøre operativsystemet, plattformen, internett, antivirus - ingen bakgrunnsprogrammer. Er det sannsynlig med bare løpende diagrammer og en megler online plattform at jeg vil jeg noensinne treffer en vegg når du bruker 4-8g ram 3. lagring ssd-solid state drive er raskere, Ive leser det sikkert verdt oppgraderingen vs typisk sata hardt kjør-hva med hybirds (msata-jeg tror msata er hybrid mellom de to). SSD er dyrt hvis jeg er heldig jeg kan hente en billig SSD til samme pris som en standard 1T 7200rpm harddisk. Jeg tenker 120gb ssd med mindre en 250gb går på salg 4.graphic-videokort (er) - må være i stand til å kjøre flere skjermer. men kvaliteten på bildet av diagrammer virkelig er ikke den høyeste prioriteten, raskere mer enn skarphet eller bildekvalitet, så jeg tror å prøve å få høyest video ram mulig og få noe kryssfire eller sli kapasitet hvis jeg bruker flere kort. 5.psu strømforsyning og cpu kjøler-i utgangspunktet avhengig av hva watt og bruk er, åpenbart bør jeg gå for kvalitet, men ikke overkill 6.same går for hovedkort og saken gå for kvalitet, men detaljene av det jeg trenger vil være basert på alt ovenfor og virkelig hva systemet trenger - for meg er den vanskeligste delen å velge spesifikasjonene til CPU-prosessoren og skjermkortet jeg vil ha. Jeg vil trenge minium et system som kan kjøre 3 skjermer og muligens basert på prisforskjell noe som kan løpe opp til 6. Jeg tror de fleste moderne prosessorer vil få jobben gjort bra, og et anstendig grafikkort med nødvendige adaptere som så lenge de jobber sammen og utvide skrivebordet mitt og ikke lagre. så jeg tenker intel i3-serien cpu, kanskje i5. Gi eller ta i3-serien er omtrent halvparten av kostnaden for i5, er i5 og i7 2-4 ganger raskere fordi prisen gir eller tar 2x mer. Hvis jeg ikke skalp trading med 10 tusen aksjer og store deler, vil en oppgradert prosessor være gunstig og verdt investeringen jeg vet jeg kan få en mye bedre AMD for lignende priser, men datamaskinene Ive hadde med AMD-prosessorer ser virkelig ut til å bremse etter tiden og jeg er ganske sikker på at den hadde mer å gjøre med prosessorens holdbarhet enn rammen og harddisken på mine tidligere datamaskiner. Mine Intel-datamaskiner varte lenger, de ble også langsommere med alderen, ikke så merkbart. Jeg budsjetterer om 100-150 per hoveddel noen vil være under 100 og vil gjøre opp for de litt dyrere delene. Mitt håp er å bygge et anstendig system for 500-700 Jeg er ikke sikker på hvor realistisk det målet er, men jeg føler at datamaskinen vil trolig være bedre enn hva jeg kunne kjøpe i det prisklasse - i utgangspunktet ville bygge vs kjøper prisforskjellen mest være Tilstedeværelsen av grafikkort (e), ssd-lagring og ram mer og raskere ram. Det du kjøper for 500-700, vil trolig ikke kunne vise flere skjermer, kanskje ikke være i stand til å utvide RAM-minnet. Det kommer nok til å ha litt tregere ram samt langsommere lagringsharddisk. 1 svar Siste svar 3. juni 2013 Mer om bygge trading datamaskin

No comments:

Post a Comment