Testiranje strategija trgovanja. Testiranje trgovačkih strategija na stvarnim tikovima Trgovački sustav u excelu

Riža. 1. Optimizacija višedimenzionalnog prostora algoritama za strategije trgovanja.

Optimizacija strategija trgovanja

U procesu algoritamskog trgovanja postoji stalna potreba za prilagođavanjem parametara algoritama za strategije trgovanja. Kombinacije svega mogući parametri pretvara u veliki višedimenzionalni prostor strateških opcija. Da biste dobili najprofitabilnije i najstabilnije strategije, morate istražiti ovaj prostor i odabrati optimalne parametre za trgovanje.

Najviše Najbolji način proučavanje bilo kojeg skupa je potpuno nabrajanje svih njegovih elemenata. Međutim, s obzirom na ogromnu količinu podataka s kojima se mora nositi tijekom optimizacije, u pravilu je jednostavno nemoguće provesti takvo istraživanje iscrpnim pretraživanjem. Moramo primijeniti različite analitičke algoritme koji nam omogućuju smanjenje stvarne količine istraživanja u procesu traženja ekstrema.

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

Klasičan problem s algoritmima stohastičke optimizacije je taj što nisu reprezentativni za male količine stvarnog istraživanja i male uzorke. Na primjer, Monte Carlo nije učinkovit u multiekstremnom prostoru, on fokusira studiju na globalni ekstrem, gubeći iz vida lokalne, ali ništa manje zanimljive ekstreme. Algoritam ne postavlja takve zadatke za sebe, 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 ekstremu itd.
To je zato što su ti optimizacijski algoritmi uključeni rani stadiji 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, au našem slučaju vrijeme je zlata vrijedno. Potrebno je istražiti ekstreme prostora što detaljnije uz minimalni utrošak vremena. U isto vrijeme, u uvjetima trgovanja na burzi koji se brzo mijenjaju, važno je obratiti pozornost ne samo na profitabilne, već i na stabilne parametre strategija trgovanja. Pod stabilnim parametrima podrazumijeva se formiranje klastera sa sličnim rezultatima. Profitabilne strategije koje su izvan klastera možda nisu stabilne i mogu dovesti do ozbiljnih gubitaka. S druge strane, strategija iz klastera manje je podložna promjenama na tržištu.

Metoda stohastičke optimizacije klastera

Uzimajući u obzir osobitosti optimizacije strategija razmjene, razvijen je hibridni algoritam (vidi ) za koji se pokazalo da ima jednu ugodnu nuspojava- uspješno je identificirao i istražio klastere. Dobivenom algoritmu dao sam naziv - "Metoda stohastičke optimizacije klastera".

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

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

Kako bi se riješio neizvjesnosti 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 s područjima koja ih graniče s potencijalom visoki rizici gubici.

Rad se izvodi sljedećim redoslijedom:

  • Od svih mogućih parametara strategije trgovanja formira se višedimenzionalni prostor.
  • Strategije se nasumično biraju iz prostora i testiraju na povijesnim podacima s navedenim parametrima.
  • Na temelju rezultata testiranja uklanjaju se granične mikroregije oko najneprofitabilnijih strategija. Ovo smanjuje istraživački prostor i fokusira se na profitabilnija i stabilnija područja u daljnjim iteracijama.
  • Ponavljanja testiranja provode se dok se strateški prostor ne istraži u potrebnoj mjeri.
Na sl. Slika 2 pokazuje kako se studija pomiče prema ekstremima, dok je rizik od propuštanja malih klastera s mogućim dobrim i stabilnim parametrima minimalan.
Riža. 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 osobitosti algoritma (mnoge mikroregije su izrezane), prostor ispada "raščupan" i neki se ekstremi ne mogu detaljno proučavati. Kako bi se u potpunosti istražili svi zanimljivi klasteri, optimizacijski algoritam pokreće proces istraživanja na upravo suprotan način. Da bi se to postiglo, odabiru se sve najbolje strategije i oko njih se dodatno dodjeljuju mikrodomene. Ako se u tim područjima pronađu neistražene strategije, one se dodatno testiraju (vidi sliku 3).


Riža. 3. Druga faza algoritma "Stochastic Cluster Optimization" je detaljna studija ekstrema.

