Jump to content
Co nového? Mé kurzy
Články a tutoriály:
Archiv článků Psychologie obchodování Jak na obchodní plán Mé obchodní strategie
  • Automatické generování systémů pro MetaTrader

    Populární program AdaptradeBuilder, kterému jsem se věnoval zde již několikrát a který sám používám ve svém workflow tvorby automatických obchodních systémů (AOS), dostal v poslední verzi 1.5 zajímavé vylepšení: nově totiž umí generovat obchodní systémy i pro program MetaTrader.

    Nejprve jednoduché shrnutí toho, co je program AdaptradeBuilder. Jedná se o velmi jednoduchý a intuitivní program, který s pomocí takzvaného genetického programování umí sám hledat, stavět a testovat automatické obchodní strategie. Jednoduše zvolíme vstupní parametry naší strategie (jaké indikátory bychom chtěli ve strategii mít, jaké metody výstupů, jaké metody stop-lossu atd.) a necháme program běžet například přes noc, kdy bude program automaticky stavět, navrhovat a testovat strategie a ukládat do databáze ty nejzajímavější. Druhý den tedy máme k dispozici bezpočet navržených AOS strategií, se kterými můžeme dále pracovat.

    Jenom pro připomenutí, tématu jsme věnovali již několik článků:

    Program AdaptradeBuilder se stal poměrně rychle oblíbeným nástrojem obchodníků, kteří využívají ke stavbě AOS programy typu TS nebo MCH, které využívají programovací jazyk EasyLanguage. Doposud totiž uměl AdaptradeBuilder generovat systémy pouze pro tyto programy a další užití nebylo možné.

    Nyní však přichází dobrá zpráva – program umí nově generovat systémy i pro MetaTrader. Je to velmi jednoduché, v záložce StrategyEvaluation stačí vybrat právě program MetaTrader – a je hotovo, již se budou generovat systémy s kódem právě pro program MT:

    AB-MT-1.jpg

    Krom toho pak poslední verze 1.5 přináší ještě několik drobných zlepšení jako například:

    • Povolit nebo zakázat aplikování "indikátorů na indikátor" (tzv. nesting). Toto považuji za velmi užitečnou volbu, protože osobně nemám vnořené indikátory rád, a jsem rád, že nyní je tato volba zcela pod kontrolu uživatele.

    AB-MT-2.jpg

    • Shift (posun) indikátorů. Zatím nemám přesný názor na to, k čemu všemu to může být dobré, možnosti práce s posunutým indikátorem budou tedy zřejmě předmětem některých z mých budoucích studií. Nyní je v AB možné ovlivnit, jak často se má zhruba shift indikátorů ve stavbě návrhů strategií vyskytovat.

    AB-MT-3.jpg

    Cenu vstupu a výstupu je nyní možné brát z hodnot BID a ASK místo LAST, resp. počítat při plnění se spreadem. Tím se dostáváme k simulaci mnohem reálnějších plnění než pouze za cenu LAST. Samozřejmě předpoklad je pracovat s importovanými daty, které již hodnoty ASK/BID obsahují.

    AB-MT-4.jpg

    Tolik tedy k nejdůležitějším novinkám v programu AdaptradeBuilder. Jako vždy platí, že kdo už jednou zakoupil plnou licenci, má veškeré budoucí upgrady zdarma, může tedy upgradovat na poslední verzi zcela bezplatně.

    Jak s programem pracovat

    Je třeba mít jednak k dispozici data trhů, které je nutné do programu naimportovat – tedy ta data trhů, na kterých chceme systémy stavět. Já například vždy exportuji data z TradeStation a stejná pak jednoduše načtu do AdaptradeBuilderu.

    Dále je třeba provést několik nastavení a zde je nutné věnovat práci s programem nějaký čas, naučit se experimentovat s různými nastaveními a hledat to, které pro náš trh dává nejlepší výsledky. Osobně například rád používám jen minimum indikátorů, jako BuildMetric mám rád Corr Coeff (korelační koeficient, který se snaží hledat cokoliv, co se bude nejvíce blížit "perfektní equity", Return/DD ratio (pro své AOS používám 20) a AvgTrade (záleží na trhu, musí jít o rozumný průměrný zisk na obchod). Dále mám rád obří populaci na Build Options (co snese mých 16 GB RAM, takže ideálně tisíce nebo desetitisíce) a spíše jen pár jednotek generací.

    Je vcelku pravděpodobné, že "perfektní equity" nebudou padat hned, i tento program potřebuje nějaký čas na zvládnutí a naučení se správně používat. Jako s každým softwarem i zde mohou být první krůčky lehce frustrující – tak už to zkrátka v dnešním technickém světě chodí:-)

    Výstupy z AdaptradeBuilderu osobně nikdy nenasazuji hned k obchodování, ale podrobuji obrovskému množství dalších testů. Většinou používám AdaptradeBuilder spíše jako takový "Idea Maker". Svou službu ale plní dokonale.

    Závěrem

    Je důležité chápat, že program AdaptradeBuilder umí systémy najít a otestovat, ale neslouží už k jejich obchodování. Po té, co máme systém, který odpovídá našim kritériím, musíme vygenerovaný kód zkopírovat do daného programu (TradeStation, MetaTrader), ověřit zde výsledky a případně buďto dále se strategií pracovat (doupravovat, dodatečně testovat robustnost, dodatečně optimalizovat apod.), nebo právě z daného programu začít strategii automaticky obchodovat. AdaptradeBuilder tedy není určený k tomu, aby se zároveň i napojil na některého brokera a vygenerované strategie rovnou obchodoval.

    Osobně program MetaTrader neznám, forexem se z mnoha důvodů nezabývám, takže případné podrobnosti je třeba adresovat přímo autorovi programu.

    Program je možné stáhnout ve zkušební verzi na webu výrobce

    20.1.2013

    Tomáš Nesnídal


    Zaměřte se na to, co přináší reálné výsledky.

    Nakopněte své obchodování
    k systematickým profitům

    (program pro začínající obchodníky, kteří se chtějí dostat ke stabilnímu obchodování bez časové náročnosti)

    Začínáme 30. 1. 2024.

    Nově s vytvořením a popisem všech pravidel mechanické obchodní strategie, ve které mám sám aktuálně otevřený profit +224 121 Kč!

    >> Workshop profitabilního obchodování od A do Z

    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.
     

    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.

    Video naleznete v TechLabu zde.

    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í.
×
×
  • Vytvořit...