Neděle 04. prosinec 2022 06:44
reklama
Dukascopy krypto
reklama
Coinfy
reklama
Dukascopy forex
reklama
Instaforex webinar krypto

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: 
   

Čtěte více

  • 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ôležité obchodné príležitosti na najbližšie týždne
    V tomto pravidelnom tradingovom výhľade poukážem na minulý vývoj menový párov a pomocou technickej analýzy urobím predikciu na budúce dianie. Pozrieme sa na tri menové páry a to NZD/USD, GBP/NZD a USD/JPY z weekly, daily a H4 timeframe. Už je za rohom október, čo je jeden z najvolatilnejších mesiacov a posledný kvartál v roku, tak sa pripravte na zaujímavé pohyby!
  • 3 důležité oblasti money-managementu
    Money-management neboli česky správa peněz je důležitou oblastí tradingu, kterou musí zvládat všichni obchodníci, aby si zachovali svůj kapitál. Přiměřeným řízením svého rizika a objemu obchodování mohou obchodníci zajistit, že jsou schopni zůstat na trhu dlouhodobě a využít ziskové obchodní příležitosti. V tomto příspěvku si blíže rozebereme 3 klíčové oblasti money-managementu.
  • 3 důležité skutečnosti, které je třeba mít stále na paměti
    V tomto článku se podíváme na několik skutečností, jejichž uvědomění vám pomůže stát se lepším traderem. O některých jste možná slyšeli, o jiných třeba sami přemýšleli.
  • 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 kľúčové návyky pre úspech v obchodovaní
    Väčšina aspektov obchodovania dobre zapadnú do toho o čom budem dnes písať. Je milión spôsobov ako sa dá obchodovať aj takých, ktoré vám zarobia, no iba pár ktoré vám sedia a dokážete ich dlhodobo využívať. Čo je ale naozaj dôležité pre úspech v obchodovaní sú tieto tri návyky.
  • 3 kroky k investicím do 5G
    Nová generace bezdrátové mobilní technologie, nazývaná 5G, je již dostupná v mnoha telekomunikačních sítích a oproti 4G má obrovské výhody. Rychlost 5G může být až stokrát vyšší než 4G, latence je nižší (což znamená, že se rychleji pohybuje mezi věžemi a zařízeními) a kapacita je lepší, což umožňuje připojení většího počtu zařízení. Vzhledem k tomu, že 5G je již na mnoha trzích zavedeno, investory možná zajímá, které společnosti by mohly z této nové technologie těžit nejvíce. Proč jsou podle mého názoru NVIDIA, Qualcomm a Apple nejlepšími akciemi v oblasti 5G?
  • 3 letné obchodné signály
    V tomto pravidelnom tradingovom výhľade poukážem na minulý vývoj menový párov a pomocou technickej analýzy urobím predikciu na budúce dianie.
  • 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.
  • 3 obchodné dni (ziskové) na DAX-e
    V jednom z predchádzajúcich článkoch som spomínal testovanie, resp. rozširovanie T/P a S/L s potenciálom väčšieho zisku. Uvedené aktuálne realizujem na demo verzii. Zdôrazňujem demo, nakoľko predchádzajúce výsledky som výlučne zverejňoval z reálneho účtu. Vzhľadom k transparentnosti, nechcem aby prišlo k domnienkam, alebo zámene, nakoľko obchodovanie na reálnom účte a na deme má svoje nenapodobiteľné špecifiká predovšetkým z psychickej oblasti.
  • 3 reálne obchody
    V dnešnom článku rozanalyzujem tri reálne obchody tvoriace základný kameň môjho hodnotenia práve sa končiaceho týždňa. Uvediem rozdiely medzi úspešným a neúspešným obchodom, nakoľko tak ako zvyknem písať, nie vždy stratový obchod automaticky vyjadruje neúspešnosť a naopak, ziskový úspešnosť. Samozrejmosťou je pridaná hodnota v podobe jednej z možností „Vnímania trhu do „opačného smeru“ a krátky pohľad na „Syndróm FOMO“.
  • 3 tipy pro vybalancování tradingu
    Pokud chcete skutečně obchodovat profesionálně a stát se konzistentně ziskovým traderem, připravte se, že to bude vyžadovat velkou porci úsilí z vaší strany. Připravte se, že v určitých okamžicích to bude psychicky skutečně náročné. Je to jedna z mála profesí, která vám nastavuje skutečné zrcadlo ve formě ekvitní křivky vašeho obchodního účtu. Psychická příprava na těžké dny je absolutně nezbytná. V tomto článku vám nastíníme, jakým směrem byste se měli ve vaší psychologické průpravě vydat.
  • 3 věci, které může trader dělat přes víkend
    Máte za sebou těžký týden v obchodování. Pátek se rychle blíží a jako obvykle přemýšlíte, co můžete dělat, abyste se nenudili (kromě obvyklého času stráveného s přáteli, rodinou nebo před televizí). Sestavil jsem seznam 3 věcí, kterými se mohou tradeři zabavit o víkendu a které by mohly potenciálně zlepšit jejich výsledky. Pojďme se podívat, které činnosti to jsou.
  • 3 věci, které vám pomohou udržet si pohodlí při tradingu
    V tomto článku si ukážeme, jak dodržování tří důležitých věcí nám pomůže zlepšit pohodlí při tradingu. Budeme-li se cítit lépe, tak se to vždy pozitivně projeví i v našich obchodních výsledcích. Naopak tradeři, kteří obchodují pod neustálím stresem, tak nedosahují konzistentních výsledků.
  • 3 základné scenáre na Bitcoine. Do 14 dní na 17 000 USD?!
    V tomto článku sa pozrieme na 3 základné scenáre, ktoré sledujem na Bitcoine. Začneme tým úplne základným a pomaly prejdeme na alternatívne scenáre.
  • 3 000 EUR to 10 000 EUR Challenge System
    Zdravim vsetkych priaznivcov FXstreet.cz. Rad by som sa podelil o svoje takmer osem rocne skusenosti z obchodovanim. Ako som spominal, obchodujem uz dost dlho na to aby som vedel poradit a odpovedat na cokolvek z oblasti tradingu.
  • 362 tisícin
    Fascinuje mě svět formule 1. To nikdy nekončící úsilí o zlepšení a překonání nejen hranic možností, ale především soupeřů. Je to tak komplexní soutěž, ve které se setkávají faktory technické, fyzikální, i lidské. Musíte mít vynikající motor, skvělou aerodynamiku a k tomu i fantastického jezdce. Ale jen to nestačí. Musíte být nejen rychlí, ale i spolehliví.
  • 4 %, anebo 400 %?
    Na začátku své obchodnické „kariéry“ přemýšlíme nad několika věcmi. Jednou z nich je například to, že se jedná o poměrně jednoduchý způsob vydělávání peněz. Pominu-li, že je to vlastně pravda, další věcí, o které přemýšlíme, je to, jak to vydělávání asi bude vypadat.
  • 4 běžné obchodní chyby, které obchodník dělá, a jak jim zabránit
    V dnešním vzdělávacím článku se podíváme na čtyři běžné obchodní chyby, které obchodník dělá, a jak jim zabránit.
  •  


    Diskuse ke článku

    Diskuse je přístupná pouze pro registrované uživatele.
    Přihlásit se | Nová registrace
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 (speciální uzavřená sekce na webu), až doposud využívanou pouze několika profesionálními tradery, a k tomu i exkluzivní VIP indikátory, 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é VIP indikátory, 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é:

reklama
Dukascopy forex