Lemmik Postitused

Toimetaja Valik - 2019

MetaTrader 5 ekspertnõustaja optimeerimine

MetaTrader 5 kauplemisplatvorm polnud kuni viimase ajani valuutakauplejate seas üldse populaarne. Ja kõik sellepärast, et algselt terendas seda positsioonide tasaarvelduse arveldusega börsikaubanduse jaoks, see tähendab, et ühe finantsinstrumendi puhul oli võimalik omada ainult ühte positsiooni - kõik edasised sellel tehtud toimingud viisid avatud positsiooni mahu muutumiseni, olemasoleva positsiooni sulgemiseni või tagasipööramiseni. Seetõttu ei olnud kauplejal võimalik võrke vahetada, neid täiendada, lukke kasutada ja muid sarnaseid positsioonihaldusmeetodeid kasutada.

Kuid selle aasta märtsis muutus olukord dramaatiliselt - platvormile lisati teine ​​raamatupidamissüsteem - riskimaandamine. Sama süsteem, mida kasutatakse terminali neljandas versioonis. Nüüd võib instrumendil olla palju positsioone, sealhulgas ka mitmesuunalisi. Niisiis, kõik puudused, mis varem Forex-kauplejaid MetaTrader 5 platvormilt tõukasid, on eemaldatud ja on aeg seda lähemalt uurida. Kas viienda platvormi kasutamine annab kauplemisnõustajate optimeerimisel mingeid eeliseid? Kas automatiseeritud kauplemise fännidel tasub uuele platvormile üle minna või on parem jääda vana hea MT4 juurde? Täna õpime, kuidas optimeerida nõustajaid MetaTrader 5 platvormil ja kaaluda nõustajate optimeerimise peamisi eeliseid ja puudusi selle abiga.

Ekspertnõustaja optimeerimine

Kuidas testida ekspertnõustajaid ja millised on MT5 testimisrežiimid, oleme juba mõelnud eelmises artiklis. Samuti teate juba, kuidas paigaldada nõustajaid terminali. Seetõttu pöördume kohe selle artikli peateema juurde - kauplemisasjatundjate optimeerimine MT5 platvormis.

Optimeerimise põhiolemus on valida optimaalsed parameetrid nõustaja jaoks ajalooliste andmete teatud segmendi kallal töötamiseks. Samal ajal pakub strateegiatester optimeerimise lõppedes suure hulga erinevaid edukaid võimalusi, mille hulgast kaupleja valib parima.

MT5 strateegiatester on mitme keermega ja võimaldab teil kasutada kõiki saadaolevaid arvuti ressursse. Testimine ja optimeerimine toimub spetsiaalsete arvutiagentide abil, mis töötavad iseseisvalt ja võimaldavad optimeerimiskäikude paralleelseid arvutusi. Strateegiatestiga saab ühendada piiramatu arvu agente, kes töötavad eemalt. Lisaks on strateegiatesteris kasutamiseks saadaval tohutu MQL5 pilvevõrk. See koondab tuhandeid agente kogu maailmas ja see arvutusvõimsus on saadaval kõigile kauplemisplatvormi kasutajatele.

Optimeerimise ettevalmistamine

Tester võimaldab teil kontrollida mitmete instrumentidega kaubeldavate strateegiate ajalugu. Selliseid eksperte nimetatakse tavaliselt mitme valuutana. Tester laadib kasutatavate tööriistade ajaloo automaatselt alla kauplemisplatvormilt (mitte kauplemisserverilt), kui sellele tööriistale esimest korda juurde pääsete. Kauplemisserverist laaditakse alla ainult puuduv lugu. Seega on nõustajate testimiseks ja optimeerimiseks kasutatud põhilugu spetsiaalselt MetaQuotes'i poolt ette valmistatud, mitte konkreetse maakleri tsitaatide tegelik lugu.

Enne mitme valuuta eksperdi optimeerimise alustamist lisage testimiseks vajalikud tööriistad turujälgimisse. Täitke kontekstimenüüs käsk "Sümbolid" ja lubage vajalike tööriistade kuvamist.

Valige Optimeerimise sätted