Kao rezultat toga, nakon što se algoritam pokrene, istražuju se sva područja prostora koja su nam zanimljiva i detaljno se testiraju klasteri s profitabilnim strategijama. U isto vrijeme, stvarni obujam istraživanja, u pravilu, nije veći od 25-50% ukupnog volumena prostora strateških opcija (vidi sliku 4).

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

Optimizacija hoda naprijed

Čini se da su parametri optimizirani i možete početi trgovati. Međutim, ovo nije kraj procesa istraživanja. Proces optimizacije podložan je riziku „uklapanja“ ili ponovnog optimiziranja parametara na povijesne podatke korištene u procesu, stoga je potrebno dodatno provjeriti dobivene rezultate. Za to se koristi metoda Hodaj naprijed. Bit metode leži u činjenici da se parametri strategija testiraju na povijesnim podacima koji se razlikuju od onih korištenih 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
Štoviše, rasponi uzorka formirani su na takav način da OOS podaci slijede jedan za drugim (vidi sliku 5).
Riža. 5. Shema napredne optimizacije.

Kako bi se smanjio opseg istraživanja u fazama provjere rezultata, moguće je odmah filtrirati strategije s lošim performansama nakon optimizacije, čime se smanjuje ukupno vrijeme testiranja. Kao rezultat takve provjere dobit ćemo objektivne parametre strategija trgovanja koji su zaštićeni od preoptimizacije (vidi sl. 6 i sl. 7).


Riža. Slika 6. Rezultati optimizacije na podacima "U uzorku".
Riža. 7. Provjera rezultata optimizacije na podacima "Izvan uzorka".

Analiza rezultata

U pravilu, nakon provjere metodom Walk Forward, većina strategija trgovanja više ne izgleda tako privlačno 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, vizualizirao sam višedimenzionalni prostor strategija za svaki parametar u formatu toplinske karte (vidi sl. Riža. 8). Mapa vizualno ocjenjuje oblik i veličinu klastera, položaj ekstremnih točaka, provjerava utjecaj parametara na učinkovitost strategije, ocjenjuje promjene nakon provjere ponovne optimizacije itd.


Riža. 8. Primjer presjeka prostora po optimiziranim parametrima i funkciji cilja.

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


Riža. 9. Matrix Walk Forward sa svim rezultatima provjere OOS podataka.

Ako je potrebno, rezultati se mogu izvesti u analitičke sustave trećih strana za detaljniju studiju. Na primjer, u R, Excelu ili Mathlabu (vidi sl. 10).


Riža. 10. Izvoz rezultata optimizacije u Excel.

Kako bismo konačno bili sigurni da su odabrani parametri točni, provode se detaljni testovi strategija, procjenjuje se glatkoća krivulje prinosa, nalozi se prikazuju na grafikonu i proučava se dnevnik trgovanja (vidi sliku 11).


Riža. 11. Detaljna analiza parametara strategije trgovanja.

Zaključak

Nakon optimizacije i svih provjera, imat ćemo strategije koje su potencijalno prikladne za stvarno trgovanje na Burzi.

Konačno, sve smo još jednom provjerili, možda je već moguće početi trgovati? Zapravo, tek smo na pola puta, još je prerano slati algoritme trgovanja u bitku. Sljedeći na redu:

  • Testirajte strategije na "živim" podacima s Burze kako biste potvrdili pokazatelje dobivene tijekom testiranja.
  • Formirajte portfelj strategija trgovanja za diverzifikaciju rizika. Usput, također ga treba optimizirati.
  • U procesu stvarnog trgovanja povremeno smanjite rezultate dobivene s rezultatima testa kako biste prilagodili postavke testera-optimizatora.
Ali o tome, možda, drugi put.
Sretno trgovanje svima!

Oznake: Dodajte oznake

Prije trgovanja pravim novcem, trebali biste se uvjeriti da odabrana strategija može stalno donositi profit.

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

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

Gapdown strategija trgovanja

Ponekad možete vidjeti kako jake dionice, koje su vodeće u svom sektoru ili čak tržištu u cjelini, padnu za više od 10% preko noći da bi se vratile otprilike na prvobitnu razinu tijekom sljedeće sesije trgovanja.

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

Tvrtka je pokazala sporiji rast priljeva novih pretplatnika u odnosu na očekivanja investitora.

