Kaupankäyntistrategioiden testaus. Kaupankäyntistrategioiden testaus oikeilla punkeilla Kaupankäyntijärjestelmä excelissä

Riisi. 1. Kaupankäyntistrategioiden algoritmien moniulotteisen avaruuden optimointi.

Kaupankäyntistrategioiden optimointi

Algoritmisen kaupankäynnin aikana on jatkuva tarve säätää kaupankäyntistrategian algoritmien parametreja. Kaikkien mahdollisten parametrien yhdistelmä muuttuu suureksi moniulotteiseksi strategiavaihtoehtojen tilaksi. Saadaksesi kannattavimmat ja vakaat strategiat, sinun on tutkittava tämä tila ja valittava optimaaliset parametrit kaupankäynnille.

Suurin osa Paras tapa minkä tahansa joukon tutkiminen on täydellinen luettelo kaikista sen elementeistä. Ottaen kuitenkin huomioon valtavan määrän dataa, jota optimoinnin aikana on käsiteltävä, on yleensä yksinkertaisesti mahdotonta suorittaa tällaista tutkimusta tyhjentävällä haulla. Meidän on käytettävä erilaisia ​​​​analyyttisiä algoritmeja, joiden avulla voimme vähentää todellista tutkimuksen määrää äärimmäisyyksien etsinnässä.

Suurin osa näistä algoritmeista tunnetaan hyvin: Monte Carlo -menetelmä, gradienttilaskeutumismenetelmä, simuloitu hehkutusmenetelmä, evolutionaariset algoritmit jne. Tässä tapauksessa näihin optimointialgoritmeihin on useita muunnelmia. Algoritmisessa kaupassa on yleensä geneettisten algoritmien ja Monte Carlon toteutuksia. Tavalla tai toisella kaikki nämä algoritmit käyttävät "satunnaislukujen taikuutta" tai tieteellisesti puhuen epälineaarista stokastista optimointia.

Stokastisten optimointialgoritmien klassinen ongelma on, että ne eivät edusta pieniä määriä varsinaista tutkimusta ja pieniä näytteitä. Esimerkiksi Monte Carlo ei ole tehokas multi-extremaalissa tilassa, se keskittyy tutkimuksen globaaliin ääripäähän, unohtaen paikallisen, mutta yhtä mielenkiintoisen ääripään. Algoritmi ei aseta tällaisia ​​tehtäviä itselleen, sen on vain löydettävä kannattavin strategia. Geneettinen algoritmi voi myös käydä läpi epäonnistuneen mutaatiohaan ja pysähtyä johonkin paikalliseen ääripisteeseen jne.
Tämä johtuu siitä, että nämä optimointialgoritmit ovat päällä alkuvaiheessa joudut tekemään päätöksiä rajallisesta määrästä dataa vielä tutkimattomassa tilassa ja voit helposti putoaa tutkimuksesta tärkeitä alueita. Tämän välttämiseksi on tarpeen lisätä tietonäytteitä ja tutkimusaikaa, ja meidän tapauksessamme aika on kullan arvoista. On tarpeen tutkia avaruuden äärimmäisyyksiä mahdollisimman yksityiskohtaisesti minimaalisella ajankäytöllä. Samaan aikaan pörssikaupan nopeasti muuttuvissa olosuhteissa on tärkeää kiinnittää huomiota paitsi kannattaviin myös kaupankäyntistrategioiden vakaisiin parametreihin. Vakaiden parametrien ymmärretään muodostavan klustereita, joilla on samanlaiset tulokset. Klusterien ulkopuolella olevat kannattavat strategiat eivät välttämättä ole vakaita ja voivat johtaa vakaviin tappioihin. Klusterin strategia puolestaan ​​on vähemmän alttiina markkinoiden muutoksille.

Stokastisen klusterin optimointimenetelmä

Ottaen huomioon vaihtostrategioiden optimoinnin erityispiirteet, kehitettiin hybridialgoritmi (katso ), jolla osoittautui olevan yksi miellyttävä. sivuvaikutus- hän onnistui tunnistamaan ja tutkimaan klustereita. Annoin tuloksena olevalle algoritmille nimen - "Stokastisen klusterin optimointimenetelmä".

Siksi tutkimusprosessi, algoritmi, tapahtuu kahdessa vaiheessa:

  1. Strategioiden tilan tutkiminen kannattamattomien ja riskialttiiden alueiden poistamisella
  2. Yksityiskohtainen tutkimus äärimmäisistä ja avaruusklustereista
Vaihe 1. Strategiatilan kartoitus kannattamattomien ja riskialttiiden alueiden poistamisella.

Päästäkseen eroon epävarmuudesta tiedon puuttuessa tutkimuksen alkuvaiheessa, algoritmi ei aseta tehtäväksi löytää kannattavia strategioita, vaan päinvastoin etsii kannattavimmat ja poistaa ne tilasta, sekä niitä rajaavat alueet, joilla on potentiaalia suuria riskejä tappioita.

Työt suoritetaan seuraavassa järjestyksessä:

  • Kaikista mahdollisista kaupankäyntistrategian parametreista muodostuu moniulotteinen tila.
  • Strategiat valitaan satunnaisesti tilasta ja testataan historiallisilla tiedoilla määritetyillä parametreilla.
  • Testaustulosten perusteella rajalliset mikroalueet poistetaan kannattavimpien strategioiden ympäriltä. Tämä vähentää tutkimustilaa ja keskittyy jatkossa kannattavampiin ja vakaampiin alueisiin.
  • Testauksen iteraatioita tehdään, kunnes strategia-avaruutta on tutkittu tarvittavassa määrin.
Kuvassa Kuvassa 2 näkyy, kuinka tutkimus on siirtymässä äärimmäisyyksiin, samalla kun riski pienten klustereiden puuttumisesta mahdollisesti hyvien ja vakaiden parametrien kanssa on minimaalinen.
Riisi. 2. "Stokastisen klusterin optimointi"-algoritmin ensimmäinen vaihe on strategia-avaruuden tutkimus.

Vaihe 2. Yksityiskohtainen tutkimus klustereista ja ääripäistä.

