programování
Teď čteš
MQL Prakticky. Panické tlačítko, část I [Programovací kurz]
0

MQL Prakticky. Panické tlačítko, část I [Programovací kurz]

vytvořil Radek SzafronMarch 21 2019

Vítejte ve druhé epizodě MQL prakticky! Ve druhé části našeho kurzu začneme znovu s prázdným listem papíru a krok za krokem napíšeme novou aplikaci. Seznámíme se s prvky, které každý programátor používá při své každodenní práci, jako jsou funkce, logické operátory a smyčky, o čemž každý z vás slyšel, ale nevěděl, o co jde. Naštěstí v naší sérii dáváme teorii chutnou a bez nadsázky a zaměřujeme se na to nejdůležitější, tj. programování v praxi.

Tento týden budeme psát první část aplikace "Panika tlačítko"jehož jméno si myslím, že už hodně vysvětluje. Úkolem našeho programu bude po stisknutí tlačítka okamžité uzavření všech otevřených pozic a příkazů, když se na našem čele objeví studený pot, svět ztichne a obraz se zúží na malé, mlhavé pole s blikající rychlostí spěchajícího dolaru po jednom z roztomilých tweetů jednoho z naši oblíbení politici.

Pojďme vyhrnout rukávy a zapnout MetaEditor

Začněme vytvořením souboru prázdného typu v editoru Odborník pojmenovaný Panic Button.mq4. Soubor bude v adresáři MQL4 \ Odborníci, Dále vložte všechny potřebné soubory do správných složek.

soubor "Useful_functions.mqh" by měla být umístěna do adresáře MATE4 \ t

soubor "Biblioteka_panic_button.ex4" by měl být umístěn v adresáři MQL4 Knihovny \ t

DOWNLOAD SET SOUBORŮ MQL

První znaky

Změníme kód naší aplikace, tj. Souboru Panic Button.mq4 z katalogu Odborníci, Informujme kompilátor, že používáme poslední syntaxi jazyka MQL4 zadáním:

#property přísný
Kód MQL4

Třikrát "a"

#include

Pomocí klíčového slova #include do vašeho kódu můžeme připojit další zdrojové soubory. V souboru Przydatne_funkcje.mqh připravili jsme potřebnou funkci v následující části:

bool Zamknij_pozycje_i_zlecenia (bool tylko_ten_instrument)

Abychom mohli použít další kód, musíme jej přidat do našeho souboru zadáním #include a přístupovou cestu. Přesně tak, jak je uvedeno níže.

#include ".. \\ Include \\ Panic Button \\ Useful_functions.mqh"
Kód MQL4

# Importovat

Klíčové slovo # Importovat dovoluje nám však používat externí knihovny. Knihovny jsou oddělené, kompilované algoritmy, které sdílejí své funkce a zdroje s jinými programy. Níže importujeme knihovnu pojmenovanou Biblioteka_panic_button.ex4který obsahuje grafické prvky a funkce pro naše tlačítko. Mezi prvky # Importovat umístíme seznam definic funkcí, které nám knihovna poskytne.

Správný import knihovny vypadá takto:

# Importovat "Panic Button \\ Biblioteka_panic_button.ex4"
zrušit Przycisku_utworz_sie (int x, int y, bool wybieram_niebieski); zrušit Przycisku_badz_czujny (); bool Przycisku_czy_jestes_klikniety (šňůra object_name); zrušit Przycisku_bye_bye ();
# Importovat
Kód MQL4

vstup

Po přidání zdrojových souborů a knihoven můžeme přistoupit k vytvoření funkcí našeho programu. Začněme přidáním následujícího řádku:

vstup bool Tylko_ten_instrument = false;
Kód MQL4

Prvek vstup informuje kompilátor, že vytváříme parametr, který bude k dispozici v okně nastavení aplikace, a jeho hodnota bude záviset na volbě uživatele. Vytvořený parametr má hodnotu typu bool czyli pravdivý lub nepravdivý, Zavolali jsme mu Tylko_ten_instrument a pomocí tohoto jména budeme moci odkazovat na jeho hodnotu v budoucnu, což nám pomůže rozhodnout, zda zavřít všechny pozice nebo pouze pozici nástroje, na kterém náš program běží.

První funkce

Přidejte následující fragment kódu do našeho souboru:

int Oninit ()
{
zpáteční INIT_SUCCEEDED;
}
Kód MQL4

Výše uvedený záznam znamená, že vytvoříme pojmenovanou funkci OnInitvrátí hodnoty typu int, tj. celá čísla. Funkce vrátí hodnoty pomocí klíčového slova zpáteční.

Zmínili jsme se, že používáme slovo zpáteční naše funkce vrací hodnoty ve formě celých čísel. Co je tedy záhadným záznamem? INIT_SUCCEEDED ? Pro naše pohodlí v jazyce existuje mnoho automaticky definovaných hodnot a INIT_SUCCEEDED je jen jedním z nich. Pod jeho názvem je celé číslo, které překladač zná jako "vše je v pořádku".

funkce Oninit () je součástí MQL API, což znamená, že funkce je k dispozici jako součást jazyka. Funkce MQL API jsou v kódu označeny nachově, Po spuštění aplikace náš algoritmus automaticky zavolá funkci Oninit () a udělá to jen jednou, na samém počátku, aby nám umožnil provádět operace nezbytné pro provoz a provoz našeho programu.

Obsah funkce

