Testiranje strategija trgovanja. Testiranje strategija trgovanja na pravim tikovima Sistem trgovanja u excelu

Rice. 1. Optimizacija višedimenzionalnog prostora algoritama za strategije trgovanja.

Optimizacija strategija trgovanja

U procesu algoritamskog trgovanja postoji stalna potreba za prilagođavanjem parametara algoritama strategije trgovanja. Kombinacija svih mogućih parametara pretvara se u veliki višedimenzionalni prostor opcija strategije. Da biste dobili najprofitabilnije i stabilnije strategije, morate istražiti ovaj prostor i odabrati optimalne parametre za trgovanje.

Većina Najbolji način proučavanje bilo kojeg skupa je potpuno nabrajanje svih njegovih elemenata. Međutim, s obzirom na ogromnu količinu podataka sa kojima se treba baviti tokom optimizacije, po pravilu je jednostavno nemoguće provesti takvu studiju iscrpnom pretragom. Moramo primijeniti različite analitičke algoritme koji nam omogućavaju da smanjimo stvarnu količinu istraživanja u procesu traženja ekstrema.

Većina ovih algoritama je dobro poznata: Monte Carlo metoda, metoda gradijentnog spuštanja, metoda simuliranog žarenja, evolucijski algoritmi itd. U ovom slučaju postoje različite modifikacije ovih algoritama optimizacije. U algoritamskom trgovanju, po pravilu, postoje implementacije genetskih algoritama i Monte Carlo. Na ovaj ili onaj način, svi ovi algoritmi koriste "magiju slučajnih brojeva" ili, naučno govoreći, nelinearnu stohastičku optimizaciju.

Klasičan problem sa algoritmima stohastičke optimizacije je taj što oni nisu reprezentativni za male količine stvarnih istraživanja i male uzorke. Na primjer, Monte Carlo nije efikasan u multi-ekstremalnom prostoru, on fokusira studiju na globalni ekstrem, gubeći iz vida lokalne, ali ne manje zanimljive ekstreme. Algoritam sebi ne postavlja takve zadatke, samo treba pronaći najprofitabilniju strategiju. Genetski algoritam također može proći kroz neuspješnu granu mutacija i zaustaviti se na nekom lokalnom ekstremumu, itd.
To je zato što su ovi algoritmi optimizacije uključeni ranim fazama morate donositi odluke o ograničenoj količini podataka u još neistraženom prostoru i lako možete ispasti iz studije važna područja. Da bi se to izbjeglo, potrebno je povećati uzorke podataka i vrijeme istraživanja, a u našem slučaju vrijeme je zlata vrijedno. Neophodno je istražiti ekstreme prostora što je moguće detaljnije uz minimalni utrošak vremena. Istovremeno, u uslovima berzanskog trgovanja koji se brzo menjaju, važno je obratiti pažnju ne samo na profitabilne, već i na stabilne parametre strategija trgovanja. Pod stabilnim parametrima se podrazumijeva formiranje klastera sa sličnim rezultatima. Profitabilne strategije koje su izvan klastera možda neće biti stabilne i dovesti do ozbiljnih gubitaka. Zauzvrat, strategija iz klastera je manje podložna promjenama na tržištu.

Metoda stohastičke optimizacije klastera

Uzimajući u obzir posebnosti optimizacije strategija razmjene, razvijen je hibridni algoritam (vidi ) za koji se pokazalo da ima jedan prijatan nuspojava- uspješno je identifikovao i istražio klastere. Dao sam naziv rezultirajućeg algoritma - "Metoda stohastičke optimizacije klastera".

Proces istraživanja, dakle, algoritam se odvija u dvije faze:

  1. Ispitivanje prostora strategija sa uklanjanjem nerentabilnih i rizičnih područja
  2. Detaljno proučavanje ekstrema i klastera prostora
Faza 1. Istraživanje prostora strategije uz uklanjanje nerentabilnih i rizičnih područja.

Da bi se riješio nesigurnosti u slučaju nedostatka podataka u početnim fazama studije, algoritam ne postavlja zadatak pronalaženja profitabilnih strategija, već, naprotiv, traži one najneprofitabilnije i uklanja ih iz prostora, zajedno sa područjima koja ih graniče sa potencijalom visoki rizici gubici.

Radovi se izvode sledećim redosledom:

  • Od svih mogućih parametara strategije trgovanja formira se višedimenzionalni prostor.
  • Strategije se nasumično biraju iz prostora i testiraju na istorijskim podacima sa navedenim parametrima.
  • Na osnovu rezultata testiranja, granične mikroregije se uklanjaju oko najneprofitabilnijih strategija. Ovo smanjuje istraživački prostor i fokusira se na profitabilnija i stabilnija područja u daljnjim iteracijama.
  • Iteracije testiranja se provode dok se prostor strategije ne istraži u potrebnoj mjeri.
Na sl. Slika 2 pokazuje kako se studija pomjera ka ekstremima, dok je rizik od izostanka malih klastera s moguće dobrim i stabilnim parametrima minimalan.
Rice. 2. Prva faza algoritma "Stochastic Cluster Optimization" je proučavanje prostora strategije.

Faza 2. Detaljna studija klastera i ekstrema.