Tutkimuksen ensimmäisen vaiheen jälkeen ääripäätyypeistä tulee hyviä. Kuitenkin algoritmin erityispiirteistä johtuen (useita mikroalueita leikataan pois), tila osoittautuu "reagoituneeksi" ja joitain ääripäitä ei voida tutkia kovin yksityiskohtaisesti. Jotta kaikki mielenkiintoiset klusterit voidaan tutkia täysin, optimointialgoritmi aloittaa tutkimusprosessin täsmälleen päinvastoin. Tätä varten valitaan kaikki parhaat strategiat ja niiden ympärille allokoidaan lisäksi mikrodomainit. Jos näiltä alueilta löytyy tutkimattomia strategioita, ne testataan lisäksi (ks. kuva 3).


Riisi. 3. "Stokastisen klusterin optimointi" -algoritmin toinen vaihe on äärimmäisyyksien yksityiskohtainen tutkimus.

Tämän seurauksena algoritmin suorittamisen jälkeen tutkitaan kaikki meitä kiinnostavat avaruuden alueet ja testataan yksityiskohtaisesti kannattavia strategioita omaavia klustereita. Samaan aikaan tutkimuksen todellinen määrä on pääsääntöisesti enintään 25-50 % strategiavaihtoehtojen tilan kokonaisvolyymista (ks. kuva 4).

Riisi. 4. "Stochastic Cluster Optimization" -algoritmin tutkimuksen nopeus (vasemmalla) on 2-4 kertaa suurempi kuin "Brute Force" -algoritmin nopeus (oikealla).

Kulje eteenpäin optimointia

Vaikuttaa siltä, ​​​​että parametrit on optimoitu ja voit aloittaa kaupankäynnin. Tämä ei kuitenkaan ole tutkimusprosessin loppu. Optimointiprosessiin liittyy riski, että parametrit "sovitetaan" tai optimoidaan uudelleen prosessissa käytettyjen historiallisten tietojen mukaan, joten sinun on lisäksi tarkistettava saadut tulokset. Tätä varten käytetään menetelmää Kävele eteenpäin. Menetelmän ydin on siinä, että strategioiden parametrit testataan historiallisilla tiedoilla, jotka poikkeavat optimointiprosessissa käytetyistä.

Tätä varten koko historiallisten tietojen valikoima jaetaan näytteiksi, jotka koostuvat joukoista:

  • IS ("In Sample")- optimointiin käytetty näyte
  • OOS ("Out Of Sample")- optimointitulosten testaamiseen käytetty näyte
Lisäksi näytealueet muodostetaan siten, että OOS-tiedot seuraavat peräkkäin (ks. kuva 5).
Riisi. 5. Kävely eteenpäin -optimoinnin kaavio.

Tutkimuksen määrän vähentämiseksi tulosten tarkistusvaiheissa on mahdollista heti optimoinnin jälkeen suodattaa pois huonosti toimivat strategiat, mikä vähentää kokonaistestausaikaa. Tällaisen tarkistuksen tuloksena saamme objektiivisia parametreja kaupankäyntistrategioista, jotka on suojattu ylioptimoinnilta (katso kuva 6 ja kuva 7).


Riisi. Kuva 6. Optimointitulokset "In Sample" -tiedoissa.
Riisi. 7. "Out Of Sample" -tietojen optimointitulosten tarkistaminen.

Tulosten analyysi

Yleensä Walk Forward -menetelmällä tehdyn tarkistuksen jälkeen useimmat kaupankäyntistrategiat eivät enää näytä yhtä houkuttelevilta kuin optimoinnin jälkeen. Ihannetapauksessa strategioiden tulisi vahvistaa tilastolliset indikaattorinsa, kun taas äärimmäisyyksien ja klusterien tulisi säilyttää muotonsa ja asemansa avaruudessa.

Tulosten mukavaa analysointia varten visualisoin strategioiden moniulotteisen avaruuden kullekin parametrille lämpökarttamuodossa (ks. Riisi. 8). Kartta arvioi visuaalisesti klustereiden muodon ja koon, äärimmäisyyksien sijainnin, tarkistaa parametrien vaikutuksen strategian tehokkuuteen, arvioi muutokset uudelleenoptimoinnin tarkistamisen jälkeen jne.


Riisi. 8. Esimerkki avaruuden osasta optimoitujen parametrien ja tavoitefunktion mukaan.

Walk Forward -optimoinnin tulosten kattavaa arviointia varten rakennetaan matriisi, joka sisältää kaikki suodatuksen läpäisseet vaiheet ja parametrit. vihreässä vaiheet, joissa parametrit ovat vahvistaneet suorituskyvyn, näkyvät korostettuina ja punaisina, jos niitä ei ole vahvistettu. Parametreja, jotka menestyivät hyvin useissa vaiheissa, voidaan pitää kaupankäyntiin sopivimpana (ks. kuva 9).


Riisi. 9. Matrix Walk Forward ja kaikki OOS-tietojen tarkistuksen tulokset.

Tarvittaessa tulokset voidaan viedä kolmannen osapuolen analyysijärjestelmiin tarkempaa tutkimusta varten. Esimerkiksi R, Excel tai Mathlab (katso kuva 10).


Riisi. 10. Optimointitulosten vienti Exceliin.

Valittujen parametrien oikeellisuuden varmistamiseksi suoritetaan strategioiden yksityiskohtaiset testit, arvioidaan tuottokäyrän tasaisuus, tilaukset näytetään kaaviossa ja kauppalokia tutkitaan (katso kuva 11).


Riisi. 11. Yksityiskohtainen analyysi kaupankäyntistrategian parametreista.

Johtopäätös

Optimoinnin ja kaikkien tarkistusten jälkeen meillä on strategioita, jotka mahdollisesti sopivat todelliseen kaupankäyntiin Pörssissä.