Dana 16. srpnja Netflixove dionice završile su dan iznad svog 50-dnevnog pomičnog prosjeka na 400,48 USD. Međutim, već sljedećeg jutra trgovalo se po 344 USD, što je pad od 14%. U konačnici, do kraja dana, cijena je dosegla 379 dolara, gotovo u potpunosti povrativši gubitke.

Povijesna analiza

Od 2000. S&P 500 je 536 puta zatvorio iznad svog 50-dnevnog pomičnog prosjeka s dovoljnim volumenom da se sljedećeg jutra otvori više od 10% niže.

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

Evo nekih rezultata, kao i krivulja bilance koja odražava dinamiku rezultata tijekom vremena:

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


Kao što možete vidjeti, tijekom proteklih 18 godina, ova strategija je pokazala prilično visoku volatilnost, tako da bi većini trgovaca bilo teško koristiti je.

Iako je trgovinska statistika sasvim pristojna, bilančna krivulja pokazuje da ovaj sustav od 2010. godine loše radi. I to unatoč činjenici da provizija nije uzeta u obzir.

Za stvaranje pristojnog sustava trgovanja temeljenog na kupnji dionica S&P 500 nakon noćnog pada od više od 10% s izlaskom na kraju dana, potrebno je uložiti više posla.

Srednja reverzija strategija trgovanja

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

Složenost primjene načela srednje vrijednosti na takve dionice leži u činjenici da su količine trgovanja takvim vrijednosnim papirima niske i da je protok vijesti o njima rijedak. To dovodi do činjenice da oni jednostavno mogu biti u stanju "drifta" dugo vremena. Imajući to na umu, izgradnja dobre strategije trgovanja treba neku vrstu katalizatora kako bi se izbjeglo upadanje u dionice koje nikamo ne idu.

Ideja ove strategije temelji se na potrazi za novim minimumom, 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ćoj traci iznenada pojavljujea cijena počinje rasti.

Kompletan skup pravila izgleda ovako:

Kupiti:

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

Prodaja:

  • Najviša cijena na zatvaranju u zadnjih 5 barova
  • ILI za 10 dana

Primjer dogovora

Slika prikazuje primjer takve transakcije za OVID dionicu:


Ovdje možete vidjeti da 10. kolovoza 2017. OVID formira novih najnižih 50 dana. Nakon toga slijedi porast volumena 11. kolovoza, a IBS iznosi 0,72.

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

Backtesting za sve dionice iz Russell Microcap indeksa za razdoblje 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 ulasci i izlasci izvršeni su na otvaranju sljedećeg dana trgovanja. Ranija razdoblja nisu testirana).

  • Broj transakcija: 6052
  • Prosječna dobit/gubitak (P/L) po trgovini: 1,02%
  • oženiti se trajanje držanja, taktovi: 6.04
  • Povrat prilagođen riziku: 51,13%
  • Postotak profitabilnih trgovina: 53,72%
  • oženiti se . dobit: 7,35%
  • oženiti se . gubitak: -6,33%
  • Omjer dobiti: 1,35


Kao što vidite, ovaj skup pravila daje prilično dobre rezultate na vrlo širokom uzorku trgovanja za jeftine dionice. Krivulja ravnoteže je glatka.

Ovo su obećavajući rezultati, stoga je na temelju ovih pravila vrijedno razviti cjeloviti sustav trgovanja s realnom veličinom portfelja, ocjenom dionica i izračunom veličine pozicije.

Strategija povlačenja trgovanja

Trgovanje povlačenjem uvelike se koristi za dionice. Uključuje kupnju kada dođe do kratkoročnog povlačenja tijekom dugoročnog trenda. Međutim, ako dionica nije dovoljno volatilna, takva trgovina veže značajan kapital.

Stoga je zanimljivo istražiti kako će se takav sustav ponašati na terminskom tržištu, gdje su mogućnosti pristupa posuđenom kapitalu (leverage) znatno veće.

Pravila za ovu strategiju su vrlo jednostavna:

Kupiti:

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

Prodaja:

  • Cijena na zatvaranju > 10-dnevni MA
  • ILI zaustavi gubitak 10%

Evo rezultata testiranja povijesti nekih instrumenata fjučersa:


Kao što vidite, fjučersi dionica (S&P 500 E-Mini i Dow Jones E-Mini) pokazali su stabilne rezultate. Rezultati za američke državne obveznice (dvogodišnje i desetogodišnje) također su bili dobri. I na zlatu (Gold mini) i nafti (Oil) sustav je radio loše.

Ovi se rezultati temelje na trgovanju samo jednim ugovorom i br. Uključena je naknada od 10 USD u jednom smjeru.

Kao što možete očekivati, ovi rezultati pokazuju da ova strategija najbolje funkcionira na tržištu bikova. Stoga se uz njega preporuča koristiti neku vrstu filtra smjera tržišta. Na tržištu bikova ova strategija može biti vrlo isplativa. U svakom slučaju, vrijedi napraviti još neka unaprijed testiranja.

Nadopunjavanje strategije trgovanja na povlačenju kratke komponente

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

Kratka prodaja:

  • Cijena na zatvaranju< 200-дневной СС
  • I Cijena na zatvaranju > 10-dnevni MA

Pokrivenost položaja:

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


Kao što vidite, dodavanje kratke komponente poboljšalo je rezultate trgovanja ove strategije na ES-u. Neto prihod porastao je s 53.901 USD na 77.445 USD u istom vremenskom razdoblju, dok je maksimalno povlačenje ostalo na istoj razini. Krivulja ravnoteže također izgleda prilično dobro.

Naravno, ovaj sustav zahtijeva dodatna ispitivanja i pojašnjenja.. Ipak, za tako jednostavnu strategiju prvi se rezultati mogu smatrati ohrabrujućima.

U ovom ćemo članku prikazati rezultate testiranja jednostavne strategije trgovanja u 3 načina: " OHLC na M1" koristeći samo Open, High, Low i Close cijene minutnih barova; zatim detaljnu simulaciju u " Sve krpelji", i najpouzdanije testiranje u načinu " Svaki tik na temelju stvarnih kvačica" koristeći snimljene tikove iz povijesti.

To će nam omogućiti da shvatimo koju kvalitetu postižemo u različitim načinima rada i pokazati kako ispravno koristiti tester za brze rezultate. Način rada "OHLC na M1" omogućuje brzi test evaluacije, simulacija u načinu rada "Svi tikovi" daje nam dobru aproksimaciju stvarnosti, a testiranje na stvarnim tikovima daje najtočnije rezultate, ali zahtijeva odgovarajuću količinu vrijeme. Osim toga, pogreške u logici trgovačkog robota mogu utjecati na broj trgovačkih operacija i dovesti do činjenice da rezultati testiranja strategije na povijesti ovise o odabranom načinu testiranja.

Koju strategiju trgovanja smo testirali

Stvorili smo jednostavnu strategiju trgovanja probijanjem raspona na temelju najnovijih RangeLength barova. Pravila trgovanja u njemu su sljedeća: na novootvorenom baru raspon najvišeg i najvišeg niske cijene za zadnjih N taktova. U priloženom Stručnom savjetniku zadani parametar RangeLength je 20 barova i označava širinu prozora u kojem gradimo raspon.

Nakon prvog prekida raspona gore ili dolje, počinje se akumulirati statistika dolaznih krpelja: koliko se krpelja pokazalo iznad razine prekinutog raspona, a koliko ispod. Čim dolazni tikovi postanu veći ili jednaki TicksForEnter =30, donosi se odluka o ulasku na tržište po trenutnoj cijeni. Ako je raspon probijen prema gore, tada bi broj oznaka iznad razine proboja trebao biti veći od broja oznaka ispod ove razine. U ovom slučaju se vrši kupnja. Za ulazak u kratku poziciju vrijedi suprotno.

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

Pogledajmo kako se rezultati testiranja ove strategije mijenjaju u tri različita načina simulacije tikova.

Kako smo testirali

Strategija trgovanja testirana je na EURUSD u prvom polugodištu u prvih 6 mjeseci 2016. - od 01.01.2016. do 30.06.2016. Svi parametri Stručnog savjetnika postavljeni su na zadane vrijednosti, jer je naš zadatak bio jednostavno testirati strategiju u različitim modovima simulacije.


Usporedba rezultata pod različitim načinima testiranja

