Popularni Postovi

Izbor Urednika - 2019

Što nije u redu s ispitivačem strategije u MT4 i MT5

Pozdrav, kolege Forex trgovci!

Danas ćemo nastaviti razgovarati o tako širokoj temi kao što je algoritamsko trgovanje i razgovarat ćemo o tako potrebnom alatu kao što je ispitivač trgovačkih robota. Dijelom su mnoga pitanja postavljena u ovom članku također bila adresirana na stranicama bloga, ali, po mom mišljenju, još uvijek nisu dovoljno detaljno obrađena. Dakle, danas ćemo saznati što je backtesting i koje su poteškoće i zamke nastale prilikom testiranja stručnih savjetnika, kao i utvrditi ograničenja terminala MetaTrader prilikom testiranja i optimizacije stručnih savjetnika te pronaći načine kako ta ograničenja u najvećoj mjeri izravnati.

Što je zadnji test

Već je napisan članak na našem blogu o tome kako testirati savjetnika na MT4 terminalu, kao i na MT5 terminalu. Stoga ću jednostavno dati definiciju backtestinga. Backtest je primjena pravila trgovačkog sustava na skup povijesnih podataka o tržištu, to je sve. Odnosno, odredili smo skup pravila za ulazak na tržište, za izlaz, za praćenje neke pozicije i za izračunavanje njegovog volumena, a zatim smo primijenili ta pravila na povijesne podatke, kao da u tom trenutku trgujemo prema tim pravilima. Dakle, možemo procijeniti učinkovitost ovog sustava, što se moglo postići u prošlosti.

Možda je najvažnija funkcija testera simulacija. Autor algoritma izrađuje backtesteve na osnovu kojih može prosuditi vrijedi li dodatno poboljšati Forex savjetnika ili trgovački sustav koji je uzeo za istraživanje nije vrijedan vremena.

Zadnji test nam također pomaže da procijenimo vrijedi li koristiti ovu strategiju za stvarno trgovanje na temelju njene učinkovitosti u prošlosti. U stvari, povratni test nam pomaže otkloniti loše savjetnike prije nego što riskiramo pravi novac.

Uz početni odabir strategija za daljnji rad s njima i filtriranje neprimjerenih strategija, ispitivač pomaže i u provjeri performansi kreiranih sustava, prepoznavanju pogrešaka i poboljšanju rada algoritma.

Glavne pogreške pri testiranju stručnih savjetnika

Vrlo je lako testirati savjetnika, ali, nažalost, rezultati ispitivanja uopće nisu rezultati stvarnog trgovanja. Dobivamo rezultate simulacije. Bez obzira koliko je model složen, on će i dalje sadržavati određene pretpostavke i pojednostavljenja, što, naravno, dovodi do netočnih rezultata. Zbog toga postoji mnogo zamki povezanih s testiranjem. U nastavku ću navesti glavne pogreške prilikom korištenja testiranja.

Ispitivanje samo na uzorku.

To je najčešće greška početnika i najgora. U suštini, to je prilagođavanje sustava krivulji koja se javlja kada iste podatke upotrebljavate za optimizaciju i testiranje strategije. Takva testiranja uvijek uvelike precjenjuju rezultate sustava, što će se vidjeti i u stvarnom trgovanju. To je zato što sustav nije testiran na drugim podacima, koji će se očito znatno razlikovati od onih korištenih u testu.

Promjena tržišnog ciklusa

Tržišta su nestabilna i stalno se mijenjaju. Stoga nije lako odabrati odgovarajuće parametre kako bi sustav radio dugo vremena. Štoviše, što je ovo razdoblje dulje, univerzalni su parametri sustava. Međutim, idealni parametri savjetnika, pomoću kojih bi robot savršeno trgovao na bilo kojem tržištu, nažalost, ne postoje. To je jedan od razloga zašto savjetnici na stvarnom tržištu rade lošije nego na testovima.

Transakcijski troškovi

Mnogi Forex trgovci, posebno početnici, ne uzimaju u obzir troškove povezane s otvaranjem i zatvaranjem pozicija. Primjerice, često vidim testove napravljene s nerealno niskim razmakom, na primjer, umjesto da se za test koristi proširivanje od 2-3 boda na EURUSD-u, ljudi uzimaju širinu od 0,5-1 bod. Rezultat je detaljna slika koja apsolutno nema nikakve veze sa stvarnošću, jer činjenica da je vaš broker negdje naznačio širenje od 0,5 bodova za ovaj par, ne znači da jest. Osim toga, mnogi zaboravljaju na takvo što kao naknadu za transakcije. Nije na svim vrstama računa i ne na svim brokerima, ali, u pravilu, tamo gdje je nizak raspon, on je i prilično velik. Također, ne zaboravite na takve stvari kao što su razmjene - one također iskrivljuju rezultate testova i utječu na krajnji rezultat. Pa, i, naravno, klizanje - bič svih pipsera. Ako zbrojite sve ove faktore, ispada da je trgovanje prilično skup zadatak, a na stvarnom tržištu ćete platiti 0,5 bodova razmaka + 0,7 provizija + 0,3 boda za otvaranje transakcije, transakcija će proklizati pri otvaranju i zatvaranju i Kao rezultat toga, stvarni transakcijski troškovi iznosit će 1,8 bodova.

