3. MQL4 - Ještě, než začneme kódovat

Napsal:   Sekce: MQL4

Řízení motorového vozidal je vždy záživnější, než studování předpisů. Stejně tak je to v programování. Samotné kódování není tak nudné, jako čtení referenčních manuálů, ale bez základních znalostí se programovat ani nedá začít. V tomto díle se podíváme trochu do struktury jazyka MQL4.

Předchozí díl

Než se pustíme do našeho prvního skriptu, je třeba si říct něco k jazyku MQL4 a k jeho struktuře. Pokud máte zkušenost s programování, můžete tuto kapitolu přeskočit, jelikož by vás asi nudilo povídání o tom, co je to double a co datetime. Nicméně vás, stejně jako ty, co si tuto kapitolu přečtou, odkážu na referenční dokumentaci jazyka, kde se dozvíte komplexnější informace (informace na adrese http://www.mql4.com). Nebudu tu probírat vše ohledně jazyka MQL4, ale je třeba zmínit základní informace nezbytné pro další pokračování.

Syntaxe jazyka MQL4 je podobná jazyku C, až na několik výjimek. Jedná se o procedurální jazyk, což znamená, že se volají funkce k určitému vykonání nějaké akce. Jako v každém programovacím jazyku, i zde se používají proměnné, které uchovávají během programu data k dalšímu zpracování. Tato data mohou být různého typu a od toho se odvíjí termín datové typy. Pomocí funkcí pak můžete zpracovávat tato data a vytvářet logiku skriptu. K tomu všemu vám pomůže jazyk MQL4 s vestavěnými klíčovými slovy a funkcemi.

 

Datové typy

  •  Celočíselné hodnoty (klíčové slovo int) – tento typ uchovává celá čísla, např. 1234
  •  Čísla s desetinnou čárkou (klíčové slovo double) – čísla s desetinným místem, kde oddělovačem je tečka, např. 1234.56
  •  Booleanovské hodnoty (klíčové slovo bool) – jedná se o hodnoty pravda / nepravda, vyjádřené jako 1 nebo 0, lze místo 1 použít True a místo 0 hodnotu False
  •  Řetězce (klíčové slovo string) – tento typ v sobě ukládá textové hodnoty, např. "Nějaký text"
  •  Datum a čas (klíčové slovo datetime)  - datetime v sobě ukládá hodnotu datumu vyjádřenou v anglickém tvaru rok.měsíc.den hodina:minuta:sekunda, např. D'2001.5.30 20:15:31'
  •  Barva (klíčové slovo color) – reprezentuje hodnotu barvy, kterou lze vyjádřit jako řetězec známé webové barvy (např. Yellow, názvy barev najdete v dokumentaci pod složkou Standard constants / Web colors) nebo konstantou RGB (např. C'15,150,230'), kde jednotlivá čísla představují hodnoty barev červená, zelená, modrá.
  •  Znak (klíčové slovo int) – představuje číselnou hodnotu znaku, např. 'A' = 65

 

Speciální funkce

V jazyku MQL4 můžete vytvářet své vlastní funkce, ale existují předdefinované názvy funkcí, které mají svůj vlastní účel:

  •  Funkce init() – slouží k inicializaci skriptu, např. k inicializaci proměnných, ke spuštění jiných funkcí, které mají za úkol vykonat různé inicializační akce před samotným spuštěním hlavního skriptu
  •  Funkce start() – je základní funkce. Pro EA se volá pokaždé, co se provedla změna ceny na trhu. U indikátorů se tato funkce zavolá po vložení indikátoru do grafu a změny ceny na trhu. U skriptů se vykoná okamžitě po vložení skriptu do grafu.
  •  Funkce deinit() – metoda se vykoná po ukončení programu a slouží k deaktivování použitých objektů, uvolnění prostředků v paměti a jiným deinicializačním akcím.

 

Vlastní proměnné

Jak už jsem se zmínil o datových typech, v editoru můžete používat své vlastní proměnné, do kterých si budete ukládat data, která pak nějakým způsobem zpracujete. Proměnné mohou být globální, tzn., že jsou dostupné kdekoli v kódu nebo privátní, které jsou dostupné pouze v určité části kódu.

Definice proměnné vypadá takto:

int mojeCislo;

kde int určuje datový typ proměnné a mojeCislo je název proměnné. Jazyk MQL4 je tzv. "case-sensitive", což znamená, že veškeré názvy proměnných či funkcí respektují pravidlo velkých a malých písmen. Vysvětlím na příkladu:

int mojeCislo;
int MojeCislo;    // tato proměnná není to samé jako proměnná nad ní

Ve výše uvedeném příkladu vidíme rozdíl v názvech a to ve velikosti prvního písmene. Jedná se o dvě různé proměnné, proto je třeba na toto dávat pozor a správně volit názvy proměnných. V případě záměny takto použitých proměnných by vám kód operoval s jinými daty a to by pochopitelně znehodnotilo význam kódu.

Definici proměnné lze zapsat i s inicializací hodnoty:

int mojeCislo = 3;

 

Vlastní funkce

V kódu si můžete napsat vlastní funkce, které mají za úkol vykonat určitou akci. Je dobré škálovat kód do funkcí a nemít všechnu logiku v jedné funkci. Pokud se nějaká akce vícekrát opakuje, již toto je signál pro umístění této akce zvlášť do funkce. Jednak to zpřehlední a zmenší velikost kódu a hlavně usnadní případné úpravy jednotlivých bloků kódu. Funkce může vykonat kód bez návratové hodnoty nebo může nějakou hodnotu vrátit. Stejně tak lze funkci předat jiné hodnoty ke zpracování v podobě parametrů funkce.

Definice jednoduché funkce bez návratové hodnoty vypadá takto:

void vypisAktualniNabidku()
{
      // zde již pokračuje kód funkce
}

Klíčové slovo void zde říká, že funkce nevrací žádnou hodnotu, je určena pouze k vykonání nějakého kódu.  Kód, který se má uvnitř funkce vykonat je uzavřen do složených závorek { a }.

Definice jednoduché funkce, která má návratovou hodnotu, vypadá takto:

double dejNabidku()
{
      double nabidka = 3.25;
      return(nabidka);
}

Zde klíčové slovo double říká, že hodnota vrací datový typ desetinné číslo. Uvnitř funkce je použitá vlastní proměnná, která nastavuje nějakou hodnotu a na konci funkce je klíčové slovo return, které vrací hodnotu zpět do místa, odkud se funkce zavolala.

Funkce s parametrem pak vypadá takto:

double dejCastNabidky(int pomer)
{
      double nabidka = 3.25;
      double vysledek = nabidka / pomer;
      return(vysledek);
}

Za názvem funkce je v závorkách parametr, který předává funkci hodnotu daného datového typu, kterou pak v kódu nějakým způsobem zpracujeme. Funkce může obsahovat více parametrů oddělené čárkou:

double dejCastNabidky(int pomer, datetime casNabidky, string jmenoZadatele)
{
      
}

Nyní, když víme, jak se definují funkce, si ukážeme, jak se funkce volají:

int start()
{
      double mojeNabidka = dejNabidku(3);
      return(0);
}
double dejNabidku(int pomer)
{
      double nabidka = 3.25;
      double vysledek = nabidka / pomer;
      return(vysledek);
}

První funkce je speciální funkce spouštějící tělo hlavního skriptu. Druhá funkce je již známá z výše uvedeného příkladu. Uvnitř funkce start() pak nastavíme do naší proměnné mojeNabidka hodnotu, kterou získáme z funkce dejNabidku(). Tato funkce přejímá hodnotu v parametru funkce. Na konci je již ukončení funkce start s návratovou hodnotou (nula říká, že funkce start proběhla v pořádku).

 

Globální a privátní proměnné

V odstavci Vlastní proměnné jsem se zmínil o tom, že proměnné mohou být globální nebo privátní. Globální proměnné jsou určeny pro celý kód a mají tak k těmto proměnným přístup ostatní funkce skriptu. Kdežto privátní proměnné jsou určené pouze v rámci jedné funkce a ostatní funkce k takovéto proměnné nemohou přistupovat. Privátní proměnnou jsme si již ukázali ve výše uvedené funkci dejNabidku(), kde proměnná nabidka je přístupná pouze v rámci těla této funkce a funkce start() již tuto proměnnou nezná. Pokud potřebujeme v kódu mít proměnnou s obecnými daty, kterou chceme globálně používat ve více funkcích, musíme proměnnou definovat mimo těla funkcí, nejlépe na začátku celého skriptu. Ukážeme si na příkladu:

double pocetLotu = 0.2;

int start()
{
      double mojeNabidka = dejNabidku(3);
      double loty = pocetLotu;
      return(0);
}

double dejNabidku(int pomer)
{
      double nabidka = 3.25;
      double vysledek = nabidka / pomer;
double loty = pocetLotu;
      return(vysledek);
}

Na začátku kódu jsme definovali proměnnou pocetLotu. Toto je globální proměnná, jelikož stojí mimo těla funkcí a lze tak v kterékoli funkci zpracovávat hodnotu této proměnné.

Jazyk MQL4 nabízí ještě další možnosti zpracování kódu, jako jsou podmínky, cykly, přepínače, ale těmi vás v této fázi nebudu zatěžovat. Ve vlastním zájmu si je můžete prostudovat v dokumentaci ve složce Basics / Operators. Dostaneme se k nim později, až budeme psát své první skripty a já věřím, že je za pochodu pochopíte velice rychle.

 

Hodnocení článku:
Klíčová slova: MQL4 | Programování | Nabídka | EMU |
Sdílení článku:
Facebook

Čtěte více

  • 1. Vytesniť!
    Séria článkov z oblasti psychológie obchodovania a psychologie prístupu k obchodovaniu, kde si myslím je kameň úrazu neziskovosti a hlavný rozdiel medzi traderom ktorý vie vyprodukovať dlhodobé zisky a dlhodobo si ich dokáže udržať. Dlhodobo! haha myslené pol roka roka a viac, ozaj nejde o časovú periodu mesiaca alebo pár mesiacov po sebe. Ak v čomkoľvek dosiahnete obstojné výsledky krátkodobo a v dlhodobom merítku o tieto výsledky prídete alebo ich nie ste schopný zopakovať tak väčšina ľudí sa zhodne že šlo o šťastie, naopak ak mesiac dva tri výsledky nie su ale počas dlhšej časovej periody výsedky dosiahnete skoro každý povie že ste si vydreli úspech. Tak to proste je.
  • 10. MQL4 - Moje první strategie (2/2)
    V následujícím bloku budeme pokračovat ve vytváření naší první strategie
  • 123 signal trading
    Hello guys and girls. My name is Athena Cohen, I come from California, and I would like to share my trading ideas with you, who can understand my english.
  • 2. MQL4 - Vzhled editoru MetaQuotes
    V tomto díle se v rychlosti seznámíme se vzhledem editoru jazyka MQL4 a s jeho základními možnostmi.
  • 2. Riziko
    Dnes napíšem pohľad na všeobecné riziko ktoré číha nonstop vôkol nás v tej najrôznejšej podobe. Ktoré si možno ako riziko neinterpretujeme alebo sme ochotný to "risknúť" a akceptovať ho. Téma rizika je s finančným trhom úzko spätá tak preto článok na túto tému má zmysel. Článok bude mať pokračovanie kde sa zamerám výhradne na rizika priamo číhajúce v trhu a ako ich prípadne minimalizovať. Je nutné si uvedomiť že riziko obnáša každodenný život a takto na riziko aj nahliadať. Je to veľmi dôležité pri pôsobení na finančných trhoch.
  • 2. týden prvního kola investiční soutěže
    Máme za sebou 2. týden prvního kola investiční soutěže, která probíhá na tzv. “demo“ fiktivních účtech. Každý soutěžící odstartoval hru se stejným počátečním kapitálem 30 000 Kč.
  • 20ti minutový perfektní den dle R. Horner
    Článek od Raghee Horner - 20ti minutový perfektní den...
  • 20 vytrvalých
    Jsem day-trader na EUR/USD. Forex obchoduji 5 let.
  • 2004-2015: 11 let obchodování a stále v zisku. Jaké je tajemství?
    Přemýšleli jste někdy nad tím, jak dlouho budete chtít trading provozovat? A jak to udělat, abyste byli i za pár let stále ve hře? Jaký časový horizont uvažujete? Pět, možná deset let? A mít vlastní klienty? Kolik myslíte, že by vám takový trading zabral času? A jak jej vybudovat? Řešení už existují a nemusíte je hledat. Trader a zubař, Julius H. je na burze od roku 2004. Prošlapal cestu a zjistil, jak být na trhu po desetiletí úspěšný. Když jsem se s ním potkal, tušil jsem, že je přede mnou výjimečný rozhovor s výjimečným člověkem. A bylo to více než správné tušení.
  • 3 moje minuloročné investície
    Jednoznačne najviac mi minulý rok zarobila firma Estee Lauder, konkrétne 66,35%. Známa firma vyrábajúca kozmetické produkty - makeupy, krémy, vône a pod. Zaznamenala v roku 2017 vysoký rast tržieb a rast čistých ziskov.
  • 9. MQL4 - Moje první strategie (1/2)
    V tomto díle si společně napíšeme vlastní strategii. Začneme nejprve vytvořením knihovny s pomocnými funkcemi pro obchodování.
  • 8 pips
    Dnes mi dorazila zpráva od mého dobrého přítele. Napsal mi v ní: "Tak dneska jsem vydělal jen 8 pips". Trh EUR/USD se dnes do této chvíle pohyboval v rozmezí High a Low asi 80 pips. Nabízí se zde otázka: Je 8 pips profitu za jeden den skutečně tak málo?
  • 8. MQL4 - Tester strategií
    V tomto díle se v rychlosti seznámíme s testerem strategií, který nám pak poslouží k testování a ladění naší strategie.
  • 7. MQL4 - Funkce pro obchodování
    V tomto díle si představíme poslední oblast jazyka MQL4 tak, abychom byli schopni napsat svoji vlastni strategii pro automatizované obchodování a tím jsou funkce pro práci s pokyny.
  • 6. MQL4 - Technické indikátory
    V tomto díle se podíváme funkce, které vracejí data jednotlivých indikátorů.
  • 5 nejsilnějších emocí tradera
    Psychologie obchodování je nedílnou součástí každého z nás. Trhy jsou jakýmsi živým organismem, u kterého se snažíme racionálním přístupem zanalyzovat jeho vývoj, což vytváří rozpor mezi očekáváním a konečným výsledkem.
  • 5. MQL4 - Předdefinované proměnné
    V této kapitole se trochu ponoříme do jazyka MQL4 a představíme si základní proměnné, pomocí kterých můžeme zjišťovat informace o cenách.
  • 5 koníčků, které vám mohou pomoci v tradingu
    V jednom z minulých článků jsme si řekli, že život není jen o vysedávání u obrazovek, a že byste si měli k tradingu najít hobby, u kterého si psychicky odpočinete. Již od útlého věku má většina z nás své vlastní koníčky. Také se nejspíš shodneme na tom, že každý by si měl své koníčky zvolit podle toho, co ho samotného baví a naplňuje.
  • 4. MQL4 - Můj první skript
    V této kapitole si zkusíme společně vytvořit první velice jednoduchý skript. Ukážeme si tak, jak se skript zakládá, seznámíme se s prvními funkcemi a nasadíme skript do platformy MetaTraderu.
  •  


    Diskuse ke článku

    Diskuse je přístupná pouze pro registrované uživatele.
    Přihlásit se | Nová registrace

avatar

Autor:

Geafer

Hodnocení autora:
Bližší informace o autorovi >>

Kategorie blogu

reklama
LYNX logo

Kurzy obchodování

Bře
3

Exkluzivní VIP seminář: Obchodujte jako bankovní trader!

Představujeme vám exkluzivní seminář, který účastníky semináře posouvá mezi tradingovou elitu. V průběhu semináře se dozvíte veřejně nedostupné informace o tom, jak ve skutečnosti funguje forex, pravdu o retailových brokerech a další veřejně nedostupné informace z obchodování bank a tradingu na institucionální úrovni.

Bře
24

Nový seminář: Psychologie tradingu a profesionální Money-Management

Zcela nový seminář z dílny FXstreet.cz a tentokrát se zaměřením na psychologii obchodování a money-management. A právě toto téma je naprosto nejdůležitější a současně bohužel nejvíce podceňované a opomíjené téma většiny obchodníků. Tento seminář tak doplňuje naše ostatní kurzy, které se zaměřují spíše na technickou stránku tradingu. Úspěch tradera záleží hlavně na jeho psychice a přístupu k obchodování. Přijďte se naučit ty nejsilnější nástroje, tipy a rady, které vám k úspěchu pomohou. Tento unikátní seminář zcela jistě změní váš přístup k tradingu a tím také vaše celkové výsledky. Seminářem vás budou provázet úspěšní tradeři Ondřej Hartman a Jakub Hodan.

Dub
14

Praktický workshop technické analýzy + profi obchodní systémy na FOREXu

FXstreet.cz představuje unikátní seminář s hostem - Patrikem Urbanem, který působil jako profesionální trader na Wall Streetu. Praktické použití technické analýzy, Price Action a obchodní systémy ziskových traderů. Kromě Patrika Urbana na semináři jako host vystoupí také full-time trader Jakub Hodan.

Dub
21

Juniorská škola tradingu - Forex I-II (Praha)

Juniorská škola tradingu - Forex I-II je určena pro začínající tradery. Pokud chcete vyzkoušet něco nového, vymanit se z davu a být úspěšný v obchodování na finančních trzích, tak je tento seminář určen právě vám.

Literatura

titulka_smallsize.jpg

Novinka! Kniha "Jak se stát forexovým obchodníkem" Ondřeje Hartmana vychází ve druhém a výrazně rozšířeném vydání!

Kniha vychází již ve druhém, ale tentokrát výrazně upraveném a rozšířeném vydání. Kniha je koncipována tak, aby byla užitečným průvodcem jak začínajícím obchodníkům bez zkušeností, tak i těm, kdo na forexu již obchodují a potřebují si prohloubit své znalosti.

Day_Trading_obalka_78x110.jpg

Kniha "FOREX – Ziskové intradenní a swingové obchodní strategie" od Kathy Lien vychází v češtině!

Je nám velikou ctí, že můžeme obohatit český a slovenský forexový trh světově uznávanou knihou číslo 1 pro každého, kdo chce do hloubky pochopit fungování největšího světového finančního trhu.

C:\fakepath\kathy-lien-08112017.jpg

Světový bestseller o tradingu v češtině! Úspěšní obchodníci: Jak běžní lidé porážejí Wall Street v jeho vlastní hře

Jedna z nejprodávanějších knih od Kathy Lien právě vychází v českém překladu! Obsahuje sérii rozhovorů Kathy Lien s nejúspěšnějšími tradery. Tato kniha se stala inspirací pro tisíce čtenářů po celém světě. Setkáte se v ní s příběhy obyčejných lidí, kteří dokázali zbohatnout díky systematickému dodržování konkrétních pravidel v tradingu. Bez ohledu na jejich povolání jsou dnes úspěšnými obchodníky a investory. V této knize vám budou představeny jejich obchodní přístupy a strategie, které vám pomohou pochopit, jak lze pomocí vlastní píle dosáhnout úspěchu ve zdánlivě složitém světě tradingu.

Forex - doporučené články:

Co je FOREX?
Základní informace o finančním trhu FOREX. Forex je obchodování s cizími měnami (forex trading) a je zároveň největším a také nejlikvidnějším finančním trhem na světě.
Forex pro začátečníky
Forex je celosvětová burzovní síť, v jejímž rámci se obchoduje se všemi světovými měnami, včetně české koruny. Na forexu obchodují banky, fondy, pojišťovny, brokeři a podobné instituce, ale také jednotlivci, je otevřený všem.
1. část - Co to vlastně forex je?
FOREX = International Interbank FOReign EXchange. Mezinárodní devizový trh - jednoduše obchodování s cizími měnami - obchodování se směnnými kurzy.
VIP zóna - Forex Asistent
Nabízíme vám jedinečnou příležitost stát se součástí týmu elitních obchodníků FXstreet.cz. Ve spolupráci s předními úspěšnými obchodníky jsme pro vás připravili unikátní VIP skupinu, až doposud využívanou pouze několika profesionálními tradery, a k tomu i exkluzivní Price Action VIP indikátor, doposud úspěšně používaný pouze k soukromým účelům. Nyní se vám otevírá možnost stát se součástí této VIP skupiny, díky které získáte jedinečné know-how pro obchodování na forexu, výjimečný Price Action VIP indikátor, a tím také náskok před drtivou většinou ostatních účastníků trhu.
Forex brokeři - jak správně vybrat
V podstatě každého, kdo by chtěl obchodovat forex, čeká jednou rozhodování o tom, s jakým brokerem (přeloženo jako makléř/broker nebo zprostředkovatel) by chtěl mít co do činění a svěřil mu své finance určené k obchodování. Velmi rád bych vám přiblížil problematiku výběru brokera, rozdíl mezi jednotlivými typy brokerů a v neposlední řadě uvedu několik příkladů nejznámějších z nich.
Forex robot (AOS): Automatický obchodní systém
Snem některých obchodníků je obchodovat bez nutnosti jakéhokoliv zásahu do obchodu. Je to pouhá fikce nebo reálná záležitost? Kolik z nás věří, že "roboti" mohou profitabilně obchodovat? Na jakých principech fungují?
Forex volatilita
Forex volatilita, co je volatilita? Velmi užitečným nástrojem je ukazatel volatility na forexu. Grafy v této sekci ukazují volatilitu vybraného měnových párů v průběhu aktuální obchodní seance.
Forex zůstává největším trhem na světě
V dnešním článku se podíváme na nejnovější statistiky globálního obchodování na forexu. Banka pro mezinárodní vyrovnání plateb (BIS) totiž před pár týdny zveřejnila svůj pravidelný tříletý přehled, ve kterém detailně analyzuje vývoj na měnovém trhu. BIS je označována jako "centrální banka centrálních bank". Je nejstarší mezinárodní finanční organizací a hraje klíčovou roli při spolupráci centrálních bank a dalších institucí z finančního sektoru. Dnešní vzdělávací článek sice nebude zcela zaměřen na praktické informace z pohledu běžného tradera, ale i přesto přinese zajímavé a důležité poznatky.

Nejnovější články:


Naposledy čtené:


FXstreet.cz - forex, komodity, kryptoměny, trading, zpravodajství

Nezávislý investiční server zaměřený na forex, komodity, kryptoměny, trading a zpravodajství. Vzdělávací články, cenové grafy, cizí měny, semináře, ekonomické a forex zprávy.
reklama
LYNX logo
reklama
Purple - strategy
reklama
XTB MT4
reklama
XTB MT4