Jump to content
Co nového? Mé kurzy
  • Automatizace MetaTraderu

    V tutoriálu si ukážeme základní principy komunikace s MetaTraderem pomocí Pythonu, konkrétně operace pro práci s účtem a také jakým způsobem lze do trhu odesílat příkazy.

    Snímek obrazovky 2024-01-05 v 23.28.25.png

    Video naleznete v TechLabu zde.

    5.1.2024

    Bogdan Waclawik

    Bogdan, vystupující ve fóru pod nickem 4fx, poskytl v uzavřených diskuzích Finančníka již mnoho praktických Python skriptů a rad ostatním obchodníkům. Je také autorem skriptů Autotraderu předávaných a vyučovaných v rámci workshopu automatizace. Coby autor Bogdan skripty sám používá pro živé obchodování swingových obchodních strategií.


    Sdílíme, co nám samotným funguje.
    7 výukových lekcí.

    Jak reálně uspět v tradingu?

    Naučte se vydělávat na své sny (naše metody na Finančník.cz)

    Praktický návod, jak v trzích získat šanci vydělávat stovky tisíc až miliony dolarů ročně bez vlastního kapitálu a nutností trávit denně hodiny před počítači (bez práce to ale nepůjde).

    >> Získat kurz zdarma <<

    Další články na toto téma

    MetaTrader

    MetaTrader 5 je obchodní platforma, nabízející nástroje pro technickou analýzu a automatizované obchodování na finančních trzích.
    MetaTrader se používá zejména pro obchodování s forexem a CFD.
    Na Finančníkovi využíváme MT5 k automatizovanému obchodování CFD kontraktů s využitím MetaTrader5 Python API.
     

    Backtestování v MT 4 (software pro forex)

    Dnešní článek pro vás připravil pravidelný přispěvatel komunitního portálu www.financnik.cz – uživatel Jiří Bachmann. Pokud se také vy chcete podělit se svými zkušenostmi, zašlete návrh svého článku či recenze na info@financnik.cz
    Nejprve úvodem: Při mých prvních pokusech s testováním v programu MetaTrader 4 (MT4) jsem narážel na mnoho neznámých a popravdě jsem se nikdy nedostal „do cíle“. Při hledání rad zde na Finančníkovi jsem byl odkazován na studium tohoto diskuzního vlákna a anglicky psaných serverů. To má však několik úskalí. Především i pro zkušenější obchodníky je nalezení odpovědí zpětně ve vláknech složité a časově náročné. Pokud člověk s problematikou začíná, zpravidla ani neví na co se zeptat, resp. kde začít. Odkazy na anglické stránky (i když je to smutné) nejsou pro naprostou většinu lidí použitelné, především z ohledu na časovou a jazykovou bariéru.
    Protože primárním cílem Finančníka je pomáhat sobě navzájem, teď když už jsem se k cíli prokousal, rád bych to zdokumentoval a zanechal návod i pro ostatní „badatele“. „Znalci“ se možná pousmějí, jak primitivní formu výkladu jsem zvolil, „neznalci“ ji snad ocení.
    Úvodem...
    V naprosto všech návodech pro začínající obchodníky je jednoduchá (pravdivá) poučka. Začněte na demo platformách, okukujte, zkoušejte, krachujte, založte znova, testujte. Má to samozřejmě logiku, je velký předpoklad, že když se vám něco bude dařit „nanečisto“, půjde vám to i s opravdovými penězi. Naopak – pokud se vám nebude dlouhodobě dařit na Demo platformách, asi „zahučíte“ i naostro.
    Protože způsobů obchodování je velké množství, začnete po překonání prvních zkušeností s tradingem toužit po možnosti testovat vaše obchodní strategie dlouhodobě. Jako začátečníka vás určitě napadne otevřít si graf, vrátit se do minulosti a ručně grafy procházet a testovat. Takovýto ruční backtesting je jednoznačně velmi smysluplný, ale velmi časově náročný. Řada obchodníků proto uvítá existenci programů, které proces bakctestingou pomohou zautomatizovat, a tak podstatně zefektivnit. Osobně mě zajímá forex a z nabízených programů mi vyhovuje nejlépe bezplatný program MetaTrader 4. Chcete-li si také vyzkoušet automatický backtesting forexových trhů s touto bezplatnou platformou, zde je stručný návod jak konkrétně na to:
    Jak tedy začít
    Po počátečních pokusech a zmínkách ve foru, že ne všechny verze MT4 si rozumějí s historickými daty jsem si nainstaloval verzi z http://http://www.fxdd.com/meta_trader.html
    Jako historická data jsem použil tato : http://www.alpari-idc.ru/ru/dc/databank
    Následující kroky dělejte přesně jak je popsáno!
    I zdánlivé drobnosti jsou důležité!
    „Neznalci neexperimentujte“ a skutečně postupujte přesně dle návodu.
    1. Spusťte program MT4.
    2. Zavřete všechny grafy.
    3. Smažte všechna data z adresáře, kde je MT4 – viz obr.

    4. Stáhněte si data, např. z citovaného http://www.alpari-idc.ru/ru/dc/databank
    Zde si pojďme postup ukázat na páru GBP/USD

    a potom minutová data (tedy M1)

    nyní data stáhněte, uložte a rozbalte na určené místo
    5. Otevřete MT a nastavte Tools – Options – Charts – Max bars in history – 99999999999999

    6. Naimportujte stažená data.
    Zvolte Tools - History center a v našem případě GBP/USD 1M naimportujte již uložená data z Alpari (viz postup v předcházejícím bodě)

    Zkontrolujte si, že máte data naimportována správně:

    7. Otevřete MT4 File – Open Offline (v našem případě takto)

    (všimněte si čísla 673516, je i na předcházejícím obrázku - to jen pro kontrolu, že se „nám nic neztratilo“ )
    8. Tady zkušenější radí skript Period Converter, já bych si ho dovolil (prozatím!) vynechat. Článek píši pro začínající obchodníky a myslím, že stačí, když rozchodí testing na minutových hodnotách.(návod na Period Converter je na konci tohoto dokumentu)
    9. A máme graf v programu (všimněte si stavu Offline!)

    10. Nyní začneme už testovat. Vybral jsem si pro své „pokusy“ tento Expert Advisor - UniversalMACrossEA.mq4, který si můžete stáhnout na této adrese: http://www.financnik.cz/download/UniversalMACrossEA.mq4
    11. Vypněte MT a zkopírujte si výše uvedený soubor do adresáře - experts –  


    Všimněte si zároveň, že v adresáři „experts“ je i soubor se stejným názvem, ale s příponou ex4 (tedy: UniversalMACrossEA.ex4). Tento soubor se „vytvoří sám“. Jedná se o kompilovaný soubor, vytvořený jako strojový zápis původního ExpertAdvisoru. Soubor vznikne automaticky při zapnutí MT4.
    (jde to i jinak, ale o tom až jindy).
    12. Otevřeme Strategy Tester (CTRL+R) a nastavíme takto:

    - v první roletce zvolíme EA UniversalMACrossEA
    - ve druhé roletce zvolíme GBPUSD
    - Period M1 (máme minutová data)
    - volbu „Model“ bych opět pro začátečníky nechal jak je
    - Use date – aby test netrval dlouho, navolte si pro minutová data jeden den (třeba podle vzoru)
    - zaškrtněte Recalculate (přepočítání dat)
    - nezaškrtávejte Optimalization
    13. Nastavení Expert Advisoru.


    14. Protože jsme začátečníci, zkusíme vše nejprve s jednoduchým testem. Budeme testovat překřížení dvou MA. Dosaďte si do vyznačených řádků hodnoty pro MA (20 a 70)


    15. A konečně – START –
    16. Pokud jste vše provedli podle tohoto návodu, měl by proběhnout test.
    (U mě to trvá asi 3 sekundy a tlačítko Start se na chvíli změní ve Stop)
    17. Na jednotlivých záložkách byste měli mít výsledky testu.



    18. Pokud se chcete podívat do grafu, zvolte Open chart a do grafu se vám vykreslí značky v místech nákupu a prodeje.

    19. Pokud nyní chcete najít optimální nastavení, použijte volbu Optimalization.

    20. Již v bodě 14. jsme nastavovali hodnoty pro Rychlý a pomalý MA.
    V této tabulce jsou i hodnoty Start, Step a Stop.
    Pokud nyní použijeme funkci Optimalizace a zaškrtneme si políčka (dle obrázku), program použije dvě hodnoty MA. Pomalý MA v rozsahu 10-30 (po 5)
    Rychlý MA v rozsahu 60-100 (po 5) a přepočítá všechny jejich kombinace.
    Můžete zaškrtnout i více voleb, geometrickou řadou ale naroste doba výpočtu.

    21. Pokud si nyní necháme zobrazit výsledky a seřadíme je podle Profitu

    budeme mít v prvním řádku nejlepší možné nastavení v intervalech, které jsme zadali MA1 v rozmezí 10-30 + MA2 v rozmezí 60-100.
    Pokud si překlikneme ne vedlejší záložku, dostaneme následující graf:

    Nejtmavší políčko ukazuje nejlepší výsledek – u nás konkrétně MA20+MA70.
    Pokud nyní provedeme dvojklik na hodnotě 1759.98 (v našem případě nejlepší hodnota) – dosadí se nám hodnoty použité k této simulaci přímo do EA.

    To můžeme zkontrolovat po kliknutí na Expert properties:

    kde uvidíte, že hodnoty v rámečku souhlasí s hodnotami v Expert properties.


    Nyní klikneme na START a necháme propočítat s dosazenými hodnotami zadané období znovu.
    Pokud hledáme optimální nastavení systému, měli bychom věnovat pozornost i sloupcům označeným na obrázku
    Drawdown je údaj o tom, jaký nejhorší propad nastal s daným nastavení za dobu testu. V našem příkladu konkrétně za doby testu nastal okamžik, kdy ztráta jednoho z obchodů byla ve výši 170 USD, tedy 1,53% z našeho účtu. Protože moudrý obchodník hlídá risk, má nastavenu hranici rizika na jednotlivé obchody – např. neriskuje víc než 2% svého účtu. Souvisí to se Money Managementem, to by byla ale zase samostatná kapitola. Na Finančníku o tom pojednávají samostatné články i diskuzní vlákna.

    Nyní už i začátečníci mají hračku, kde mohou měnit, testovat a zkoumat. Mým cílem bylo „rozpohybovat“ funkci backtestování i těm, kterým to z nějakého důvodu nešlo, jako v počátcích mě. Nedělám si ambice na poučování, pokud je v textu něco nepřesně uvedeno, vysvětleno, nejedná se o úmysl ani nedbalost.
    Funkce backtestování má svá omezení a není samospásná. Pro zájemce doporučuji přečíst si vlákno: http://www.financnik.cz/forum/read.php?13,8667,page=1 (finančník – forex – Metatrader4) Je tam tolik rad a „rozumů“, že je všechny do toho dokumentu nelze vložit. Jsem si jistý, že vše na co ještě chcete zeptat tam již zodpovězeno bylo. Sám jsem vlákno četl několikrát.
    Dokument je napsán na úrovni mých znalostí a zkušeností s backtestování v 06.06.2006.
    Držím palce.
    Jiří Bachmann – jiri@bachmann.cz
     
    Nyní ještě k funkci Period Converter.
    Pokud chceme testovat např. hodinové grafy, nemáme k dispozici hodinová historická data - máme pouze 1 minutová, nebo denní (viz úvod). MT4 nám umožňuje si data nechat dopočítat skriptem Period Converter.

    Otevřeme si okno Navigátor a najdeme Skript period_converter.

    Myší označíme period_converter a přatáhneme jej nad graf (offline!)

    Původní hodnotu „3“ změníme na „5“ a stiskneme OK.

    V okně „Terminal“ je důležité zkontrolovat, že konverze proběhla, o čemž vypovídá označený zápis (writen).
    Tím jsme si „vyrobili“ z minutových dat 5 minutová data.
    Stejným způsobem si musíme vyrobit 10, 30, a 60 minutová data.
    Potom teprve můžeme testovat hodinové grafy a software sám použije nižší datové řady, které jsme dopočítali konverzí.

    Metatrader 5 - bordel v adresářích

    Zdravím vás,
    Tak jsem si stáhnul metatrader5 (admiral Markets)
    Jelikož mám W7 a do Program Files můžu zapisovat jen jako administrátor, nainstaloval jsem si ho do adresáře na jiném disku - disk D
    Již z MT4 jsem si zvykl na.. no .. řekněme tomu "specifikum" (td), že místo pro skripty je pevně dané ve stromové struktuře kde je program uložen. (tedy ne jako u jiných slušných programů kde si uživatel může vybrat, kam si svá data uloží a odkud je bude tahat, aby měl data zvlášť a program zvlášť. )

    Nicméně MT5 mě nachystal další překvapení (td)(td) : Složky se skripty, indikátory a experty jsou na dvou místech:
    1) tam kam jsem to nainstaloval. to je: D:\MetaTrader-Admiral Markets\MQL5
    2) kupodivu, poté co jsem se snažil nainstalovat a zprovoznit skript jsem zjistil že téměř identická adrosářová struktura je také zde:
    C:\Users\MyName\AppData\Roaming\MetaQuotes\Terminal\BF4471748146471D6309B4B7D53D7134\MQL5\

    Když jsem změnil skripty ve na disku D, tak v MT jsem žádnou vizuální změnu neviděl, pokud jsem chtěl něco doinstalovat, musel jsem do C\Users\.. hrůza..

    Nejsem si vědem toho že bych měl při instalaci nějakou další volbu než kam nainstalovat hlavní program...

    Podotýkám, že rozhodně nejsem expert na Metatrader, proto prosím, poučte mě, jak to vlastně funguje / má fungovat.
    Diky.

×
×
  • Vytvořit...