Zavirujući u budućnost

Budući podaci mogu se upotrijebiti za testiranje, najčešće zbog grešaka u pisanju algoritma, ali ponekad i zbog zlonamjernosti. Prošle je godine bilo vrlo moderno prodavati savjetnike koji gledaju u budućnost na web lokaciji mql5.com u odjeljku o tržištu. Mnogo je povoljnije trgovati i pokazivati ​​fenomenalne rezultate trgovanja ako znate budućnost. No, takvi rezultati, nažalost, nemaju nikakve veze sa stvarnim trgovanjem.

Likvidnost instrumenta

Prilikom testiranja na povijesti možete lako skalpirati tisuću serija i imati dobre rezultate. Međutim, u stvarnom trgovanju takvi volumeni neizbježno će utjecati na tržište, čak i položaj od 100 lotova navečer ili noću može pomaknuti cijenu čak i popularnih trgovačkih parova, potvrđeno je. U ispitivaču se taj učinak ni na koji način ne uzima u obzir.

Povijesni podaci

Mnogi posrednici nude da koriste svoju bazu povijesnih podataka. U pravilu, citati tamo nisu najbolje kvalitete. Možete pronaći velike nedostatke povijesnih podataka, posebno na nižim vremenskim okvirima. Na internetu također možete pronaći mnogo izvora besplatnih citata, obično ne manje sumnjive kvalitete. Kvaliteta navodnika u velikoj mjeri utječe na rezultate stranih testova, tako da ovaj problem trebate shvatiti što je moguće ozbiljnije.

Mala robusnost

Neki trgovci, posebno početnici, dopuštaju sustavima niske robusnosti da trguju stvarnim novcem. Robusnost je otpornost sustava na promjene ulaznih podataka. Na primjer, testiranje vašeg sustava od 3. ovog mjeseca do danas će vam dati dobar rezultat, ali ako pokrenete test od 4. u mjesecu, sustav će krenuti u obradu. To znači da sustav ima nisku robusnost. Drugi primjer, kada ste promijenili razdoblje pokazatelja koji utječe na ulazak na tržište, sa 9 na 10 i sustav se počeo spajati. Velika bi pogreška bila dopuštanje takvih sustava stvarnoj trgovini.

psihologija

Kao što sam rekao u prethodnom članku, psihologija igra mnogo manju ulogu u algoritamskom trgovanju nego u trgovini rukama. Različiti prodavači trgovačkih sustava promiču ideju da, kada trgujete robotom, uopće možete zaboraviti na psihologiju. Međutim, potpuno nepoštivanje psihologije još je jedna pogreška početnika trgovaca. Ipak, postoji niz trgovačkih sustava koji se mogu činiti prilično dobrim tijekom testiranja i jednostavno nepodnošljivi u stvarnom trgovanju. Osim toga, što više trgovaca početnicima ručnih proizvoda mijenja pravila trgovanja u pokretu, manje iskusni algoritamski trgovci često povlače olovke u postojeće sustave, pokušavajući ih uviti u hodu. Sve to, naravno, dovodi do novčanih gubitaka.

Vrste testera po principu rada

Trenutno na tržištu postoji mnogo različitih terminala za trgovanje na financijskim tržištima. Mnogi terminali pružaju mogućnost pisanja stručnjaka za automatsko trgovanje, a većina ovih terminala u pravilu ima ugrađene testere i optimizacijske uređaje. Svi se jako razlikuju u funkcionalnosti i mogućnostima, ali prema principu rada, testeri se mogu podijeliti u dvije vrste: „cikličke“ i „orijentirane na događaje“. Svaka od ovih vrsta ima svoje prednosti i nedostatke.

Petlje Backtest