Nakon prve faze studije, tipovi ekstrema postaju dobri. Međutim, zbog posebnosti algoritma (mnoge mikroregije su izrezane), prostor se ispostavlja "razbijenim" i neki ekstremi se ne mogu detaljno proučavati. Kako bi u potpunosti istražio sve zanimljive klastere, algoritam optimizacije pokreće proces istraživanja na potpuno suprotan način. Da bi se to postiglo, odabiru se sve najbolje strategije i oko njih se dodatno dodjeljuju mikrodomene. Ako se na ovim područjima pronađu neistražene strategije, one se dodatno testiraju (vidi sliku 3).


Rice. 3. Druga faza algoritma "Stochastic Cluster Optimization" je detaljno proučavanje ekstrema.

Kao rezultat toga, nakon što se algoritam pokrene, istražuju se sva područja prostora koja su nam interesantna i klasteri sa profitabilnim strategijama se detaljno testiraju. Istovremeno, stvarni obim istraživanja, po pravilu, nije veći od 25-50% ukupnog obima prostora opcija strategije (vidi sliku 4).

Rice. 4. Brzina proučavanja algoritma "Stochastic Cluster Optimization" (lijevo) je 2-4 puta veća od brzine algoritma "Brute Force" (desno).

Optimizacija napred

Čini se da su parametri optimizirani i možete početi trgovati. Međutim, ovo nije kraj istraživačkog procesa. Proces optimizacije je podložan riziku „prilagođavanja“ ili ponovne optimizacije parametara istorijskim podacima koji se koriste u procesu, tako da je potrebno dodatno provjeriti dobivene rezultate. Za to se koristi metoda Walk Forward. Suština metode leži u činjenici da se parametri strategija testiraju na istorijskim podacima drugačijim od onih koji se koriste u procesu optimizacije.

Da biste to učinili, cijeli raspon povijesnih podataka podijeljen je u uzorke koji se sastoje od skupova:

  • IS ("U uzorku")- uzorak korišten za optimizaciju
  • OOS ("Izvan uzorka")- uzorak koji se koristi za testiranje rezultata optimizacije
Štaviše, rasponi uzoraka su formirani na način da se OOS podaci slijede jedan za drugim (vidi sliku 5).
Rice. 5. Šema optimizacije hoda naprijed.

Da bi se smanjio obim istraživanja u fazama provjere rezultata, moguće je odmah nakon optimizacije filtrirati strategije sa lošim performansama, čime se smanjuje ukupno vrijeme testiranja. Kao rezultat takve provjere, dobićemo objektivne parametre trgovačkih strategija koje su zaštićene od preoptimizacije (vidi Sl. 6 i Sl. 7).


Rice. Slika 6. Rezultati optimizacije na podacima "In Sample".
Rice. 7. Provjera rezultata optimizacije na podacima "Izvan uzorka".

Analiza rezultata

U pravilu, nakon provjere metodom Walk Forward, većina trgovačkih strategija više ne izgleda tako atraktivno kao nakon optimizacije. U idealnom slučaju, strategije bi trebale potvrditi svoje statističke pokazatelje, dok bi ekstremi i klasteri trebali zadržati svoj oblik i položaj u prostoru.

Za udobnu analizu rezultata, vizualizovao sam višedimenzionalni prostor strategija za svaki parametar u formatu toplotne karte (vidi Sl. Rice. 8). Karta vizualno procjenjuje oblik i veličinu klastera, položaj ekstrema, provjerava utjecaj parametara na učinkovitost strategije, procjenjuje promjene nakon provjere za ponovnu optimizaciju itd.


Rice. 8. Primjer dijela prostora po optimiziranim parametrima i ciljnoj funkciji.

Za sveobuhvatnu procjenu rezultata Walk Forward optimizacije, napravljena je matrica sa svim koracima i parametrima koji su prošli filtriranje. u zelenoj boji koraci u kojima su parametri potvrdili svoje performanse su istaknuti i crveni, respektivno, ako nisu potvrđeni. Parametri koji su se dobro pokazali na velikom broju koraka mogu se smatrati pogodnijim za trgovanje (vidi sliku 9).


Rice. 9. Matrix Walk Forward sa svim rezultatima provjere OOS podataka.

Ako je potrebno, rezultati se mogu izvesti u sisteme analize treće strane radi detaljnije studije. Na primjer, u R, Excel ili Mathlab (vidi sliku 10).


Rice. 10. Izvoz rezultata optimizacije u Excel.

Da bi se konačno uverili da su izabrani parametri tačni, sprovode se detaljna testiranja strategija, procenjuje se glatkoća krive prinosa, nalozi se prikazuju na grafikonu i proučava se dnevnik trgovine (vidi sliku 11).


Rice. 11. Detaljna analiza parametara strategije trgovanja.

Zaključak

Nakon optimizacije i svih provera, imaćemo strategije koje su potencijalno pogodne za pravo trgovanje na berzi.

Konačno, sve smo još jednom provjerili, možda je već moguće početi trgovati? U stvari, tek smo na pola puta, još je prerano slati trgovačke algoritme u bitku. Sledeće dolazi:

  • Testirajte strategije na "živim" podacima sa Berze da biste potvrdili indikatore dobijene tokom testiranja.
  • Formirajte portfolio trgovačkih strategija za diversifikaciju rizika. Usput, i njega treba optimizirati.
  • U procesu pravog trgovanja, povremeno smanjite rezultate dobijene sa rezultatima testa kako biste prilagodili postavke testera-optimizatora.