Rezultati testiranja u različitim načinima rada sažeti su u tablici. Prije svega, razlika u broju trgovinskih operacija je upečatljiva. Sukladno tome, svi ostali testni pokazatelji također su različiti. Istovremeno, testiranje u načinu rada "OHLC na M1" trajalo je 1,57 sekundi, što je 23 puta brže nego u načinu rada "All ticks". Takva će razlika biti od velike važnosti pri optimizaciji ulaznih parametara sustava trgovanja.

S druge strane, način rada "Svaki tik na temelju stvarnih tika" oduzimao je još više vremena - 74 sekunde naspram 36,7 sekundi u načinu "Svi tikovi". To se lako objašnjava činjenicom da je pri korištenju pravih krpelja simulirano više od 34 milijuna krpelja, što je gotovo 2 puta više nego u načinu rada "Svi tikovi". Dakle, što više oznaka koristimo pri testiranju, to je više vremena potrebno za jedan prolaz u testeru strategija.

Parametar
OHLC na M1
Sve krpelji
Svaki kvačicu
na temelju stvarnog
Tikov
731 466
18 983 485
34 099 141
Neto dobit
169.46 -466.81
-97.24
obrta
96
158 156
ponude
192
316 312
Povlačenje kapitala (%)
311.35 (3.38%)
940.18 (9.29%)
625.79 (6.07%)
Povlačenje stanja281.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 generiranja oznaka
1.6 sekundi
36.7 sekundi
74 sekundi (1 minuta 14 sekundi)

Prikupili smo testna izvješća u različitim načinima simulacije u obliku animiranih GIF-ova tako da možete vidjeti razliku u statistikama.


Sukladno tome, grafikoni bilance i kapitala također imaju razlike. No, istodobno je jasno da ova jednostavna strategija ne izgleda privlačno - razdoblje rasta zamjenjuje se razdobljem pada, a grafikoni svakog testa izgledaju kao lanac prilika. Ne možete trgovati pomoću takvog sustava, rezultat će biti sličan bacanju novčića.



Sustavi trgovanja ovisni o dolasku krpelja

Prikazani sustav trgovanja uvelike ovisi o metodi modeliranja - o broju dolaznih oznaka i redoslijedu kojim su primljeni. Kod testiranja u načinu rada "OHLC na M1" simuliramo najmanje tikova i oni možda neće uvijek biti dovoljni za ulazak na tržište. Načini "Svi tikovi" i "Svaki tikovi na temelju stvarnih tikova" mogu imati potpuno drugačiji redoslijed tikova. Kod modeliranja "Every Tick" možemo dobiti monotono rastuću ili monotono opadajuću sekvencu tikova, što praktički jamči ulazak na tržište kada je raspon probijen. Prilikom testiranja u modu "Svaki tik na temelju stvarnih tika" koristi se snimljena povijest tika, a tu dinamika promjena cijene može biti potpuno neočekivana.

Kao rezultat toga, čak i na početku intervala testiranja, vidimo da se i same ulazne i izlazne razine razlikuju na grafikonima, a neke trgovine su preskočene.



Četiri načina generiranja krpelja

Tester strategija u terminalu MetaTrader 5 omogućuje testiranje strategija trgovanja u četiri načina simulacije tikova, opisani su u članku Osnove testiranja MetaTrader 5. Najbrži i najgrublji je " Samo početne cijene", u kojem se operacije trgovanja mogu izvoditi samo pri otvaranju nove trake. U ovom načinu rada EA nisu dostupne nikakve radnje unutar trake, a dobro je prilagođen za testiranje strategija koje ne uzimaju u obzir kako cijena razvija unutar bara.

Sljedeći u smislu točnosti modeliranja je način " OHLC na M1", koji simulira cijene otvaranja, visoke, niske i zatvaranja svake minutne trake uključene u testirani raspon povijesti. Stoga, prilikom testiranja na H1 vremenskom okviru za jedan sat, stručni savjetnik će biti pozvan 240 puta: na svakom od 60 minutne trake, rukovatelj OnTick() bit će pozvan 4 puta - jednom za svaku OHLC cijenu. S ovom simulacijom već možete koristiti Trailing Stop, pregledati razvoj cijene na drugim vremenskim okvirima i indikatorima, ako je potrebno. Na primjer, testirajte strategije poput " 3 Stariji zasloni".