Ova vrsta testera je najjednostavnija za upotrebu i pregledna u radu. Takav tester jednostavno prolazi svaki bar jedan po jedan. Kad stigne nova cijena, oni izvršavaju neke izračune cijena, izračunavaju pokazatelje i omogućuju vam slanje i izmjenu narudžbi. Zatim se slijedi ponavljanje dok se test ne zaustavi. Istodobno, ispitivač sprema neke statističke podatke o radu savjetnika - dobit, broj transakcija, povlačenje i slično, a po završetku izdaje izvještaj o testiranju savjetnika. Kao što znate, takav je dizajn vrlo jednostavan - samo trebate preuzeti povijesne podatke i sortirati cijene po red, izrađujući svaki put izračune. Sigurno će vam ovaj koncept biti poznat. Tako je, MetaTrader radi po ovoj shemi. Pa, to jest, to nije sasvim istina, jer još uvijek postoje neki unaprijed definirani događaji u jeziku Mql. Tako je i ova platforma, kao i mnoge druge, predstavnik prilično miješanog tipa.

Kao što vjerojatno već pogađate, takve je pozadine vrlo lako implementirati u gotovo bilo kojem programskom jeziku. Oni istovremeno rade vrlo brzo - možete brzo testirati i optimizirati mnoge kombinacije parametara stručnih savjetnika.

Nažalost, glavni nedostatak takvog testera je nestvarnost primljenih backtestova. Često takvi nasloni čak ne uzimaju u obzir širenje, proviziju i narudžbe uvijek se izvršavaju po tržišnim cijenama bez proklizavanja i odmah. Stoga profesionalci koriste takve testere samo za početnu procjenu učinkovitosti algoritma kako bi odlučili hoće li dalje raditi na savjetniku.

Ispitivači orijentirani na događaje

Da biste jasnije shvatili princip rada takvog testera, predlažem vam da uvedite računalnu igru. Igrač neprestano komunicira u prostoru igre, sam taj prostor nije statičan - stalno se nešto događa, zla bića napadaju igrača, a ljubazni likovi međusobno drobe lobanje sjekirama zbog domaće svađe. Kako bi spriječili da vaše računalo pobjegne od obilja onoga što se događa, pametni ljudi smislili su sve proračune onoga što se događa kako bi stavili u određenu beskrajnu petlju, koja se naziva događajem ili petljom igara, unutar koje se nalazi red događaja. Ti se događaji stalno obrađuju unutar petlje brzinom brzinom koja odgovara snazi ​​vašeg računala. U vezi s ispitivačem, takvi događaji mogu uključivati ​​pojavu novih trgovačkih signala, spremnost slanja poruke brokeru, dolazak novog krpelja i primanje informacija od brokera. Kada se pojavi određeni događaj, obrađuje ga odgovarajući modul testera i, eventualno, generiraju se novi događaji koji opet upadaju u red događaja.

Od pozitivnih aspekata ove vrste testera možemo primijetiti model testiranja koji je najbliži stvarnosti i, kao rezultat, vrlo točne testove koji uzimaju u obzir mnoge čimbenike koji nastaju u stvarnom trgovanju. Ova arhitektura testera ima potencijal korištenja portfelja sustava i alata, a takvi ispitivači u pravilu sadrže mogućnost testiranja i optimizacije velikog broja sustava na različitim alatima.

Među nedostacima ovog dizajna može se izdvojiti složenost koda i, shodno tome, veliko polje za pogreške. Sustavi pisanja će zahtijevati poznavanje objektno orijentiranog programiranja i dobro iskustvo u dizajniranju sustava. Još jedan značajan nedostatak povezan s interakcijom različitih modula testera je mala brzina. Testiranje, a posebno optimizacija, može potrajati dosta vremena.

MetaTrader terminali

Na stranicama bloga možete pronaći pregled terminala MetaTrader4, pa čak i MetaTrader5. Ali, nažalost, najvažnije nije napisano u ovim člancima: je li moguće te terminale koristiti za testiranje i optimizaciju svojih savjetnika i koliko možete vjerovati rezultatima. Pokušajmo to shvatiti.

Kao što sam već rekao, profesionalni algoritmički trgovci ne koriste MetaTrader terminal uglavnom iz tri razloga: nedovoljna fleksibilnost jezika za pisanje savjetnika, mala preciznost testiranja i nezadovoljavajuća brzina ispitivanja. MetaQuotes je stvorio izvrstan terminal - jednostavan, praktičan. Ovo je sjajna podloga za istraživanje svijeta algoritamske trgovine. U posljednje vrijeme na platformu je dodano puno ispravnih ideja, posebno u petoj verziji terminala, ali, nažalost, njihova implementacija nas je iznevjerila. Na primjer, kako ljudi mogu cijeniti poboljšani tester ako nije moguće uvesti ponude? Ili zašto bi ljudi samostalno prepisivali kod svojih savjetnika i pokazatelje kad je bilo moguće napisati jednostavan program koji bi sve to učinio automatski? Ali prvo stvari.

