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

  • 3cAnalysis: Týždenný výhľad pre GBP/USD, USD/JPY a NASDAQ
    FXstreet.cz, v spolupráci s 3cAnalysis, prináša svojim čitateľom možnosť nahliadnuť na spôsob technickej analýzy pre vybrané menové páry, európske a americké akciové indexy, akým je poskytovaná inštitucionálnym klientom či profesionálnym obchodníkom na kapitálových trhoch.
  • 3cAnalysis: Týždenný výhľad pre menové páry EUR/USD, EUR/GBP a USD/JPY
    3cAnalysis v týchto dňoch ponúka čitateľom FXstreet.cz, v pilotnom režime, možnosť nahliadnuť na analytické služby pre vybrané menové páry v slovenskom jazyku.
  • 3cAnalysis: Týždenný výhľad pre menové páry EUR/USD, GBP/USD a USD/JPY
    3cAnalysis v týchto dňoch ponúka čitateľom FXstreet.cz, v pilotnom režime, možnosť nahliadnuť na analytické služby pre vybrané menové páry v slovenskom jazyku.
  • 3cAnalysis: Týždenný výhľad pre menové páry EUR/USD, GBP/USD, USD/JPY
    3cAnalysis ponúkne prvýkrát týždenný výhľad na vybrané menové páry v sekcii “Blogy užívateľov” na stránke FXstreet.cz.
  • 3cAnalysis: Týždenný výhľad pre menové páry GBP/USD, EUR/GBP a USD/JPY
    3cAnalysis v týchto dňoch ponúka čitateľom FXstreet.cz, v pilotnom režime, možnosť nahliadnuť na analytické služby pre vybrané menové páry v slovenskom jazyku.
  • 3cAnalysis: Týždenný výhľad pre páry EUR/USD, GBP/USD a USD/JPY
    3cAnalysis v týchto dňoch ponúka čitateľom FXstreet.cz, v pilotnom režime, možnosť nahliadnuť na analytické služby pre vybrané menové páry v slovenskom jazyku.
  • 3cAnalysis: Týždenný výhľad pre USD/JPY, FTSE100 a S&P 500
    3cAnalysis ponúka čitateľom FXstreet.cz, v pilotnom projekte, možnosť nahliadnuť na analytické služby pre menové páry v kombinácii s európskymi a americkými akciovými indexami, v slovenskom jazyku.
  • 3 důvody, proč mobilní obchodování Forexu nemusí být dobrým nápadem
    Otázka mobility je nyní bezpochyby velmi diskutované téma, které je už nějakou dobu na vzestupu popularity. Myšlenka, že lze obchodovat Forex z mobilního zařízení, zní samozřejmě velice lákavě, a není proto divu, že dnes již většina významných makléřů v nějaké podobě takovouto službu nabízí.
  • 3. Minimalizovanie rizika
    V dnešnom článku na tému minimalizovanie rizika budem písať aké rizika na trhoch číhajú a ako ich efektívne minimalizovať na priateľnú mieru. Tieto metódy sám realizujem a myslím si že su dostatočné a postačujúce nato aby ktokoľvek kto ich aplikuje bol kľudnejší čo sa týka jeho kapitálu. Nieje to nič nové a prevratné. Niečo som "vymyslel" aj sám s neurčitým tušením že asi som nebol prvý kto nato prišiel, čo sa mi časom potvrdilo haha. Ide o zhrnutie a nahustenie metód minimalizacie rizika do jedného komplexného systému ktorý by mal riziko minimalizovať na minimum. Myslím si že to je veľmi podstatné pre všetkých ktorý opatrne a rozumne spravujú svoj kapitál.
  • 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 tipů pro efektivní skalpování
    Dozvíte se, na co byste si měli dát pozor, co si důkladně promyslet a v jakých oblastech na sobě pracovat, abyste se stali ziskovým skalperem.
  • 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 velkých mýtů o obchodování forexu
    Pokud jste ve světě obchodování forexu nováček a hledáte informace, jak vůbec začít, vězte, že v tomto odvětví platí, že je propleteno spoustou balastu a zkreslených informací. Po čas celé své tradingové kariéry se budete neustále zdokonalovat a nejspíš vyhledávat nové informace a rady na internetu.
  • 5 rozdielov v tradingu kryptomien a forexu
    Dnes vám opíšem 5 zásadných rozdielov pri tradingu krypto trhu a forexových mien. Každá je v niečom lepšia a v niečom horšia a idem na tie rozdiely poukázať. Aj keď je tu kryptosvet iba necelých 10 rokov a forex niekoľkonásobne viac, tak popularita týchto trhov je celkom podobná.
  • 5 rozdielov v tradingu kryptomien a akcii
    V dnešnom blogu Vám vysvetlím zásadných 5 rozdielov pri tradingu a akciach. Každé má svoje pro a proti, no jeden trh je regulovaný a druhý nie je a tam začínajú všetky problémy aj príležitosti. Veľa začiatočníkov verí, že kupovanie kryptomeny cez krypto burzu je ako kupovať akcie cez brokera, no pravda je inde.
  • 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.
  •  


    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 Cesta Tradera

Kurzy obchodování

Bře
23

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.

Dub
13

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.

Kvě
18

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.

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
Bossa mentoring
reklama
CLEO.one
reklama
Admiral Markets SE
reklama
Admiral Markets SE