Ako vam je potrebna potpuno pouzdana rekonstrukcija povijesti u testeru strategija, upotrijebite " Svi tikovi temeljeni na stvarnim tikovima". U ovom načinu rada tester neovisno preuzima snimljene stvarne tikove s brokerovog poslužitelja za trgovanje i na temelju njih gradi razvoj cijene. Za segmente povijesti bez stvarnih tikova, tester modelira cijenu na isti način kao u " Sve krpelji". Dakle, ako broker ima cijelu snimljenu povijest za tražene simbole, možete testirati stvarne povijesne podatke bez umjetnog modeliranja. Međutim, cijena za takvu točnost od kvačicu po kvačicu bit će značajno povećanje vremena testiranja, kao što je prikazano u tablici s rezultatima usporedbe tri modusa .

Započnite razvoj sustava s načinom rada "OHLC na M1".

Kao što vidite, nemoguće je pobijediti u svemu u isto vrijeme - ako želimo smanjiti vrijeme i brzo testirati ideju trgovanja, tada gubimo točnost u jednostavnim načinima simulacije. Ako je za testiranje potrebno osigurati točnost ulaznih cijena i slijed signala trgovanja, tada morate koristiti preciznije načine koji zahtijevaju više vremena.

Prije nego počnete testirati strategiju trgovanja, morate biti jasno svjesni da odabrani način simulacije određuje toč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 sustava trgovanja.

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

Ako se preliminarni rezultati pokažu zadovoljavajućim, tada možete nastaviti s finim podešavanjem i analizom sustava trgovanja u preciznijim načinima simulacije. Ovdje će u pomoć doći otklanjanje pogrešaka strategije u načinu testiranja - možete postaviti prijelomne točke i provjeriti stanje varijabli i ispunjavanje uvjeta propisanih u EA. Ovdje možete očekivati neugodna iznenađenja ako ste zaboravili uzeti u obzir neke od nijansi vašeg sustava.

Testiranje točnosti u odnosu na brzinu

Kao što se može vidjeti iz rezultata testiranja opisanog sustava trgovanja u tri moda, trgovac uvijek može i treba odabrati mod simulacije tika koji odgovara njegovoj strategiji trgovanja. Ako testirate sustav na dnevnom vremenskom okviru, onda " Samo početne cijene"- velika brzina testiranja neće biti na štetu kvalitete rezultata.

Ako pišete strategiju skalpiranja ili arbitraže, ili se vaša strategija temelji na izračunima indeksa ili sintetičkih indikatora u stvarnom vremenu, tada je potreban način rada "". Testiranje će oduzeti puno više vremena, ali dobit ćete rezultate što je moguće bliže stvarnosti. Istina, ne smijemo zaboraviti da se povijest nikada ne ponavlja, pa stoga, čak ni 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 na temelju stvarnih kvačica", ali daju nižu točnost testiranja. Općenito, možemo formulirati zakon koji opisuje vrijeme i točnost testiranja:

Što brže prođe test, niža je točnost simulacije trgovanja. Što je detaljniji i točniji razvoj cijena modeliran prema povijesti, to je više vremena potrebno za testiranje.

Trgovački poslužitelji gomilaju stvarnu povijest tikova dugi niz godina, a tester strategije u MetaTrader 5 u načinu rada "Svaki tick temeljen na stvarnim tikovima" automatski će preuzeti svu potrebnu povijest. Ali što je testiranje pouzdanije, to zahtijeva više resursa. Stoga odaberite ravnotežu između točnosti i brzine.

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

I tek nakon rješavanja glavnog zadatka - stvaranja profitabilnog automatskog sustava trgovanja - možete optimizirati na stvarnim krpeljima. U ovoj fazi već će vam trebati snaga distribuirane računalne mreže.

Bilo koji indikator ili sustav trgovanja (plaćeni, besplatni, treći ili sami kreirani) može se postaviti na stvarni račun tek nakon uspješne probe na nekoliko načina i na razne načine. uvjeti trgovanja. Optimizacija i kompetentno testiranje strategija trgovanja - potreban proces za uspješno trgovanje.

Razvoj trgovinskog sustava zahtijeva puno vremena i truda, stoga se dugo nisu koristile empirijske metode odabira parametara. Danas je faza testiranja postala neophodna komponenta tehničke analize i omogućuje vam uštedu kapitala za stvarno trgovanje.

