Friday 10 November 2017

Forex Neural Nettverk Innganger


Beskrivelse: Two Forex - bruker indikator neuron direkte distribusjonsnettverk (feedforward neaural network), som er læring ved tilbakeføring av feil (backpropagation). Nettverket lastes gjennom en DLL-fil, C-kildekoden som er vedlagt. Neuron-nettverket er ikke noe mer enn en ikke-lineær modellutgang som en funksjon av innganger. Ved inngangene serveres brukerdata, for eksempel prøve tidsseriene. Betydningen av utgangen er også satt av brukeren, for eksempel signaler 1 kjøpe 0 selge. Strukturen av nettverket, igjen satt av brukeren. Nettverket består av en direkte distribusjon - Inndata laget (inngangslag), hvis elementer er innganger, Skjulte lag (skjulte lag), som består av beregningsnoder kalt neuron s og Utgangslaget (utgangslag), som består av en eller flere neuron s, utbytter er utbyttet over nettverket. Alle knuter i nabolagene er koblet sammen. Disse forbindelsene kalles synapser. Hver synaps har en vekt (vekt w i, j, k), som multipliseres med dataene som overføres av synapsene. Databevegelser fra venstre til høyre er innganger fra nettverket til utgangene. Dermed navnet direkte distribusjonsnettverk. Den totale prøven av dette nettverket er avbildet i bildet nedenfor. Dataene behandles neuron s i to trinn: 1. 1. Alle inngangene multiplisert med riktig vekt, du legges til 2. 2. Deretter blir den resulterende mengdehåndterte aktiveringen funksjon nevron (aktiverings - eller avfyringsfunksjon) og (aktiverings - eller avfyringsfunksjon) og sendt til den eneste utgangen. Betydningen av aktiveringsfunksjonen neuron som er modelleringsarbeidet neuron og hjernen: neuron utløses først etter at informasjonen har nådd en viss terskel. I de matematiske aspektene gir det bare ikke-lineærnettverket. Uten det ville nerveutslipp være en lineær autoregressiv modell (lineær prediksjonsmodell). Den vanligste aktiveringsfunksjonen neuron er en sigmoidfunksjon f (x) 1 (1exp (-x)) f (x) 1 (1 exp (-x)) Terskelen for aktivering av denne funksjonen er 0. Denne terskelen kan forskyves på den horisontale aksen på bekostning av en ytterligere inngangsnoron (forspenningsinngang), og kalt input bias (bias input), som tilordnes en viss vekt på samme måte som andre innganger neuron. Dermed er antall innganger, lag, nevroner i hvert lag og vektene av innganger nevron s hele nevronnett, dvs. ikke-lineær modell, som den skaper. For å bruke denne modellen må du vite vekten. Vektene beregnes ved å trene nettverket på tidligere data, dvs. med tidligere inngangsdata var kjente verdier av utgangssignalet. Nettvektene er optimalisert for å matche utgangen med testløsningen. Vanligvis arkiverte innganger til nettverket flere sett med inngang og tilsvarende utdata og beregnet gjennomsnittlig feilavvik for utdata fra nettverksprøven. Opplæringsnettverket er å redusere dette problemet ved å optimalisere vektene. Det finnes flere optimaliseringsmetoder, blant annet den viktigste måten å forplante seg feil (ALO) og metoden for genetisk forbedring. Vedlagte filer: Train () Test (). Bibliotek BPNN. cpp-filen inneholder to funksjoner: Train () og Test (). Train () er designet for å trene nettverket for å gi inn - og utdata. Test () er beregnet for beregning av utdata basert på vikter oppnådd etter kjøring av tog (). Input (grønn farge) og utgang (blå) parametere for funksjonen Train () er: double inpTrain - input (eldre først) double outTarget - Imprint (eldste først) double outTrain - avslutter nettverket etter trening int ntr - antall trening sett av input-output int UEW - Administrere nøkkel eksterne verdier for å initialisere vektene (1 bruk extInitWt, 0 bruk tilfeldige tall) ekstInitWt - opprinnelige verdier doblet opplærtWt - verdiene av vekt etter trening int numLayers - antall lag i nettverket inkludert input, skjult og utdata int lSz - array size numLayers, som holdt antall neuron s i hvert lag. lSz0 lSz 0 angir antall nettverksinnganger int OAF - en nøkkelfunksjon ved aktivering av utgangssignaler s (1 funksjon aktivert, 0 nei) dobbelt LR-hastighetsopplæring dobbelt MF - øyeblikket for læringsfrekvens int nep - maksimum antall trening trinn (epoker). Epok består av å sjekke alle treningssettene. dobbelt maxMSE - gjennomsnittlig feil, der læringen stopper. Input (grønn) og utgang (blå) parametere for funksjonen Test () er: dobbelt inpTest - inngangsdata (eldre først) dobbelt utTest - Innholdsfortegnelse int ntt - sett av inngangs - og utdata data dobbelt utløp - opprinnelige verdier verdier numLayers - nummer av lag i nettverket, inkludert inndata, skjulte og output int lSz - array size numLayers, som holdt antall neuron s i hvert lag. l lSz 0 angir antall nettverksinnganger int OAF - en nøkkelfunksjon ved aktivering av utgangssignaler s (1 funksjon aktivert, 0 nei) Ved å aktivere utgangssignalet, er det avhengig av utgangens art. Hvis utgangssignalene til nettverket er binomial (0 1), må du bruke aktiveringsfunksjonen (OAF 1). Hvis utgangen er en prediksjon av pris, er aktiveringsfunksjonen i utgangslaget ikke nødvendig (OAF 0). Eksempler på indikatorer brukt neuron Nettverk: BPNN Predictor. mq4 - forutsi fremtidige priser. Nettverksinngangsparametere er de relative prisintervallene: x i Åpne testbar Åpne testbarforsinkelse i -1,0 hvor forsinkelse jeg har tatt fra Fibonacci-serien. Nettverksproduksjonen forutsettes en relativ økning i fremtidige priser. Aktiveringsfunksjonen i utgangslaget er deaktivert. Inngangsparametere er en indikator Ekstern Int LastBar - Nummer på den siste linjen Eksterne int FutBars - Antall fremtidige predicted bars Eksterne int NumLayers - Antall lag i nettverket inkludert inntasting, Skjult og Utgang ekstern Int NumInputs - Antall nettverksinnganger eksternt int numNeurons1 - antall neuron s i et lag nummer 1 ekstern int numNeurons2 - antall neuron s i lag nummer 2 ekstern int numNeurons3 ekstern int numNeurons4 ekstern int numNeurons5 ekstern int ntr - antall treningssett med inngangsutgang ekstern dobbelt LR - hastigheten på læring nettverk ekstern dobbel MF - koeffisient av tid læring nettverk ekstern int nep - det maksimale antall trenings trinn (epoker) ekstern int maxMSEpwr - eksponent brukes til å beregne maksimal tillatelse gjennomsnittlig kvadrat feil læring maxMSE 10 maxMSEpwr Kjøp-selg Classificator. mq4 - buysell. Buy-Sell Classificator. mq4 - predictive indicator kjøpe selgesignaler. Som i det forrige eksempelet, ble inntastingsnettverket servert xiOpentestbarOpentestbardelayi-1.0 x i Åpne testbar Åpne testbarforsinkelse i -1,0 for barer, som tidligere mottok signal for å kjøpe eller selge. Disse siste signalene er ideelle som inngangssignaler for å oppnå et gitt overskudd. Nettverksutgangssignal er 1 eller 0 kjøpssalg. Utgangslagsaktiveringsfunksjonen. ekstern int lastBar - nummer for siste stang ekstern int minProfit - minimumsresultatet for å finne det ideelle inngangspunktet i den tidligere eksterne dobbelte terskelen - terskelen for å gjenkjenne utgangssignalene som 0 eller 1 ekstern int numLayers - antall lag i nettverket inkludert inntasting, skjult og utdata ekstern int numInput - antall nettverksinnganger ekstern int numNeurons1 - antall neuron s i et lag nummer 1 ekstern int numNeurons2 - antall neuron s i lag nummer 2 ekstern int numNeurons3 ekstern int numNeurons3 ekstern int numNeurons4 ekstern int numNeurons4 ekstern int numNeurons5 ekstern int ntr - antall treningssett av inngangsutgang (avhenger av antall kjøpssalgssignaler i det siste, 0 velger alle gyldige signaler) ekstern dobbel LR - læringshastigheten nettverk eksternt dobbelt MF - koeffisient av tid læring nettverk ekstern int nep - det maksimale antall trening trinn (epoker) ekstern int maxMSEpwr - eksponent brukes til å beregne det maksimale alt owable mean-square feil læring maxMSE 10 maxMSEpwr Pil til høyre for de vertikale grønne linjene indikerer kjøp selgesignaler generert av nettverket for å teste fremtidige barer. Pilene til venstre viser det optimale inngangspunktet i det siste. Installasjon av filer: Kopier vedlagt DLL-fil i C: Programfiler MetaTrader 4 ekspertbiblioteker Aktiverer bruk av DLL i metatrader: Verktøy - Valg - Ekspertrådgivere - Tillat DLL-import Hvis DLL-filen ikke fungerer, kompilere selv. Alle nødvendige filer er inkludert i BPNN. zip. Hybrid Neural Network Stopp-og-Reverse Strategier for Forex av Michael R. Bryant Nevrale nettverk har blitt brukt i handelssystemer i mange år med varierende grad av suksess. Deres primære attraksjon er at deres ikke-lineære struktur er bedre i stand til å fange kompleksiteten til prisbevegelsen enn standard, indikatorbaserte handelsregler. En av kritikkene har vært at nevrale nettbaserte handelsstrategier pleier å være overpassede og derfor ikke fungerer bra på nye data. En mulig løsning på dette problemet er å kombinere nevrale nettverk med regelbasert strategisk logikk for å skape en hybrid-type strategi. Denne artikkelen viser hvordan dette kan gjøres ved hjelp av Adaptrade Builder. Spesielt vil denne artikkelen illustrere følgende: Kombinere nevrale nettverk og regelbasert logikk for handelsoppføringer En tre-segmentet data tilnærming vil bli brukt, med det tredje segmentet som brukes til å validere de endelige strategiene. Den resulterende strategikoden for både MetaTrader 4 og TradeStation vil bli vist, og det vil bli demonstrert at valideringsresultatene er positive for hver plattform. Neural Networks som Trade Entry Filters Matematisk er et neuralt nettverk en ikke-lineær kombinasjon av en eller flere vektede innganger som genererer en eller flere utgangsverdier. For handel er et nevralt nettverk vanligvis brukt på en av to måter: (1) som en prognose for fremtidig prisbevegelse, eller (2) som en indikator eller et filter for handel. Her vil bruken som indikator eller handelsfilter bli vurdert. Som en indikator virker et neuralt nettverk som en ekstra betingelse eller filter som må tilfredsstilles før en handel kan innføres. Inngangene til nettverket er vanligvis andre tekniske indikatorer, for eksempel momentum, stokastikk, ADX, glidende gjennomsnitt og så videre, samt priser og kombinasjoner av det foregående. Inngangene er skalert, og det nevrale nettverket er utformet slik at utgangen er en verdi mellom -1 og 1. En tilnærming er å tillate en lang oppføring hvis utgangen er større enn eller lik en terskelverdi, for eksempel 0,5 og en kort oppføring hvis utgangen er mindre enn eller lik negativet av terskelen f. eks -0,5. Denne tilstanden vil være i tillegg til eventuelle eksisterende oppførselsforhold. For eksempel, hvis det var en lang inngangsbetingelse, måtte det være sant, og den neurale nettverksutgangen må minst være terskelverdien for en lang oppføring. Når du etablerer et neuralt nettverk, vil en næringsdrivende typisk være ansvarlig for å velge inngangene og nettverkstopologien og for quottrainingquot nettverket, som bestemmer de optimale vektverdiene. Som det vises nedenfor, utfører Adaptrade Builder disse trinnene automatisk som en del av den evolusjonære byggeprosessen som programvaren er basert på. Ved å bruke det neurale nettverket som et handelsfilter, kan det enkelt kombineres med andre regler for å skape en hybrid handelsstrategi, en som kombinerer de beste funksjonene i tradisjonelle, regelbaserte tilnærminger med fordelene ved nevrale nettverk. Som et enkelt eksempel kan Builder kombinere en glidende gjennomsnittlig crossover-regel med et neuralt nettverk slik at en lang posisjon blir tatt når det bevegelige gjennomsnittsgruppen krysser over det langsomme glidende gjennomsnittet og den nevrale nettverksutgangen er over eller over terskelen. Stopp-og-omvendt handelsstrategier En stopp-og-omvendt handelsstrategi er en som alltid er i markedet, enten lang eller kort. Strikt sett betyr quotstop-and-reversequot at du reverserer handelen når stoppordre er truffet. Imidlertid bruker jeg det som en kort hånd for enhver handelsstrategi som reverserer fra lang til kort til lang og så videre, slik at du alltid er i markedet. Ved denne definisjonen er det ikke nødvendig for ordrene å være stoppordrer. Du kan skrive inn og reversere ved hjelp av markeds - eller begrensningsordrer også. Det er heller ikke nødvendig at hver side bruker samme logikk eller til og med samme ordretype. For eksempel kan du skrive inn lang (og avslutte kort) på en stoppordre og angi kort (og avslutte lang) på en markedsordre, ved hjelp av forskjellige regler og betingelser for hver oppføring. Dette ville være et eksempel på en asymmetrisk stopp-og-omvendt strategi. Den primære fordelen med en stopp-og-omvendt strategi er at ved alltid å være i markedet, savner du aldri noen store trekk. En annen fordel er enkelhet. Når det er egne regler og vilkår for å komme inn og ut av handel, er det mer kompleksitet og mer som kan gå galt. Kombinere oppføringer og utganger betyr færre tidsavgjørelser må gjøres, noe som kan bety færre feil. På den annen side kan det hevdes at de beste vilkårene for å utveksle en handel sjelden er de samme som de for inntasting i motsatt retning at inntreden og spennende handler er iboende separate beslutninger som derfor skal anvende egne regler og logikk. En annen potensiell ulempe ved alltid å være i markedet er at strategien vil handle gjennom alle åpningsgapene. Et stort åpningsgap mot stillingen kan bety et stort tap før strategien er i stand til å reversere. Strategier som går inn og ut mer selektivt eller det går ut på slutten av dagen, kan minimere effekten av åpningsgap. Siden målet er å bygge en forexstrategi, er MetaTrader 4 (MT4) et åpenbart valg for handelsplattformen gitt at MetaTrader 4 er utviklet primært for forex og er mye brukt for handel med disse markedene (se for eksempel MetaTrader vs. TradeStation : En språklig sammenligning). I de senere år har TradeStation imidlertid målrettet valutamarkedet mye mer aggressivt. Avhengig av handelsvolumet og eller på kontonivået, er det mulig å handle forexmarkedet gjennom TradeStation uten å pådra seg noen plattformavgift eller betale noen provisjoner. Spread er etter hvert stramt med god likviditet på de store forexparene. Av disse grunnene var begge plattformene rettet mot dette prosjektet. Flere problemer oppstår når du målretter mot flere plattformer samtidig. For det første kan dataene være forskjellige på forskjellige plattformer, med forskjeller i tidssoner, prisopplysninger for noen barer, volum og tilgjengelige datoperioder. For å glatte over disse forskjellene, ble data oppnådd fra begge plattformene, og strategiene ble bygget over begge dataseriene samtidig. De beste strategiene var derfor de som fungerte bra på begge dataseriene til tross for eventuelle forskjeller i dataene. Datainnstillingene som brukes i Builder er vist nedenfor i figur 1. Som kan utledes av Market Data-tabellen i figuren, ble Eurodollar forexmarkedet målrettet (EURUSD) med en barstørrelse på 4 timer (240 minutter). Andre bar størrelser eller markeder ville ha tjent like godt. Jeg var bare i stand til å skaffe så mye data gjennom MT4-plattformen min som angitt i datoperioden vist i figur 1 (datareserie 2), så det samme datoperioden ble brukt til å skaffe tilsvarende dataserie fra TradeStation (dataserie 1) . 80 av dataene ble brukt til Building (kombinert i sample og quotout-of-samplequot), med 20 (62014 til 21015) satt til side for validering. 80 av den opprinnelige 80 ble deretter satt til kvoteprøvekvot med 20 satt til utskrift av prøve, som vist i figur 1. Budspredet ble satt til 5 pips og handelsutgifter på 6 pips eller 60 pr. Størrelsesparti (100.000 aksjer) ble antatt per rundtur. Begge dataseriene ble inkludert i byggingen, som angitt av merket i venstre kolonne i Market Data-tabellen. Figur 1. Markedsdatainnstillinger for å bygge en forexstrategi for MetaTrader 4 og TradeStation. Et annet potensielt problem når du målretter mot flere plattformer er at Builder er utformet for å duplisere måten hver støttet plattform beregner sine indikatorer, noe som kan bety at indikatorverdiene vil variere avhengig av hvilken plattform som er valgt. For å unngå denne mulige uoverensstemmelseskilden, bør alle indikatorer som vurderes annerledes i MetaTrader 4 enn i TradeStation elimineres fra byggingen, noe som betyr at følgende indikatorer bør unngås: Alle andre indikatorer som er tilgjengelige for begge plattformene, beregnes på samme måte i begge plattformene. TradeStation inneholder alle indikatorene som er tilgjengelige i Builder, mens MetaTrader 4 ikke gjør det. Derfor, for å bare inkludere indikatorer som er tilgjengelige på begge plattformene, bør MetaTrader 4-plattformen velges som koden i Builder. Det vil automatisk fjerne indikatorer fra byggsettet som ikke er tilgjengelige for MT4, som vil forlate indikatorene som er tilgjengelige på begge plattformene. I tillegg, siden jeg la merke til forskjeller i volumdataene fra hver plattform fjernet jeg alle volumavhengige indikatorer fra byggesettet. Til slutt ble tidsindikatoren fjernet på grunn av forskjeller i tidssonene mellom datafiler. I figur 2 nedenfor vises listen over indikatorer som brukes i byggesettet, sortert etter om indikatoren ble vurdert av byggeprosessen (quotConsiderquot-kolonnen) eller ikke. Indikatorene fjernet fra vurdering av årsakene som er diskutert ovenfor, vises øverst på listen. De resterende indikatorene, som begynte med quotSimple Mov Avequot, var alle en del av byggesettet. Figur 2. Indikatorvalg i Builder, som viser indikatorene fjernet fra byggsettet. Evalueringsalternativene som brukes i byggeprosessen er vist i figur 3. Som diskutert, ble MetaTrader 4 valgt som valg av kodeutgang. Etter at strategier er bygget i Builder, kan noen av alternativene i kategorien Evalueringsalternativer, inkludert koden, endres og strategiene revurderes, som også omskriver koden i hvilket språk som er valgt. Denne funksjonen ble brukt til å skaffe TradeStation-koden for den endelige strategien etter at strategiene ble bygget for MetaTrader 4. Figur 3. Evalueringsalternativer i Builder for EURUSD-forexstrategien. For å lage stopp og revers strategier ble alle utgangstyper fjernet fra byggsettet, som vist nedenfor i figur 4. Alle tre typer inngangsordrer - marked, stopp og grense - ble igjen som quotconsiderquot, hvilket betyr at byggeprosessen kan vurdere noen av dem under byggeprosessen. Figur 4. Ordre typer valgt i Builder for å lage en stopp-og-omvendt strategi. Builder-programvaren genererer automatisk regelbaserte logiske forhold for inngang og exit. For å legge til et neuralt nettverk i strategien, er det bare nødvendig å velge alternativet quotInclude et neuralt nettverk i opptaksbetingelser på fanen Strategialternativer, som vist nedenfor i figur 5. De neuralnettverksinnstillingene ble igjen på standardinnstillingene. Som en del av stop-and-reverse-logikken ble Market Sides-alternativet satt til LongShort, og muligheten til å quotWait for exit før du angav ny tradequot, ble ikke merket av. Sistnevnte er nødvendig for å gjøre det mulig for inngangsordren å gå ut av gjeldende posisjon ved reversering. Alle andre innstillinger ble igjen på standardinnstillingene. Figur 5. Strategialternativer valgt i Builder for å lage en hybridstrategi som bruker både regelbaserte og neurale nettverksforhold. Den evolusjonerende naturen til byggeprosessen i Builder styres av treningen. som beregnes ut fra målene og betingelsene som er definert på tabellen Metrics, som vist nedenfor i figur 6. Byggemålene ble holdt enkle: Maksimering av nettoresultatet samtidig som kompleksiteten ble minimert, noe som ble gitt en liten vekt i forhold til nettoresultatet. Mer vekt ble lagt på byggevilkårene, som inkluderte korrelasjonskoeffisienten og betydningen for generell strategi kvalitet, samt gjennomsnittlig barer i bransjer og antall bransjer. I utgangspunktet ble bare de gjennomsnittlige barene i bransjer inkludert som en byggebetingelse. Men i noen av de tidlige byggene ble nettoresultatet favorisert over handelslengden, slik at tallverdien ble målt. Det angitte området for antall handler (mellom 209 og 418) tilsvarer gjennomsnittlig handelslengde mellom 15 og 30 bar basert på antall barer i byggeperioden. Som følge av dette ble det lagt vekt på handel lengdemål, noe som resulterte i flere medlemmer av befolkningen med ønsket rekkevidde av handelslengder. Figur 6. Bygg mål og forhold som er angitt på tabellen Metrics, bestemme hvordan treningen beregnes. Kvotkriteriene for valg av Top Strategiesquot dupliserer byggevilkårene, bortsett fra at de øverste strategibetingelsene blir vurdert over hele spekteret av data (ikke inkludert valideringssegmentet, som er separat), i stedet for like over byggeperioden, som det er tilfellet for byggeforhold. De øverste strategiske forholdene brukes av programmet til å avsette noen strategier som oppfyller alle forholdene i en egen befolkning. De endelige innstillingene er gjort på kategorien Byggalternativer, som vist nedenfor i figur 7. De viktigste alternativene her er populasjonsstørrelsen, antall generasjoner og muligheten til å tilbakestille basert på quote-of-samplequot-ytelsen. Befolkningsstørrelsen ble valgt for å være stor nok til å få godt mangfold i befolkningen, mens den fortsatt var liten nok til å bygge i en rimelig tid. Antall generasjoner var basert på hvor lang tid det tok i løpet av noen foreløpige bygg, for resultatene begynte å konvergere. Figur 7. Byggemuligheter inkluderer befolkningens størrelse, antall generasjoner og alternativer for tilbakestilling av befolkningen basert på quotout-of-samplequot-ytelse. Alternativet til quotReset på Out-of-Sample (OOS) Performancequot starter byggeprosessen over etter det angitte antall generasjoner hvis den angitte tilstanden er oppfylt i dette tilfellet, vil befolkningen bli tilbakestilt dersom nettouttektene for kvotering av samplequot er mindre enn 20.000. Denne verdien ble valgt basert på foreløpige tester for å være en høy nok verdi som det sannsynligvis ikke ville bli nådd. Som et resultat ble byggeprosessen gjentatt hver 30. generasjon til den ble stoppet manuelt. Dette er en måte å la programmet identifisere strategier basert på toppstrategier-betingelsene over en lengre periode. Periodevis kan toppstrategier-befolkningen kontrolleres og byggeprosessen avbrytes når passende strategier blir funnet. Legg merke til at jeg siterer quote-of-samplequot i anførselstegn. Når kvoteringstiden er brukt til å tilbakestille befolkningen på denne måten, er eksponeringstiden ikke lenger virkelig ute av prøven. Siden denne perioden nå brukes til å veilede byggeprosessen, er den en del av prøveperioden. Derfor er det tilrådelig å sette bort et tredje segment for validering, som det ble diskutert ovenfor. Etter flere timers behandling og en rekke automatiske gjenoppbygginger ble det funnet en passende strategi i toppstrategier-befolkningen. Dens lukkede handelskapitalkurve er vist under i figur 8. Egenkapitalkurven viser konsistent ytelse på tvers av begge datasegmentene med et tilstrekkelig antall bransjer og i hovedsak de samme resultatene over begge dataserie. Figur 8. Closed-trade egenkapitalkurve for EURUSD stopp-og-omvendt strategi. For å sjekke strategien i løpet av valideringsperioden ble dato kontrollene på fanen Markeder (se figur 1) endret til sluttdatoen for dataene (2112015), og strategien ble revurdert ved å velge Evaluate-kommandoen fra strategien menyen i Builder. Resultatene er vist nedenfor i figur 9. Valideringsresultatene i den røde boksen viser at strategien holdt fast på data som ikke ble brukt under byggeprosessen. Figur 9. Closed-trade egenkapitalkurve for EURUSD stopp og revers strategi, inkludert validering perioden. Den endelige kontrollen er å se hvordan strategien utføres på hver dataserie separat ved hjelp av kodeutgangsalternativet for den plattformen. Dette er nødvendig fordi, som forklart ovenfor, kan det være forskjeller i resultatene avhengig av (1) koden, og (2) datariene. Vi må verifisere at de valgte innstillingene minimerte disse forskjellene, som beregnet. For å teste strategien for MetaTrader 4 ble dataserie fra TradeStation avvelget på Markets-fanen, og strategien ble revurdert. Resultatene er vist nedenfor i figur 10, som dupliserer bunnkurven i figur 9. Figur 10. Closed-trade egenkapitalkurve for EURUSD stopp-og-omvendt strategi, inkludert valideringsperioden, for MetaTrader 4. Til slutt, til test strategien for TradeStation, dataserien fra TradeStation ble valgt og serien for MetaTrader 4 ble avvalgt på Markets-fanen, kodenes utgang ble endret til quotTradeStation, og strategien ble revurdert. Resultatene er vist nedenfor i figur 11 og ser ut til å være svært lik midtenskurven i figur 9, som forventet. Figur 11. Closed-trade egenkapital kurve for EURUSD stopp-og-omvendt strategi, inkludert validering perioden, for TradeStation. Koden for begge plattformene er gitt nedenfor i figur 12. Klikk på bildet for å åpne kodefilen for den tilsvarende plattformen. Undersøkelsen av koden viser at den regelbaserte delen av strategien bruker ulike volatilitetsrelaterte forhold for lange og korte sider. De nevrale nettverksinngangene består av en rekke indikatorer, inkludert ukendagstendens (ZLTrend), intradaghøyde, oscillatorer (InvFisherCycle, InvFisherRSI), Bollinger-bånd og standardavvik. Den strategiske hybridegenskapen kan ses direkte i kodesetningen (fra TradeStation-koden): Hvis EntCondL og NNOutput gt 0.5 begynner å kjøpe (quotEnMark-Lquot) NShares aksjer neste linje på markedet. Variabelen quotEntCondLquot representerer regelbasert oppføring forhold, og quotNNOuputquot er utgangen av det nevrale nettverket. Begge forholdene må være sanne å plassere den lange oppføringsrekkefølgen. Kort oppføring tilstand fungerer på samme måte. Figur 12. Handelsstrategiskode for EURUSD stopp-og-omvendt strategi (venstre, MetaTrader 4 høyre, TradeStation). Klikk på figuren for å åpne den tilsvarende kodefilen. Last ned en Builder-prosjektfil (.gpstrat) som inneholder innstillingene beskrevet i denne artikkelen. Denne artikkelen så på prosessen med å bygge en hybridregelbasert nettverkstrategi for EURUSD ved hjelp av en stopp-og-omvendt (alltid i markedet) tilnærming med Adaptrade Builder. Det ble vist hvordan strategikoden kan genereres for flere plattformer ved å velge en felles delmengde av indikatorene som fungerer på samme måte i hver plattform. Innstillingene som er nødvendige for å generere strategier som reverserer fra lang til kort og tilbake ble beskrevet, og det ble påvist at den resulterende strategien utførte seg positivt på et separat, valideringssegment av data. Det ble også verifisert at strategien genererte lignende resultater med data - og kodealternativet for hver plattform. Som diskutert ovenfor har stopp-og-bak-tilnærmingen flere ulemper og kan ikke appellere til alle. Imidlertid kan en alltid-i-markeds-tilnærming være mer attraktiv med forexdata fordi valutamarkedet handler døgnet rundt. Som et resultat er det ingen åpningsgap, og handelsordrene er alltid aktive og tilgjengelige for å reversere handelen når markedet endres. Bruken av intradag-data (4-timers stenger) ga flere datamengder til bruk i byggeprosessen, men var ellers ganske vilkårlig fordi strategienes alltid-i-markeds-natur innebærer at handler blir båret over natten. Byggeprosessen fikk lov til å utvikle forskjellige forhold for å komme inn i lang og kort, noe som resulterte i en asymmetrisk stopp-og-omvendt strategi. Til tross for navnet, kommer den resulterende strategien til både lange og korte handler på markedsordrer, selv om markedet, stopp og begrensningsordrer ble vurdert av byggeprosessen uavhengig av hver side. I praksis vil reversering fra lang til kort bety at selger kort dobbelt så mange aksjer på markedet som strategien var for tiden lang, f. eks. Hvis den nåværende lange posisjonen var 100 000 aksjer, ville du selge kort 200 000 aksjer på markedet. På samme måte, hvis den nåværende korte posisjonen var 100 000 aksjer, ville du kjøpe 200 000 aksjer på markedet for å reversere fra kort til langt. En kortere prishistorie ble brukt enn det ville være ideelt. Resultatene var likevel positive på valideringssegmentet, noe som tyder på at strategien ikke var overpasset. Dette støtter ideen om at et neuralt nettverk kan brukes i en handelsstrategi uten å nødvendigvis overpasse strategien til markedet. Strategien som presenteres her, er ikke ment for faktisk handel og ble ikke testet i sanntidssporing eller handel. Denne artikkelen kan imidlertid brukes som en mal for å utvikle lignende strategier for EURUSD eller andre markeder. Som alltid bør enhver handelsstrategi du utvikler testes grundig i sanntidssporing eller på separate data for å validere resultatene og å gjøre deg kjent med handelsegenskapene til strategien før du handler. Denne artikkelen ble vist i februar 2015-utgaven av Adaptrade Software-nyhetsbrevet. HYPOTETISKE ELLER SIMULERTE RESULTATRESULTATER HAVER VISSENDE BEGRENSNINGER. I FORBINDELSE MED EN AKTUELL PRESTASJONSOPPTAK, FORTSATT SIMULERTE RESULTATER IKKE VIRKELIG HANDEL. OGSÅ SOM HANDELENE IKKE ER FAKTISKT BLEVET, HAR RESULTATENE KUNDER ELLER OVERBEGRENSET FOR KONSEKVENSEN, OM NOEN, AV VISSE MARKEDSFAKTORER, SOM MANGLENDE LIKVIDITET. SIMULERTE HANDELSPROGRAMMER I ALMINDELIGE ER OGSÅ FØLGENDE AT DE ER DESIGNERT MED HINDSIGHT. INGEN REPRESENTASJON SKAL GJORT AT ENKEL KONTO VIL ELLER ER LIKELIG Å HENT RESULTATER ELLER TAPER SOM LIGER TIL DINE VISTE. Hvis du ønsker å bli informert om nye utviklinger, nyheter og spesialtilbud fra Adaptrade Software, vennligst bli med på vår e-postliste. Takk. Neurale nettverk i handel: Velge innganger og utdata Når du bygger et neuralt nettverk, er en av de første tingene du må bestemme, hvilke verdier som vil være inngangene og hvilke verdier som vil være utgangene til nettverket ditt. Utgangene er verdiene du vil forutsi 8211 for å tjene penger innenfor et handelssystem 8211 og inngangene er verdiene som lar deg forutsi utgangene med nok nøyaktighet til å utgjøre en ineffektivitet. Nå velger du innganger og utganger, er ingen triviell oppgave, da dette utgjør størstedelen av suksess eller fiasko i et handelsnettnett. Innenfor today8217s innlegg skal jeg dele med deg noen tips om hvordan du velger input og output og hvordan de kan føre til ineffektivitet på måter som kanskje ikke er veldig intuitive. Jeg skal også forklare hvorfor de mest beregnede lydinngangene til utganger kanskje ikke er de beste, og hvorfor dette er tilfelle. Et neuralt nettverk dannes av et sett med funksjonslag som setter et bestemt sett av inngangsvariabler (inngangslaget) inn i et gitt sett med utgangsverdier (utgangslaget). Mellom inngangs - og utgangslagene finner du en variert mengde lag og funksjoner (neuroner) 8211 avhengig av hva du velger 8211 som vil forsøke å transformere innganger til utganger med minst mulig feil. Dette gjøres ved hjelp av treningssett som gjør at nettverket kan justere sine skjulte lagskoeffisienter for å passe et sett med data som dataene for inngang og utdata er kjent for. Håper selvfølgelig er at nettverket vil holde minst samme prediktive kraft i et ikke-trent sett. The first thing you need to choose when you build a neural network for trading is exactly what values you want to predict. Do you want to predict the next day8217s close The next week8217s close The next support or resistance level Choosing the output of the network first allows you to know how you8217re going to build your inputs as you need to choose values that are able to predict the desired output. A very important thing here is to consider how you will normalize the output and if the output falls into what the neural network is 8220best at doing8221. Remember that in neural networks output values need to range from -1 to 1 (when using efficient sigmoid symmetric functions) since arbitrary outputs require the use of linear functions which are 8220very bad8221 at fitting the network. Once you choose the output you want the next logical step is to build inputs that you believe are predictive towards this output. Certainly before building the network there is no way of telling if one input will be better than another but you can obviously reduce the amount of variables you will use by doing a PCA (Principal Component Analysis) to filter out those variables which are evidently and heavily correlated. For example you might be interested in predicting the next week8217s close and you decide to use as inputs past weekly closes, open, highs and lows but it turns out that a PCA analysis 8211 as an example, I don8217t know if this is the case 8211 tells you that the close and open are very correlated and therefore it makes sense to only use the close, high and low. The PCA technique allows us to eliminate those variables which might be redundant within the network and therefore only increase complexity without increasing the quality of the results. Once you have a set of variables which are not correlated it is time to test how much predictive power they actually have against your desired output. If the results are initially discouraging it may be because you are missing an important piece of information within your inputs or because the shape of your output isn8217t appropriate. For example if you want to predict the weekly close and you have attempted to normalize it by diving it over the last week8217s close and then dividing it by two then doing a different mathematical operation over the output might increase the predictive quality of your network. Sometimes including information related with all inputs within the output can be a handy trick to 8220force8221 the network into 8220using8221 every piece of knowledge it has although the results will vary and you will need to assess which one works better. A very difficult aspect of neural network development for trading systems is to actually choose outputs which are useful for trading system development and yet accurate enough. For example you may be tempted to choose outputs and inputs that are very efficient for the neural network 8211 such as an output between 0 an 1 attempting to predict a week8217s change 8211 but it turns out that this is not predicted as well as predicting the week8217s close because predicting the weekly change using weekly change data makes the network loose a very important piece of information (absolute support and resistance levels) which are derived from direct price information. From a computational point of view it seems like the best solution but from a trading point of view you8217re missing a vital piece of information which is not included in weekly change data. A very interesting thing I have found out in the networks I have developed for Sunqu is that the use of absolute price values is very good since the network learns about support and resistance levels as they develop, actually trading around them in a certain way. Obviously the actual calculations done by the networks and their meaning are not known (remember that a neural network is for all practical purposes a black box) but looking at how trades are executed by the network shows a certain 8220taking into account8221 of things such as support and resistance. Since price is what you want to capture then taking into account absolute price values and basing predictors on them is a more straighforward way to system building than attempting to develop indicator output based networks. However this doesn8217t mean that you couldn8217t get good results in this way. Predicting things like RSI extremes will allow you to take advantage of rapid price movements before they happen and predicting moving average shifts in the long term will allow you to take long term trend following positions. Nonetheless whatever you want to predict (your output choice) needs to be accompanied by a very judicious decision of which inputs you will use, reinforced by an adequate PCA analysis which can show you the quality of your inputs and how well separated they are from one another. The pair choice will also be very important as certain pairs need fundamental inputs as they deeply affect the way in which they behave (a good example is a USDCAD neural network using US oil futures data). If you would like to learn more about my work in automated trading and how you too can get a true education in this field please consider joining Asirikuy. a website filled with educational videos, trading systems, development and a sound, honest and transparent approach towards automated trading in general. I hope you enjoyed this article. o)Neural Networks I personally feel that in order for us to create a truly robust Trading System we need to think outside the box. I also feel that we need to develop new tools rather than try to optimize old methods. It is amazing to see everyone here work so hard at building systems and for the benefit of all. I guess thats why I stopped lurking and would like to contribute. A few things I have been interested in and have been working on. Spectral Analysis. I have some software to create digital filters of raw price action. Neural Networks: cool but still boggles my mind. Market Sentiment: ideas in PDFs Attached Is anyone interested in brainstorming I think I will start with a lagging digital filter on the 30 minute euro. Neural Network Indicators Development Im trying to make some neural network indicators for metatrader4, and would like some sugestions, mostly regarding inputs and outputs of the net, and maybe the structure or type of net that you consider the best for this application. As far as in know the best outputs for financial series forecasting, are price range forcasting, tops or bottoms forecasting, and that tipe of things. Forecasting directly the price (open, close) doesnt get good results because to numerous reasons, for example a little shift on the time between the open time and the close time could change their values considerately. If anyone has a sugestion ill be glad to listen to it and try it. By the way, im no expert neural network programmer, i just have a good overall idea on the subject P. Thanks in advance, Im trying to make some neural network indicators for metatrader4, and would like some sugestions, mostly regarding inputs and outputs of the net, and maybe the structure or type of net that you consider the best for this application. As far as in know the best outputs for financial series forecasting, are price range forcasting, tops or bottoms forecasting, and that tipe of things. Forecasting directly the price (open, close) doesnt get good results because to numerous reasons, for example a little shift on the time between the open time and the close time could change their values considerately. If anyone has a sugestion ill be glad to listen to it and try it. By the way, im no expert neural network programmer, i just have a good overall idea on the subject P. Thanks in advance, NN is my thesis couple years ago. but almost forgotten now This idea can refresh my mind again. I think NN based on pattern recognition using backpropagation is good for forex data mining. Im prefer using high low data to feed the NN in order to predict the next daily range data.. I also think using high and low is much better than using open or close, to be truth i dont really like the open and close values for intraday analisis, as they seem rather inestable values if you make a displacement on when you place your start point. Median price also looks good, but i prefer highlow as the information loss in less. Ill probably use a moving average of the high and one of the low. Ive found the JMA to be a really good filter in comparison to regular MAs so ill do my first tests using a short period JMA without phase changes to avoid distorsion. So far the inputs im considering for predicting future ranges are: - JMA of High JMA of Low. - Date (Day of Month, ex. Monday, Thuesday. ). The other idea i have in mind is to use NN to forecast news events direction. I have a quite big database of forex fundamentals since some years, so i may use those as inputs. As for what type of neural network to use, im still doing some research, backpropagation NNs are the common standard for NNs, but there are others that seem to have very good results, like the time lagged recurrent networks (but they are hard to train and understand). Other idea i had, was to use a Fukushima NN, those are mainly made for image processing, but with some modifications i think they could be used for pattern recognition on timeseries. It is the thread where people are developing Neural Networks indicator for MT4. In Russian language, sorry. - they started with some e-books and articles - then some library files for Delphi 4 (NeuralBase, Neural Network Wizard, GeneBase, SOMBase, WavUtils) - then they coded many versions of indicator NeuroProba. mql4 (author is Rosh) - then they tested it and found many bugs and mistakes in calculation. This thread is not closed yet and seems they are continuing to development (it is necessary to register on their forum to see the attachments). Besides I found this link about Neural Networks (in English). It is the thread where people are developing Neural Networks indicator for MT4. In Russian language, sorry. - they started with some e-books and articles - then some library files for Delphi 4 (NeuralBase, Neural Network Wizard, GeneBase, SOMBase, WavUtils) - then they coded many versions of indicator NeuroProba. mql4 (author is Rosh) - then they tested it and found many bugs and mistakes in calculation. This thread is not closed yet and seems they are continuing to development (it is necessary to register on their forum to see the attachments). Besides I found this link about Neural Networks (in English). Awsome New Digital Ill look at the material in a few minutes. gotta break out the russian..which isnt so great, but I think that coupled with AltaVista ill be able to make a decent attempt. Im currently coding in CORTEX on other Neural Networks (NN from now on) and im planning to convert into MQ4. I think we should DEFINATLY keep this thread going because (and this is an opinion) NN are THE future of tecnical anaylsis. NNs, for those who arent geek enough to know..are basically algorythms that mimic the brain (not nessisarily the human brain..cuz that would be Mind bustingly complicated) in that it learns as it goes. Im writing the EAs to give advice on whether or not to take a particular signal based on small patterns that have come before when a similer signal was given. Thats what most NNs do, they search data for small patterns that would be meaningless to us, or even other algorthms and see what those patterns do over time. The first EA will feature Brain Trend. I ask that everyone be patient though, CORTEX coding takes time. rather, it takes time to train the NNs and perfect them. If anyone here is familier with CORTEX or Code conversion, any help would be appreciated. I understand why russian forum would go commercial. NNs are the current style with big money traders. Så. what do you guys say i say take 2 moving averages, few sup-res lines and 1 or two filters and trade if you cant make money of simple system like this than dont expect from some NN to make you rich from my 3 years forex expirience i know how i would build perfect system but it will be long long coding. at leats 3 time frames to look, covering all possible situations, range, trend. and then aplying few systems together to get perfect results my advice to you is if you know how to trade than first trade, make money and one day when you have enaugh you can try to make NN JUST JOKING but botom line you dont need some NN to make money trading i spent second year of my trading making programms and testing dosens of systems and one day i realise i am not trading any of them and lot was good, profitable. i had first to reprogramm my brain to avoid fear, greed. and to discipline myself (and lost almost 70 of my account during that time) first find good system (there is several good here) make money, learn and than try to teach this NN to trade this system or just make EA to autotrade for you and when you make enaugh money you can buy comercial NN i say take 2 moving averages, few sup-res lines and 1 or two filters and trade if you cant make money of simple system like this than dont expect from some NN to make you rich from my 3 years forex expirience i know how i would build perfect system but it will be long long coding. at leats 3 time frames to look, covering all possible situations, range, trend. and then aplying few systems together to get perfect results my advice to you is if you know how to trade than first trade, make money and one day when you have enaugh you can try to make NN JUST JOKING but botom line you dont need some NN to make money trading i spent second year of my trading making programms and testing dosens of systems and one day i realise i am not trading any of them and lot was good, profitable. i had first to reprogramm my brain to avoid fear, greed. and to discipline myself (and lost almost 70 of my account during that time) first find good system (there is several good here) make money, learn and than try to teach this NN to trade this system or just make EA to autotrade for you and when you make enaugh money you can buy comercial NN I know what you mean I spend months going over historical data for all kinds of indicators and systems. and the bottom line is that any number of them could make pips on any given trade. All im saying here is that it would be nice to have an INDIPENDANT system, that works in a DIFFERENT way to either confirm or deny what your indicator or system is telling you. I trade with Brain Trend, MTFMACD, MoneyMap (MQ4 version) and I do pretty well. But it would still be nice to have that secondary system running in the background to say based on 15 years of historical data, this signal when occuring with this currency pair, in this time frame, with this volume, has proven to be unreliable, I cant advice this trade Yes, some might call it overkill. but I call it having a FOREX pro wathcing over my shoulder. For as long as humans are creatures of habit and continue to create cycles (of any size) I would argue that this is what a well trained FOREX NN would be. I dont call that overkill if it keeps me from losing some chips. Our experiances seem strikingly similer, though, im a newbie. just starting my second year as a trader trading with real money. I spent the last several months just going over indicators THAT I KNEW WORKED. and just spinning my wheels..for fear of making bad trades. But..I guess thats why I want to develope the NN. it doesnt know fear, and responds to market data the way no human can. They can find meaning in the smallest of price patterns. things that our ordinary indicators cant. If MQ4 indicators are binoculars..then the NN is the hubble. I think its worth developing here. Thanks NewDigital, I found a copy of neuroproba. Det ser interessant ut. I dont see any bugs in the MQ4 file, but without seeing the script for the NN I cant say if it is accurate or not. one reason people might have given up on it is that for it to do anything but show two horizontal lines (one red and one yellow, with the version I have) you have to set the StudyNumber to above 100. I tweaked it and got it to match the signals that Brain Trend gives. That setting is 200. Im not sure about the NN aspect of this indicator though. Do you possibly know where a copy of the script file for the NN might be floating around Oh, and the second link you gave is to snowseed, where they talk about CORTEX, which is a very good freeware program for programming NNs. Thanks New Digital Join us download MetaTrader 5 Copyright 2000-2016, MQL5 Ltd.

No comments:

Post a Comment