Populære Innlegg

Redaksjonens - 2020

Utarbeidelse av 100% historiske kvalitetsdata for teststrategier og rådgivere

Innen handel med finansmarkeder er det umulig å trekke en konklusjon om driften eller uegnetheten til en bestemt metode eller et system uten kvalitetsdata for tester og optimalisering. For å utvikle virkelig lønnsomme handelssystemer, vil en næringsdrivende definitivt trenge minst høykvalitets historiske prisdata for valutaparene av interesse.

Som regel, hos de fleste meglere, varierer kvaliteten på tilbud fra 90 til 96%. MT4-terminalen er ikke et veldig nøyaktig verktøy, så å legge til 4-10% mer unøyaktighet er ikke vårt alternativ. Vårt valg er sitater av 100% kvalitet. Hvor og hvordan få tak i dem, hvordan bearbeide og få et garantert resultat av høy kvalitet - i dagens materiale.

Typer historiske data

Hovedtypen historiske data, uten at de ganske enkelt ikke kan testes, er selvfølgelig prisdata. Historiske prisdata kan fås i forskjellige perioder og fra forskjellige kilder. De vanligste er for dag-, minutt- og flåttdiagrammer. Som regel er historien dypest for daglige diagrammer - den kan fås fra og med 1971 (MetaTrader-terminalen støtter ikke en lengre historie). Vanlige data kommer som regel på et maksimum fra 1999 - 1998, og flått er vanligvis ikke tidligere enn 2004 - 2007.

For en hvilken som helst periode er dataene som følger: stearinlysdato, klokkeslett, åpen pris, høyeste pris, laveste pris, sluttpris og kryssvolum. I noen sitatkilder er det ikke sikkert at kryssvolum er tilgjengelig. I perioder fra D1 og høyere angir ofte ikke tidspunktet for lyset eller ikke angir maksimums- og minstepriser. Kryssetater skiller seg fra anførselstegn som er konvertert i en viss periode. I slike tilbud kan du finne dato, klokkeslett nøyaktig til sekunder, Spør og budpriser.

I tillegg til prisen kan det noen ganger være behov for noen spesifikke data - for eksempel om resultatet av makroøkonomiske indikatorer, for eksempel inflasjonsraten, boligprisene eller arbeidsledighetsdata fra visse land, så vel som enda mer spesifikke, for eksempel solaktivitet eller meningene fra handelsmenn om et bestemt instrument.

Tidsskala data

Data kan brukes i sin naturlige tidsramme, eller omberegnes til en annen tidsskala. Avhengig av strategien, kan det hende du trenger forskjellige tidsrammer, fra M1 eller flått, til D1 eller MN1. Fra data med korte tidsrammer kan du enkelt lage data lenger, men ikke omvendt. Fra dataene fra perioden M1 kan vi for eksempel enkelt skaffe både M5, og H1, og D1. Derfor er det viktig å ha en kvalitetsdatabase med nøyaktig M1-sitater.

Men M1 er ikke den minste skalaen, for det finnes også kryssdata. En hake er ikke en konstant tidsenhet, noen ganger er flått veldig hyppige, spesielt under nyhetsutgivelser, og noen ganger har for eksempel om natten store tidsintervaller mellom hverandre. Tick ​​history er hovedsakelig nødvendig for testing av nyhetsrådgivere, hftstrategier (som ikke er mulig å bruke på MT4- eller MT5-plattformen), samt for rådgivere som bruker forskjellige beregninger inne i stearinlysene.

Men for slike rådgivere er innflytelsen fra meglere for stor, som jeg skrev i denne artikkelen. Hvis rådgiveren ikke piper et halvt poeng, er det ikke nødvendig å teste det på flåttdata - det er veldig lang og ressurskrevende. I tillegg er ikke de gratis flåttdataene som finnes i nettverket av beste kvalitet og på en ikke så lang periode, og betalte koster ganske anstendige penger - det er langt fra et faktum at slike investeringer i det hele tatt vil lønne seg.

Derfor bør du ikke jage supernøyaktighet, selve strategitesteren vil fortsatt gi en feil som eliminerer all innsats. Det er bedre å fylle ut med kvalitetshistorikken til minutttidsrammen, den daglige tidsrammen og forskjellige spesifikke data som du vil støte på - du kan aldri være sikker på hva som vil være nyttig og hva som ikke vil gjøre det.