Lopuksi tarkistimme kaiken, ehkä on jo mahdollista aloittaa kaupankäynti? Itse asiassa olemme vasta puolivälissä, on vielä liian aikaista lähettää kaupankäyntialgoritmeja taisteluun. Seuraavaksi tulossa:

  • Testaa strategioita Exchangen "elävien" tietojen avulla varmistaaksesi testauksen aikana saadut indikaattorit.
  • Muodosta portfolio kaupankäyntistrategioista riskien hajauttamiseksi. Muuten, se on myös optimoitava.
  • Todellisen kaupankäynnin aikana vähennä ajoittain testituloksilla saatuja tuloksia testausoptimoijan asetusten säätämiseksi.
Mutta tästä ehkä toisella kertaa.
Hyvää kaupankäyntiä kaikille!

Tunnisteet: Lisää tunnisteita

Ennen kuin käytät kauppaa oikealla rahalla, sinun tulee varmistaa, että valittu strategia pystyy tuottamaan jatkuvasti voittoa.

Tässä artikkelissa tarkastellaan kolmea strategiaa ja niiden tehokkuutta viimeisten 10–18 vuoden ajalta. Nämä ovat täysin erilaisia ​​strategioita, joten jokainen elinkeinonharjoittaja voi löytää niistä jotain mielenkiintoista ja käyttää sitä kaupankäynnissään.

Tässä esitetyt ideat eivät ole täydellisiä, mutta ne voivat toimia hyvänä lähtökohtana.

Gapdown-kaupankäyntistrategia

Joskus voit nähdä, kuinka vahvat osakkeet, jotka ovat johtajia omalla sektorillaan tai jopa koko markkinoilla, romahtavat yli 10 % yhdessä yössä palatakseen suunnilleen alkuperäiselle tasolleen seuraavan kaupankäynnin aikana.

Tämä tapahtui Netflixille (NFLX), joka julkaisi raportin 16. heinäkuuta markkinoiden sulkeuduttua.

Yhtiö osoitti sijoittajien odotuksia hitaamman kasvun uusien tilaajien määrässä.

16. heinäkuuta Netflixin osake päätti päivän yli 50 päivän liukuvan keskiarvon 400,48 dollariin. Kuitenkin heti seuraavana aamuna sen kauppa oli 344 dollaria, laskua 14 %. Lopulta päivän päätteeksi hinta nousi 379 dollariin, ja se oli voittanut tappiot lähes kokonaan takaisin.

Historiallinen analyysi

Vuodesta 2000 lähtien S&P 500 on sulkeutunut yli 50 päivän liukuvan keskiarvon 536 kertaa, ja volyymi on riittänyt avautumaan yli 10 % alemmas seuraavana aamuna.

Analyysi osoittaa, että jos jokaisen tällaisen pudotuksen jälkeen avattaisiin pitkä positio ja suljettaisiin se saman päivän lopussa, tällaiset transaktiot onnistuisivat 47 %:ssa tapauksista ja keskimääräinen voitto olisi 0,43 % (ilman palkkioita). ).

Tässä on joitain tuloksia, sekä tasapainokäyrä, joka heijastaa tulosten dynamiikkaa ajan mittaan:

  • Tapahtumien määrä: 536
  • Keskimääräinen voitto/tappio (P/L) kauppaa kohti: 0,43 %
  • Riskikorjattu tuotto (RAR): 123,34 %
  • Prosenttiosuus kannattavista kaupoista: 47,95 %
  • ke voitto: 5,83 %
  • ke . tappio: -4,54 %
  • Voittosuhde: 1,21


Kuten näette, viimeisten 18 vuoden aikana tämä strategia on osoittanut melko suurta volatiliteettia, joten useimpien kauppiaiden olisi vaikea käyttää sitä.

Vaikka kauppatilastot ovat melko hyvät, saldokäyrä osoittaa, että tämä järjestelmä on toiminut huonosti vuodesta 2010 lähtien. Ja tämä huolimatta siitä, että komissiota ei otettu huomioon.

Lisää työtä on tehtävä, jotta voidaan luoda kunnollinen kaupankäyntijärjestelmä, joka perustuu S&P 500 -osakkeiden ostoon yli 10 prosentin yön pudotuksen ja irtautumisen jälkeen.

Keskimääräinen palautusstrategia

Tätä strategiaa voidaan käyttää yhdessä Russell Microcap -indeksin microcap-osakkeiden trendinseurantastrategian kanssa.

Keskimääräisen palautusperiaatteen soveltamisen monimutkaisuus tällaisiin osakkeisiin johtuu siitä, että tällaisten arvopapereiden kaupankäyntimäärät ovat alhaiset ja uutisvirta niillä on vähäistä. Tämä johtaa siihen, että ne voivat yksinkertaisesti olla "ajautumassa" pitkään. Tätä silmällä pitäen hyvän kaupankäyntistrategian rakentaminen tarvitsee jonkinlaisen katalysaattorin välttääkseen pääsyn osakkeisiin, jotka eivät mene minnekään.

Tämän strategian idea perustuu uuden pohjan etsimiseen, ja päivittäisen vaihdon nousu (osakkeiden lukumäärä x päätöskurssi) toimii potentiaalisena katalysaattorina nopealle hinnannousulle. Siten sinun on löydettävä osake, joka muodosti uuden alimman, johon yhtäkkiä ilmestyy seuraava palkkija hinta alkaa nousta.

Täydellinen sääntösarja näyttää tältä:

Ostaa:

  • Eilinen sulkeminen< минимальная цена закрытия за 50 дней
  • Ja tämän päivän liikevaihto > 250 000 dollaria
  • Ja tämän päivän liikevaihto on > 2 standardipoikkeamaa 20 päivän liukuvan keskiarvon yläpuolella
  • JA IBS > 0,2
  • Tämän päivän päätöskurssi on 0,5–20 dollaria

Myynti:

  • Korkein päätöskurssi viimeisen 5 baarin aikana
  • TAI 10 päivässä

Deal esimerkki

Kuvassa on esimerkki tällaisesta tapahtumasta OVID-osakkeen osalta:


Tästä näet, että 10. elokuuta 2017 OVID muodostaa uuden Low 50 päivää. Tätä seuraa volyymin nousu 11. elokuuta, ja IBS on 0,72.