Ali o ovome, možda, drugi put.
Srećna trgovina svima!

Oznake: Dodajte oznake

Prije trgovanja pravim novcem, trebali biste se uvjeriti da je odabrana strategija sposobna dosljedno ostvarivati ​​profit.

Ovaj članak ispituje tri strategije i ispituje njihovu efikasnost u proteklih 10-18 godina. Ovo su potpuno različite strategije, tako da će svaki trgovac u njima moći pronaći nešto zanimljivo i iskoristiti to u svom trgovanju.

Ovdje predstavljene ideje nisu potpune, ali mogu poslužiti kao dobra polazna tačka za.

Gapdown strategija trgovanja

Ponekad možete vidjeti kako jake dionice, koje su lideri u svom sektoru ili čak na tržištu u cjelini, kolabiraju za više od 10% preko noći da bi se vratile na približno prvobitni nivo tokom sljedećeg trgovanja.

To se dogodilo Netflixu (NFLX), koji je objavio izvještaj 16. jula nakon zatvaranja tržišta.

Kompanija je pokazala sporiji rast priliva novih pretplatnika u odnosu na očekivanja investitora.

Dana 16. jula, dionice Netflixa završile su dan iznad svog 50-dnevnog pokretnog prosjeka na 400,48 dolara. Međutim, već sljedećeg jutra trgovalo se na 344 dolara, što je pad od 14%. Na kraju, do kraja dana, cijena je dostigla 379 dolara, nakon što je skoro u potpunosti povratila gubitke.

Istorijska analiza

Od 2000. godine, S&P 500 se zatvorio iznad svog 50-dnevnog pokretnog prosjeka 536 puta s dovoljno obima da se sljedećeg jutra otvori za više od 10% niže.

Analiza pokazuje da kada bi nakon svakog takvog pada otvorili dugu poziciju i zatvorili je na zatvaranju istog dana, tada bi takve transakcije bile uspješne u 47% slučajeva, a prosječan profit bi bio 0,43% (bez provizija). ).

Evo nekih rezultata, kao i kriva ravnoteže koja odražava dinamiku rezultata tokom vremena:

  • Broj transakcija: 536
  • Prosječna dobit/gubitak (P/L) po trgovini: 0,43%
  • Prinos prilagođen riziku (RAR): 123,34%
  • Postotak profitabilnih trgovina: 47,95%
  • sri profit: 5,83%
  • sri . gubitak: -4,54%
  • Koeficijent dobiti: 1,21


Kao što vidite, u proteklih 18 godina ova strategija je pokazala prilično visoku volatilnost, tako da bi većini trgovaca bilo teško da je koriste.

Iako je trgovinska statistika prilično pristojna, kriva bilansa pokazuje da ovaj sistem loše funkcioniše od 2010. godine. I to uprkos činjenici da komisija nije uzeta u obzir.

Da bi se stvorio pristojan sistem trgovanja zasnovan na kupovini dionica S&P 500 nakon pada preko noći od više od 10% sa izlazom na kraju dana, potrebno je još posla.

Strategija trgovanja sa srednjom reverzijom

Ova strategija se može koristiti zajedno sa strategijom praćenja trenda za dionice mikrokapa u Russell Microcap indeksu.

Složenost primjene principa srednjeg povrata na takve dionice leži u činjenici da je obim trgovanja takvim hartijama od vrijednosti mali, a vijesti o njima oskudne. To dovodi do činjenice da oni jednostavno mogu biti u stanju "drifta" dugo vremena. Imajući to na umu, za izgradnju dobre strategije trgovanja potrebna je neka vrsta katalizatora da se izbjegne ulazak u dionice koje ne vode nikuda.

Ideja ove strategije zasniva se na potrazi za novim najnižim nivoom, a porast dnevnog prometa (broj dionica x cijena na zatvaranju) služi kao potencijalni katalizator za brz rast cijene. Dakle, morate pronaći dionicu koja je formirala novi Low, u kojem se na sljedećem baru iznenada pojavljujei cijena počinje rasti.

Kompletan set pravila izgleda ovako:

kupovina:

  • Jučerašnje zatvaranje< минимальная цена закрытия за 50 дней
  • A današnji promet > 250.000 dolara
  • A današnji promet je > 2 standardne devijacije iznad 20-dnevnog pokretnog prosjeka
  • I IBS > 0,2
  • A današnja cijena na zatvaranju je između 0,5 i 20 dolara

prodaja:

  • Najviša cijena zatvaranja u posljednjih 5 barova
  • ILI za 10 dana

Primjer dogovora

Na slici je prikazan primjer takve transakcije za dionice OVID:


Ovdje možete vidjeti da 10. avgusta 2017. OVID formira novi Low 50 dana. Nakon toga slijedi porast obima 11. avgusta, a IBS je 0,72.

Tako možete ući u dugu trgovinu na otvaranju sljedećeg dana (zelena strelica). Nakon 7 dana cijena je otišla na Visokih 5 barova, tako da se trgovina zatvara na otvaranju sljedećeg dana (crvena strelica). Dobit je iznosila 32,53% (bez provizija).

Backtesting za sve dionice od Russell Microcap indeksa za period od 8/2008 do 1/2018 dao je sljedeće rezultate:

(Rezultati uključuju proviziju od 0,2% po trgovini. Pozicije su fiksne na 250 USD. Svi ulazi i izlazi su napravljeni na otvaranju sljedećeg trgovačkog dana. Raniji periodi nisu testirani).

  • Broj transakcija: 6052
  • Prosječna dobit/gubitak (P/L) po trgovini: 1,02%
  • sri trajanje čekanja, barovi: 6.04
  • Prinos prilagođen riziku: 51,13%
  • Postotak profitabilnih trgovina: 53,72%
  • sri . profit: 7,35%
  • sri . gubitak: -6,33%
  • Koeficijent dobiti: 1,35


Kao što možete vidjeti, ovaj skup pravila daje prilično dobre rezultate na vrlo širokom uzorku trgovanja jeftinim dionicama. Kriva ravnoteže je glatka.

Ovo su obećavajući rezultati, stoga, na osnovu ovih pravila, vrijedi razviti punopravni sistem trgovanja s realnom veličinom portfelja, rejtingom dionica i izračunom veličine pozicije.

Strategija trgovanja povlačenjem

Trgovanje povlačenjem se široko koristi za dionice. To uključuje kupovinu kada dođe do kratkoročnog povlačenja tokom dugoročnog trenda. Međutim, ako dionice nisu dovoljno volatilne, takva trgovina povezuje značajan kapital.

Stoga je zanimljivo istražiti kako će se takav sistem ponašati na tržištu fjučersa, gdje su mogućnosti pristupa pozajmljenom kapitalu (leveridž) znatno veće.

Pravila za ovu strategiju su vrlo jednostavna:

kupovina:

  • Cena na zatvaranju > 200-dnevni MA
  • I zaključna cijena< 10-дневной СС

prodaja:

  • Cijena zatvaranja > 10-dnevni MA
  • ILI zaustaviti gubitak 10%

Evo rezultata testiranja istorije nekih fjučers instrumenata:


Kao što vidite, fjučersi na dionice (S&P 500 E-Mini i Dow Jones E-Mini) su pokazali stabilne rezultate. Rezultati za američke trezorske obveznice (Dvogodišnje i Desetogodišnje SAD) takođe su bili dobri. A na zlatu (Gold mini) i naftu (Oil) sistem je radio loše.

Ovi rezultati su zasnovani na trgovanju samo jednim ugovorom i ne. Uključena je naknada od 10 USD u jednom pravcu.

Kao što možete očekivati, ovi rezultati pokazuju da ova strategija najbolje funkcionira na bikovskom tržištu. Stoga se preporučuje korištenje neke vrste filtera tržišnog smjera s njim. Na bikovskom tržištu, ova strategija može biti vrlo profitabilna. U svakom slučaju, vrijedi napraviti još neka testiranja unaprijed.

Dopuna strategije trgovanja na povlačenjima kratke komponente

Također je preporučljivo dopuniti gornju strategiju trgovanja na povlačenju kratkim trgovinama. Za ES (S&P 500 E-Mini) urađeno je odgovarajuće testiranje unazad. Pravila dugog trgovanja ostaju ista, samo se pojavljuje sljedeće dodatno pravilo za kratko trgovanje. U stvari, to je zrcalna slika pravila za duge trgovine, samo traženje bikovskog povlačenja na medvjeđem tržištu.

Kratko se prodaje:

  • Cena na zatvaranju< 200-дневной СС
  • I Završna cijena > 10-dnevni MA

Pokrivenost pozicije:

  • Cena na zatvaranju< 10-дневной СС
  • ILI zaustaviti gubitak 10%
  • Broj transakcija: 323
  • Neto prihod: $77,445
  • Ukupni godišnji prinos (CAR): 5,34%
  • Maksimalno povlačenje (MDD): -16,45%
  • Prosječna dobit/gubitak (P/L): 3,66%
  • Koeficijent dobiti: 1,49


Kao što vidite, dodavanje kratke komponente poboljšalo je rezultate trgovanja ove strategije na ES. Neto prihod je povećan sa 53.901 dolara na 77.445 dolara u istom vremenskom periodu, dok je maksimalno povlačenje ostalo na istom nivou. Kriva balansa također izgleda prilično dobro.

Naravno, ovaj sistem zahtijeva dodatno testiranje i pojašnjenje.. Ipak, za tako jednostavnu strategiju, prvi rezultati se mogu smatrati ohrabrujućim.

U ovom članku ćemo pokazati rezultate testiranja jednostavne strategije trgovanja u 3 načina: " OHLC na M1" koristeći samo otvorene, visoke, niske i zatvorene cijene minutnih barova; zatim detaljnu simulaciju u " Sve krpelji", i najpouzdanije testiranje u modu " Svaki tik je zasnovan na stvarnim tikovima" koristeći snimljene tikete iz istorije.

To će nam omogućiti da shvatimo kakav kvalitet postižemo u različitim načinima rada i pokazati kako pravilno koristiti tester za brze rezultate. Način rada "OHLC na M1" vam omogućava da dobijete brzi evaluacijski test, simulacija u načinu "All Ticks" daje nam dobru aproksimaciju stvarnosti, a testiranje na stvarnim tikovima daje najpreciznije rezultate, ali zahtijeva odgovarajuću količinu vrijeme. Osim toga, greške u logici trgovačkog robota mogu utjecati na broj trgovačkih operacija i dovesti do činjenice da rezultati testiranja strategije na historiji ovise o odabranom načinu testiranja.

