programovanie
Teraz čítaš
MQL prakticky. Základy a pulz Rynku [kurz programovania]
0

MQL prakticky. Základy a pulz Rynku [kurz programovania]

vytvorené Radek SzafronMarch 12 2019

V cykle MQL prakticky poskytneme vám znalosti potrebné na začatie práce s aplikáciami napísanými v MQL 4 pre platformu Meta Trader. Téma programovania je samozrejme veľmi široká, ale účelom tejto série nie je pokryť každú možnú tému a zavaliť vás komplikovanou teóriou. Cieľom tohto cyklu je ukázať vám, ako začať pracovať s MQL a poskytnúť vám poznatky, ktoré vám umožnia samostatne sa rozvíjať v tomto spektre.

Pre účely úloh, ktoré budeme spoločne vykonávať, je potrebná samostatná inštalácia platformy MetaTrader 4, na ktorej je nainštalovaný iba demo účet akéhokoľvek brokera. Nechceme robiť neporiadok na skutočnom účte. Môže ísť o pôvodnú verziu platformy MT4.

STIAHNUŤ METATRADER 4

Základné funkcie

Začnime od základov, teda ako vyzerá okno platformy MT4 a aké funkcie obsahuje súvisiace s aplikáciami napísanými v MQL. Poďme sa pozrieť na obrázok nižšie.

Expert_config

MQL prakticky - Obr.1

V oblasti označenej jedným je okno "navigátor" (Ctrl + N). Panel nám umožňuje prístup ku všetkým nástrojom MQL nainštalovaným na danej platforme a je rozdelený na "Indikátory", "stratégie" i "skripty". Programy spustíme pretiahnutím na vybraný graf a v zobrazenom okne nakonfigurujeme parametre aplikácie. Na mieste označenom dvojkou vidíme príklad okna nastavení. Všetky parametre, ktoré je možné pre aplikáciu nakonfigurovať, sú dostupné tu, no zamerajme sa na základné prvky, ktoré sú spoločné pre všetky programy. Lúka "Povoliť obchod" používatelia často prehliadajú a v tomto bode závisí od vtáka, či bude algoritmus schopný vstupovať do transakcií. Táto funkcia vám umožňuje zakázať a povoliť obchodnú funkciu pre každý algoritmus samostatne na rozdiel od funkcie "AutoTrading", označený trojuholníkom, čo je globálny prepínač, ktorý umožňuje všetkým nástrojom pracujúcim na danej platforme Meta Trader uzatvárať transakcie.

Myslím si, že v tejto fáze nie je potrebné obťažovať vás ďalšími funkciami. Vyššie uvedené informácie sú dostatočné na to, aby sme úspešne spustili náš prvý program.

Môžeme začať uvažovať o programovaní. Prostredie na vývoj aplikácií je integrované v platforme MetaTrader. Prostredie je dostupné z ponuky "Nástroje / editor MQL4".

metaeditor_launch

MQL prakticky - Obr.2

Po výbere možnosti v ponuke sa otvorí nová aplikácia - "MetaEditor". Tu napíšeme algoritmy pre platformu MT4. Zastavme sa tu na chvíľu a dozvieme sa o najdôležitejších prvkoch editora.

metaeditor_basic

MQL prakticky - Obr.3

Na ľavej strane okna, rovnako ako v samotnom MT4, je panel "navigátor". Na mieste označenom jednotkou na obrázku vyššie sme rozbalili obsah adresára Experts a následne dvojitým kliknutím na názov programu otvorili jeho zdrojový kód, ktorý sa ukázal v časti okna označenej číslo dva. V tejto časti vytvárame a upravujeme algoritmy. Keď dokončíme písanie aplikácie, musíme ju pretransformovať do počítačom čitateľnej podoby, t.j. program skompilovať výberom možnosti "kompilovať" (F7), označené trojuholníkom. Zostavený algoritmus nájdete na paneli "navigátor" platformu MT4 a začnite potiahnutím vybraného grafu. Presne ako v predchádzajúcej časti tohto článku.

