Jak začít vytvářet vlastní automatické obchodní systémy pro forex/kryptoměny

aos

Pokud se zabýváte obchodováním s forexem, jistě jste už slyšeli o automatických obchodních systémech, tzv. AOS, které vám mají „samy“ vydělávat peníze.


Najde se skupina lidí, co tvrdí, že se jedná o podvod a pak druhá skupina, co říká „je to funkční, vydělávám tím“. Dnes si řekneme, jak to je ve skutečnosti.

Musíte si uvědomit, že systémů existuje celá řada a fungují na různých principech. Můžeme je rozdělit, podle toho jak vznikají:

  1. Systémy které se samy učí
  2. Běžné AOS

Nebo podle samostatnosti obchodování:

  1. Plně automatické obchodní systémy
  2. Polo automatické obchodní  systémy

Systémy které se samy učí

Někdo vytváří systémy, co se samy učí na historických datech. Např. systém vezme data z historie (rok, 2, 3 nebo 5 let)  spustí na nich určité množství indikátorů a různě je kombinuje (třeba i s patterny). Program mu vygeneruje stovky nebo i tisíce obchodních systémů. Většina systémů bude neúspěšná, ale pár desítek jich může být úspěšných. Ty se pak různě kombinují mezi sebou a teoreticky by měl vzniknout ziskový obchodní systém.

Systém může být opravdu ziskový, ale nemusí. Může se stát, že bude přeoptimalizovaný a bude fungovat jen za určitých podmínek, které platili v minulosti, ale v budoucnu nebudou. Proto je důležité systém manuálně projít a pokud možno ho, co nejvíce zjednodušit. Pak má systém předpoklad být opravdu ziskový.

„Standardní“ AOS

Většina obchodníků si však vytváří své automatické obchodní systémy sama nebo s pomocí někoho zkušenějšího.

Takové automatické systémy fungují většinou totožně jako obchodní systémy, které obchodník používá manuálně. Znamená to „jak běžně sám obchoduji, tak za mě stejně obchoduje počítač“, cílem je ušetřit čas, stihnout toho více a tím pádem i více vydělat. Může být takový systém ziskový? Ano, pokud je i váš „manuální“ systém ziskový a AOS funguje stejně, není v tom rozdíl.

Plně automatické systémy

Plně automatické systémy se využívají pro obchodování s forexem, samy otevřou i uzavřou obchod za předem jasně daných podmínek. Stačí tedy jen spustit a už vyděláváte/proděláváte. Výhodou i nevýhodou je, že chybí lidský prvek, který by uzavírání obchodů mohl ovlivnit na základě dalších informací.

Polo automatické systémy

Poloautomatické systémy se používají jak pro forex tak i pro binární opce. Respektive já je používám pro binární opce 😀 (nejspíše nebudu sám) .

Systém funguje, tak že si naprogramujete v jaké situaci vás má upozornit. Po upozornění sami vyhodnotíte situaci a uzavřete nebo neuzavřete obchod.

Problém je, že musíte sami manuálně zadávat příkaz pro uzavření obchodu. Na druhou stranu je to i výhoda, protože se můžete sami rozhodnout, zda obchod uzavřete nebo ne. Můžete se tedy např. podívat do ekonomického kalendáře, zda trh neovlivňují nějaké další aspekty.

Úvod do programování AOS

Většina lidi, které znám a slyší slovo „programování“, tak se zaleknou a řeknou si „to nezvládnu, na to nemám“ nebo hůř „nedělej si ze mě p*del, tohle jde absolutně mimo mě“. Není to proto, že by programování bylo složité, ale protože to neznají nebo hůře učili se to někde ve škole, kde je to nezajímalo a tak nic neumí.

Takže hoďme předsudky za hlavu a pojďme se vrhnout do praxe.

Principy programování

Pokud něco programujete je nutné programu přesně krok po kroku říct, co má dělat. Ukážeme si to na příkladu ze života. Představte si, že ráno vstanete a chcete si udělat čaj a pak ho pít.