Dakle, smislio sam jednostavan sistem trgovanja, čiji je algoritam napisan u obliku mql4 stručnog savjetnika, mql5 stručnog savjetnika i kao tester s optimizatorom s istom ugrađenom R strategijom. To sam učinio kako bih pokrenuo testove i optimizirao te usporedio brzinu.

U posljednjih petnaestak godina testiranje savjetnika po satnom vremenskom okviru u četvrtoj verziji terminala trajalo je 20 minuta, u petoj - oko 5 minuta, u ispitivaču na jeziku R - 13 sekundi. Optimizacija pedeset tisuća kombinacija parametara istog savjetnika pod istim uvjetima u četvrtoj verziji trajalo je 10 dana, u petoj - samo tri dana, na R - 16 minuta. Nisam mogao napraviti isti test na 15 para istovremeno u MT4 - to jednostavno nije predviđeno. Peta verzija uspjela je za 2 sata 27 minuta, R za 6 minuta. R-jezik daleko je najbrži ako bih, primjerice, napisao tester u C #, siguran sam da bi rezultati bili bolji svakih 10 puta.

Analizirajmo MetaTrader 4

Što uzrokuje sporost testera? Jedno je sigurno - terminal koristi samo jednu procesorsku jezgru za rad. To jest, čak i ako vas u automobilu ima četiri ili više, ta činjenica neće pomoći. Problem možete djelomično riješiti pokretanjem drugog terminala i testiranjem ili paralelnim optimiziranjem stručnjaka na drugom instrumentu. To će malo ubrzati postupak, ali problem neće u potpunosti riješiti - jedan test će sve proći jednako bolno.

Još jedan ozbiljan problem četvrtog terminala je nemogućnost korištenja podataka o krpeljima. Kada trgujemo u stvarnom vremenu, cijene dolaze na terminal u različita vremena kako se mijenjaju. Dolazak cijene nije vezan za određeno razdoblje, na primjer, jednom u minuti ili satu. Povijesni podaci pohranjuju se u terminalnu bazu ponuda u obliku OHLC cijena različitih vremenskih okvira, na primjer, H1, D1, M15. Tijekom testiranja modelira se dolazak novih krpelja na temelju vremenskog okvira M1. Svi znamo da količine prenesene od strane brokera zapravo nisu iste količine. Ovo je samo broj pravih krpelja koji su se dogodili u određenom vremenskom razdoblju. Odnosno, ispitivač poznaje cijene otvaranja i zatvaranja M1 svijećnjaka, maksimalne i minimalne cijene u periodu od 1 minute i broj krpelja koji su prenijeti tijekom ove minute. Koje su bile cijene za ove krpelja, kada je točno došla cijena koja odgovara krpelju - sve se to ne zna. Na temelju nekih algoritama, ispitivač sam izmišlja kako je cijena išla unutar svijeće. To je, evo, vrlo pojednostavljeni model o kojem smo gore razgovarali. Ipak, trgovci su zaobišli ovaj problem. Postoji nekoliko posebnih programa koji vam omogućuju korištenje stvarnih krpelja podataka za testiranje i optimizaciju. Ovo je besplatni program TickstoryLite ili plaćeni program Tick Data Suite. O značajkama svakog od ovih programa možete pročitati u člancima iznad, ali preporučio bih vam da ne budete pohlepni i kupite drugi.Označite Data Suite ne samo da možete testirati savjetnike na podatke o krpeljima, ovaj program dodaje nekoliko divnih funkcija na terminalu koje su jednostavno potrebne: plutajući namaz (to su u stvari dva strujanja krpelja, kao u stvarnosti - odvojeni Pitaj i Ponudi) i izvrstan, test stresa neophodan za savjetnike za skaliranje je oponašanje proklizavanja.

Sada moram reći nekoliko riječi o kvaliteti modeliranja, koja se u standardnom terminalu ne diže iznad 90%, a s gore navedenim programima postaje 99%. Mnogi od vas stalno susreću mrežu s tvrdnjom da je 90% testova kompletan smeće, a samo 99% testova je potrebno obaviti - to su vrlo točni. Pa, naravno, to nije sasvim točno (općenito, iskreno govoreći, bilo koji test izveden na platformi MT4 ili MT5, iako nije smeće, prilično je daleko od stvarnosti). Pa što je kvaliteta modeliranja? A ovo je samo brojka, izračunata prema jednostavnoj formuli koju je izumio MetaQuotes:

Kvaliteta simulacije = ((0,25x (StartGen-StartBar) + 0,5x (StartGenM1- StartGen) + 0,9x (HistoryTotal- StartGenM1)) / (HistoryTotal-StartBar)) x100%, gdje:

HistoryTotal - broj traka u povijesti;

StartBar - broj traka s koje je simulacija započela;

StartGen - broj traka s kojih je testiranje počelo na temelju povijesnih podataka najbližeg vremenskog okvira;