Hvor mye data trenger du? Jo mer, jo bedre. Faktum er at jo flere transaksjoner det er i testen, jo lavere er risikoen for "montering", jo mer statistisk signifikant er resultatet, og desto større er sannsynligheten for at systemet ditt vil fortsette å fungere på samme måte i fremtiden som det gjorde tidligere. Derfor er det sterkt tilrådelig å bruke all tilgjengelig historie.

Valg av tidsramme

Når det gjelder tidsrammen som brukes for arbeid, er det en smakssak. Når du jobber i lave perioder som M5 eller M15, tar det mye tid for tester, dessuten er slike systemer veldig krevende for kvaliteten på tilbud, de er svært megleravhengige og det endelige resultatet påvirkes anstendig av kostnader som spredning, bytter, utkjøringer, provisjoner.

På den annen side er handel med slike systemer mer dynamisk, fordi de kan gjøre flere titalls transaksjoner per dag. På grunn av de relativt korte stoppene, kan du klare deg med et innskudd på bare $ 100. Som et resultat er innskuddsveksten vanligvis raskere enn med langsiktige systemer. Selv om det ofte er kortere - jo lavere periode på systemet, jo mer viser det seg som regel mindre stabil.

Når du jobber i høye perioder, tvert imot, er systemene mer stabile og iherdige, svakt avhengige av megler og av handelskostnader, ikke veldig krevende på kvaliteten på tilbud, og tester kan utføres veldig raskt. Likevel er veksten av innskuddet ganske lang, siden hver transaksjon kan vare i flere uker.

Et annet problem - for langsiktige systemer er det nødvendig med en tilstrekkelig stor mengde historiske data. I tillegg er til og med ATR to-fots stopp noen ganger ganske store på de samme daglige kartene, og $ 2000 kan ikke være nok til å opprettholde riktig pengehåndtering. I tillegg, når de arbeider med høye tidsrammer, bruker de som regel systemporteføljer for å jevne avkastningskurven. Ikke desto mindre er det vanskelig å motstå psykisk dusinvis av åpne transaksjoner, som henger enten opp eller ned i flere uker.

Å velge en tidsramme er fremdeles en personlig sak for enhver næringsdrivende. Noen av dem har fordeler og ulemper, så bare bestem deg for hva som irriterer deg mer.

Kvalitet på historiske data

En av de vanligste årsakene til å oppnå falske resultater når du tester en ekspertrådgiver i strategitestereren til MetaTrader 4-terminalen, er et problem med integriteten til historiske sitater. Av forskjellige grunner, i historien med priser tilgjengelig i terminalen, kan det være "hull" som fører til gap i prisstrømmen som ikke har noe med virkeligheten å gjøre. Unødvendig å si, gir det ikke så mye mening å teste rådgiveren på slike sitater?

Dårlige data kan føre enhver systemanalyse til en tilstand av fullstendig kaos, gi ulønnsomme konklusjoner til stående systemer eller, enda verre, gi grønt lys til systemer som ikke er verdt det. Derfor er det verdt å nærme seg de historiske dataene med alt ansvar - dette er basen som all din handel vil bygges på i fremtiden. Et dårlig historisk grunnlag kan systematisk føre til feil og som et resultat til tap av mye tid og penger, og du vil ikke forstå hva problemet er og hvorfor systemene dine som gjør tester ikke vil fungere i det virkelige liv.

Datafeil kan ha flere forskjellige former. Ofte, når det handler, er det flått med tydelig feilaktige priser, som rett og slett er umulige. For eksempel tar prisen for et sekund fart til himmelen, og deretter, i løpet av neste sekund, kommer det tilbake. Dette er den såkalte “hårnålen”, som nesten alle meglere syndet for bare noen få år siden. En slik feil kan føre til en avtale med et enormt overskudd eller tap. Og hvis det er mange slike "pinner" i dataene, vil testen til ethvert system være langt fra virkeligheten. Dette gjelder spesielt for tester av forskjellige rutenettstrategier, hvor hårnålen er et garantert avløp for avsetningen, og som et resultat, testen ikke passerer filteret.