Koju smo strategiju trgovanja testirali

Napravili smo jednostavnu strategiju trgovanja probijanjem raspona zasnovanu na najnovijim trakama RangeLength. Pravila trgovanja u njemu su sljedeća: na novootvorenoj traci raspon najvišeg i najvišeg niske cijene za posljednjih N barova. U priloženom stručnom savjetniku, zadani parametar RangeLength je 20 bara i označava širinu prozora u kojem gradimo raspon.

Nakon prvog proboja raspona gore ili dolje, statistika dolaznih krpelja počinje se akumulirati: koliko se krpelja pokazalo iznad nivoa probijenog raspona, a koliko - ispod. Čim ulazni tikovi postanu veći ili jednaki TicksForEnter =30, donosi se odluka da se uđe na tržište po trenutnoj cijeni. Ako je raspon probijen naviše, tada bi broj tikova iznad nivoa proboja trebao biti veći od broja tikova ispod ovog nivoa. U ovom slučaju se vrši kupovina. Za ulazak na kratku poziciju, istina je suprotno.

Izlaz iz otvorene pozicije se dešava na vrijeme, kroz BarsForExit barove. Kao što vidite, pravila trgovanja su jednostavna. Radi jasnoće prikazani su na slici:

Pogledajmo kako se rezultati testiranja ove strategije mijenjaju u tri različita moda simulacije krpelja.

Kako smo testirali

Strategija trgovanja je testirana na EURUSD-u u prvoj polovini 2016. godine u prvih 6 meseci 2016. godine - od 01.01.2016. do 30.06.2016. Svi parametri stručnog savjetnika su postavljeni na zadane vrijednosti, jer je naš zadatak bio da jednostavno testiramo strategiju u različitim modovima simulacije.


Poređenje rezultata u različitim modovima testiranja

Rezultati testiranja u različitim režimima su sažeti u tabeli. Prije svega, upadljiva je razlika u broju trgovačkih operacija. Shodno tome, svi ostali indikatori testa su takođe različiti. Istovremeno, testiranje u režimu "OHLC na M1" trajalo je 1,57 sekundi, što je 23 puta brže nego u režimu "Svi tikovi". Takva razlika će biti od velike važnosti pri optimizaciji ulaznih parametara trgovinskog sistema.

Zauzvrat, režim "Svaki tik na osnovu stvarnih tiketa" je bio još dugotrajniji - 74 sekunde u odnosu na 36,7 sekundi u režimu "Svi tikovi". To se lako objašnjava činjenicom da je pri korištenju stvarnih krpelja simulirano više od 34 miliona krpelja, što je gotovo 2 puta više nego u načinu "Svi tikovi". Dakle, što više tikova koristimo prilikom testiranja, to je potrebno više vremena za jedan prolaz u testeru strategije.

Parametar
OHLC na M1
Sve krpelji
Svaki tik
na osnovu realnog
Tikov
731 466
18 983 485
34 099 141
Neto profit
169.46 -466.81
-97.24
Trgovine
96
158 156
Deals
192
316 312
Povlačenje kapitala (%)
311.35 (3.38%)
940.18 (9.29%)
625.79 (6.07%)
Povlačenje bilansa281.25 (3.04%)
882.58 (8.76)
591.99 (5.76%)
Profitabilne trgovine (%)
50 (52.08%) 82 (51.90%) 73 (46.79%)
Prosječan kontinuirani niz pobjeda
2
2
2
Vrijeme testiranja, uključujući vrijeme stvaranja krpelja
1.6 sekundi
36.7 sekundi
74 sekundi (1 minuta 14 sekundi)

Prikupili smo izvještaje o testiranju u različitim modovima simulacije u obliku animiranih GIF-ova tako da možete vidjeti razliku u statistici.


Shodno tome, grafikoni bilansa stanja i kapitala također imaju razlike. Ali u isto vrijeme, jasno je da ova jednostavna strategija ne izgleda privlačno - period rasta zamjenjuje se periodom pada, a grafikoni svakog testa izgledaju kao lanac šansi. Ne možete trgovati koristeći takav sistem, rezultat će biti sličan bacanju novčića.



Sistemi trgovanja zavise od dolaska krpelja

Prikazani sistem trgovanja u velikoj meri zavisi od metode modeliranja - od broja dolaznih tikova i redosleda kojim su primljeni. Prilikom testiranja u "OHLC na M1" modu, simuliramo najmanje krpelja i oni možda neće uvijek biti dovoljni za ulazak na tržište. Režimi "Svi tikovi" i "Svaki tik na osnovu stvarnih tikova" mogu imati potpuno drugačiji redoslijed tiketa. Kod modeliranja "Svakog tika" možemo dobiti monotono rastući ili monotono opadajući niz tiketa, što praktično garantuje ulazak na tržište kada se raspon probije. Prilikom testiranja u modu "Svaki tik na osnovu stvarnih tikova" koristi se zabilježena historija tikova i tu dinamika promjena cijena može biti potpuno neočekivana.

Kao rezultat toga, čak i na početku intervala testiranja, vidimo da se i ulazni i izlazni nivoi razlikuju na grafikonima, a neke trgovine su preskočene.