StartGenM1 - broj traka s kojih je započelo minutno modeliranje.

Kao što vidite, kvaliteta simulacije upravo pokazuje koji su vremenski okviri korišteni u testu. Ako su za testiranje savjetnika za razdoblje M15 korišteni samo podaci M1, tada će kvaliteta modeliranja biti 90%. Ako se koristi samo razdoblje M15, kvaliteta, sudeći prema formuli, bit će jednaka nuli, ili, kako piše MT4, n / a. I prilikom testiranja krpelja jednostavno smo smislili napisati 99%, tako da je bilo jasno da sve funkcionira u redu i da je testiranje zaista išlo na krpelja. Znači li to da testiranje s n / a kvalitetom daje potpuno netočne podatke, a s 99% kvalitetom vrlo je točno? Ne, to samo znači da je u prvom slučaju model korišten po cijenama zatvaranja, a u drugom su korišteni krpelji. Istodobno, prvi test može biti mnogo precizniji od drugog i to se mora shvatiti: kvaliteta simulacije i kvaliteta samih citata potpuno su različite stvari.

Ono što je još važno za razumijevanje je da će kvaliteta rezultata ispitivanja ovisiti i o korištenom strategiji. Na primjer, ako strategija djeluje na D1 po zatvaranju cijena bez zaustavljanja, uzima profit i kočnice i uđe samo na tržište, bez pomoći na čekanju naloga, tada možete dobiti vrlo precizan backtest koristeći model "checkpoints". Za testove strategija koje koriste zaustavljanja i uzimanja, potrebno je barem 90% kvalitete da biste dobili rezultat koji je barem malo bliži stvarnosti. U ovom slučaju, što je niže razdoblje za koje savjetnik radi, to je veći utjecaj na rezultate širenja. S fiksnom vrijednošću razlike, testovi takvih savjetnika bit će izuzetno udaljeni od stvarnosti, čak i u mjeri u kojoj će profitabilni stručni savjetnik tijekom testiranja spojiti polog na stvarni račun. Kao što vidite, stvarna kvaliteta testa ovisi o mnogim čimbenicima, kao što su kvaliteta navoda, karakteristike samog sustava, kao i sposobnost sustava da zaobiđe ili izravna ograničenja MT4 testera. Ova činjenica još jednom dokazuje moju ideju da biste radi profitabilne trgovine uz pomoć savjetnika, trebali dobro znati i duboko shvatiti kako točno to radi, koji je njegov algoritam kako bi se sva ograničenja terminala svela na nulu.

Drugi ozbiljan problem vezan uz upotrebu podataka o krpeljima je ovisnost o brokerima. Rezultati ispitivanja pomoću kvačickih podataka jednog brokera razlikovat će se od rezultata korištenjem podataka drugog brokera, jer razlike između podataka, čak i cijena zatvaranja različitih brokera mogu doseći 10-15% veličine svijeće. Dugoročno gledano, takva razlika može dovesti do vrlo različitih grafikona profitabilnosti za istog savjetnika koji radi na računima različitih brokera.

Sada razgovarajmo o još jednom ograničenju terminala, ovaj put već odlučeno. U početku nije bilo moguće promijeniti širenje za testiranje na MT4 terminalu. Kao rezultat toga, testovi su svaki put bili različiti. Štoviše, ako je trgovac, radeći test radnim danom, postigao dobar rezultat na radu svog savjetnika, a nakon što je ponovio test vikendom ili noću, moglo bi se otkriti da savjetnik isušuje. Bilo je mnogo nesporazuma kako se to moglo dogoditi - uostalom, uspjelo je! A čak i znajući za takvo stanje stvari, nije bilo dovoljno prikladno - napraviti test noćnog skalpera, trgovac je, prema tome, morao gledati mjesec na prozoru. Općenito, bilo je još zabave. Srećom, ova je sramota naknadno ispravljena, omogućujući trgovcima da sami odrede namaz potreban za testiranje.

Novi terminal MetaTrader 5

Dakle, jezik mql5 ima prilično puno značajki. To je nesumnjivo veliki plus. Loša strana je što stručnjaci napisani u mql4 na MT5 terminalu neće raditi. Prema tome, trgovci koji se žele prebaciti na novi terminal, koji nisu upoznati s programiranjem, ali željni trgovanja uz pomoć savjetnika koji su uspješno trgovali na prethodnoj verziji terminala, prisiljeni su naručiti novčane prijenose. Pogodite gdje ljudi češće traže takve programere? Tako je, u odjeljku "Slobodno" na web mjestu iste tvrtke MetaQuotes, koji od svake narudžbe prima proviziju, svakog prodanog savjetnika i pokazatelja i još mnogo toga. Ovo je posao, ništa osobno.