Enne optimeerimise alustamist valige, millisel finantsinstrumendil nõustajat uuritakse, milliseks perioodiks ja millises režiimis.

  1. Valige nõustaja, keda soovite optimeerida.
  1. Valige optimeeritav valuutapaar. Mitme valuutaga nõustajate jaoks on see paar diagrammil, mille nõustaja “riputab”.
  1. Nõustaja töö ajakava. Nagu te juba teate, on MT5-s ilmunud palju lisaperioode ja saate testida ja optimeerida nende kõigi nõustajaid. Ja kuigi selliste perioodide nagu M3, M12 või H2 ilmumise kasulikkus on üsna kaheldav, on hea, et nüüd saate testida pikaajalisi nõustajaid W1 või MN perioodide osas.
  1. Optimeerimise intervalli valimine:

Kui valite "kogu ajalugu", toimub optimeerimine kogu olemasoleva pakkumiste ajaloo korral. Järgmised kaks intervalli on muidugi täiesti kasutud.

  1. Samuti saate optimeerimisperioodile seada selged algus- ja lõppkuupäevad ("perioodi valik")

Testeri eripära on see, et see laadib teatud aja jooksul täiendavat teavet (genereerima vähemalt 100 riba). Näiteks nädalase ajavahemiku testimisel laaditakse kaks lisa-aastat. See on vajalik täpsemaks testimiseks ja optimeerimiseks - selle nõustaja jaoks on üles ehitatud näiteks nõustaja kasutatavad näitajad. Kui samal ajal pole täiendavate 100 riba moodustamiseks piisavalt ajaloolisi andmeid (näiteks nädala- ja kuuperioodide jaoks), teisaldatakse testi alguskuupäev automaatselt ja vastav kanne ilmub strateegiatestijate logisse.

  1. Edasi

Me kõik teame, kui kurb oli neljandas terminalis jooksude välja rookimine, luues iga optimeerimise jaoks käsitsi katseid ette sadu ja tuhandeid kordi. Jumalad armuvad meie vastu ja metakvoodid on langenud tavaliste kaupmeeste vajadustele. Kui optimeerimise katsed ei läbi, siis optimeerimise käigus tehtud käigud kõrvaldatakse automaatselt. Meil on valik - kasutada pool valitud ajaloost, kolmandik või veerand eeltestiks. Samuti on võimalik ise määrata edasise katseperioodi konkreetne alguskuupäev. Mõlema perioodi optimeerimise ajal parimate tulemuste tulemusi saab seejärel vahekaartidel „Optimeerimise tulemused” ja „Edasise testimise tulemused” võrrelda. Tagurpidi testi tuleb kahjuks ikkagi käsitsi läbi sõita. Sellest hoolimata on see suur samm edasi.

  1. Kauplemisrežiim

Praegu pakutakse kahte kauplemisrežiimi: „Tavaline” ja „Meelevaldne viivitus”. Tavarežiimis täidetakse kõik tellimused soovitud hindadega, retsepte pole jne. - st sama, mis neljandas terminalis (täiuslik jõudlus).

Ekspertide testimiseks pakutakse suvaliste viivituste režiimi reaalsetele lähedastes tingimustes. Alates tellimuse saatmisest kuni selle täitmiseni võib hind muutuda. Sõltuvalt korralduses määratud kõrvalekaldest (libisemine) võib selle teostada kehtiva hinnaga (kui see jääb kõrvalekalde piiridesse) või etteantud hinnaga. Selles režiimis testimine võimaldab arendajal õigesti programmeerida selliste olukordade töötlemist, samuti viia nõustaja testid tegelikele tingimustele lähemale. Kõigist terminalist saadetud kauplemistaotlustele (korralduste esitamine, peatustasandite muutmine jne) viite simuleerimine toimub. Viivitatud täitmine toimub vastavalt järgmisele põhimõttele: juhuslikult valitakse arv 0 kuni 9 ja sellise sekundi arvu jaoks tehakse viivitus; kui valitud arv on 9, valitakse juhuslikult samast vahemikust teine ​​number, mis lisatakse esimesele. Seega on 0–8 sekundilise viivituse tõenäosus 90% ja 9–18 sekundilise viivituse tõenäosus 10%.

  1. Märgistage genereerimisrežiim