Proces testiranja strategija trgovanja znači pokretanje algoritma na povijesnim ili simuliranim podacima. Test bi trebao "vidjeti" burzovne "signale" za generiranje kupoprodajnih transakcija i dati rezultat "moguće" trgovine - iznos prihoda/gubitka je pokazatelj prikladnosti za stvarni rad.

Glavni ciljevi i metode

Prije svega, morate provjeriti:

  • pokazatelji uspješnosti ugrađeni u strategiju;
  • tržišni modeli (imovina, likvidnost, troškovi, brzina, klizanje, rizik) bez stvarnog trgovanja;
  • optimalnost parametara prema rezultatima backtest-a;
  • programski kod za razvojne pogreške.

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

  • povijest - niz prethodno formiranih stupaca s parametrima cijena, volumena, indikatora: zatim se formiraju cijene "prošlost" i "budućnost" za analizu kako bi se procijenila "buduća" reakcija na "prošlu" dinamiku;
  • cjenovne vrijednosti modelirane scenarijem: zatim unesite podatke o kretnjama (povijesti ili stvarne) na ulaz testera i primite prognozu kretanja.

Prva metoda pruža jednostavnost, brzinu, ali nisku točnost, au drugoj se strategija ponaša u testeru točno onako kako se ponaša u stvarnom trgovanju. Simulirani rezultati mogu se pohraniti kao vanjske datoteke, koje se mogu učitati u terminal putem izbornika "Datoteka" - "Otvori izvan mreže".

Strategije trgovanja mogu se testirati pomoću:

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

Tradicionalno, za dobivanje stabilnih i točnih rezultata u procesu testiranja dosljedno se primjenjuju sljedeće:

  • Vizualni test indikatora ili sustava: zahtijeva pregled povijesti cijena za dugo razdoblje (jedna - dvije godine). Ovaj dugotrajni proces pojednostavljen je softverom za ručno testiranje strategije.
  • Izrada, testiranje i optimizacija stručnog savjetnika.
  • Test duge povijesti u automatskom načinu rada.
  • Testirajte na demo računu ili na cent računu: provodi se nakon dobivanja stabilnih rezultata za prve dvije metode - dug, ali najtočniji izračun. 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 strategija trgovanja

To su viševalutni analitički alati za obradu povijesti učitane iz vanjskih datoteka. Proces sekvencijalno sortira ponude, analizira reakciju algoritma i otvara virtualne ponude. Možete računati na nekoliko sredstava istovremeno kako biste odabrali najbolju opciju.

Prilikom testiranja strategija trgovanja, način odgode nasumičnog izvršenja simulira mrežne probleme tijekom stvarnog izvršenja naloga od strane trgovaca. Način vizualizacije prikazuje proces u stvarnom vremenu: svi otvoreni poslovi prikazani su na grafikonu cijena, postavke su napravljene prema kriterijima: brzina, kvaliteta, dobit, razdoblje, raznim uvjetima trgovina.

Rezultat se daje u obliku grafičkih i statističkih informacija: postotak dobiti/gubitka, broj gubitnih/profitabilnih trgovina, pokazatelji čimbenika rizika, matematičko očekivanje dobitka i tako dalje.

Mehanizam "naprijed" testiranja strategija trgovanja pomaže riješiti se problema "prilagođavanja" parametara: povijest je podijeljena u dva dijela - optimizacija se provodi na jednoj polovici, a drugi dio mora potvrditi rezultat. Testeri mogu podržati metodologiju distribuiranog testiranja, odnosno uključiti dodatne kapacitete u proces, uključujući i mreže računalstva u oblaku.

Osnovni zahtjevi za postavke prilikom testiranja strategija trgovanja:

  • preuzeti podatke svih razdoblja; raspon povijesti je najmanje 5 godina, uz obvezno uključivanje razdoblja s kriznom / nestandardnom dinamikom (na primjer, 2008.-2009.);
  • ako koristite manje razdoblje, onda bi trebalo uključivati ​​razdoblja trenda i ravnog kretanja;
  • broj simuliranih obrta je manji od 300;
  • testirajte algoritam na nekoliko tekućih instrumenata.