Näin ollen voit tehdä pitkän kaupan seuraavan päivän avauksessa (vihreä nuoli). 7 päivän kuluttua hinta meni High 5 baariin, joten kauppa suljetaan seuraavan päivän aukioloaikoina (punainen nuoli). Tulos oli 32,53 % (ilman palkkioita).

Kaikkien Russell Microcap -indeksin osakkeiden jälkitestaus ajanjaksolta 8/2008–1/2018 tuotti seuraavat tulokset:

(Tulokset sisältävät 0,2 %:n palkkion kauppaa kohden. Positiot on kiinteästi 250 dollaria. Kaikki kirjaukset ja irtautumiset tehtiin seuraavan kaupankäyntipäivän avauspäivänä. Aikaisempia ajanjaksoja ei testattu).

  • Tapahtumien määrä: 6052
  • Keskimääräinen voitto/tappio (P/L) kauppaa kohti: 1,02 %
  • ke pitokesto, taktit: 6.04
  • Riskikorjattu tuotto: 51,13 %
  • Prosenttiosuus kannattavista kaupoista: 53,72 %
  • ke . voitto: 7,35 %
  • ke . tappio: -6,33 %
  • Voittosuhde: 1,35


Kuten näet, tämä sääntösarja tarjoaa melko hyviä tuloksia erittäin laajalla otoksella halpojen osakkeiden kaupoista. Tasapainokäyrä on tasainen.

Nämä ovat lupaavia tuloksia, joten näiden sääntöjen perusteella kannattaa kehittää täysimittainen kaupankäyntijärjestelmä, jossa on realistinen salkun koko, osakeluokitus ja positioiden kokolaskenta.

Pullback-kaupankäyntistrategia

Pullback-kauppaa käytetään laajasti osakkeissa. Se sisältää ostamisen, kun lyhytaikainen takaisinveto tapahtuu pitkän aikavälin trendin aikana. Jos osake ei kuitenkaan ole riittävän epävakaa, tällainen kauppa sitoo merkittävää pääomaa.

Siksi on mielenkiintoista tutkia, miten tällainen järjestelmä käyttäytyy futuurimarkkinoilla, joilla mahdollisuudet saada lainattua pääomaa (vipuvaikutus) ovat paljon suuremmat.

Tämän strategian säännöt ovat hyvin yksinkertaiset:

Ostaa:

  • Päätöshinta > 200 päivän MA
  • Ja päätöskurssi< 10-дневной СС

Myynti:

  • Päätöshinta > 10 päivän MA
  • TAI stop loss 10%

Tässä on joidenkin futuuriinstrumenttien historian testauksen tulokset:


Kuten näette, osakefutuurit (S&P 500 E-Mini ja Dow Jones E-Mini) osoittivat vakaita tuloksia. Myös US Treasuries (US Two Year ja US Ten Ten) tulokset olivat hyvät. Ja kullalla (Gold mini) ja öljyllä (Oil) järjestelmä toimi huonosti.

Nämä tulokset perustuvat kaupankäyntiin vain yhdellä sopimuksella ja ei. Hinta 10 dollaria yhteen suuntaan sisältyy hintaan.

Kuten arvata saattaa, nämä tulokset osoittavat, että tämä strategia toimii parhaiten härkämarkkinoilla. Siksi sen kanssa on suositeltavaa käyttää jonkinlaista markkinasuuntasuodatinta. Härkämarkkinoilla tämä strategia voi olla erittäin kannattava. Joka tapauksessa kannattaa tehdä lisää ennakkotestauksia.

Kaupankäynnin strategian täydentäminen lyhyen komponentin vetäytymisellä

On myös suositeltavaa täydentää yllä olevaa strategiaa, jossa käydään kauppaa takaisinostoilla lyhyillä kaupoilla. ES:lle (S&P 500 E-Mini) on tehty asianmukainen jälkitestaus. Pitkät kaupankäynnin säännöt pysyvät samoina, vain seuraava näkyy lisäsääntö lyhyttä kauppaa varten. Itse asiassa se on peilikuva pitkien kauppojen säännöstä, ja se etsii vain nousevia takaisinvetoja karhumarkkinoilla.

Myydään lyhyeksi:

  • Sulkemishinta< 200-дневной СС
  • JA Päätöshinta > 10 päivän MA

Aseman kattavuus:

  • Sulkemishinta< 10-дневной СС
  • TAI stop loss 10%
  • Tapahtumien määrä: 323
  • Nettotulos: 77 445 dollaria
  • Vuotuinen kokonaistuotto (CAR): 5,34 %
  • Suurin nosto (MDD): -16,45 %
  • Keskimääräinen voitto/tappio (P/L): 3,66 %
  • Voittosuhde: 1,49


Kuten näet, lyhyen komponentin lisääminen paransi tämän strategian kaupankäyntituloksia ES:ssä. Nettotulos kasvoi 53 901 dollarista 77 445 dollariin saman ajanjakson aikana, kun taas enimmäisnosto pysyi samalla tasolla. Tasapainokäyrä näyttää myös aika hyvältä.

Tietenkin tämä järjestelmä vaatii lisätestausta ja selvennystä.. Tästä huolimatta näin yksinkertaisen strategian ensimmäisiä tuloksia voidaan pitää rohkaisevina.

Tässä artikkelissa näytämme tulokset yksinkertaisen kaupankäyntistrategian testaamisesta kolmessa tilassa: " OHLC M1:llä" käyttämällä vain minuuttipalkkien Open, High, Low ja Close hintoja; sitten yksityiskohtainen simulaatio " Kaikki punkit"ja luotettavin testaus tilassa" Jokainen punkki perustuu todellisiin punkkeihin" käyttäen tallennettuja punkkeja historiasta.

Tämä antaa meille mahdollisuuden ymmärtää, minkä laadun saavutamme eri tiloissa, ja näyttää kuinka testaajaa käytetään oikein saadaksemme nopeat tulokset. "OHLC on M1" -tilassa voit saada nopean arviointitestin, simulaatio "All Ticks" -tilassa antaa meille hyvän likiarvon todellisuuteen ja testaus oikeilla punkeilla antaa tarkimmat tulokset, mutta vaatii vastaavan määrän aika. Lisäksi kaupankäyntirobotin logiikan virheet voivat vaikuttaa kaupankäyntitoimintojen määrään ja johtaa siihen, että strategian historiatestauksen tulokset riippuvat valitusta testaustilasta.