Võite valida ühe puukide genereerimise režiimist:

  • Kõik puugid on kõige täpsemad, aga ka aeglaseim simulatsioonirežiim. See jäljendab kõiki puuke.
  • Iga puuk, mis põhineb tõelistel puukidel, on reaalsetele tingimustele võimalikult lähedal. Kasutatakse tegelikke puuke, mille maakler on kogunud finantsinstrumentide jaoks. Modelleerimist ei teostata. Märgistamisandmed on suured, esmakordselt testimisega alustades võib nende allalaadimine maakleri serverist võtta kaua aega.
  • OHLC M1-l - selles režiimis modelleeritakse iga minutiriba ainult 4 hinda - avatud, kõrge, madal ja suletav hind.
  • Ainult alghinnad - selles režiimis modelleeritakse ka OHLC hinnad, kuid testimiseks / optimeerimiseks kasutatakse ainult alghinda.
  • Matemaatilised arvutused - selles režiimis ei kogu testija ajaloolisi andmeid, teavet sümbolite kohta ega tekita puuke. Kutsutakse ainult funktsioone OnInit (), OnTester () ja OnDeinit (). Seega saab testerit kasutada mitmesuguste matemaatiliste arvutuste jaoks, kus on vaja parameetreid valida.
  1. Esmane sissemakse

Märkige nõustaja testimiseks ja optimeerimiseks esialgse sissemakse summa. Valuuta sõltub praegu ühendatud konto hoiuse valuutast.

  1. Õlg.

Valige testimiseks ja optimeerimiseks võimendus. See kehtib eriti pesitsejate ja ahvide kohta.

  1. Optimeerimine

Strateegiatesteri vahekaardil Seaded huvitab meid ainult rida Optimeerimine (olete juba tuttav kõigi muude funktsioonidega). Strateegiatestil on kaks optimeerimisrežiimi.

Lahti ühendatud - parameetrite optimeerimine on keelatud, töö toimub strateegiatesti režiimis.

Aeglane (parameetrite täielik loendamine). Selles režiimis loetleb testija vastaval vahekaardil optimeerimiseks valitud ekspertide parameetrite kõik võimalikud kombinatsioonid:

See meetod on kõige täpsem, kuid EA töötab kõigi parameetrite kombinatsioonidega võib võtta liiga palju aega.

Kiire (geneetiline algoritm). Seda tüüpi optimeerimine kasutab parimate parameetrite väärtuste valimiseks geneetilist algoritmi. See on palju kiirem kui parameetrite täielik loendamine ega ole kvaliteedis palju halvem. Jõhkrate jõudude täielik optimeerimine, mis võtab mitu aastat, viiakse läbi geneetilise algoritmi abil mõne tunniga. Hoolimata asjaolust, et see funktsioon on olemas ka MT4-s, ütlen ma veel paar sõna geneetilise algoritmi põhimõttest.

Igal inimesel on kindel geenide komplekt, mis vastab tema parameetrite kogumile. Geneetiline optimeerimine põhineb enim kohandatud parameetrite (väärtused, mis annavad parima lõpptulemuse) pideval valimisel.

Üldiselt saab algoritmi esitada järgmiselt:

  1. Parameetrite võimalike kombinatsioonide koguarvust valitakse juhuslikult kaks populatsiooni (komplekti).
  2. Mõlemad komplektid on testitud ja neist on alles vaid üks komplekt, millel on parimad tulemused (vastavalt optimeerimise kriteeriumile).
  3. Selle komplekti liikmed põimusid juhuslikult üksteisega, läbides juhuslikke mutatsioone ja parameetrite inversioone.
  4. Järeltulijad sorteeritakse parimate tulemuste järgi ja riste korratakse.
  5. Sorteerimine ja ristumine jätkuvad, kuni tulemused on paranenud (järglaste parim tulemus ületab vanemate parima tulemuse). Optimeerimise lõpuleviimiseks ei ole vaja optimeerimise kriteeriumi paremaks muuta mitme ristumise (põlvkonna) korral.

Pärast geneetilise optimeerimise alustamist kuvatakse vahekaardil „Seaded” eelseisvate testide eeldatav arv. Kui optimeerimisetappide koguarv ületab 32-bitises süsteemis 1 000 000 või 64-bitises süsteemis 100 000 000, aktiveeritakse kiire optimeerimise režiim automaatselt.