Stromček "navigátor" odráža štruktúru súborov umiestnených v adresári MQL4, t.j. adresári, do ktorého daná platforma ukladá všetky aplikácie napísané v MQL. Keď chceme nainštalovať aplikáciu, napríklad aplikáciu sprístupnenú v rámci nášho cyklu, musíme súbor skopírovať do adresára MQL4, pričom musíme pamätať na to, že "stratégie" vložiť do katalógu "MQL4 \ Experti"sa "Indikátory" V katalógu "MQL4 \ Indikátory" a že každá kópia platformy Meta Trader 4 nainštalovaná v počítači má svoj vlastný adresár MQL4. Ako nájsť adresár MQL4 danej platformy je znázornené na obrázku nižšie (kliknite na ikonu MQL4 pravým tlačidlom myši).

metaeditor_mql_folder

MQL prakticky - Obr.4

Už vieme, ako spúšťať, inštalovať a písať aplikácie pre Meta Trader 4. Poďme teda k veci a začnime sa učiť programovanie.


odborní poradcovia


Vytvárame prvú aplikáciu

Aby ste mohli urobiť prvé kroky ako programátor, napíšeme malú aplikáciu, ktorá nás bude informovať o aktuálnej aktivite na trhu. Zavoláme jej "Puls Rynku"a pri čakaní na objavenie sa požadovanej variability, ktorú budeme počuť vďaka zmene frekvencie zvukov generovaných naším algoritmom, využijeme rušné prezeranie tlače.

Ako prílohu k tomuto článku viď TENTO ODKAZ nájdete zvukový súbor "Pulse_beep.wav". Vložte ho prosím do adresára „Znie“ktorý sa nachádza v koreňovom adresári platformy MT4. Katalóg „Znie“ možno nájsť otvorením vlastností skratky spúšťača terminálu, ako na obrázku nižšie.
mt4_location

MQL prakticky - Obr.5

Na obrázkoch nižšie je znázornené, ako vytvoriť nový, takmer prázdny súbor automatickej politiky. Vyberte funkciu v okne MetaEditor "Nový", potom označte "Odborný poradca", vyberte názov programu a kliknite "Ďalšie" kým sa v editore neotvorí šablóna pre nový program.

metaeditor_new_1

Obr. 6

 

metaeditor_new_2

Obr. 7

 

metaeditor_new_3

Obr. 8

Nejdeme tou jednoduchšou cestou a vymažeme celý obsah súboru v okne označenom jednotkou na poslednom obrázku. Celý kód našej aplikácie si napíšeme sami. Začnime.


              // Puls Rynku.mq4
              // Copyright 2019, Mistrz Programowania
              // https://www.mistrz.ty
            

Zadaním „//“ na začiatok riadku vytvárame komentáre, teda fragmenty, ktoré nám, programátorom, slúžia na vytváranie najrôznejších informácií a poznámok vo vnútri kódu. Komentáre nemajú vplyv na fungovanie programu. Pomocou komentárov si vytvoríte hlavičku vašej aplikácie, ktorá bude poskytovať napríklad informácie o autorovi, informácie o samotnej aplikácii či autorských právach. Vytvorme hlavičku (alebo nie) a potom umiestnime nasledujúci kód na nový riadok.

          
              #property strict
            

Parametre typu „#property“ umožňujú poskytnúť platforme ďalšie informácie o vytváranom programe. Parameter „#property strict“ umiestnený na začiatku riadku informuje platformu, že algoritmus sa vyvíja pomocou najnovšej syntaxe MQL4.

V ďalšom kroku zadajte do nového riadku nasledujúcu operáciu.

    
              input string Plik_dzwiekowy =  "pulse_beep.wav";
            

Slovo "Vstup" informuje program, že vytvárame parameter, ktorý nám umožní zadať nastavenia potrebné pre chod programu. Po "Vstup" vždy špecifikujeme typ vstupných údajov, tu je "reťazec" teda text. Potom vytvoríme názov premennej, čo je v podstate názov časti pamäte počítača, na ktorú sa budeme môcť v budúcnosti odvolávať pri čítaní zadaných údajov. Našu premennú nazývame "Sound_file", je typu string, teda umožní nám zadať do programu text, ktorý použijeme ako názov zvukového súboru, ktorý má náš algoritmus použiť.