Mitä kaupankäyntistrategiaa testasimme

Olemme luoneet yksinkertaisen valikoiman purkamiskaupankäyntistrategian, joka perustuu uusimpiin RangeLength-palkkiin. Sen kaupankäynnin säännöt ovat seuraavat: äskettäin avatussa baarissa korkeimman ja korkeimman alueen matalat hinnat viimeisille N pylväille. Oheisessa Expert Advisorissa RangeLength-parametrin oletusarvo on 20 palkkia ja se tarkoittaa sen ikkunan leveyttä, johon alueen rakennetaan.

Alueen ensimmäisen katkon jälkeen ylös tai alas saapuvien punkkien tilastot alkavat kerääntyä: kuinka monta punkkia osoittautui rikkoutuneen alueen tason yläpuolelle ja kuinka monta - alle. Heti kun saapuvat punkit ovat suurempia tai yhtä suuria kuin TicksForEnter =30, tehdään päätös tulla markkinoille nykyisellä hinnalla. Jos vaihteluväli on hajonnut ylöspäin, purkaustason yläpuolella olevien punkkien määrän tulisi olla suurempi kuin tämän tason alapuolella olevien punkkien lukumäärän. Tässä tapauksessa osto tehdään. Lyhyen position syöttäminen on totta.

Poistuminen avoimesta asennosta tapahtuu ajoissa BarsForExit-palkkien kautta. Kuten näette, kaupankäynnin säännöt ovat yksinkertaiset. Selvyyden vuoksi ne on esitetty kuvassa:

Katsotaan kuinka tämän strategian testauksen tulokset muuttuvat kolmessa eri punkkisimulaatiotilassa.

Kuinka testasimme

Kaupankäyntistrategiaa testattiin EURUSD:lla ensimmäisen puoliskon 2016 aikana - 1.1.2016 - 30.6.2016. Kaikki Expert Advisorin parametrit asetettiin oletusarvoihin, koska tehtävämme oli yksinkertaisesti testata strategiaa erilaisissa simulaatiotiloissa.


Tulosten vertailu eri testaustiloissa

Eri moodien testauksen tulokset on koottu taulukkoon. Ensinnäkin ero kaupankäyntitoimintojen määrässä on silmiinpistävä. Näin ollen myös kaikki muut testiindikaattorit ovat erilaisia. Samaan aikaan testaus "OHLC on M1" -tilassa kesti 1,57 sekuntia, mikä on 23 kertaa nopeampi kuin "All ticks" -tilassa. Tällaisella erolla on suuri merkitys optimoitaessa kaupankäyntijärjestelmän syöttöparametreja.

"Jokainen punkki perustuu todellisiin punkkeihin" -tila puolestaan ​​oli vieläkin aikaavievämpi - 74 sekuntia verrattuna 36,7 sekuntiin "Kaikki punkit" -tilassa. Tämä on helppo selittää sillä, että oikeita punkkeja käytettäessä simuloitiin yli 34 miljoonaa punkkia, mikä on lähes 2 kertaa enemmän kuin "Kaikki punkit" -tilassa. Näin ollen mitä enemmän punkkeja käytämme testaamisessa, sitä enemmän aikaa tarvitaan strategiatestaajan yhteen läpäisemiseen.

Parametri
OHLC M1:llä
Kaikki punkit
Jokainen rasti
perustuu todelliseen
Tikov
731 466
18 983 485
34 099 141
Nettotulo
169.46 -466.81
-97.24
Kaupat
96
158 156
Tarjoukset
192
316 312
Osakkeiden nosto (%)
311.35 (3.38%)
940.18 (9.29%)
625.79 (6.07%)
Saldon nosto281.25 (3.04%)
882.58 (8.76)
591.99 (5.76%)
Kannattavat kaupat (%)
50 (52.08%) 82 (51.90%) 73 (46.79%)
Keskimääräinen jatkuva voittoputki
2
2
2
Testausaika, mukaan lukien punkkien muodostumisaika
1.6 sekuntia
36.7 sekuntia
74 sekuntia (1 minuutti 14 sekuntia)

Olemme keränneet testiraportteja eri simulaatiotiloissa animoitujen GIF-tiedostojen muodossa, jotta näet eron tilastoissa.


Vastaavasti myös tase- ja osakekaavioissa on eroja. Mutta samalla on selvää, että tämä yksinkertainen strategia ei näytä houkuttelevalta - kasvukausi korvataan laskujaksolla, ja kunkin testin kaaviot näyttävät mahdollisuuksien ketjulta. Et voi käydä kauppaa tällaisella järjestelmällä, tulos on samanlainen kuin kolikon heittäminen.



Kaupankäyntijärjestelmät riippuvat punkkien saapumisesta

Esitetty kaupankäyntijärjestelmä riippuu hyvin paljon mallinnusmenetelmästä - saapuvien punkkien määrästä ja niiden vastaanottamisjärjestyksestä. Kun testataan "OHLC on M1" -tilassa, simuloimme vähiten punkkeja, eivätkä ne välttämättä aina riitä markkinoille tuloon. Tiloissa "Kaikki punkit" ja "Jokainen punkki perustuu oikeisiin punkkeihin" voi olla täysin erilainen punkkien järjestys. "Jokainen punkki" mallinnettaessa saamme monotonisesti kasvavan tai monotonisesti laskevan punkkisarjan, joka käytännössä takaa markkinoille pääsyn valikoiman rikkoutuessa. Testattaessa "Jokainen punkki perustuu todellisiin punkkeihin" -tilassa käytetään tallennettua punkkihistoriaa ja siellä hintamuutosten dynamiikka voi olla täysin odottamatonta.

Tämän seurauksena jo testausvälin alussa näemme, että itse sisääntulo- ja irtautumistasot eroavat kaavioista ja jotkut kaupat ohitetaan.



Neljä punkkien generointitilaa