Veliki plus terminala u odnosu na prethodnu verziju je uporaba nekoliko jezgara. To se radi uz pomoć voditelja ispitivača. U ovom slučaju možete koristiti bilo koji broj jezgara. Možete stvoriti i čitavu mrežu svojih računala kako bi iskoristili njihov ukupni kapacitet za testiranje i optimizaciju stručnjaka na "glavnom" stroju ili čak koristili oblačnu mrežu u kojoj drugi trgovci pružaju svoje kapacitete za umjerenu naknadu. Uzbudljiva ideja, zapravo, pokazivala se oko tri puta. Istodobno, sve ovisi o brzini internetske veze i drugim čimbenicima. Također sam pokušao stvoriti vlastitu mrežu, ali računala su se neprestano prekidala i to je više neugodno nego pomaganje.

I još jedno opažanje u vezi s MT5. Testovi na petoj platformi vrlo su slični testovima na četvrtoj, ali uvijek se ispadaju pristojno bolje nego na MT4. Najvjerojatnije je poanta ovdje u malo drugačijim navodima.

Česti problemi

Stari mql4 bio je vrlo jednostavan jezik na kojem ste mogli provesti tjedan dana u savladavanju. U prošloj godini u mql4 su dodane mnoge promjene koje su ga približile petoj verziji, posebno podrška mnogim elementima objektno orijentiranog programiranja, poput klasa, enkapsulacije, nasljeđivanja, polimorfizma, preopterećenja, apstraktnih predavanja. Bez obzira na to, i mql4 i mql5 svojstvima su inferiorni u odnosu na neovisni programski jezik.

Što se događa u samom ispitivaču tijekom testiranja i optimizacije, što toliko usporava cijeli proces? Ne znam Nitko ne zna, osim programera koji su napisali terminal, jer je kôd zatvoren i nije moguće gledati kako se tamo sve izračuna. U isto vrijeme, u slučaju ispitivača rekordera, točno znam što se događa, odakle dolazi i kako se izračunava. I što je najvažnije, koliko je pouzdan moj leđa.

Drugi nedostatak koji proizlazi iz prethodnog je algoritam zatvorene optimizacije. Mnogo je različitih načina za optimiziranje parametara savjetnika. Postoji mnogo različitih parametara koje želite optimizirati. Možete napraviti prilagođeni parametar koji će biti prikazan u tablici "rezultati optimizacije" dodavanjem nekoliko redaka koda samom stručnjaku. Ali optimizirati za to neće uspjeti.

Najžalosniji nedostatak terminala MT4 i MT5 je taj što ne možete pokrenuti testove na nekoliko instrumenata kako biste dobili sažet izvještaj o trgovanju portfeljem savjetnika. Zbog toga morate koristiti softver treće strane, poput Upravitelja izvještaja ili SQ EA analizatora. Unatoč činjenici da je prvi program besplatan, preporučujem kupnju druge opcije zbog puno širih i prijeko potrebnih značajki.

Oba terminala koriste samo jedan protok citata - prema Bidu. U ovom se slučaju citati upita izračunavaju na temelju određenog raspona (Bid + Spread). I ispada da se cijena cijena Ask-a u potpunosti podudara s tablicom cijena Bid-a, što je u stvarnosti, naravno, daleko od slučaja. Širenje se neprestano mijenja, a ako pogledate kvačicu na terminalu, vidjet ćete da Bid i Ask karte ne izgledaju uvijek jedan prema drugom. Ovo je još jedno pojednostavljenje. Do čega to vodi? Pa, na primjer, za savjetnike koji trguju u razdoblju od H1 i više, nekoliko bodova greške godina na taj način u 15 dobit će netočnost u ukupnoj dobiti u regiji plus minus 3-10% - podnošljivo je. Ali za skalpere, takva netočnost može dovesti do pogreške do 50%. Ova je situacija opasna i za savjetnike koji rade s odgodom. Fiksno širenje dovodi do činjenice da su rezultati ispitivanja takvih savjetnika vrlo daleko od stvarnosti, jer se, primjerice, na testu može preskočiti gubitnički promet, a u stvarnom životu bit će prisutan, jer je tadašnji rast u stvarnosti iznosio 3 boda, a ne 2 kao što je postavljeno za ispitivanje. Ili obrnuto, mnoge profitabilne transakcije testera ne bi se mogle dogoditi u stvarnosti.

