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

  • Živé obchody dělají mistra
    Tři měsíce pravidelného obchodování nesou slušný základní obrázek o stylu a výsledku obchodníka. Většina profesionálních obchodníků musí minimálně za tři měsíce vykázat výborné výsledky obchodování a pak může vstupovat do různých výzev a projektů, které nabízí obrovské možnosti. Tři měsíce ukazují pochopení nebo nepochopení všeho. Tři měsíce konzistentního chování na trhu je prvotní výzva pro každého profi tradera, která rozseká nebo posílí jeho sebeúctu a drive.
  • Život není jenom trading
    Většina obchodníků si tím obdobím prošla. Vidina zisků a posunu k vysněnému životnímu stylu je přiměla vyměnit všechen svůj čas za vysedávání u monitorů a bezhlavé sledování trhů od ráno do večera, od večera do rána. Je jednoduché tomu propadnout. Ať je váš vztah k tradingu a k penězům jakýkoliv, pamatujte na to, že jsou to jen čísla. Dejte si na to pozor.
  • 1. MQL4 - Úvod do automatizovaného obchodování
    Automatizované systémy jsou jistě populární a kdo by nechtěl mít jeden takový. Cílem článku není vás naučit úspěšně obchodovat, ale jak si napsat takový systém sám. Třeba právě vy máte tu nejlepší strategii, jenom nevíte, jak využít možností MetaTraderu a plně ji zautomatizovat.
  • 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. 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í.
  • 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 CZK

Kurzy obchodování

Lis
25

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.

Pro
2

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.

Led
13

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.

Led
20

Jak vytvářet ziskové AOS a testovat obchodní strategie

Představujeme vám exkluzivní seminář se zástupci profesionálního vývojářského týmu, působícího ve společnosti FXstreet.cz. Hlavní náplní budou základy tvorby automatických obchodních systémů (AOS) pro platformu MetaTrader 4 včetně praktických ukázek. Naučíte se také správně backtestovat ziskovost AOS. Navíc si sami v průběhu semináře vytvoříte svůj první ziskový AOS.

úno
10

Profesionálem na forexu - kurz pro pokročilé tradery (Brno)

Seminář Profesionálem na forexu je určený pro absolventy kurzu Juniorská škola tradingu a pro pokročilé forexové tradery. Naučíme vás naše ziskové intradenní a swingové obchodní strategie a posuneme vás k vyšším ziskům. Jedná se o jeden z nejlépe hodnocených seminářů FXstreet.cz a věnujeme se na něm hlavně korelačním strategiím a intermarket analýze. Sleva: Absolventi semináře Juniorská škola tradingu mají tento seminář za 4 400,-Kč.


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.

zaciname na burze 03112013.jpg

Začínáme na burze - Jak uspět při obchodování na finančních trzích

Chcete dosáhnout úspěchu při obchodování na finančních trzích? Už jste to zkoušeli a stále se vám moc nedaří? Nevyznáte se v příliš odborných analýzách na finančních serverech? Všem začínajícím investorům přichází na pomoc nová kniha od zkušeného autora – Začínáme na burze.

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
Purple - ZERO
reklama
HighSky Broker soutez lyze
reklama
Patria garance
reklama
Purple - seminare