Četiri načina generiranja krpelja

Tester strategija u MetaTrader 5 terminalu omogućava vam da testirate strategije trgovanja u četiri moda simulacije tikova, opisani su u članku Osnove testiranja MetaTrader 5. Najbrži i najgrublji je " Samo početne cijene", u kojem se trgovačke operacije mogu obavljati samo pri otvaranju novog bara. U ovom modu, nikakve radnje unutar bara nisu dostupne EA, a dobro je pogodan za testiranje strategija koje ne uzimaju u obzir kako cijena razvija se unutar šipke.

Sljedeći u smislu preciznosti modeliranja je način rada " OHLC na M1", koji simulira cijene otvaranja, visoke, niske i zatvorene svake minutne trake uključene u testirani historijski raspon. Dakle, prilikom testiranja na H1 vremenskom okviru u trajanju od sat vremena, stručni savjetnik će biti pozvan 240 puta: na svakom od 60 minutnih barova, OnTick() rukovalac će biti pozvan 4 puta - jednom za svaku OHLC cijenu. Sa ovom simulacijom, već možete koristiti Trailing Stop, pogledati razvoj cijene na drugim vremenskim okvirima i indikatorima, ako je potrebno. Na primjer, testirajte strategije poput " 3 Stariji ekrani".

Ako vam je potrebna potpuno pouzdana rekonstrukcija povijesti u testeru strategije, onda koristite " Svi tikovi bazirani su na stvarnim tikovima". U ovom modu, tester samostalno preuzima snimljene stvarne tikove sa trgovačkog servera brokera i na osnovu njih gradi razvoj cijene. Za segmente istorije bez stvarnih tikova, tester modelira cijenu na isti način kao u " Sve krpelji". Dakle, ako broker ima cijelu zabilježenu historiju za tražene simbole, možete testirati stvarne istorijske podatke bez umjetnog modeliranja. Međutim, cijena za takvu tačnost tik-po-tak će biti značajno povećanje vremena testiranja, kao što je prikazano u tabeli sa rezultatima poređenja ova tri načina rada.

Započnite razvoj sistema sa "OHLC na M1" modu

Kao što vidite, nemoguće je pobijediti u svemu u isto vrijeme - ako želimo skratiti vrijeme i brzo testirati trgovinsku ideju, onda gubimo preciznost u jednostavnim modovima simulacije. Ako je za testiranje potrebno osigurati tačnost ulaznih cijena i redoslijed trgovačkih signala, tada morate koristiti preciznije modove koji zahtijevaju više vremena.

Prije nego počnete testirati strategiju trgovanja, morate biti jasno svjesni da odabrani način simulacije određuje tačnost rezultata i količinu vremena utrošenog na njihovo dobivanje. Ako trebate brzo procijeniti i testirati svoju strategiju trgovanja, koristite način rada "OHLC na M1". U njemu možete brzo procijeniti potencijal trgovinskog sistema.

Sljedeća faza je otklanjanje grešaka i način rada "Svaki tik".

Ako su se preliminarni rezultati pokazali zadovoljavajućim, onda možete nastaviti sa finim podešavanjem i analizom sistema trgovanja u preciznijim simulacionim režimima. Ovdje će u pomoć priskočiti otklanjanje grešaka u strategiji u režimu testiranja - možete postaviti tačke prekida i provjeriti stanje varijabli i ispunjenost uslova postavljenih u EA. Ovdje možete očekivati neprijatna iznenađenja ako ste zaboravili da uzmete u obzir neke od nijansi vašeg sistema.

Testiranje tačnosti u odnosu na brzinu

Kao što se može videti iz rezultata testiranja opisanog sistema trgovanja u tri moda, trgovac uvek može i treba da izabere režim simulacije tikova koji odgovara njegovoj strategiji trgovanja. Ako testirate sistem u dnevnom vremenskom okviru, tada će " Samo početne cijene"- visoka brzina testiranja neće biti na štetu kvaliteta rezultata.

Ako pišete strategiju skalpinga ili arbitraže, ili je vaša strategija zasnovana na izračunima indeksa ili sintetičkih indikatora u realnom vremenu, tada je potreban način rada "". Testiranje će potrajati mnogo više vremena, ali ćete dobiti rezultate što je moguće bliže stvarnosti. Istina, ne smijemo zaboraviti da se povijest nikada ne ponavlja, pa stoga, čak i u ovom načinu rada, ulazni parametri idealno odabrani uz pomoć optimizacije ne jamče uspjeh prilikom pokretanja robota na stvarnom računu.

Između ove dvije krajnosti su " OHLC na M1" i " Sve krpelji", koji su brži od " Svaki tik je zasnovan na stvarnim tikovima", ali dajte nižu tačnost testiranja. Uopšteno govoreći, možemo formulisati zakon koji opisuje vrijeme i tačnost testiranja:

Što brže test prolazi, to je niža tačnost simulacije trgovanja. Što je razvoj cijena detaljniji i precizniji po uzoru na historiju, to je potrebno više vremena za testiranje.

Trgovinski serveri akumuliraju stvarnu historiju tikova dugi niz godina, a tester strategije u MetaTrader 5 u modu "Svaki tik na osnovu stvarnih tikova" će automatski preuzeti svu potrebnu historiju. Ali što je testiranje pouzdanije, to zahtijeva više resursa. Stoga odaberite ravnotežu između tačnosti i brzine.