MetaTrader 5 -päätteen strategiatestauslaitteen avulla voit testata kaupankäyntistrategioita neljässä tick-simulaatiotilassa, ne on kuvattu artikkelissa MetaTrader 5 Testing Basics. Nopein ja karkein on " Vain avaushinnat", jossa kaupankäyntitoimintoja voidaan suorittaa vain uuden baarin avautuessa. Tässä tilassa EA:n käytettävissä ei ole toimintoja palkin sisällä, ja se sopii hyvin testaamaan strategioita, joissa ei oteta huomioon, miten hinta kehittyy baarin sisällä.

Seuraava mallinnuksen tarkkuuden kannalta on tila " OHLC M1:llä", joka simuloi jokaisen testatun historiaalueen sisällä olevan minuuttipalkin Open-, High-, Low- ja Close-hintoja. Näin ollen, kun testataan H1-aikakehyksellä tunnin ajan, Expert Advisorille soitetaan 240 kertaa: jokaisella 60:stä minuuttipalkkeja, OnTick()-käsittelijää kutsutaan 4 kertaa - kerran kutakin OHLC-hintaa kohden.Tällä simulaatiolla voit jo käyttää Trailing Stopia, tarkastella hintakehitystä muilla aikaväleillä ja indikaattoreilla tarvittaessa. Testaa esimerkiksi strategioita, kuten " 3 vanhempaa näyttöä".

Jos tarvitset täysin luotettavan historian rekonstruoinnin strategian testaajassa, käytä " Kaikki punkit perustuvat oikeisiin punkkeihin". Tässä tilassa testaaja lataa itsenäisesti tallennetut todelliset tikit välittäjän kaupankäyntipalvelimelta ja rakentaa hintakehityksen niiden perusteella. Historiasegmenteissä, joissa ei ole todellisia tikkejä, testaaja mallintaa hinnan samalla tavalla kuin " Kaikki punkit". Jos välittäjällä on siis vaadittujen symbolien koko tallennettu historia, voit testata todellista historiallista dataa ilman keinotekoista mallintamista. Kuitenkin hinta tällaisesta tick-by-tick-tarkkuudesta lisää merkittävästi testausaikaa, kuten näkyy. taulukossa kolmen tilan vertailun tuloksista .

Aloita järjestelmän kehittäminen "OHLC on M1" -tilassa

Kuten näette, on mahdotonta voittaa kaikessa samanaikaisesti - jos haluamme lyhentää aikaa ja testata nopeasti kaupankäyntiideaa, menetämme tarkkuuden yksinkertaisissa simulaatiotiloissa. Jos testausta varten on tarpeen varmistaa tulohintojen tarkkuus ja kaupankäyntisignaalien järjestys, sinun on käytettävä tarkempia tiloja, jotka vaativat enemmän aikaa.

Ennen kuin aloitat kaupankäyntistrategian testaamisen, sinun on oltava selvästi tietoinen siitä, että valittu simulointitila määrittää tulosten tarkkuuden ja niiden saamiseen käytetyn ajan. Jos sinun on nopeasti arvioitava ja testattava kaupankäyntistrategiaasi, käytä "OHLC on M1" -tilaa. Siinä voit nopeasti arvioida kaupankäyntijärjestelmän potentiaalia.

Seuraava vaihe on virheenkorjaus ja "Jokainen rasti" -tila

Jos alustavat tulokset osoittautuivat tyydyttäviksi, voit jatkaa kaupankäyntijärjestelmän hienosäätöä ja analysointia tarkemmissa simulaatiotiloissa. Tässä tulee apuun strategian virheenkorjaus testaustilassa - voit asettaa keskeytyspisteitä ja tarkistaa muuttujien tilan ja EA:ssa asetettujen ehtojen täyttymisen. Täällä voit odottaa epämiellyttäviä yllätyksiä jos unohdit ottaa huomioon joitain järjestelmäsi vivahteita.

Testauksen tarkkuus vs. nopeus

Kuten kuvatun kaupankäyntijärjestelmän kolmen tilan testauksen tuloksista voidaan nähdä, elinkeinonharjoittaja voi aina ja hänen tulee valita kaupankäyntistrategiaansa sopivan tick-simulaatiotilan. Jos testaat järjestelmää päivittäisellä aikavälillä, " Vain avaushinnat"- korkea testausnopeus ei tule tulosten laadun kustannuksella.

Jos kirjoitat skaalaus- tai arbitraasistrategiaa tai strategiasi perustuu indeksien tai synteettisten indikaattoreiden reaaliaikaisiin laskelmiin, ""-tila vaaditaan. Testaus vie paljon enemmän aikaa, mutta saat tulokset mahdollisimman lähellä todellisuutta. Totta, emme saa unohtaa, että historia ei koskaan toista itseään, ja siksi jopa tässä tilassa optimoinnin avulla ihanteellisesti valitut syöttöparametrit eivät takaa onnistumista robotin käynnistämisessä oikealla tilillä.

Näiden kahden ääripään välissä ovat " OHLC M1:llä"ja" Kaikki punkit", jotka ovat nopeampia kuin" Jokainen punkki perustuu todellisiin punkkeihin", mutta antavat alhaisemman testaustarkkuuden. Yleisesti ottaen voimme muotoilla lain, joka kuvaa testauksen aikaa ja tarkkuutta:

Mitä nopeammin testi läpäisee, sitä pienempi on kaupankäynnin simulaation tarkkuus. Mitä yksityiskohtaisemmin ja täsmällisemmin hintakehitys on mallinnettu historian perusteella, sitä enemmän testaukseen kuluu aikaa.

Kaupankäyntipalvelimet ovat keränneet todellista punkkihistoriaa useiden vuosien ajan, ja MetaTrader 5:n strategian testaaja "Jokainen tick perustuu todellisiin punkkeihin" -tilassa lataa kaiken tarvittavan historian automaattisesti. Mutta mitä luotettavampi testaus on, sitä enemmän resursseja se vaatii. Valitse siksi tasapaino tarkkuuden ja nopeuden välillä.