Mezi závorky každé funkce zadáváme instrukce, které má daná funkce vykonat. Naše funkce Oninit () již obsahuje jednu instrukci - zpáteční INIT_SUCCEEDED;

Pojďme rozšířit funkci funkce Oninit (), vzpomíná na kód zpáteční INIT_SUCCEEDED; vždy zůstala na samém konci funkce, protože ji chceme nazývat pouze tehdy, když jsou všechny ostatní instrukce úspěšné.

Podmíněný operátor, pokud

if(IsDemo () == nepravdivý)
{
 
zpáteční INIT_FAILED;
 
}
Kód MQL4

Výše uvedený kód pomocí podmíněného operátora if, kontroluje, zda je prostředí pro naše experimenty bezpečné a pracujeme na demo účtu.

Stavba provozovatele if je vždy velmi podobná. Záznam mezi závorkami za operátorem, to znamená záznam IsDemo () == nepravdivý nazýváme podmíněný výraz. Jedná se o logický výraz, který může vrátit jednu ze dvou hodnot - pravdivý lub nepravdivý, Když podmíněný výraz vrátí hodnotu pravdivý to bude kód mezi závorkami, které se objeví přímo za operátorem if.

Symbol == v podmíněném výrazu se zeptá, zda hodnota na levé straně je rovna hodnotě vpravo. Protože funkce IsDemo () vrátí hodnotu nepravdivýkdyž povolíme program na živém účtu, naše podmíněné vyjádření jako celek vrátí hodnotu pravdivýprotože hodnota vlevo od symbolu == bude odpovídat hodnotě vpravo. Pokud je splněn podmíněný výraz, bude mezi složkami operátoru proveden kód if a program vrátí informace o poruše s pomocí operátora zpáteční a hodnota automaticky vygenerovaná pod názvem INIT_FAILED.


odborní poradci


Nakreslíme tlačítko

Pomocí této funkce nakreslíme tlačítko Przycisku_utworz_sie (int x, int y, bool wybieram_niebieski)pochází z dříve importované knihovny. Funkce přijímá dva parametry s datovým typem int (celá čísla) s názvy x oraz ykteré slouží jako souřadnice polohy tlačítka na grafu vzhledem k pravému hornímu rohu okna.

Funkce navíc předpokládá parametr typu bool (pravdivý lub nepravdivý) wybieram_niebieski, Protože naše aplikace bude schopna pracovat ve dvou režimech, pro celý účet nebo jeden nástroj, bude mít naše tlačítko odpovídající barvu v závislosti na zvolených nastaveních.

Máme rádi ify

Uvědomme si, že chceme, aby bylo tlačítko modré, když pracuje v režimu jednoho nástroje a červené pro celý účet. Umožníme zbarvení tlačítka přidáním následující instrukce k funkci Oninit ():

bool modrá = nepravdivý;
if(Tylko_ten_instrument == pravdivý)
{
 
modrá = pravdivý;
}
Kód MQL4

Aby algoritmus určil barvu tlačítka, začneme definovat proměnnou bool pojmenovaný modrý a přidělujeme mu hodnotu nepravdivý, Pak použijeme podmíněného operátora if, který kontroluje parametr nastavení aplikace Tylko_ten_instrument byl nastaven uživatelem na hodnotu pravdivý, V tomto případě je spuštěn kód, který nastavuje hodnotu proměnné modrý  také na pravdivý, Proměnná připravená tímto způsobem modrý můžeme sloužit funkci Przycisku_utworz_sie (..) přidáním následujícího řádku kódu do funkce Oninit ().

Przycisku_utworz_sie (5, 15, modrá);
Kód MQL4

Poslední funkce (pro dnešek)

Když program skončí nebo se něco změní v nastavení, funkce MQL API bude volána zrušit OnDeinit(const int Důvod).

Použití funkce OnDeinit () provádíme operace, které jsou nezbytné pro řádné ukončení programu. V našem případě je nutné po vypnutí algoritmu tlačítko odebrat pomocí funkce dříve importované z knihovny Przycisku_bye_bye ().

zrušit OnDeinit(const int důvodem)
{
 
Przycisku_bye_bye ();
 
}
Kód MQL4

Všimněte si, že před názvem funkce je slovo zrušit, To znamená, že naše funkce nevrátí žádnou hodnotu.

Přidejte středníky, otřete si ruce a stiskněte kompilovat

Po úspěšné kompilaci nakreslí kód, který jsme dnes napsali, tlačítko na grafu a dá mu vhodný vzhled v závislosti na konfiguraci zadané uživatelem v okně nastavení. Gratulujeme, dokončili jsme první fázi vytváření naší aplikace, vytvořili jsme uživatelské rozhraní.

Příští týden budeme vyvíjet náš program pro zpracování objednávek a přidáme zajímavé miniaplikace.

DOWNLOAD SET SOUBORŮ MQL

Co si o tom myslíš?
0%
zajímavý
100%
Heh ...
0%
Šok!
0%
Nemám rád
0%
zranění
0%
O autorovi
Radek Szafron
Autorem publikace je Radek Szafron, majitel společnosti Expert Advisors, která již řadu let podporuje investory poskytováním technologií určených pro trh FOREX. Autor je absolventem Vysoké školy ekonomické ve Varšavě se specializací "Finanční trhy" a programátor s téměř letními zkušenostmi z 20. Společnost implementuje návrhy algoritmů a aplikací napsaných ve všech jazycích z rodiny "C", včetně oblíbených platforem Meta Trader 4 a 5. Expertní poradci naleznete na www.expertadvisors.pl.