Ne zahtijevaju sve strategije detaljno modeliranje u ranim fazama razvoja. Pravi izbor način testiranja će vam pomoći uštedjeti vrijeme i ukloniti korov velika količina pogrešne strategije!

I tek nakon rješavanja glavnog zadatka - stvaranja profitabilnog automatskog trgovačkog sistema - možete optimizirati na stvarnim kvačicama. U ovoj fazi, već će vam trebati snaga distribuirane računarske mreže.

Bilo koji indikator ili sistem trgovanja (plaćeni, besplatni, treće strane ili sami kreirani) može se postaviti na pravi račun samo nakon uspješne probne vožnje na nekoliko načina i na različite načine. uslove trgovanja. Optimizacija i kompetentno testiranje strategija trgovanja - potreban proces za uspešno trgovanje.

Razvoj trgovačkog sistema zahtijeva mnogo vremena i truda, tako da se empirijski metodi za odabir parametara već dugo ne koriste. Danas je faza testiranja postala neophodna komponenta tehničke analize i omogućava vam da uštedite kapital za pravo trgovanje.

Proces testiranja strategija trgovanja podrazumeva pokretanje algoritma na istorijskim ili simuliranim podacima. Test treba da "vidi" razmjenske "signale" za generiranje kupovnih/prodajnih transakcija i da daje rezultat "moguće" trgovine - visina prihoda/gubitaka je pokazatelj podobnosti za pravi rad.

Glavni ciljevi i metode

Prije svega, potrebno je provjeriti:

  • indikatori učinka uključeni u strategiju;
  • tržišni modeli (aktiva, likvidnost, troškovi, brzina, proklizavanje, rizik) bez stvarnog trgovanja;
  • optimalnost parametara prema rezultatima backtest-a;
  • programski kod za greške u razvoju.

Test bi trebao uključivati ​​analizu prošlosti/predviđanje budućnosti i izraditi izvještaj sa grafičkim i kvantitativnim rezultatima. Možete preuzeti na tester:

  • istorija - niz prethodno formiranih barova sa parametrima cena, obima, indikatora: zatim se formiraju cene "prošlost" i "budućnost" za analizu kako bi se procenila "buduća" reakcija na "prošlu" dinamiku;
  • vrijednosti cijena modelirane po scenariju: zatim unesite podatke o tiku (povijest ili stvarne) na ulaz testera i primite prognozu kretanja.

Prvi metod daje lakoću, brzinu, ali nisku preciznost, a u drugom, strategija se ponaša u testeru upravo onako kako se radi u stvarnom trgovanju. Simulirani rezultati se mogu pohraniti kao eksterne datoteke, koje se mogu učitati u terminal preko menija "File" - "Open offline".

Strategije trgovanja se mogu testirati koristeći:

  • bilo koji matematički softver (Matlab ili MS Excel sa dodacima za trgovanje dionicama);
  • sistemi za kreiranje mehaničkih sistema (MetaStock, Wealth-Lab, Omega);
  • Java, Scala ili C++/C# programski jezici za kreiranje i testiranje trgovačkih robota;
  • testeri ugrađeni u trgovačke platforme.

Tradicionalno, za postizanje stabilnih i tačnih rezultata u procesu testiranja, dosljedno se primjenjuje sljedeće:

  • Vizuelni test indikatora ili sistema: zahteva pregled istorije cena za duži period (jedna - dve godine). Ovaj dugotrajni proces je pojednostavljen pomoću softvera za ručno testiranje strategije.
  • Kreiranje, testiranje i optimizacija stručnog savjetnika.
  • Test duge istorije u automatskom režimu.
  • Testirajte na demo računu ili na cent računu: se izvodi nakon dobijanja stabilnih rezultata za prve dvije metode - dugog, ali najpreciznijeg izračuna. Razlika između demo računa i cent računa je samo psihološka.

Ako dobijete nepovoljne rezultate, morate potrošiti vrijeme na odabir parametara savjetnika, a ugrađena opcija optimizacije je najprikladniji mehanizam za to.

Testeri strategije trgovanja

Oni su multivalutni analitički alati za obradu historije učitane iz vanjskih datoteka. Proces sekvencijalno sortira citate, analizira reakciju algoritma i otvara virtuelne poslove. Možete računati na nekoliko sredstava u isto vrijeme kako biste odabrali najbolju opciju.

Prilikom testiranja strategija trgovanja, režim nasumične kašnjenja izvršenja simulira probleme mreže tokom stvarnog izvršenja naloga od strane dilera. Mod vizualizacije prikazuje proces u realnom vremenu: sve otvorene ponude su prikazane na grafikonu cijena, podešavanja se vrše prema kriterijima: brzina, kvalitet, profit, period, raznim uslovima trgovina.

Rezultat je dat u obliku grafičkih i statističkih informacija: procenat dobiti/gubitka, broj gubitnih/profitabilnih trgovina, indikatori faktora rizika, matematičko očekivanje dobitka i tako dalje.

Mehanizam "naprijed" testiranja strategija trgovanja pomaže da se riješe problemi "prilagođavanja" parametara: historija je podijeljena na dva dijela - optimizacija se vrši na jednoj polovini, a druga sekcija mora potvrditi rezultat. Testeri mogu podržati metodologiju distribuiranog testiranja, odnosno uključiti dodatne kapacitete u proces, uključujući mreže računarstva u oblaku.

