V tomto článku
Po přečtení dokážete…
- Pozastavit tříbodové pravidlo při chybějícím třetím záznamu.
- Zkontrolovat společný čas cen a jednotky rozpočtu před výpočtem objemu.
- Odděleně ověřit data, pokyn, jeho skutečný stav a ekonomiku zmrazeného pravidla.
Vysvětlení pojmů přímo v článku
Jednoduchý klouzavý průměr (SMA) Obchodní plán Backtest: historický test pravidel Nominální hodnota pozice Demo účet Expectancy: očekávaný výsledek Velikost pozicePrvní algoritmický projekt nemusí obchodovat. Může zapisovat signály, kontrolovat expozici nebo počítat objem. Zvolte jednu operaci, jejíž vstupy a výsledek dokážete vysvětlit. Automatizace není důkaz výdělečné strategie a povolení posílat pokyny není nutnou součástí prvního kroku.
Pravidlo, provedení a výsledek jsou různé věci
Rozlišujte výběr signálu, provedení již přijatého rozhodnutí, správu pozice a výkaznictví. Program rozdělující existující objednávku nemá stejný úkol jako robot hledající vstupy. Zpráva BIS z roku 2020 se zabývá FX execution algorithms a jejich tržními riziky. Zkratka EA v tomto dokumentu znamená execution algorithm, zatímco v MetaTraderu Expert Advisor; zpráva nedokazuje výnos konkrétního retailového robota.
Specifikace má určit instrument, zdroj dat, provozní okno, okamžik rozhodnutí, vstupy, výstupy, množství, limit expozice a reakci na již otevřenou pozici. Lidská rozhodnutí o nastavení a dohledu nezmizí. Program může zabránit ručnímu překlepu a přitom po restartu chybně odeslat druhý požadavek. Správnost kódu a ekonomický výsledek pravidla proto ověřujte odděleně.
Nástroj vybírejte podle operace
Pro jednoduché upozornění může stačit alarm. Běžné MT5 Alerts porovnávají ceny, objem posledního obchodu nebo čas; nejsou libovolným editorem kombinace klouzavých průměrů a ATR. Vlastní logika může potřebovat indikátor či EA. MQL5 běží v MT5, Python může analyzovat data nebo využít dokumentované připojení. Povinný žebříček alarm → MQL5 → Python → FIX neexistuje.
Ověřte účet, platformu, data a povolené rozhraní. Značka brokera nezaručuje API na každém produktu. Základy EA v MQL5 a výzkum v Pythonu popisují různé pracovní postupy; stejné pravidlo nemusíte povinně přepisovat do obou. Nelze slíbit jednotný počet řádků, dobu vývoje ani jednocifernou milisekundovou latenci.
Třetí cenu nelze nahradit domněnkou
Stejná poslední cena vede podle neznámé minulosti k opačnému rozhodnutí. Chybějící data nejsou platným negativním signálem.
- Chybějící x=98
- Průměr 100 – 102>100: podmínka ano.
- Chybějící x=106
- Průměr ≈102,667 – 102 není větší: podmínka ne.
- x neznámé
- Nevyhodnocovat – Dvoucenový průměr 101 ani nula nevyplní skutečnou historii.
Původní pravidlo porovnává poslední dokončenou cenu 102 s průměrem přesně tří dokončených cen. Máme pouze dvě novější hodnoty 100 a 102; starší x chybí. Kdyby x bylo 98, průměr by byl 100 a 102 je větší. Kdyby x bylo 106, průměr 308/3 ≈102,667 a podmínka neplatí. Obě možnosti jsou vymyšleným doplněním minulosti, nikoli budoucími cenami.
Průměr dvou známých cen 101 je jiné pravidlo a nula by vytvořila smyšlený třetí záznam. Výsledek má být „neúplná data“, nikoli platné „nevstoupit“. Po opakovaném stažení ověřte stejné požadované svíčky. CopyRates vrací počet skutečně zkopírovaných záznamů a může mít data dostupná jen částečně. Tento příklad řeší úplnost, nikoli pořadí pole nebo jeho indexaci.
Dovednosti a volba jazyka
Potřebujete rozumět používanému programu, datům, velikosti pozice a statistickému vyhodnocení. Krátká rostoucí křivka popisuje vzorek, ne budoucí výnos. Plán zahrnuje vhodná historická data, oddělené vyhodnocení mimo vývojový vzorek a provozní kontrolu v demu. Celková latence zahrnuje kód, hosting, síť i zpracování požadavku brokerem.
Výzkumný soubor může být správný a provozní připojení přesto selhat. Ke každému předpokladu proto přiřaďte pozorovatelný test: kolik záznamů přišlo, odkud, s jakým časem a zda výsledek odpovídá konkrétní specifikaci. Umět upravit parametr bez syntaktické chyby není kontrola obchodního procesu.
Od nápadu k vysvětlitelnému testu
Fiktivní EUR/USD H1 pravidlo může použít EMA 21, SMA 55 a zvolenou vzdálenost podle ATR. Definujte výpočet, dokončenost svíčky, okamžik vyhodnocení, stop a cíl. Zpočátku pouze zapisujte signál. Otestujte signál, jeho nepřítomnost, změnu svíčky, chybějící historii i existující pozici.
Ruční a automatický výsledek porovnávejte na stejných vstupních datech za stejné kalendářní období. Pětiletý automatický vzorek nemusí odpovídat šestiměsíčnímu ručnímu. Nejdřív vysvětlete jednotlivé rozdíly za společné období, zahrňte náklady a zmrazené pravidlo teprve potom vyhodnoťte zvlášť. Úprava po spatření odděleného výsledku jej mění na další vývojová data.
Původní samostatný model má equity 10 000 USD, zvolený rozpočet cenové ztráty 0,5 %, stop 25 pipů, pip EUR/USD 0,0001 a kontrakt 100 000 EUR/lot. Rozpočet 50 USD při 10 USD/pip na lot dovoluje před náklady 50/(25×10)=0,20 lotu, tedy nominál 20 000 EUR. Procento není obecné doporučení. Nominál, marže a plánovaná ztráta jsou jiné veličiny.
Před přizpůsobením kroku objemu přidejte komisi a exekuční předpoklady. Běžný stop může při mezeře dostat horší plnění, takže plánovaných 50 USD není bezpodmínečný strop. Podobný konečný zisk také nedokazuje shodné obchody.
Další původní model má t 1 Bid/Ask 1,1000/1,1002 a t 2 1,1010/1,1012. Oba skutečné spready jsou při pipu 0,0001 dva pipy. Smíšený t 1 Ask a t 2 Bid však dá (1,1002−1,1010)/0,0001=−8 pipů. Filtr spread <2,5 by tento vymyšlený záporný údaj přijal. Nejde o pozorovaný záporný tržní spread.
SymbolInfoTick vrací ceny a čas aktualizace v jedné struktuře MqlTick. Ověřte úspěch a použijte pole uloženého společného odečtu. Souvislá kotace není příslib likvidity ani budoucího plnění. Do testů patří záměrné smíchání dvou jednotlivě správných odečtů.
Nový CZK protipříklad změny měřítka: vlastní systém má rozpočet 500 Kč a fiktivní cenovou ztrátu 100 Kč na jednu objemovou jednotku. Před náklady vyjde pět jednotek. Při fixním nákladu 50 Kč za celý obchod je však modelový strop (500−50)/100=4,5 jednotky; s krokem jedné jednotky nejvýše čtyři. Modelová celková ztráta je 450 Kč, pět by dalo 550 Kč.
Pokud program omylem násobí fixních 50 Kč každou jednotkou, omezí objem na tři, protože 500/150≈3,333. Jeho chybný model hlásí 450 Kč, ale podle zadaného skutečně fixního nákladu jde o 350 Kč. Konzervativně vypadající výsledek tedy neprokazuje správný kód. Tento korunní kontrolní případ nepřepočítává původní dolarový model a negarantuje ztrátu při horším plnění.
Kód, data a ekonomiku testujte zvlášť
Selhat může pravidlo, implementace, data, exekuce i provoz. Po nejednoznačné odpovědi ověřte skutečné objednávky, transakce a pozice před opakováním požadavku. Samotné true z OrderSend nedokazuje dokončené plnění; kontrolujte návratové kódy a obchodní události. Uchovejte verzi pravidla, čas informací a důvod akce nebo nečinnosti.
Fiktivních 100 obchodů se 40 výhrami +2R a 60 ztrátami −1R dává průměr (80−60)/100=+0,2R před náklady a profit factor 80/60≈1,33. Jde o zvolené vstupy, nikoli testovanou strategii. Hledání výhody potřebuje i neúspěšné varianty a oddělené hodnocení, ne pouze nejlepší křivku.
Sepište náklady dat, hostingu, licencí a údržby i tehdy, když jazyk nemá licenční poplatek. Ceny a oprávnění patří konkrétní konfiguraci. VPS neodstraní restart, výpadek ani nutnost dohledu. Vypnutí místního AutoTrading samo nezavře existující pozice; přijatou serverovou ochranu odlišujte od pravidel programu a zvlášť prověřte vzdálené instance.
První dokončený projekt může být protokol
- Popište jednu operaci: data, okamžik rozhodnutí, pravidlo, výstup a případy povinného přerušení vyhodnocení.
- Na malých případech ověřte úplnost historie, společný čas kotace a rozdíl mezi dokončenou a současnou svíčkou.
- Pokud potřebujete pokyny, přidejte je až v jasně označeném demu. Prověřte odmítnutí, restart a nejasnou odpověď kontrolou skutečného stavu.
- Zmrazte pravidlo pro oddělené hodnocení se správnými náklady. Není stanoveno univerzální procento přijatelného rozdílu mezi implementacemi.
- Zapište postup pozastavení, obnovení a změny verze. Kalendářní termín ani délka pozorování nevyžadují přechod na živé peníze.
Ověřte si, co jste se naučili
Přibližně 2 minut procvičování.
Zobrazit odpověď a vysvětlení
Možnosti 98 a 106 dávají opačné odpovědi. Záznam ponechte jako chybějící a nevydejte rozhodnutí.
Další otázky
Co znamená retailové algoritmické obchodování?
Specifikaci operace pro software: signál, provedení, správu pozice nebo výkaz. První projekt nemusí obchodovat. Určete informace, čas, chybějící data, objem, expozici a skutečný stav pokynu. Plánovaná ztráta není nominál ani garantované maximum.
Mám zvolit alarm, EA nebo Python?
Podle úkolu, platformy a povoleného rozhraní. Nativní alarm má jednoduché cenové, objemové nebo časové podmínky; složitější logika potřebuje vlastní program. Povinné pořadí jazyků, dostupnost API u celé značky ani univerzální doba učení nejsou doloženy.
Jaké znalosti musím mít?
Musíte ověřit právě používané programové chování, data, objem a statistické předpoklady. Změna parametru bez chyby není test exekuce nebo obnovy stavu. Žádný univerzální počet obchodů či délka dema sama neprokazuje výhodu.
Co prověřit před rozšířením projektu?
Pravidlo, data, kód, plnění a provoz. Zachovejte neúspěšné varianty, test odmítnutí a restartu i postup pozastavení. Kladný historický průměr nestačí; porovnávejte jednotlivé pokyny a transakce, nejen konečný výsledek.
Zdroje a ověření
- BIS — Algoritmy provedení FX a jejich rizika
Čerstvě přečten souhrn zprávy z 30. října 2020 o execution algorithms, fragmentaci, rizicích a infrastruktuře. Nejde o retailové Expert Advisors ani důkaz jejich zisku; celý 61 stránkový dokument zde neprohlašuji za přečtený.
- MetaQuotes — Skutečný počet záznamů CopyRates
Čerstvě přečteny parametry, počet vrácených záznamů, chyba −1 a částečně dostupná historie. Model úplnosti nerozhoduje o logickém indexování cílového pole; ukázkový program nebyl spuštěn.
- MetaQuotes — Společná struktura SymbolInfoTick
Čerstvě přečtena definice společných aktuálních cen a času aktualizace MqlTick a bool úspěchu. Není to záruka budoucí ceny plnění ani likvidity.
- MetaQuotes — Návratová hodnota a stav OrderSend
Čerstvě přečteny relevantní návratové hodnoty a zpracování výsledků: true samo neznamená vykonaný obchod, sleduje se retcode a následný skutečný stav. Žádný požadavek zde nebyl odeslán.
Výpočty používají výslovně uvedené předpoklady. Nenahrazují aktuální tržní údaje ani podmínky poskytovatele.