Vanligere og mindre merkbare er vanlige små feil i prisnivå. I stedet for sluttkursen på 1.4378 har vi for eksempel en pris på 1.4387. En slik feil er naturlig nok vanskelig å merke, spesielt hvis den er på et høyt tidsramme. Heldigvis påvirker de ofte ikke testresultatene i stor grad, selv om det er unntak. Derfor er det verdt å sjekke tilbud fra flere forskjellige leverandører for å få de mest pålitelige prisene.

Vel, den vanligste feilen er å hoppe over data. Bare av en eller annen grunn blir ikke en viss tidsperiode registrert i databasen, og danner tilbudsbrudd. Oftest oppstår dette problemet i løpet av ferien, på nyttårsaften og om natten. Jo "holeier" grafen, jo mindre virkelighet i testene. Dette problemet blir også adressert ved å fylle ut hull fra andre kilder.

Som du allerede har forstått, når du tester rådgivere, fungerer spørsmålet om å lage et kvalitetssitasjonsarkiv som den viktigste oppgaven. Men dessverre har MT4-terminalen ikke innebygde verktøy for å sjekke integriteten til historiske data, så du må bruke hjelpeverktøy som fyller dette irriterende gapet for å utstyre plattformen.

Hva skal etter min mening være historiske data av høy kvalitet?

Kvalitative historiske data er dannet fra søyler fra M1-perioden. Alt ovenfor beveger oss lenger bort fra nøyaktigheten i å reprodusere atferden til rådgiveren. Når du danner anførshistorien, er det best å bruke M1-sitater. Dessuten er det ideelt å teste rådgivere best på M1-sitater. I dette tilfellet må du sørge for at periodene er faste i rådgiverkoden, og at standardperioden (Periode ()) ikke er angitt, ellers får du ikke resultatene du regnet med, fordi algoritmen ikke vil fungere som planlagt.

Det er også verdt å huske at rådgiveren ganske enkelt er forpliktet til å jobbe nøyaktig ved åpningen av lyset. For å gjøre dette er det som regel foreskrevet en spesiell funksjon i rådgiverkoden, som bare tillater handel når en ny lysestake med en gitt tidsramme åpnes. For å gjøre pålitelige tester ikke ved å lukke et stearinlys, trenger du flått av høy kvalitet og spesiell programvare som lar deg gjennomføre slike tester. Hvis du ikke har dette, vil selve terminalen oppfinne hva som skjedde inni lysene. Du forstår - han kan oppfinne hva som helst.

Slike data har ikke nevneverdige feil, det vil si de såkalte "hullene". Det avhenger først og fremst av leverandøren av tilbud - hvor smidig utstyret som lagrer historiske data fungerte.

Slike sitater har ikke utelatelser av enkelt eller flere stolper. Ideelt sett må du ha 100% komplette tilbud (for ikke å forveksle med kvaliteten på modellering). 100% fullstendighet av historikken til minuttsitater, etter min mening, er nødvendig fordi påfølgende tidsrammer dannes fra et minutt og fraværet av noen minuttstaster til slutt genererer "buede" søyler med høyere tidsrammer.

Jeg vil med en gang bemerke at få DC har sin egen lange historie med sitater i det offentlige, spesielt med tanke på sitater av små tidsrammer. Vi snakket om hvor vi kan få historiske data i denne artikkelen.

Hullanalyse på sitater historie

History_data_analysis-skriptet vil hjelpe deg å finne ut kvaliteten på grafen.

Denne koden identifiserer manglende søyler ("hull") og hull (store hull) i historiedataene, bestemmer størrelse, varighet og gap. Den fungerer på alle instrumenter og er beregnet på intradag-diagrammer, så tidsrammen er begrenset til H4-perioden.

Analysen tar kun hensyn til helger (lørdag og søndag - 48 timer), de resterende øyeblikk koden vurderer hull eller hull. For å gjøre det lettere å jobbe med diagrammet, gir koden et filter der du kan angi antall manglende søyler på tidsrammer (M1,5,15,30), som koden vil ignorere som hull, antall manglende søyler (minimumsverdi), som koden vil anse som et gap (av standard 20 søyler), samt antall manglende pips som koden vil ignorere som et gap. Etter å ha kjørt skriptet og avsluttet arbeidet, vil du se en melding:

For eksempel testet jeg kvaliteten på tilbud for EURUSD Alpari-paret:

