V tomto článku
Po prečítaní dokážete…
- Rozlíšite chybu sekvenčného Close By od odmietnutia v asynchrónnej etape.
- Zosúladíte päť ticketov s realizáciami a zostávajúcim stavom.
- Spočítate jedinečné fragmenty výstupu a overíte aj čakajúce príkazy.
Vysvetlenie pojmov priamo v článku
Vykonanie pokynu Lot: jednotka kontraktu Stop loss„Zatvoriť všetko“ v MT5 znamená skupinu operácií, nie záruku okamžite prázdneho účtu. Po odmietnutí, prerušení postupu alebo vypnutí aplikácie môžu zostať pozície. Rozhoduje potvrdené vykonanie a aktuálny objem, nie názov tlačidla. Tento postup vysvetľuje vstavané skupinové operácie MT5; doplnok či vlastný EA sa môže správať inak.
Aký rozsah má vybraný príkaz?
Zachovajte presný názov funkcie: všetky pozície, iba ziskové, stratové, jeden symbol alebo jeden smer. Výber konkrétnej pozície môže zmeniť dostupnú ponuku. Veta „zatvoril som všetko“ bez rozsahu nepreukazuje, čo terminál požiadal zatvoriť. Nezamieňajte zatvorenie s otočením pozície; otočenie môže vytvoriť novú expozíciu opačným smerom.
Dokumentácia MT5 rozdeľuje postup na etapy. Pri hedgingu sa najprv skúša Close By pre opačné pozície a potom bežné zatvorenie zvyšku. Chyba v sekvenčnej etape Close By proces zastaví. V neskoršej asynchrónnej etape odmietnutie jednej požiadavky ponechá príslušnú pozíciu otvorenú, ale nezastaví odosielanie ostatných. FIFO má vlastné sekvenčné zatváranie s prerušením pri chybe. Následok odmietnutia preto vždy priraďte k príslušnej etape.
Skupinové príkazy vyžadujú One Click Trading a niektoré nie sú dostupné pri obmedzení FIFO. Režim účtovania a ACCOUNT_FIFO_CLOSE overte na skutočnom účte, nie podľa vzhľadu terminálu. Ide o vlastnosti účtu, nie všeobecné zákonné pravidlo. Hedgingový režim odlišuje opačné samostatné tickety od spoločnej nettingovej pozície. Close By vyžaduje opačné pozície toho istého symbolu; podobný názov iného kontraktu nestačí.
Ako zosúladiť päť pozícií po jednej operácii?
Pôvodný diagnostický model. Fiktívny hedgingový účet bez FIFO má päť pozícií. EUR/USD povoľuje Close By. Nevyskytujú sa čiastočné plnenia, nové vstupy ani ďalšie zmeny. Príklad ukazuje závislosti, nie rýchlosť servera. Nepočítame hotovostný výsledok a nesčítavame loty rozdielnych kontraktov.
Na malej obrazovke posúvajte tabuľku vodorovne, aby ste prečítali všetky stĺpce.
| Ticket | Na začiatku | Potvrdenie | Zostáva |
|---|---|---|---|
| A | EUR/USD, nákup 0,10 lotu | Close By s B vykonané | Nič |
| B | EUR/USD, predaj 0,10 lotu | Close By s A vykonané | Nič |
| C | GBP/USD, nákup 0,20 lotu | Celých 0,20 zatvorených | Nič |
| D | USD/JPY, predaj 0,10 lotu | Odmietnutie; zatvorené 0 | Predaj 0,10 lotu |
| E | XAU/USD, nákup 0,05 lotu | Celých 0,05 zatvorených | Nič |
Po potvrdenom páre A–B klesne počet pozícií z piatich na tri. Terminál odošle bežné požiadavky pre C, D a E bez čakania na každé predchádzajúce potvrdenie. C a E sa v modeli zatvoria, D je odmietnutá. Zostáva jedna pozícia D: predaj 0,10 lotu USD/JPY. Tri odoslané požiadavky neznamenajú tri dokončené výstupy.
Päť pozícií, jedna stále otvorená
Na malej obrazovke posúvajte diagram vodorovne alebo ho zväčšite. Vysvetlenie nájdete aj v texte.
Počítajte aktuálne pozície a potvrdený zatvorený objem, nie okná s hláškami. Close By tu odstránilo dva tickety jednou operáciou; ostatné požiadavky mali vlastné výsledky. Diagnostika chýb pomôže rozlíšiť odmietnutie, ale konečný stav určuje zosúladenie účtu. Chýbajúca odpoveď nie je automaticky potvrdené odmietnutie.
Pri každom tickete zachovajte symbol, smer, východiskový objem, identifikátor požiadavky alebo príkazu, odpoveď, realizácie a zvyšok. Polia DEAL_ORDER a DEAL_POSITION_ID prepájajú realizáciu s príkazom a pozíciou. Jeden príkaz môže mať viac realizácií. Jednotlivý fragment preto neoznačujte ako úplné zatvorenie; zapisujte aj časový základ a dôvod neistoty.
Nový EUR príklad: dva fragmenty nie sú celý objem
Samostatný hypotetický model má jeden nákup 0,20 lotu lineárneho kontraktu. Predpokladáme 10 jednotiek na lot, vstup 90 EUR za jednotku a rovnakú výstupnú aj oceňovaciu cenu 100 EUR. Ide o vymyslený kontrakt, nie špecifikáciu brokera. Bez nákladov a zmeny ceny je otvorený výsledok 20 EUR.
História potvrdí výstup U1 s objemom 0,05 lotu a U2 s 0,08 lotu. Potvrdený súčet je 0,13 lotu, zostáva 0,07 lotu. Realizovaný výsledok je 5+8=13 EUR a otvorený 7 EUR. Spolu je to stále 20 EUR. Ďalší zápis tej istej realizácie U1 nie je ďalším plnením. Zhodný identifikátor skontrolujte proti histórii namiesto zdvojenia objemu.
13+7=20 EUR. Opakovaný záznam U1 nevytvára nový výstup. Rozhoduje jedinečná realizácia a aktuálny zvyšok, nie počet oznámení.
Na malej obrazovke možno diagram posúvať vodorovne alebo zväčšiť. Hodnoty a záver nájdete aj nižšie v texte.
- Realizácia U1
- 0,05 lotu · +5 EUR
- Realizácia U2
- 0,08 lotu · +8 EUR
- Potvrdené spolu
- 0,13 lotu · +13 EUR realizovaných
- Stále otvorené
- 0,07 lotu · +7 EUR otvorených
Ak by ste U1 započítali dvakrát, tabuľka by mylne vykázala 0,18 lotu zatvorených a 0,02 zostávajúcich. Rozdiel 0,05 lotu je chyba evidencie, nie dôkaz ďalšej realizácie. Najprv zosúlaďte jednoznačné identifikátory a aktuálny zvyšok. Príklad nepredpisuje formát správ konkrétneho EA ani netvrdí, že reálny server poslal duplicitu; ukazuje, ako sa vyhnúť dvojitému spracovaniu rovnakého záznamu.
Čo zmení chyba alebo vypnutie aplikácie?
Zvážte inú vetvu pôvodného modelu: Close By A–B skončí chybou ešte pred vykonaním a vieme, že nevznikla žiadna výstupná realizácia. Proces sa zastaví pred bežnými požiadavkami pre C–E. Zostáva všetkých päť pozícií. To je iný výsledok než odmietnutie D po úspešnom páre. Pri skutočnej nejasnej odpovedi však nemožno predpokladať nulové vykonanie bez overenia.
Vypnutie aplikácie ukončí zostávajúci skupinový proces, ale nevráti späť potvrdené realizácie. Ak A–B už zmizli a požiadavky C–E ešte neodišli, zostávajú tri pozície. Pri už odoslaných požiadavkách zistite výsledok na serveri. Reštart nepotvrdzuje prázdny účet a nemá automaticky spustiť novú dávku podľa zapamätaných objemov.
Overte aj nové vstupy EA, inej aplikácie či inej osoby počas operácie. Nový ticket nemusí byť stará pozícia s chybným zatvorením. Porovnajte čas, históriu a pôvodcu. V MQL5 návrat true z OrderSend nepreukazuje vykonanie obchodu; treba vyhodnotiť výsledkové polia a udalosti. Táto poznámka o automatizácii nie je dôvod na skúšobný živý obchod.
Stačí prázdny zoznam pozícií?
Skontrolujte samostatne čakajúce príkazy. MT5 má odlišné operácie na ich odstránenie; zatvorenie pozícií nepotvrdzuje zrušenie každého čakajúceho vstupu. Fiktívny nákupný príkaz P môže pretrvať aj po zatvorení všetkých piatich ticketov a neskôr vytvoriť novú pozíciu. Typy príkazov odlišujú žiadosť o zrušenie od potvrdeného výsledku.
Po synchronizácii načítajte pozície bez filtra skrývajúceho symbol či smer a porovnajte výstupné realizácie s históriou. Prázdny stav označte účtom, rozsahom a časom pozorovania. Jedna snímka nepreukazuje, že EA už nikdy nevytvorí expozíciu. Pri zostávajúcich pozíciách overte prijatý stop loss a súčasné riziko; diagnostika pôvodnej dávky ich ochranu nenahrádza.
Čo si overiť pri ďalšom cvičení?
- Zachovajte rozsah. Na deme alebo v modeli zapíšte režim účtu, celý názov funkcie, tickety a objemy pred operáciou. Odmietnutia netestujte na živom účte.
- Priraďte potvrdené výsledky. Oddeľte Close By, bežné zatvorenia, fragmenty a nejasné odpovede. Tlačidlo, ktoré zmizlo, nie je dôkaz výstupu.
- Skontrolujte oba zoznamy. Po synchronizácii overte pozície aj čakajúce príkazy. Zapíšte zvyšok a čas pozorovania; príkazy odoslané na začiatku nesmú nahradiť konečný stav.
Overte si, čo ste sa naučili
Cvičenie: približne 2 minúty.
Zobraziť odpoveď a vysvetlenie
Štyri tickety sú zatvorené. Žiadna potvrdená výstupná realizácia neodstránila D.
Ďalšie otázky
Zruší „Zatvoriť všetko“ aj čakajúce príkazy?
Nepovažujte zatvorenie pozícií za potvrdenie zrušenia všetkých čakajúcich vstupov. MT5 poskytuje samostatné operácie na ich odstránenie. Po synchronizácii overte oba zoznamy a históriu na správnom účte. Čakajúci vstup môže neskôr obnoviť expozíciu. Zapíšte čas a rozsah pozorovania; pri nejasnom zrušení samotný prázdny zoznam pozícií výsledok neurčuje.
Vráti vypnutie terminálu skupinovú operáciu späť?
Nevráti potvrdené realizácie. Môže ukončiť zostávajúci proces a ponechať nezatvorené pozície. Pri už odoslaných požiadavkách overte výsledok na serveri; vypnutie nie je automatické zrušenie ani potvrdenie dokončenia. Zachovajte logy a po obnove načítajte aktuálny objem. Reštart mení stav aplikácie, nie historické fakty vykonaných obchodov.
Prečo v ponuke chýba zatvorenie všetkých ziskových pozícií?
Dostupnosť závisí od režimu účtu, vybranej pozície a nastavení platformy. Dokumentácia uvádza skupinové operácie nezlučiteľné s FIFO, ktoré sa pri týchto účtoch nezobrazujú. Overte aj One Click Trading a celý názov funkcie. Doplnok môže mať inú ponuku; rovnaký názov nepotvrdzuje zhodu so vstavaným postupom ani dostupnosť na serveri.
Môžem po chybe jednoducho kliknúť znova?
Najprv zosúlaďte súčasný stav. Niektoré pozície mohli zmiznúť alebo sa zmenšiť a EA mohol otvoriť nové. Odmietnutie a chýbajúce potvrdenie sú odlišné výsledky. Pri fragmentoch spočítajte jedinečné realizácie, nie všetky opakované záznamy. Ďalšia operácia má nový rozsah a vlastné podmienky vykonania; automaticky nedokončuje starý zoznam.
Zdroje a overenie
- MetaQuotes — MT5 Help: Executing Trades
Etapy hromadného zatvárania, rozdiely pri chybách, vypnutie aplikácie a osobitné odstránenie čakajúcich príkazov.
- MetaQuotes — Account Properties
Konkrétny režim účtu a ACCOUNT_FIFO_CLOSE; nie všeobecné oprávnenie všetkých účtov.
- MetaQuotes — Deal Properties
DEAL_VOLUME, DEAL_ORDER a DEAL_POSITION_ID umožňujú priradiť skutočné realizácie k pozícii.
- MetaQuotes — OrderSend
True nepreukazuje vykonanie; výsledkové kódy a obchodné udalosti môžu prísť v odlišných krokoch.
Výpočty používajú výslovne uvedené predpoklady. Nenahrádzajú aktuálne trhové údaje ani podmienky poskytovateľa.