Drugi, ne previše ozbiljan nedostatak, ali koji još uvijek utječe na točnost testa, je izračun vrijednosti bodova za križanje, koja se izračunava sljedećom formulom: bodovna cijena = volumen pozicije * veličina boda * kotacija trenutne osnovne valute u odnosu na kurs USD / trenutni valutni par (unakrsna stopa). Ispitivač danas uzima kotače osnovnih valuta i tečaj para i taj se trošak koristi tijekom testa. Ali nakon svega, prije 20 ili čak 5 godina, obje su cijene bile različite, pa je, shodno tome, i cijena predmeta bila različita. Ovo nije tako strašna mana - ako se bot spoji, spojit će se s bilo kojom bodom. U ovom slučaju, samo su konačni rezultati ispitivanja netočni.

Otprilike ista stvar se događa ako se vaš račun otvori ne u USD, već, na primjer, u EUR. Pretpostavimo da testirate savjetnika na paru usdchf i tester će uzeti trenutnu stopu eurusd i eurchf za izračun cijene boda. Naravno, takav će test također imati pogrešku, jer se i ovi citati s vremenom mijenjaju.

Spomenuo sam EA analizator malo više. Pruža niz različitih stres testova koji su osmišljeni kako bi pomogli boljoj procjeni posljedica upotrebe vaših savjetnika na stvarnom računu. Primjerice, simulacija Monte Carla omogućit će vam s određenim stupnjem vjerojatnosti da procijenite najgori scenarij savjetnika i, ako vam odgovara, da pristupite poslu. U profesionalnim terminalima ugrađuje se ovaj test otpornosti na stres, kao i mnogi drugi, na primjer testovi za robusnost postavki stručnih savjetnika, ovisnost brokera ili ovisnost o širenju. U posljednjem sam članku rekao da roboti ne predviđaju budućnost, samo na temelju testova možemo dobiti određenu vjerojatnost da će nam savjetnik donijeti profit. Ispitivanja otpornosti na stres su vrlo važni alati za rad, jer što se temeljitije testira robot, veća je vjerojatnost da će djelovati na isti način kao što je radio na povijesnim podacima.

Drugi čimbenik koji utječe na točnost testa je veličina zamjene. U MT4 i MT5 testeru uzima se trenutna vrijednost swapa za cijeli test, iako se sama zamjena u stvarnosti nesumnjivo mijenja. I gotovo nekoliko puta godišnje. Smiješno je, ali za različite brokere, swap vrijednosti za isti instrument mogu se radikalno razlikovati. Na primjer, broker RoboForex trenutno zamjenjuje usdchf par za kratke hlače -2,5 bodova, a za kupnju -1,4 boda. Istodobno, na Forex4u ove brojke su -5,5 i +2,4 boda. U slučaju da testirate noćni skalper, swap može igrati presudnu ulogu kako u profitabilnosti backtest-a, tako i u samoj trgovini. Istodobno, ne možete stvarno procijeniti učinak swap vrijednosti na trgovinu - ne možete postaviti ili čak promijeniti ovu vrijednost tijekom testiranja - ona se uzima izravno iz podataka brokera, čiji je račun trenutno aktivan u terminalu.

Kao što vidite, ogroman broj sitnica riješenih doslovno nekoliko redaka koda (dobro, čak i ako ne par, ali ipak) ostaju nerealizirani. A sve zajedno, ove sitnice otežavaju rad s terminalom, a u slučaju MT5 onemogućavaju. Činjenica je da krajnji korisnici terminala, odnosno ti i ja, nismo korisnici MetaQuotesa. Njihovi klijenti su prije svega posrednici, koji u principu paraleliraju potrebe običnih trgovaca.

I na kraju, razgovarajmo o korištenju vremena u MT4 platformi. Jezik mql ima mnogo funkcija koje koriste vrijeme u odnosu na cijenu određene svijeće, na primjer, Open1 ili High7. U većini slučajeva prilikom pisanja algoritama za trgovanje nekako koristimo ove podatke. Štoviše, ti podaci nisu vezani za određeno vrijeme brokera, vežu se za nove krpelje. Pretpostavimo da koristimo razdoblje H1. Kada dođe novi sat, u slučaju da u ovom trenutku nema krpelja, nova svijeća pojavljuje se kao crtica dok novi krpelji ne počnu stizati. Istodobno se sat već promijenio, ali iako nema novih krpelja, isti Close1 zapravo postaje Close2. To je, u stvarnosti, ispada da ako EA iskoristi vrijeme u obliku sata () i primi cijene svijeća koristeći Close1, Open1, High1 i Low1, primit će signal u pravo vrijeme, ali cijene OHLC-a u ovom trenutku neće se ažurirati, jer novi krpelji još nisu stigli, odnosno cijene bara br. 1 zapravo će biti cijene drugog bara. Stoga je u ovom slučaju potrebno da algoritam pričeka da se pojave prvi krpelji nove svijeće. Imajte na umu da se to odnosi samo na savjetnike koji koriste određeno vrijeme ulaska i izračun cijene. Ako se za ulazak ne koriste svijeće, takva se pogreška neće pojaviti.