Vahetulemused salvestatakse vahemällu pärast iga põlvkonna arvutamist (faili platvormi_kataloog / kausta / vahemälu / *. Gen). Seega saab geneetilise optimeerimise protsessi igal ajal katkestada. Isegi kui geneetilise optimeerimise protsess välistest põhjustest (nt elektrikatkestuse tõttu) katkeb, jätkub optimeerimine järgmisel käivitamisel automaatselt viimasest arvutatud generatsioonist. Geneetilise optimeerimise vahemälu säilitatakse seni, kuni optimeerimise sätteid muudetakse või kuni optimeerimisprotsess on lõpule viidud. Tavalise optimeerimispeatuse ajal (kasutades nuppu Stop) salvestatakse kõik eelnevalt arvutatud läbipääsud. Optimeerimise jätkamisel jätkub protsess peatumispunktist.

Kõik aknas "Turuvaatlus" valitud sümbolid. Erinevalt kahest eelmisest võimaldab see optimeerimisrežiim nõustajat testida samade sisendparameetritega, kuid erinevate sümbolitega. Igal optimeerimiskäigul muutub ainult EA-testimise peamine sümbol. Optimeerimine toimub ainult nende sümbolite jaoks, mis on praegu aknas "Turvavalve" valitud. Seega saab valitud märkide komplekti kohandades optimeerimist juhtida. Vajalike hinnaandmete allalaadimine serverilt võib võtta kaua aega, kuid see juhtub alles siis, kui see käivitatakse esmakordselt sümbolil, järgmistes andmetes laaditakse alla ainult puuduvad andmed. Sümbolite järgi optimeerimisel kasutatakse veerus „Väärtus” näidatud sisendparameetrite praeguseid väärtusi.

  1. Optimeerimise kriteerium

Selle indikaatori valimine toimub vahekaardil „Seaded”, mis asub väljast „Optimeerimine” paremal. Optimeerimise kriteerium on vajalik ainult geneetilise algoritmi jaoks. Saadaval on järgmised optimeerimiskriteeriumid:

Maksimaalne tasakaal - optimaalsuse indikaator on tasakaalu maksimaalne väärtus.

Saldo + maksimaalne kasumlikkus - indikaator on kasumlikkuse saldo korrutise maksimaalne väärtus.

Saldo + maksimaalne eeldatav väljamakse - indikaator on saldo eeldatava väljamakse tulemus.

Saldo + minimaalne krediidilaenutus - sel juhul võetakse lisaks bilansiväärtusele arvesse ka krediidi taset: Saldo / omakapitali arvelt väljavõtmine.

Tasakaal + maksimaalne taastustegur - indikaator on tasakaalu korrutus taastusteguriga.

Tasakaal + maksimaalne Sharpe-suhe - indikaator on tasakaalu korrutus Sharpe-suhtega.

Kohandatud optimeerimise kriteerium - selle parameetri valimisel optimeerimise kriteeriumiks võetakse arvesse nõustaja funktsiooni OnTester () väärtust. See parameeter võimaldab kasutajal optimeerimiseks kasutada mis tahes kohandatud mõõdikut.

Sisestusparameetrite valik optimeerimiseks

Sisendparameetrid võimaldavad teil kontrollida nõustaja käitumist, kohandades seda erinevatele turutingimustele, sealhulgas konkreetsele finantsinstrumendile. Nii saate näiteks uurida erineva vahemaaga nõustaja tööd stoppkaotuse esitamiseks ja kasumikorralduste vastuvõtmiseks, libiseva keskmise perioodi erinevate perioodidega, mida kasutatakse turu analüüsimiseks ja otsuste tegemiseks jne.

Optimeerimine seisneb erinevate väärtuste ja sisendparameetrite kombinatsioonide loetlemises parima tulemuse saamiseks.

Parameetri järgi optimeerimise lubamiseks valige see linnukesega. Järgmisena täpsustage väärtuste vahemiku algus ja lõpp, samuti otsingu samm. Saate valida ühe või mitu võimalust. Võimalike kombinatsioonide koguarv kuvatakse parameetrite loendi all.

Optimeerimise algus