Kaikki strategiat eivät vaadi yksityiskohtaista mallintamista kehityksen alkuvaiheessa. Oikea valinta testaustila auttaa säästämään aikaa ja karsimaan pois Suuri määrä vääriä strategioita!

Ja vasta päätehtävän ratkaisemisen jälkeen - kannattavan automaattisen kaupankäyntijärjestelmän luomisen - voit optimoida todellisia punkkeja. Tässä vaiheessa tarvitset jo hajautetun laskentaverkon tehoa.

Mikä tahansa indikaattori tai kaupankäyntijärjestelmä (maksullinen, ilmainen, kolmannen osapuolen tai itse luotu) voidaan sijoittaa oikealle tilille vasta onnistuneen koeajon jälkeen useilla tavoilla ja eri tavoilla. kaupankäynnin ehdot. Kaupankäyntistrategioiden optimointi ja asiantunteva testaus - vaadittava prosessi onnistuneeseen kaupankäyntiin.

Kaupankäyntijärjestelmän kehittäminen vaatii paljon aikaa ja vaivaa, joten empiirisiä menetelmiä parametrien valintaan ei ole käytetty pitkään aikaan. Nykyään testausvaiheesta on tullut teknisen analyysin välttämätön osa, ja sen avulla voit säästää pääomaa todellista kauppaa varten.

Kaupankäyntistrategioiden testausprosessi tarkoittaa algoritmin suorittamista historiallisilla tai simuloiduilla tiedoilla. Testin pitäisi "nähdä" vaihtaa "signaaleja" osto-/myyntitransaktioiden generoimiseksi ja antaa tulos "mahdollisesta" kaupasta - tulon/tappion määrä on osoitus soveltuvuudesta todelliseen työhön.

Päätavoitteet ja menetelmät

Ensinnäkin sinun on tarkistettava:

  • strategiaan sisältyvät suoritusindikaattorit;
  • markkinamallit (varat, likviditeetti, kustannukset, nopeus, lipsahdus, riski) ilman todellista kauppaa;
  • parametrien optimaalisuus backtestin tulosten mukaan;
  • ohjelmakoodi kehitysvirheiden varalta.

Testin tulee sisältää menneisyyden analyysi/tulevaisuuden ennusteet ja tuottaa raportti graafisilla ja kvantitatiivisilla tuloksilla. Voit ladata testaajaan:

  • historia - joukko aiemmin muodostettuja palkkeja, joissa on hintojen, volyymien, indikaattorien parametrit: sitten muodostetaan hinta "menneisyys" ja "tulevaisuus" analysointia varten, jotta voidaan arvioida "tulevaisuuden" reaktio "menneisyyteen";
  • skenaarion mallinnetut hinta-arvot: syötä sitten punkkitiedot (historia tai todellinen) testaajan syötteeseen ja vastaanota liikeennuste.

Ensimmäinen menetelmä antaa helpon, nopeuden, mutta alhaisen tarkkuuden, ja toisessa strategia käyttäytyy testaajassa täsmälleen samalla tavalla kuin todellisessa kaupankäynnissä. Simuloidut tulokset voidaan tallentaa ulkoisiksi tiedostoiksi, jotka voidaan ladata terminaaliin "Tiedosto" - "Avaa offline" -valikon kautta.

Kaupankäyntistrategioita voidaan testata käyttämällä:

  • mitkä tahansa matemaattiset ohjelmistot (Matlab tai MS Excel lisäosilla osakekauppaa varten);
  • järjestelmät mekaanisten järjestelmien luomiseen (MetaStock, Wealth-Lab, Omega);
  • Java-, Scala- tai C++/C#-ohjelmointikielet kaupparobottien luomiseen ja testaamiseen;
  • kaupankäyntialustoihin sisäänrakennetut testaajat.

Perinteisesti vakaiden ja oikeiden tulosten saamiseksi testausprosessissa sovelletaan johdonmukaisesti seuraavia:

  • Ilmaisimen tai järjestelmän visuaalinen testi: edellyttää hintahistorian tarkastelua pitkältä ajalta (yksi - kaksi vuotta). Tämä aikaa vievä prosessi on yksinkertaistettu manuaalisella strategiatestausohjelmistolla.
  • Expert Advisorin luominen, testaus ja optimointi.
  • Pitkä historiatesti automaattitilassa.
  • Testaa demotilillä tai sentin tilillä: suoritetaan sen jälkeen, kun on saatu vakaat tulokset kahdelle ensimmäiselle menetelmälle - pitkä, mutta tarkin laskenta. Demotilin ja senttitilin välinen ero on vain psykologinen.

Jos saat epäsuotuisia tuloksia, sinun on käytettävä aikaa neuvonantajan parametrien valitsemiseen ja sisäänrakennettu optimointivaihtoehto on sopivin mekanismi tähän.

Kaupankäyntistrategian testaajat

Ne ovat usean valuutan analyyttisiä työkaluja ulkoisista tiedostoista ladatun historian käsittelyyn. Prosessi lajittelee peräkkäin lainaukset, analysoi algoritmin reaktion ja avaa virtuaalisia tarjouksia. Voit luottaa useaan omaisuuteen samanaikaisesti valitaksesi parhaan vaihtoehdon.

Testattaessa kaupankäyntistrategioita satunnaisen suoritusviiveen tila simuloi verkkoongelmia jälleenmyyjien toimeksiantojen varsinaisen toteuttamisen aikana. Visualisointitila näyttää prosessin reaaliajassa: kaikki avatut tarjoukset näkyvät hintakaaviossa, asetukset tehdään kriteerien mukaan: nopeus, laatu, voitto, ajanjakso, erilaisia ​​ehtoja käydä kauppaa.

Tulos esitetään graafisten ja tilastollisten tietojen muodossa: voiton/tappion prosenttiosuus, tappiollisten/tuottoisten kauppojen lukumäärä, riskitekijöiden indikaattorit, matemaattinen voiton odotus ja niin edelleen.