La oss for eksempel gjøre den samme testen for Dukascopy EURUSD M1-sitater:

Som du kan se, er bruk av Dukascopy-data for testing den beste - den samlede kvaliteten på sitater her er i området 99,55%. Bare 0,45% av pasninger og gap, et veldig godt resultat. Likevel har vi fortsatt 4662 hull - nesten tjuefem tusen barer og hele 39.740 poeng mangler. Og derfor - for de mest pålitelige testene, vil dette problemet måtte løses.

Bringer kvaliteten på tilbud til 100%

1. Jeg anbefaler å bruke data fra Ducaskopy for den grunnleggende historikken til sitater, det er få hull i dem og da må de "lappes" mindre. For å gjøre dette, kan du bruke et hvilket som helst hjelperprogram som laster ned Ducaskopy-merker. Jeg anbefaler Tickstory Lite.

2. Etter å ha lastet ned flått i Tickstory Lite-programmet, høyreklikker du på valutaparet du er interessert i og velger alternativet "Eksporter til fil":

3. Fyll ut feltene med innstillingene:

4. Åpne datakatalogen:

5. I datakatalogen finner vi historikkmappen, så finner vi ønsket mappe ved navn på serveren vår:

6. Slett alle hst-filer i ønsket valutapar.

7. Eksporter nedlastede tilbud til terminalen ved å trykke på F2, velge ønsket valutapar, periode M1 og klikke på "Importer" -knappen:

8. Åpne oversikten over et valutapar i perioden M1.

9. Utfør en kvalitetstest ved å bruke scriptet_data_analyseskriptet. Ved hjelp av tekstfilen som er oppnådd som et resultat av testing, må du finne de mest kritiske stedene. Da blir disse kritiske stedene fjernet. Vi vil etterfylle dem senere med sitater fra andre kilder (sett de såkalte "lappene").

Jeg vil trekke oppmerksomheten din separat til mangelen på tilbud i løpet av nyttårsferien - mange meglere fungerer rett og slett ikke på dette tidspunktet, og de kildene som meglerne fungerer ser ut som en sil på nyttårsaften, og det kan være veldig vanskelig å finne tilstrekkelig historie for denne perioden . Derfor vil ingenting veldig ille skje hvis et par dager på tampen av det nye året ganske enkelt er fraværende - det bør fjernes helt, ellers kan rådgiverne på testene vise feil resultater.

10. Hvor kan man få råvarer til lapper - vi har allerede diskutert i denne artikkelen. Du trenger en, kanskje to kilder - alt avhenger av den konkrete saken.

11. Først av alt, dataene for oppdateringer må konverteres til csv-format, hvis du har den i hst-format, og hst2csv-skriptet vil hjelpe.

12. Deretter bør disse dataene fra andre kilder bringes til riktig tid, nemlig angi samme GMTOffset for dem som megleren din og korrigerte tilbud. Ikke overse, dette er informasjon om hva skiftet i forhold til GMT for en bestemt tilbudskilde, har det noen gang endret seg og om konvertering av vinter / sommer ble brukt. For eksempel hadde Alpari-sitater GMT + 2 før 2011, og GMT + 3 etter 2011.

For å gjøre dette, trenger du en egen terminal. Det er nødvendig å laste ned sitater fra hver kilde etter tur, endre GMT-tiden ved hjelp av GMTconverter-skriptet, som jeg skrev da jeg oppdaget at det av en eller annen grunn ikke er slike skript i nettverket. Du kan finne / laste ned skriptet på slutten av artikkelen. Når du importerer nedlastede tilbud til en egen terminal, kan du også angi ønsket GMT, men noen ganger fungerer dette ikke. For å spesifisere ønsket GMT når du importerer tilbud, må du spesifisere “Skift” i timer. Da må disse sitatene eksporteres ved å klikke på eksportknappen. Dermed vil sitater lagres i ønsket format og med GMT du trenger.

13. Etter å ha justert sitatene til ønsket skjema, åpner du bare filen vår med vår kvalitetstest og kilden til oppdateringene vi mottok.Dessuten må du åpne filene i Notisblokk, siden Excel kanskje ikke åpner hele filen hvis det er mange historier.

14. Vi finner hvert av de problematiske segmentene i patch-filen og overfører brikkene til en separat åpnet Notepad-fil:

15. Hvis det ikke er nok data i en av kildene, prøver vi å finne i andre kilder.

16. Lagre den forberedte filen i csv-format. Bare endre filtypen fra txt til csv.

17. Importer til terminalen for Ducascopy-tilbud. Slettede seksjoner blir automatisk gjenopprettet fra filen utarbeidet av oss.

18. Etter et langt og møysommelig arbeid med å importere lapper, må du lukke terminalen og åpne den igjen slik at den oppdaterte historien lastes inn. Igjen, tegne scriptet data_analyse og se på resultatet av vårt arbeid.

19. Nå kommer det andre skriptet AllMinutes_Step1. Hva gjør han? Fakta er at de minuttsbarene der ingenting skjedde og det ikke var noen priser, hopper terminalen automatisk over. Skriptet gir teknisk fylling av tapte stolper for å sikre den påfølgende riktig generasjon av lys med høyere tidsrammer. Så slipp det på diagrammet og slå på "Eksperter" -fanen. Vi trenger denne fanen for å se meldingen om fullføringen av dette skriptet og den korte rapporten.

20. Så snart meldingen om fullføring av skriptet, må du åpne den offline planen (File - Open offline - ALLEURUSD1):

21. Vi slipper det første skriptet historie_data_analyse på det åpnede diagrammet. Vi får en rapport som vi kommer tilbake litt senere til.

22. Kjør deretter det tredje skriptet, hst2csv. Fakta er at det forrige skriptet i løpet av arbeidet ikke bare fylte alle de manglende stolpene på kartet i offline modus, men også dannet den samme komplette basen av sitater i hst-format. Filen ble dannet i historikkmappen og har navnet "ALLEURUSD1". Kjør scriptet_data_analyse på et frittstående diagram. Nå må vi omformatere denne ALLEURUSD1.hst-filen til en håndterbar (når det gjelder tidsskift) .csv-format, noe hst2csv-skriptet faktisk vil gjøre.

23. Og nå tilbake til rapporten laget på grunnlag av analysen av den autonome planen. Dette er nødvendig for å spore de minimale mellomrom som ikke blir lagt merke til av skriptet. Dette skjer ikke alltid, men noen ganger skjer det. Manuset fant og fylte tusenvis av ensomme barer, men desverre kunne ha gått glipp av noen få. Og derfor må denne feilen løses manuelt.

I prinsippet er dette ikke vanskelig - rapporten i tabellen viser de spesifikke koordinatene for disse passene. Derfor er arbeidet veldig likt det vi gjorde i avsnitt 14. Generelt går vi til "Files" -mappen. Åpne "ALLEURUSD1.csv" ved å bruke Notepad-programmet. Ved å bruke søkefunksjonen finner vi oss i riktig dato. Vi fyller ut de tapte stolpene med den sist kjente prisen, og glemmer ikke å endre tidspunktet for stolpene.

24. Åpne sitatarkivet (F2) i terminalen, slett all hst-formathistorikken som er lagret i den, og last deretter inn den nye konverterte filen. Lukk og åpne terminalen igjen. Vi åpner diagrammet, i vårt tilfelle EURUSD M1, og foretar en kontrollmåling med history_data_analysis-skriptet i tilfelle vi savner noe.

25. Saken overlates til den lille - for skriptet period_converter_ALL. Med ham generelt er alt enkelt - kast på diagrammet og se på øvre venstre hjørne - mens tallene kjører der, fungerer skriptet fortsatt. Så snart bevegelsen i det hjørnet stopper, er arbeidet fullført. Og på slutten bytter vi sekvensielt alle tidsrammer slik at de blir lastet inn.

Konklusjon

Det er alt - i vår terminal er tilbud nå 100% kvalitet. Du kan få den mest nøyaktige testen og en god garanti for påliteligheten av resultatene, hvis det er hjelpetidsrammer for M1-perioden, som 100% dekker studieperioden.

Dermed blir spørsmålet om kvalitetstesting et søk etter detaljerte historiske data og den påfølgende montering av sitater av høyest mulig kvalitet. I alle fall, hvis du ønsker å få pålitelige testresultater, bør du ta vare på din egen database av høy kvalitet med historiske data.

Last ned et sett med nødvendige skript

Instruksjoner for å installere skript i MT4

Legg Igjen Din Kommentar