Pa što odabrati - ovisnu ili neovisnu platformu?

Za one trgovce koji su zainteresirani za razvoj trgovačkih sustava skalpinga koji rade u razdobljima do M5, MetaTrader definitivno nije prikladan. Čak i ako se koristi 99% kvalitete simulacije, rezultati će se i dalje vrlo razlikovati od stvarnih (iako se može postići veća ili manja sličnost). Zapravo, na terminalu MT4 prilično je jednostavno napraviti gral, ali u stvarnosti najvjerojatnije neće raditi. Bilo koji tržišni aspekt koji se zanemari u testu može dovesti do radikalno suprotnih rezultata ispitivanja.

Ne želim reći da je dugoročno stvaranje profitabilnog skalpera u MT4 nerealno. Samo to raditi mnogo je teže nego, recimo, dugoročno isplativo. Stoga, ako još uvijek niste previše upoznati s algoritamskim trgovanjem, preporučujem da započnete s stvaranjem savjetnika za rad u periodima nižim od H1, a tek onda pokušajte stvoriti portfelj profitabilnih skalpera.

Važno je razumjeti da komercijalne platforme poput MetaTrader, MetaStock, TradeStation, NinjaTrader i drugih nikako nisu profesionalne platforme. Svaka od ovih platformi sadrži svoja ograničenja, a zatvoreni izvorni kôd znači da nije lako i općenito moguće otkriti sve ove restrikcije. Općenito, prva ideja koja pada na pamet trgovcu koji želi koristiti savjetnike za trgovanje jest korištenje komercijalne platforme, jedne od gore navedenih, na primjer. Sve je već predviđeno u njemu - testiranje, optimizacija i sama trgovina. Sve je prikladno i jednostavno, u jednom paketu. Ali takva odluka čini trgovca ovisnim o odabranoj platformi i njezinim programerima, o tome koju funkcionalnost autori žele dodati, a koja ne, kao i o pogreškama i netočnostima koje su napravili tijekom razvoja, od kojih se mnoge ne mogu učiniti. Istovremeno, komercijalne platforme daju trgovcu neke osnovne funkcionalnosti.Ali ako se želite, primjerice, baviti visokofrekventnim trgovanjem, takve vam platforme više neće odgovarati.

Neovisno rješenje je ono koje ste vi osobno razvili. Sva funkcionalnost koja vam je potrebna, točnost testiranja, broj mogućnosti optimizacije, različiti stres testovi, brzina izvođenja i druge dobrote ovise o vama osobno. Možete sami odabrati koji dobavljač API-ja likvidnosti odabrati, a da budemo neovisni od brokera i njegovih manipulacija s cijenama. Ovo rješenje ima neograničene mogućnosti i ograničeno je samo vašom maštom i znanjem. To je neovisno rješenje koje profesionalni algoritamski trgovci biraju.

Doista, kad se izravno povežete s pružateljem likvidnosti, odmah se riješite vezanih za sporu, neučinkovitu i nesavršenu platformu, posrednike koji manipuliraju cijenama i izvršavaju vaše narudžbe te ograničavaju razne vrste strategija koje je jednostavno nemoguće provesti korištenjem komercijalnih terminala. Međutim, ovaj pristup nije prikladan za sve, jer da biste napisali dobru platformu za rad, trebate imati ogromnu količinu znanja, ozbiljno iskustvo programiranja i automobil vremena. U pravilu je angažiran čitav tim programera koji bi razvijali platforme ovog tipa i oni svoje planove provode u prilično kratkom roku. Sve to zahtijeva ili veliku količinu vremena i znanja, ili veliku količinu novca.

Zaključak

U međuvremenu, na računu nemate barem nekoliko desetaka milijuna dolara (počevši od ovog praga nećete naći nijednog trgovca koji koristi komercijalni proizvod za trgovanje), nema ništa loše koristeći gotovu platformu kao što je MetaTrader 4. Samo važno je uvijek zapamtiti njegova ograničenja, uzeti u obzir u svom radu i biti oprezan i kritičan prema rezultatima dobivenim u testeru. Trgovina kao što vam terminal omogućuje vam i pokušajte stvoriti savjetnike koji su "imuni" na njegove nedostatke, koristite programe trećih strana da minimalizirate nedostatke terminala, kao što su TickDataSuite i SQ EA Analyzer, a zatim čak i koristite nesavršeni proizvod poput MT4, i dalje ćete dobiti zaradu od tržišta.

Pogledajte video: Kako na prvi pogled možete da prepoznate da neko ima problema sa srcem? (Listopad 2019).

Ostavite Komentar