Optimeerimise alustamiseks klõpsake vahekaardi "Seaded" nuppu "Start". Samal ajal näidatakse selle edenemist vasakul.

Iga läbimise üksikasjalikud tulemused kuvatakse vahekaardil Optimeerimine. Siin on üldised testi tulemused, näiteks kasum ja kauplemistehingute arv, samuti paljud statistilised näitajad, mis aitavad roboti kvaliteeti hinnata.

Üksikasjalik teave indikaatorite kohta on esitatud jaotises „Test Report“. Optimeerimisaruannet saab sortida mis tahes parameetri järgi, klõpsates veeru pealkirjas. Niisiis, võite leida kõige kasumlikuma parameetrite kombinatsiooni ja kohe täpsema aruande saamiseks käivitada selle ühe testi.

Iga optimeerimiskäigu korral kuvatakse järgmised indikaatorid:

Pass - läbipääsu number.

Tulemuseks on parameetri lõppväärtus, mis on optimeerimise kriteerium, mille järgi valitakse parimad läbisõidud.

Kasum - lõigu tulemustest saadud kasum / kahjum.

Tehingute koguarv - selle lõpu jooksul sooritatud tehingute koguarv (tehingud, mis viisid kasumi või kahjumi kindlaksmääramiseni).

Kasumlikkus - kogukasumi ja kogukahjumi suhe protsentides. Ühik tähendab, et kasumi summa võrdub kahjumi summaga.

Võiduootus - see statistiliselt arvutatud näitaja kajastab ühe tehingu keskmist kasumlikkust / kahjumit.

Lahutamine - rahaliste vahendite suhteline äravõtmine, suurim kahju protsendina rahaliste vahendite maksimaalsest väärtusest. Väljamakse arvutamisel võetakse arvesse optimeerimise ajal taganemisnõustajat.

Taastumistegur - see näitaja kajastab strateegia riskantsust

Sharpe suhe - see indikaator iseloomustab strateegia tõhusust ja stabiilsust. See näitab positsiooni säilitamise ajal aritmeetilise keskmise kasumi ja selle standardhälbe suhet. Lisaks võetakse siin arvesse riskivaba määra väärtust, milleks on kasum vastava summa hoiusest pangahoiusel.

Optimeeritud parameeter (parameetrid) - lisaks üldistele statistilistele indikaatoritele kuvatakse siin ka selle läbipääsu jaoks sisendmuutujate väärtused.

Kontekstimenüü käske kasutades saate mõnda ülaltoodud veergu peita / näidata.

Kui optimeerimine viidi läbi eeltestiga, kuvatakse sellel vahekaardil tagantjärele testimise ja edasisuunamise testi optimeerimise parameetri (optimeerimise kriteerium) vastavad väärtused. Testi tulemuste vaatamise ja edasise testimise režiimide vahel vahetamine toimub kontekstimenüü abil. Topeltklõpsamine hiire vasaku nupuga ühel optimeerimistulemusel alustab nõustaja testimist selle käituse parameetritega (eeldusel, et optimeerimine on lõpule viidud).

Geneetilise optimeerimise ajal on võimalik olukord, kus järgmisel läbimisel (populatsiooni liikmel) on absoluutselt identsed sisestusparameetrid (geenid) varem testitud lõiguga. Sel juhul seda lõiku ei kuvata tulemuste vahekaardil, kuna sellel on identne testitulemus.

Analüüsimiseks kolmandate osapoolte programmides, näiteks Excelis, saab optimeerimisaruande salvestada failina, kasutades kontekstimenüü käsku „Ekspordi XML-i”. Samuti salvestatakse kõigi optimeerimise tulemusel saadud parameetrite ja karakteristikute arvväärtused protsessi lõpus XML-faili, mis asub platvormi_kataloog / tester / vahemälu / kaustas. Faili nimi on järgmine: ExpertName.Symbol.Period.GenerationMode.xml. Siin:

ExpertName - optimeeritud eksperdi nimi.

Sümbol - sümbol.

Periood - ajavahemik (M1, H1, ...).

GenerationMode - puugi genereerimise režiim (0 - “Kõik puugid”, 1 - “OHLC M1-l”, 2 - “Ainult avatud hinnad”).