Za názvom premennej vidíme znamienko rovnosti. Znamená to, že našej premennej má byť priradený text "Pulse_beep.wav". V tomto prípade sa táto hodnota použije ako predvolená hodnota a možno ju zmeniť po pretiahnutí programu do grafu v okne nastavení. Práve sme definovali operáciu priradenia údajov. Je to jednoduchá operácia a končíme ich bodkočiarkou.

V tomto bode by ste sa mali na chvíľu zastaviť a prečítať si o typoch údajov. Vo vyššie uvedenom riadku sme použili dátový typ "reťazec", ale typov je oveľa viac a sú základnou súčasťou jazyka, ktorému sa nedá vyhnúť. Adresu pridávam do fragmentu dokumentácie popisujúcej dátové typy jazyka MQL4.
Ako môžete vidieť vo vyššie uvedených fragmentoch, jeden riadok je pri programovaní veľmi dôležitý a mali by ste byť veľmi opatrní, čo zadávate do zdrojového kódu, pretože aj najmenšia chyba zabráni zostaveniu algoritmu.

Píšeme ďalej.


                void OnTick()   
                {
                
                PlaySound(Plik_dzwiekowy);
                
                }
          

Vyššie uvedený zápis definuje funkciu "OnTick ()". Funkcie sú prvky algoritmu zodpovedné za vykonávanie operácií, ktoré im boli zverené. V tomto prípade vidíme integrálnu funkciu jazyka MQL, ktorého úlohou je vykonať operáciu, keď sa zmení cena nástroja, na ktorom náš algoritmus funguje. Platforma zavolá túto funkciu vždy, keď sa objaví nová značka. Definujeme operácie, ktoré má vykonať každá nami napísaná funkcia. Máme tu plnú slobodu a prakticky žiadne obmedzenia. Tentoraz však budeme rezervovaní a prehráme iba zvukový súbor špecifikovaný skôr s parametrom "Vstup". Na tento účel použijeme ďalšiu, tiež vstavanú funkciu jazyka MQL 4 - "PlaySound (reťazcový názov súboru)"ktorého úlohou je prehrať zvukový súbor s názvom, ktorý získa pomocou premennej s dátovým typom "string", ktorý očakáva v zátvorkách za názvom funkcie. Operácia volania funkcie "Prehrať zvuk" končíme bodkočiarkou, pretože rovnako ako operácia priradenia údajov je to jednoduchá operácia.

Ako si viete predstaviť, v tomto bode je potrebné ponoriť sa do operácií dostupných v syntaxi jazyka.

Tlačíme na kompiláciu!

metaeditor_compile_ok

Obr. 9

Držím palce, aby všetko vyzeralo ako na obrázku vyššie. Ak áno, kompilácia bola úspešná. Ak na druhej strane výsledok vyzerá skôr ako na obrázku 10, potom musíme nájsť chybu podľa informácií zobrazených na spodnom paneli, ktoré sa objavili po pokuse o kompiláciu. Na ľavej strane panela si môžeme prečítať, čoho sa chyby týkajú, a na pravej strane, o aký riadok ide. Dvojitým kliknutím na riadok s chybou sa dostanete do príslušnej časti zdrojového kódu. Vložte chýbajúce bodkočiarky a zátvorky a stlačte znova "kompilovať".

metaeditor_compile_ups

Obr. 10

Pripravený! Môžeme prejsť na MT4 a pretiahnuť náš prvý algoritmus na ľubovoľný graf.

Píp píp ... 😉

Uvidíme sa budúci týždeň. Napíšeme nový program a preskúmame pokročilejšie jazykové funkcie.

ZÁVEREČNÝ KÓD - TRHOVÝ PULZ

Co si myslis?
Mám rád
68%
zaujímavé
28%
heh...
6%
Šokujúce!
11%
nemám rád
15%
Škoda
3%
O autorovi
Radek Szafron
Autorom publikácie je Radek Szafron, majiteľ spoločnosti Expert Advisors, ktorá už dlhé roky podporuje investorov poskytovaním technológií venovaných FOREX trhu. Autor je absolventom Varšavskej ekonomickej školy so špecializáciou „Finančné trhy“ a programátorom s takmer 20-ročnou praxou. Spoločnosť realizuje projekty algoritmov a aplikácií napísaných vo všetkých jazykoch z rodiny "C", vrátane pre populárne platformy Meta Trader 4 a 5. Odborných poradcov nájdete na www.expertadvisors.pl.