Prilikom postavljanja parametara ispitivanja, razmotrite sljedeće:

  • troškovi trgovanja (spreadovi, provizije);
  • proklizavanje/kašnjenja;
  • utjecaj likvidnosti imovine (volumetrijska dinamika);
  • promjenjivi tržišni uvjeti;
  • vrste trgovinskih naloga koji se planiraju koristiti (tržišni ili ograničeni nalozi).

Ako se tržišni nalog izvrši odmah, ali je njegova konačna cijena za test nedefinirana, tada ograničeni nalozi mogu "čekati" najprikladniju cijenu za transakciju. Ograničeni nalog se smatra pasivnim sredstvom, jer može biti neizvršen ili djelomično izvršen ako ima malo naloga. Ako se ponašanje knjige naloga ne modelira točno, test u stvarnom vremenu pokazat će lošije rezultate od testa unatrag.

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

Uobičajeno se koriste tri metode izračuna:

  • Cijene na otvaranju: najbrža, ali najnetočnija metoda, većina strategija, kada se testiraju na razdoblje do 1 godine, možda uopće neće otvoriti niti jednu trgovinu;
  • Za kontrolne točke: najuravnoteženiji u smislu točnosti i vremena, ali je razina povjerenja u primljene podatke niska;
  • Za sve oznake: najtočnija metoda, bliska stvarnosti.

S bilo kojom metodom testiranja tijekom dugog razdoblja, rezultati za posljednjih nekoliko godina su najprecizniji, kako za trending tako i za sustave povlačenja.

Ne zaboravite: implementacija stvarnih modela i količine simuliranih podataka za točna ispitivanja zahtijevaju tehničke resurse i in vizualizacija usporava proces izračuna.

Testiranje strategija trgovanja ispravno modelira sve vremenske okvire, uključujući podatke o količini. Tijekom testa, pokazatelji se izračunavaju online.

Nakon što je test završen, možete otvoriti model grafikona sa svim ulaznim/izlaznim toč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 ispitivanja mogu se prenijeti u Excel ili bilo koji drugi softver kao niz razgraničenih podataka.

Ne zaboravi :n ne možeš koristiti u izračunima nepotpun skup citata ili djelomične uvoze iz različitih izvora. Minutne ponude moraju se automatski ponovno izračunati i unijeti u izračun bez privremenih praznina ili pomaka.

I kao zaključak...

Testiranje strategija trgovanja omogućuje procjenu ispravnosti i isplativosti algoritma bez stvarnog trgovanja na tržištu. Osim novca, time se štedi i vrijeme - test kotacija u razdoblju od nekoliko godina može trajati samo nekoliko sati, može se zaustaviti u bilo kojem trenutku, promijeniti instrument, uvjete izračuna ili parametre optimizacije. Izvor:

Društveni gumbi za Joomlu

Popularan:

  • 14. studenog 2013. 06:32 | Indikator preokreta - odredite kraj trenda 55948
  • 02.04.2015 10:04 | Indikator VSA čita tržište kao otvorenu knjigu 53422
  • 23.09.2014 11:08 | Konstruktor Forex savjetnika omogućit će vam stvaranje bilo kojeg robota za trgovanje 48882


Prvo, o grafici. Gore desno je osmijeh nepostojanosti. Dolje lijevo je profil trenutne pozicije. (smeđa linija je nagib volatilnosti, pokazujući kako se volatilnost može promijeniti kada se cijena promijeni). Ostalo mislim da je jasno.

Funkcionalan. Uz brzu provjeru pozicije (Start) i pregled kapitala (ubrzao postupak obrade) i postupnu provjeru (StepByStep), dodao sam profil i obračun za promjene volatilnosti.

Kako koristiti. (vidi prethodni blog). Samo da biste vidjeli rezultat, pritisnite start. Za gledanje korak po korak označite kućicu lijevo od Korak po korak. Za pregled profila položaja kliknite Profil. Ako pritisnete StepByStep i ne želite pritisnuti Profil svaki put, označite kućicu s lijeve strane gumba Profile. Ako želite gledati obični (standardni) profil, poništite opciju Volatility. Ako je potvrdni okvir označen (Volatility), tada se profil crta uzimajući u obzir promjenu (moguću promjenu) u volatilnosti. (smeđa linija na grafikonu).

Gore