Takže co uděláte?

  1. Dojdete do kuchyně.
  2. Připravíte si hrnek s čajem.
  3. Vezmete konvici na vaření vody.
  4. Natočíte do ní vodu.
  5. Konvici zavřete a položíte na „varný podstavec“.
  6. Zapnete a necháte vařit.
  7. Když je voda uvařená konvice se vypne.
    1. Nalijete do hrnku vařící vodu z konvice.
      1. Když je čaj vylouhovaný a zároveň není voda úplně vařicí.
        1. Můžete čaj začít pít.

Jak vidíte, tak děláte X kroků a vůbec nad tím nepřemýšlíte, děláte je automaticky. Programování funguje úplně stejně, jen musíte programu říct, aby ty kroky udělal za vás. V příštím díle si již ukážeme, jak vypadá programování v MetaTraderu.

První jednoduchý skript

Programovat budeme v jazyce MQL v programu MetaTrader 4. Předpokládám, že máte program nainstalovaný. Pokud ne, tak tady je kompletní návod, jak MetaTrader nainstalovat.

Veškeré články budu psát co nejjednodušší, aby je snadno pochopil každý, proto budu vždy uvádět jen nezbytné informace. Pojďme na to.

1. Zapnutí MetaEditoru

Spusťte si MetaTrader a stiskňete klávesu F4, tím se dostanete do MetaEditoru ve kterém budeme programovat. Případně se do editoru můžete dostat i z horního menu.

aos--1

2. Vytvoření skriptu

Soubor => Nový => Skript

aos-skript

Prozatím budeme používat jen „Skript“, postupem času vám vysvětlím, co znamenají další volby.

aos-skript-2

Vytvoříme si tedy nový skript, název mu zvolte podle sebe.

Následně se vám zobrazí stránka s editací skriptu. Vypadá takto:

aos-skript-3

void OnStart() je funkce, která se spustí ihned po startu programu, slovo „void“ znamená, že funkce nevrací žádnou hodnotu. Pojďme si tedy zkusit napsat testovací kód do funkce OnStart.

Například:

void OnStart()
 {
 Alert("Aktuální Bid cena pro měnový pár ", Symbol(), " je ", Bid); 
 }

Pokud chceme náš skript spustit, musíme ho nejprve uložit (ctrl + s) a následně zkompilovat (horní lišta, tlačítko „Kompilovat“). Pokud vše dopadne dobře, tak vespodu stránky editoru vidíme, že kompilace proběhla bez chyb.

Následně přepne okno na MetaTrader, v levém spodním boxu rozklikneme záložku „Skripty“ a najdeme náš testovací skript, můj se jmenuje „Testovací skript forbino.com/kurzy“ přetáhneme ho do grafu s měnovým párem, následně by se vám mělo zobrazit toto:

aos-skript-5

Toto byl jen naprostý začátek, doufám, že jsem vás navnadil. Nyní se podíváme na trochu teorie, protože bez ní se neobejdeme.

Datové typy a proměnné

Proměnná je místo v paměti, můžete do ní ukládat potřebná data. Každá proměnná musí mít definovaný typ.

Typy proměnných:

  • bool – lze do něj ukládá pouze hodnoty 0, 1 nebo také False a True
  • int – používá se pro ukládání celých čísel, například 12345
  • double – ukládá desetinná čísla, např.: 123.45
  • string – ukládá tzv. řetezce neboli text, např.: „nějaký text“
  • datetime – ukládá datum a čas ve tvaru rok.měsíc.den hodina:minuta:sekunda, např.: 2016.02.12 8:53:50

Použití proměnných v praxi

Do proměnných se hodnoty ukládají takto: typ NazevPromenne = hodnota

Například:

int cislo = 12345;
string testRetezce = „testovací řetezec“;

Název proměnné nesmí obsahovat čárky, háčky a speciální znaky. Pojďme si to vyzkoušet v praxi, vepište si do vašeho skriptu tento kód:

void OnStart()
{
Alert("Aktuální Bid cena pro měnový pár ", Symbol(), " je ", Bid);

int cislo = 12345;
string testRetezce = "testovací řetezec";
Alert(cislo, " ",testRetezce);
}

Skript uložte, dejte „Kompilovat“ a spusťte v MetaTraderu (přetáhnete do grafu s měnovým párem), následně by se vám mělo zobrazit toto:

aos-skript-6

Jak jste si všimli, tak používám funkci Alert(), tato funkce vypisuje svůj obsah, čárkami se oddělují jednotlivé proměnné. Kromě proměnných můžete pomocí Alert() vypisovat i vlastní text, jednoduše ho vložíte do uvozovek a oddělíte čárkou, například já jsem do tohoto skriptu vložil mezeru pomocí " ".

Proměnné můžeme rozdělit na dva další typy a to globální a privátní. Globální proměnné  lze používat v rámci celého kódu a privátní jen v rámci funkce.

string globalniPromenna = "přístupná z celého kódu";

void OnStart()
{
string privatniPrommena = "přístupná pouze z této funkce";
}

Předdefinované a vlastní funkce

Funkce provádí příkazy uvnitř svého těla, může vracet nějakou hodnot, ale nemusí. Jak víte, tak jsem používal předdefinovanou funkci Alert(), OnStart() (spustí se po startu skriptu) a Symbol() – (vrátí aktuální měnový pár). Tyto nám do začátku stačí.

Vlastní funkce

Úkolem vlastních funkcí je zpřehlednit kód, každá funkce by měla dělat určitou skupinu kroků. Například si napíšete funkci, co bude rozlišovat vzory svíček (patterny). Napsat takovou funkci je už složitější, na začátek vám ukáži jen naprosto jednoduchou funkci:

string testovaciFunkce(int vstupniParametr1,int vstupniParametr2,int vstupniParametr3)

{
int vysledek = vstupniParametr1 + vstupniParametr2 + vstupniParametr3;

return "vysledek testovaci funkce " + vysledek;
}

Jak vidíte, tak musíme určit typ návratové hodnoty funkce prvním slovem „string“, následuje název funkce a vstupní parametry. „Return vrací výsledek funkce.

Tuto funkci zavoláme v OnStart() takto:

void OnStart()
{
Alert("Aktuální Bid cena pro měnový pár ", Symbol(), " je ", Bid);

int cislo = 12345;
string testRetezce = "testovací řetezec";
Alert(cislo, " ",testRetezce);

string test = testovaciFunkce(1,2,3);
 Alert(test);
}

Skript uložíme, zkompilujeme a spustíme, výsledek:

aos-skript-8

Nechci vám toho ukazovat hodně najednou, abyste v tom neměli zmatek. Vyzkoušejte si vše, co jsem vysvětlil a příště budeme pokračovat.

Někteří z vás by mohli namítnout, že to co jsem dnes vytvořil není automatický obchodní systém a měli by pravdu, protože automatický systém neustále běží. Já vám však ukázal skript, který vypíše aktuální hodnoty, nejedná se tedy přímo o AOS. K AOS se postupně dopracujeme, ale na začátek je vhodnější začínat se skripty, je to jednodušší.

Nejsem si jistý, jestli tvorba AOS zajímá naše čtenáře, dejte mi prosím najevo svůj zájem „likem“ na FB nebo komentářem, v případě nejasností se klidně ptejte.

Jak začít vytvářet vlastní automatické obchodní systémy pro forex/kryptoměny

Napsat komentář

Upozornění

Neuvádějte žádné kontaktní informace (e-mail, WhatsApp, odkazy atd.). Jinak bude váš komentář/recenze ihned smazána. Manuálně kontrolujeme dodržování tohoto pravidla. Toto opatření slouží k ochraně čtenářů našeho webu, spousty podvodníků se snaží vydávat za poradce a tahají z lidí peníze, a tomu nebudeme přihlížet!

Scroll to top