V tomto článku
Po přečtení dokážete…
- Propojit dealy s ordery a identifikátorem společné pozice.
- Rozlišit zdroj instrukce od analytického vlastníka části objemu.
- Uzavřít celé USD i CZK modely včetně komisí a otevřeného ocenění.
Vysvětlení pojmů přímo v článku
Expert Advisor — obchodní program Lot: jednotka velikosti kontraktu Obchodní provize Obchodní deníkNa účtu s nettingem mohou dva roboti a ruční pokyny měnit jednu společnou pozici. Výsledek této pozice sám neurčuje výsledky jednotlivých robotů. Nejdříve rekonstruujte skutečná provedení, jejich vazby a náklady; teprve pak použijte předem vyhlášený způsob analytického rozdělení. Ukážeme celé dvě varianty i otevřenou část cyklu. Nejde o alternativní účetnictví serveru nebo české daňové pravidlo.
Proč magic number nerozdělí společnou pozici?
MT5 netting udržuje na symbolu jednu pozici. Další provedení mohou změnit její objem či směr. Pokyn neboli order je instrukce; deal je záznam skutečného provedení. Jeden order se může rozpadnout na několik dealů. Dva názvy programů proto nevytvoří dvě samostatná portfolia. Pojem EA označuje program, nikoli záruku oddělení jeho expozice od ostatních instrukcí na účtu.
DEAL_MAGIC nese magic number provedení, kdežto DEAL_REASON popisuje jeho zdroj nebo příčinu. Nejde o zaměnitelné sloupce. Samotná nula v magic number neprokazuje ruční rozhodnutí. Uchovejte čas, vazby na order, identifikátor pozice a doložené mapování programů na jejich označení. Ruční prodej může omezit pozici vytvořenou roboty A i B; zdroj výstupní instrukce se tím nestává původcem dřívějšího zisku.
Zdroje instrukcí a analytické vlastníky částí objemu ukládejte zvlášť. Ruční výstup nepřepisujte na pokyn robota jen proto, že mu v doplňkové analýze přiřadíte uzavíranou část. Průvodce roboty vysvětluje základní práci s pozicemi; zde sledujeme historii jediné společné pozice.
Jak propojit deal, order a pozici bez odhadování?
Čísla záznamů ukládejte jako identifikátory, nikoli jako měřené objemy. DEAL_ORDER odkazuje na order, DEAL_POSITION_ID na cyklus pozice. POSITION_IDENTIFIER pomáhá dohledat související historii; aktuální POSITION_TICKET se při servisních operacích serveru může změnit. Pro každé skutečné plnění potřebujete také symbol, směr, objem, cenu a čas.
HistorySelectByPosition vybírá historii orderů a dealů podle identifikátoru pozice. Ověřte úspěch výběru i rozsah exportu; pouhý seznam právě viditelný v okně nemusí obsahovat všechny potřebné záznamy. Originál uložte dříve, než připojíte vlastní interpretaci. Chybějící vstup nelze spolehlivě doplnit z komentáře výstupu.
Zahrňte komise, další poplatky, financování a měnu účtu. Operace salda oddělte od nákupů a prodejů. U částečně provedeného pokynu sečtěte skutečné objemy za jejich skutečné ceny; požadovaný objem je nenahradí. Základy MQL5 rozvíjejí zpracování událostí a identifikátorů. Následující analýza začíná až úplně zadanou historií, ne příkazem k živému obchodování.
Jak vzniknou z jednoho účtu dva výsledky robotů?
Původní model: dva nákupy a dva ruční výstupy
Předpokládejme fiktivní lineární EUR/USD kontrakt: jeden lot je 100 000 EUR, účet je v USD a začíná bez pozice. Všechny uvedené ceny jsou skutečně zadaná plnění v modelu: nákupy za Ask, prodeje za Bid. Čtyři dealy se provedou plně v uvedeném pořadí. Každý stojí 1 USD komise, ostatní poplatky a swap jsou nula. Spread už obsažený v plněních znovu neodečítáme.
Na malé obrazovce posouvejte tabulku vodorovně, abyste přečetli všechny sloupce.
| Deal / order | Zdroj instrukce | Provedení | Pozice potom |
|---|---|---|---|
| 7001 / 5001 | EA A | Nákup 0,10 za 1,1000 | Long 0,10 lotu |
| 7002 / 5002 | EA B | Nákup 0,10 za 1,1020 | Long 0,20 lotu |
| 7003 / 5003 | Ruční výstup | Prodej 0,10 za 1,1010 | Long 0,10 lotu |
| 7004 / 5004 | Ruční výstup | Prodej 0,10 za 1,1030 | Bez pozice |
Společná nákupní průměrná cena po druhém plnění je 1,1010. První redukce realizuje cenově 0 USD a druhá 20 USD. Uzavřený cyklus dává 20 − 4 = 16 USD čistého. Nejde o pozorovaný brokerský výpis, nýbrž o výsledek zadaných předpokladů.
Analytické FIFO nejdříve uzavírá nejstarší množství. Výstup 7003 přiřadí A: 10 000 × (1,1010−1,1000) = 10 USD. Výstup 7004 přiřadí B: 10 000 × (1,1030−1,1020) = 10 USD. Každému přidělíme jeho vstupní komisi a komisi příslušného výstupu. A tak má 8 USD a B rovněž 8 USD.
Analytické LIFO nejdříve uzavírá nejnovější množství. B dostane z výstupu 7003 cenově −10 USD; A dostane z 7004 cenově +30 USD. Po nákladech jde o B −12 USD a A +28 USD. Součet zůstává 16 USD. FIFO a LIFO zde popisují naše analytické konvence, nikoli dvě volitelné metody serveru MT5 ani univerzální daňovou metodu. Při hodnocení robota je nesmíte potichu střídat.
Stejný účet, jiné rozdělení
Stejný účet, jiné rozdělení
Pro přečtení detailů posouvejte diagram vodorovně nebo jej zvětšete.
Proč se po prvním výstupu liší realizovaný výsledek?
Po 7003 předpokládejme aktuální Bid 1,1010. Společná net pozice má cenově 0 USD realizovaných a 0 USD otevřených. Analytické FIFO však realizovalo A +10 USD a zbývající B při stejné ceně vykazuje −10 USD nerealizovaně. Dohromady je to stále nula. Dosavadní tři komise znamenají celkem −3 USD. Srovnání samotného realizovaného sloupce by vynechalo otevřenou ztrátu.
Po 7004 už otevřený výsledek neexistuje a celé rozdělení se uzavře na 16 USD. Realizovaný a otevřený výsledek je nutné rozlišovat i při hodnocení jednotlivých programů. Shodný součet sám nevybere vhodnou analytickou konvenci. U skutečné historie mohou přibýt částečná plnění, obraty, opravy i samostatně účtované náklady. Neznámé přiřazení ponechte neuzavřené a vysvětlete důvod.
Vlastní CZK model: nestejné porce a poměrné komise
V novém fiktivním lineárním EUR/CZK cyklu A nakoupí 1 000 EUR za 25,00 a zaplatí komisi 10 Kč. B nakoupí 2 000 EUR za 25,20 s komisí 20 Kč. Dva ruční prodeje po 1 500 EUR se plně provedou za 25,10 a 25,30; každý má komisi 15 Kč. Další náklady jsou nula. Výstupní komise dělíme podle skutečně přiřazených EUR, tedy 0,01 Kč za EUR, nikoli podle jména odesílatele.
Nákupy stojí cenově 75 400 Kč a prodeje přinesou 75 600 Kč. Hrubých 200 Kč minus celkové komise 60 Kč dává 140 Kč. FIFO při prvním prodeji uzavře 1 000 EUR A se ziskem 100 Kč a 500 EUR B se ztrátou 50 Kč. Druhý prodej přiřadí zbývajících 1 500 EUR B se ziskem 150 Kč. A po svých komisích 20 Kč získá 80 Kč; B po komisích 40 Kč získá 60 Kč.
LIFO přiřadí první prodej 1 500 EUR B se ztrátou 150 Kč. Druhý nejdříve uzavře zbylých 500 EUR B se ziskem 50 Kč a poté 1 000 EUR A se ziskem 300 Kč. B má po komisích −140 Kč a A +280 Kč; součet je opět 140 Kč. Nezměnil se účet, pouze přiřazení výstupních množství.
Po prvním CZK prodeji a při Bid 25,10 ukazuje FIFO +50 Kč realizovaných a −150 Kč otevřených. LIFO ukazuje −150 Kč realizovaných a +50 Kč otevřených. Dosavadní komise jsou v obou případech 10+20+15 = 45 Kč: kombinovaný výsledek je −145 Kč. Prosté +50−45 = +5 Kč by otevřenou ztrátu vynechalo. Případné jiné převody měny, financování či daň zde nejsou zadány.
CZK: stejný součet, odlišné výsledky robotů
Pro přečtení detailů posouvejte diagram vodorovně nebo jej zvětšete.
Číselný přepis diagramu: CZK: stejný součet, odlišné výsledky robotů
Čtyři úplná plnění, komise podle přiřazených EUR; model není brokerské ani daňové účetnictví.
Před hodnocením robotů zveřejněte konvenci a zahrňte otevřený výsledek.
- CZK analytické FIFO
- A 80 + B 60 = 140 Kč — Každému jeho vstupní i objemově přidělená výstupní komise.
- CZK analytické LIFO
- A 280 + B (−140) = 140 Kč — Stejné provedené obchody a stejné celkové náklady.
- Po prvním CZK výstupu
- Celkem −145 Kč — Realizované + otevřené ocenění − dosavadní komise 45 Kč.
Co udělat před hodnocením dvou robotů?
- Vyberte dokončený cyklus jednoho symbolu a uchovejte původní export. Propojte dealy, ordery a identifikátor pozice; ověřte skutečné množství i všechny náklady. Pro získání příkladu nepotřebujete otevírat živý obchod.
- Před výpočtem zveřejněte množstevní i nákladovou konvenci. Zdroj instrukce veďte odděleně od analytického vlastníka porce. Neznámá data nepřevádějte na jistotu podle komentáře nebo magic number výstupu.
- U uzavřeného cyklu porovnejte celkový výsledek s historií účtu. U otevřeného zahrňte realizovaný i nerealizovaný výsledek při stejné ceně. Oba pohledy uložte do deníku a případnou změnu konvence označte. Analýza popisuje chování; nepředpovídá budoucí výnos a nemění limity skutečné společné expozice.
Ověřte si, co jste se naučili
Přibližně 2 minut procvičování.
Zobrazit odpověď a vysvětlení
Správně: 10−10−3 = −3 USD. Souhlasí s nulovým cenovým výsledkem společné pozice po třech komisích.
Další otázky
Určuje magic number uzavření robota, který vydělal?
Samo nestačí. Identifikuje vlastnost provedení, zatímco ruční redukce může zasáhnout pozici vybudovanou několika programy. Propojte deal, order a identifikátor pozice; poté určete přiřazené vstupní množství podle vyhlášené konvence. Zdroj výstupní instrukce ponechte původní. Analytického vlastníka a přidělené náklady evidujte v dalších sloupcích, bez přepisování serverové historie.
Je zde FIFO pravidlem brokera nebo české daně?
Ne. FIFO a LIFO jsou dvě výslovné analytické konvence pro ukázku. Nejde o dvě varianty účetnictví serveru MT5 ani univerzální daňové pravidlo. Originální historii uchovejte nezávisle na doplňkovém výpočtu. Pro hodnocení robotů zvolte konzistentní postup; povinné výkaznictví posuzujte podle příslušných dokladů a jurisdikce. Shodných 16 USD nečiní každý rozpad vhodným pro libovolný účel.
Proč po 7003 nestačí porovnat realizovaný výsledek?
Společná průměrná cena a první výstup jsou shodně 1,1010, takže model realizuje cenově nulu. FIFO přiřadí výstup starší části A a ukáže +10 USD realizovaných; zbývající B má současně −10 USD otevřených. Obě části se při téže ceně vyruší a po třech komisích zůstane −3 USD. Samotné uzavřené obchody tedy neobsahují celou hodnotu otevřeného cyklu.
Lze chybějící vstup doplnit z komentáře výstupu?
Komentář nedokládá neznámé plnění, cenu ani zdroj instrukce. Ověřte rozsah historie a vazby orderu a pozice, sečtěte skutečná částečná plnění a zvlášť vypořádejte poplatky i operace salda. Zasažené přiřazení ponechte neurčené s uvedením příčiny. Vymyšlený vstup může formálně srovnat součty, ale nevytvoří doložený výsledek robota.
Zdroje a ověření
- MetaQuotes: order, deal a netting
Čteny definice 95–125: více dealů pro jeden order a jedna společná net pozice. Žádný živý účet ani celý web nebyl prověřován.
- MQL5: vlastnosti dealů
Čtena pole DEAL_ORDER/MAGIC/REASON/POSITION_ID 60–68, cena, objem a náklady 75–80 i důvody provedení. Příklady jsou vlastní.
- MQL5: identifikátor a ticket pozice
Čteny vlastnosti 59–68 a odlišné chování ticketu a identifieru; nepoužito jako potvrzení konkrétního brokerského záznamu.
- MQL5: HistorySelectByPosition
Čten podpis, parametr a úspěch 78–98 včetně změny dostupných seznamů. Ukázkový MQL5 program nebyl spuštěn.
Výpočty používají výslovně uvedené předpoklady. Nenahrazují aktuální tržní údaje ani podmínky poskytovatele.