Osnovni zahtjevi za postavke prilikom testiranja strategija trgovanja:

  • preuzimanje podataka svih perioda; raspon istorije je najmanje 5 godina, uz obavezno uključivanje perioda sa kriznom/nestandardnom dinamikom (na primjer, 2008-2009);
  • ako koristite manji period, onda bi on trebao uključivati ​​periode trenda i ravnog kretanja;
  • broj simuliranih poslova manji je od 300;
  • testirati algoritam na nekoliko tekućih instrumenata.

Prilikom postavljanja parametara testa uzmite u obzir:

  • troškovi trgovanja (spredovi, provizije);
  • klizanje/kašnjenja;
  • uticaj likvidnosti sredstava (volumetrijska dinamika);
  • promjena tržišnih uslova;
  • vrste trgovačkih naloga koji se planiraju koristiti (tržišni ili limitirani nalozi).

Ako se tržišni nalog izvrši odmah, ali njegova konačna cena za test nije definisana, onda limitirani nalozi mogu da „čekaju” najpovoljniju cenu za transakciju. Ograničeni nalog se smatra pasivnim sredstvom, jer može biti neizvršen ili djelimično izvršen ako ima malo naloga. Ako ponašanje knjige naloga nije precizno modelirano, test u realnom vremenu će pokazati lošije rezultate od backtest-a.

Ne zaboravite: prije zatvaranja sesija, raspon se može povećati nekoliko puta, tako da ne biste trebali provoditi kratke testove uzimajući u obzir vikend - dobit ćete mnogo veće troškove.

Obično se koriste tri metode izračunavanja:

  • Otvaranje cijene: najbrža, ali najnetačnija metoda, većina strategija, kada se testiraju na period do 1 godine, možda uopće neće otvoriti niti jednu trgovinu;
  • Za kontrolne tačke: najizbalansiraniji u smislu tačnosti i vremena, ali je nivo povjerenja u primljene podatke nizak;
  • Za sve krpelje: najtačnija metoda, bliska stvarnosti.

Uz bilo koju metodu testiranja tokom dužeg perioda, rezultati za posljednjih nekoliko godina su najprecizniji, kako za trending tako i za sisteme za povlačenje.

ne zaboravite: implementacija realnih modela i volumena simuliranih podataka za precizno testiranje zahtijevaju tehničke resurse, a u vizualizacija usporava proces izračunavanja.

Testiranje strategija trgovanja ispravno modelira sve vremenske okvire, uključujući podatke o količini. Tokom testa, indikatori se izračunavaju na mreži.

Nakon što je test završen, možete otvoriti model grafikona sa svim ulaznim/izlaznim tačkama i podacima indikatora, tako da ako strategije ili indikatori imaju greške, one će se sigurno pojaviti. Vrijednosti indikatora izračunate iz povijesti mogu se razlikovati od vrijednosti u vrijeme testa.

Rezultati testa se mogu učitati u Excel ili bilo koji drugi softver kao niz razgraničenih podataka.

Ne zaboravi :n ne možeš koristiti u proračunima nepotpun skup citata ili djelomični uvoz iz različitih izvora. Minute se moraju automatski ponovo izračunati i unijeti u izračun bez privremenih praznina ili pomaka.

I kao zaključak...

Testiranje strategija trgovanja omogućava vam da procenite ispravnost i profitabilnost algoritma bez stvarnog trgovanja na tržištu. Osim novca, time se štedi i vrijeme - testiranje kotacija u periodu od nekoliko godina može potrajati samo nekoliko sati, može se zaustaviti u bilo kojem trenutku, promijeniti instrument, uslove proračuna ili parametre optimizacije. Izvor:

Dugmad društvenih mreža za Joomla

popularno:

  • 14. novembar 2013. 06:32 | Indikator preokreta - odredite kraj trenda 55948
  • 4.2.2015 10:04 | VSA indikator čita tržište kao otvorena knjiga 53422
  • 23.09.2014 11:08 | Konstruktor Forex savjetnika će vam omogućiti da kreirate bilo kojeg trgovačkog robota 48882


Prvo, o grafici. U gornjem desnom uglu je osmeh volatilnosti. Dolje lijevo je profil trenutne pozicije. (smeđa linija je nagib volatilnosti, pokazuje kako se volatilnost može promijeniti kada se cijena promijeni). Ostalo mislim da je jasno.

Funkcionalni. Pored brzog pokretanja pozicije (Start) i pregleda kapitala (ubrzao postupak obrade) i korak po korak (StepByStep), dodao sam profil i obračun promjena volatilnosti.

Kako koristiti. (pogledajte prethodni blog). Samo da vidite rezultat, pritisnite start. Za gledanje korak po korak, označite polje lijevo od StepByStep. Da vidite profil pozicije, kliknite na Profil. Ako pritisnete StepByStep i ne želite da pritisnete Profil svaki put, označite polje lijevo od dugmeta Profil. Ako želite da gledate običan (standardni) profil, poništite opciju Volatilnost. Ako je potvrdni okvir označen (Volatilnost), tada se profil iscrtava uzimajući u obzir promjenu ( moguća promjena) volatilnost. (smeđa linija na grafikonu).

Gore