Geneetilise optimeerimise korral salvestatakse vahetulemused vahemällu pärast iga põlvkonna arvutamist (faili platvormi_kataloog / tester / vahemälu / *. Gen). Seega saab geneetilise optimeerimise protsessi igal ajal katkestada. Isegi kui geneetilise optimeerimise protsess välistest põhjustest (nt elektrikatkestuse tõttu) katkeb, jätkub optimeerimine järgmisel käivitamisel automaatselt viimasest arvutatud generatsioonist. Geneetilise optimeerimise vahemälu säilitatakse seni, kuni optimeerimise sätteid muudetakse või kuni optimeerimisprotsess on lõpule viidud. Tavalise optimeerimispeatuse ajal (kasutades nuppu Stop) salvestatakse kõik eelnevalt arvutatud läbipääsud. Optimeerimise jätkamisel jätkub protsess peatumispunktist.

Optimeerimise tulemuste visuaalne tutvustamine

Kauplemisplatvormi strateegiatestil on võimas süsteem optimeerimise tulemuste visualiseerimiseks. Vahekaardil „Optimeerimisgraafik” on saadaval mitut tüüpi graafikuid. Kontekstimenüü kaudu saate nende vahel vahetada.

Nulljoon (lennuk)

Kõigil graafikutüüpidel, välja arvatud tasane, kuvatakse nulljoon (või kolmemõõtmelise graafi korral tasapind). Kui optimeerimiskriteeriumina kasutatakse bilansilist väärtust, näitab see rida algse sissemakse väärtust, võimaldades seega kahjumlikke möödasõite visuaalselt eraldada kasumlikest. Kõigil muudel juhtudel tõmmatakse see joon optimeerimise kriteeriumi nullini.

Graafik tulemuste ja joondiagrammiga (1D)

Diagramm optimeerimise tulemustega avaneb vaikimisi. Iga eksperdipass teatud sisendparameetritega kuvatakse diagrammil punktina. Läbipääsu arv kantakse graafiku horisontaalteljele ja parameetri väärtused, mis on optimeerimise kriteerium, kantakse vertikaalteljele.

Joondiagramm (1D) näitab parameetri muutust, mis on optimeerimise kriteerium (vertikaaltelg), sõltuvalt horisontaalteljel kuvamiseks valitud optimeeritud parameetritest. Horisontaalteljel kuvatava valiku valimiseks kasutage kontekstimenüü käsku X-telg.

Lamedad (2D) ja mahukaardid (3D)

Kahemõõtmelise kuvarežiimi korral lükatakse mõlemal teljel valitud parameetrite muutused edasi, mööda mida optimeerimine toimus. Optimeerimise kriteeriumide muudatused kuvatakse värvigradiendi abil. Mida küllastunud on värv, seda suurem on optimeerimiskriteeriumi väärtus.

Kolmemõõtmelises vaatlusrežiimis lükkavad X- ja Y-teljed muutusi valitud parameetrites, mille mööda optimeerimine toimus. Optimeerimise kriteeriumi muudatusi kuvatakse piki vertikaalset Z-telge, samuti värvigradienti kasutades.

Horisontaalsetel ja vertikaalsetel telgedel kuvatavate valikute valimiseks kasutage kontekstimenüü käske “X-telg” ja “Y-telg”.

3D-graafiku haldus:

G - koordinaatide ruudustiku lubamine / keelamine

Tühikuklahv - lülitab täidise ja ridade vahel täitmise vahel

Üles / alla / vasakule / paremale nooled - liigutage diagrammi

Pluss / miinus - diagrammi suurendamine / vähendamine

Avaleht, leht üles, leht Dn, diagrammi lõpp - pööramine

Järeldus

MT5 terminali kasutajatele kättesaadavad tööriistad on võrreldes terminali varasema versiooniga tõepoolest mugavamaks ja läbimõeldumaks muutunud. Nõustajate optimeerimine on muutunud lihtsamaks ja täpsemaks. Isiklikult inspireerisid mind kaks uuendust: võime optimeerida selliste katsete automaatset sõelumist, mis ei sooritanud katseid edasi, ja mahuka optimeerimise ajakava olemasolu, mis võimaldab 3D-tasapinna tipupunktide abil leida kõige stabiilsemad ja kasumlikumad komplektid.

Jäta Oma Kommentaar