Kaupankäyntistrategioiden "eteenpäin" -testauksen mekanismi auttaa pääsemään eroon parametrien "sovittamisen" ongelmista: historia on jaettu kahteen osaan - optimointi suoritetaan toisella puoliskolla, ja toisen osan on vahvistettava tulos. Testaajat voivat tukea hajautettua testausmetodologiaa, eli sisällyttää prosessiin lisäkapasiteettia, myös pilvilaskentaverkoissa.

Perusvaatimukset asetuksille kaupankäyntistrategioita testattaessa:

  • ladata tiedot kaikista ajanjaksoista; historian vaihteluväli on vähintään 5 vuotta, mukaan lukien pakolliset jaksot, joilla on kriisi / epätyypillinen dynamiikka (esimerkiksi 2008-2009);
  • jos käytät pienempää jaksoa, sen tulisi sisältää trendin ja tasaisen liikkeen jaksot;
  • simuloitujen kauppojen määrä on alle 300;
  • testaa algoritmia useilla nestemäisillä instrumenteilla.

Kun asetat testiparametreja, ota huomioon:

  • kaupankäyntikulut (spreadit, provisiot);
  • luistaminen/viiveet;
  • varojen likviditeetin vaikutus (volyymidynamiikka);
  • muuttuvat markkinaolosuhteet;
  • kauppatoimeksiantojen tyypit, joita aiotaan käyttää (markkina- tai rajatoimeksiannot).

Jos markkinatoimeksianto toteutetaan välittömästi, mutta sen lopullista hintaa testille ei ole määritelty, rajatoimeksiannot voivat "odota" tapahtumalle sopivinta hintaa. Rajatoimeksianto katsotaan passiiviseksi keinoksi, koska se voi olla toteuttamatta tai osittain toteutettu, jos toimeksiantoja on vähän. Jos tilauskannan käyttäytymistä ei mallinneta tarkasti, reaaliaikainen testi näyttää huonompia tuloksia kuin backtest.

Älä unohda: ennen istuntojen sulkemista hajonta voi kasvaa useita kertoja, joten lyhyitä testejä ei kannata tehdä viikonloppu huomioon ottaen - saat paljon korkeammat kulut.

Yleisesti käytetään kolmea laskentamenetelmää:

  • Avaushinnat: nopein, mutta epätarkin menetelmä, useimmat strategiat, kun niitä testataan enintään 1 vuoden ajan, eivät välttämättä avaa yhtä kauppaa ollenkaan;
  • Tarkistuspisteitä varten: tarkkuuden ja ajan suhteen tasapainoisin, mutta vastaanotetun tiedon luotettavuustaso on alhainen;
  • Kaikille punkeille: tarkin menetelmä, lähellä todellisuutta.

Kaikilla pitkän ajanjakson testausmenetelmillä, parin viime vuoden tulokset ovat tarkimmat sekä trendi- että takaisinvetojärjestelmissä.

Älä unohda: oikeiden mallien ja simuloitujen datamäärien toteuttaminen tarkkaa testausta varten vaatii teknisiä resursseja ja in visualisointi hidastaa laskentaprosessia.

Kaupankäyntistrategioiden testaus mallintaa oikein kaikki aikajaksot, mukaan lukien volyymitiedot. Testin aikana indikaattorit lasketaan verkossa.

Kun testi on suoritettu, voit avata kaaviomallin kaikilla tulo-/poistumispisteillä ja indikaattoritiedoilla, joten jos strategioissa tai indikaattoreissa on virheitä, ne tulevat varmasti näkyviin. Historiasta lasketut indikaattoriarvot voivat poiketa testihetken arvoista.

Testitulokset voidaan ladata Exceliin tai mihin tahansa muuhun ohjelmistoon rajattujen tietojen sarjana.

Älä unohda :n et voi käyttää laskelmissa epätäydellisiä noteerauksia tai osittaista tuontia eri lähteistä. Minuuttitarjoukset on laskettava uudelleen automaattisesti ja syötettävä laskentaan ilman tilapäisiä aukkoja tai siirtymiä.

Ja johtopäätöksenä...

Kaupankäyntistrategioiden testaamisen avulla voit arvioida algoritmin oikeellisuutta ja kannattavuutta ilman, että käytät todellista kauppaa markkinoilla. Rahan lisäksi tämä säästää aikaa - usean vuoden hintatarjousten testaus voi kestää vain muutaman tunnin, se voidaan keskeyttää milloin tahansa, muuttaa instrumenttia, laskentaehtoja tai optimointiparametreja. Lähde:

Joomlan sosiaaliset painikkeet

Suosittu:

  • 14. marraskuuta 2013 06:32 | Kääntymisindikaattori - määritä trendin 55948 loppu
  • 4.2.2015 10:04 | VSA-indikaattori lukee markkinoita kuin avoin kirja 53422
  • 23.9.2014 11:08 | Forex-neuvojan rakentajan avulla voit luoda minkä tahansa kaupparobotin 48882


Ensinnäkin grafiikasta. Oikeassa yläkulmassa on epävakauden hymy. Vasemmassa alakulmassa on nykyisen sijainnin profiili. (ruskea viiva on volatiliteetin kaltevuus, joka osoittaa kuinka volatiliteetti voi muuttua hinnan muuttuessa). Loput on mielestäni selvää.

Toimiva. Nopean paikannusajon (Start) ja osakekatselun (nopeutti käsittelyprosessia) ja vaiheittaisen ajon (StepByStep) lisäksi lisäsin profiilin ja volatiliteettimuutosten huomioimisen.

Kuinka käyttää. (katso edellinen blogi). Jos haluat nähdä tuloksen, paina Start. Katso vaihe vaiheelta valitsemalla StepByStep-kohdan vasemmalla puolella oleva valintaruutu. Voit tarkastella asemaprofiilia napsauttamalla Profiili. Jos painat StepByStep etkä halua painaa Profiilia joka kerta, valitse Profiili-painikkeen vasemmalla puolella oleva valintaruutu. Jos haluat katsoa tavallista (normaalia) profiilia, poista valinta kohdasta Volatiliteetti. Jos valintaruutu on valittuna (Volatility), profiili piirretään ottaen huomioon muutos ( mahdollinen muutos) volatiliteetti. (ruskea viiva kaaviossa).

Ylös