În acest articol
După lectură vei putea să…
- Legi executările de ordine și poziție fără să ghicești proprietarul profitului.
- Reconciliezi realizat, nerealizat și costuri sub o convenție declarată.
- Separi alocarea EA de diferența produsă de momentele conversiei în registrul RON.
Explicații ale termenilor în articol
Expert Advisor (EA) Lot Comision de tranzacțiePe netting, doi roboți și ordinele manuale pot modifica aceeași poziție. Rezultatul ei nu identifică automat contribuția fiecărui EA. Reconstruiește executările și legăturile, apoi declară convenția de alocare. Două convenții pot da rezultate diferite pentru roboți, păstrând totalul contului. Analiza nu înlocuiește istoricul brokerului și nu stabilește tratamentul fiscal românesc.
De ce magic number nu împarte poziția comună?
MT5 netting menține o poziție pe simbol, modificată prin executări ulterioare. Un ordin poate produce mai multe executări, numite deals. Numele diferite ale programelor nu creează portofolii independente în acel cont. Separă instrucțiunea, executarea și poziția rezultată.
DEAL_MAGIC este numărul magic al executării, iar DEAL_REASON descrie sursa sau cauza. Nu sunt aceeași proprietate. Documentația expune și ordinul, identificatorul poziției și timpul. Magic zero singur nu dovedește decizie manuală. Păstrează legăturile și maparea convenită dintre programe și identificatori.
O ieșire manuală poate reduce expunerea construită de A și B. Eticheta executării de ieșire nu decide ce cantitate anterioară vei considera închisă în analiză. Ghidul EA explică selecția pozițiilor; aici reconstruim istoria comună, nu deschidem conturi separate pentru fiecare robot.
Cum legi executarea, ordinul și poziția?
Păstrează numerele ca identificatori, fără operații aritmetice asupra lor. Leagă DEAL_ORDER de ordin și DEAL_POSITION_ID de istoricul poziției. POSITION_IDENTIFIER leagă ciclul; POSITION_TICKET curent se poate schimba prin operațiuni de serviciu ale serverului. În netting, inversarea printr-o singură tranzacție INOUT păstrează identificatorul, deși ticketul se schimbă. Nu presupune că orice inversare începe un identificator nou.
HistorySelectByPosition selectează istoricul folosind identificatorul poziției. Verifică succesul și acoperirea exportului, nu numai ce se vede într-o fereastră. Atenție și la programul de export: după HistoryOrderSelect sau HistoryDealSelect lista selectată se poate reseta la elementul găsit. O parcurgere construită pe lista anterioară trebuie proiectată ținând cont de acest efect. Nu completa rândurile lipsă din comentariul ieșirii.
Include comisionul, fee, finanțarea și rezultatul în moneda contului, separând operațiunile de sold de executările Buy/Sell. La ordine împărțite folosește cantitățile și prețurile efectiv executate, nu volumul solicitat. Bazele MQL5 pentru EA dezvoltă evenimentele și identificatorii; aici datele de intrare sunt un istoric reconciliat.
Cum obții două rezultate EA din același cont?
Model propriu: două cumpărări, două ieșiri manuale
Presupunem contract liniar EUR/USD de 100 000 EUR/lot, cont USD și nicio poziție inițială. Toate prețurile sunt executări fictive: cumpărările la Ask presupus, vânzările la Bid. Patru executări complete au loc în ordinea tabelului; fiecare costă 1 USD comision, fee și swap zero. Nu scădea încă o dată spreadul inclus deja în prețurile executate.
Pe un ecran mic, derulează tabelul orizontal pentru a citi toate coloanele.
| Deal / ordin | Sursă | Executare | Poziție după |
|---|---|---|---|
| 7001 / 5001 | EA A | Buy 0,10 la 1.1000 | Long 0,10 |
| 7002 / 5002 | EA B | Buy 0,10 la 1.1020 | Long 0,20 |
| 7003 / 5003 | Ieșire manuală | Sell 0,10 la 1.1010 | Long 0,10 |
| 7004 / 5004 | Ieșire manuală | Sell 0,10 la 1.1030 | Fără poziție |
Media cumpărărilor după a doua executare este 1.1010. În modelul poziției comune, prima reducere realizează 0 USD din preț, a doua 20 USD. După patru comisioane rămân 20 − 4 = 16 USD. Este reconcilierea unui ciclu complet fictiv, nu performanța observată live.
FIFO analitic alocă ieșirea către cantitatea cea mai veche: 7003 către A, cu 10 000 × (1.1010 − 1.1000) = 10 USD; 7004 către B, cu 10 000 × (1.1030 − 1.1020) = 10 USD. Fiecare EA primește comisionul intrării și al ieșirii alocate. A are 8 USD, B tot 8 USD.
LIFO analitic alocă întâi cantitatea cea mai nouă: B are −10 USD din preț la 7003, A are 30 USD la 7004. După costuri: B −12 USD, A 28 USD; total tot 16 USD. FIFO/LIFO sunt aici convenții ale analizei, nu două metode alternative de contabilizare ale serverului sau reguli fiscale universale. Nu schimba tacit convenția ca să îmbunătățești raportul robotului.
Același total, atribuiri diferite
Ambele convenții dau 16 USD total, dar alt rezultat EA. Nu sunt două metode ale serverului.
Pe un ecran mic poți derula diagrama orizontal sau o poți mări. Valorile și concluzia apar și în textul de mai jos.
De ce rezultatul realizat diferă după prima ieșire?
După 7003 presupunem Bid curent 1.1010. Poziția comună are 0 USD realizați și 0 USD nerealizați din preț. FIFO analitic arată 10 USD realizați la A, dar cantitatea B rămasă are −10 USD nerealizați. Împreună sunt zero. Compararea numai a rezultatului realizat analitic cu cel realizat al serverului este incorectă cât timp poziția rămâne deschisă.
După trei executări sunt 3 USD comisioane; ambele reprezentări au rezultat combinat −3 USD la acel preț. După 7004 nu mai există evaluare nerealizată, iar alocarea totală este 16 USD. P/L flotant și realizat explică măsurile. Potrivirea sumelor nu selectează automat convenția potrivită scopului tău.
Model RON: conversia poate cere o reconciliere separată
Extensie ipotetică distinctă, pentru un registru RON: păstrăm cele patru executări și comisioanele de 1 USD, dar alegem conversii RON/USD de 4,40; 4,50; 4,60; 4,70, în aceeași ordine. Registrul comun convertește rezultatul din preț realizat la fiecare ieșire: 0 USD la prima și 20 USD la ultima. Convertește fiecare comision la cursul evenimentului său. Nu sunt cursuri curente sau metoda afirmată a unui broker; nu reconvertim automat soldul contului USD inițial.
Pe un ecran mic, derulează tabelul orizontal pentru a citi toate coloanele.
| Executare | P/L realizat USD | Conversie RON/USD | Contribuție netă RON |
|---|---|---|---|
| 7001 | 0 | 4,40 | −4,40 |
| 7002 | 0 | 4,50 | −4,50 |
| 7003 | 0 | 4,60 | −4,60 |
| 7004 | 20 | 4,70 | +89,30 |
Totalul este 94 RON din preț minus 18,20 RON comisioane = 75,80 RON. Conversia întregului rezultat USD la ultimul curs ar da 16 × 4,70 = 75,20 RON, altă convenție, nu aceeași evidență. Diferența de 0,60 RON nu dovedește o taxă ascunsă.
Dacă în plus convertești profiturile FIFO de 10 și 10 USD la cursurile celor două ieșiri, obții 93 RON din preț, nu 94. După costurile alocate, A are 37 RON și B 37,80: subtotal 74,80 RON. Lipsește din reconcilierea cu registrul comun 1 RON. Pentru LIFO, A are 131,90 RON și B −55,10: subtotal 76,80 RON, cu ajustare de −1 RON față de registrul comun.
Pe un ecran mic, derulează tabelul orizontal pentru a citi toate coloanele.
| Convenție analitică | A net | B net | Subtotal | Reconciliere distinctă | Total comun |
|---|---|---|---|---|---|
| FIFO | 37 | 37,80 | 74,80 | +1 | 75,80 |
| LIFO | 131,90 | −55,10 | 76,80 | −1 | 75,80 |
Ajustarea descrie diferența dintre momentele realizării și conversiei în cele două convenții; nu este comision nou, profit suplimentar sau eroare dovedită a brokerului. Las-o într-o coloană de reconciliere până când declari cum o aloci. Suma finală potrivită nu justifică atribuirea ei arbitrară robotului favorit. Exemplul arată de ce regula de conversie și alocarea costurilor trebuie declarate împreună cu FIFO/LIFO.
Istoricul real poate avea executări parțiale, inversări, corecții și taxe separate. Dacă lipsește o intrare, lasă atribuirea afectată nerezolvată. Nu inventa prețul ori sursa pentru a forța suma. Limitele fiecărui robot și controlul contului se aplică expunerii comune efective, indiferent de convenția raportului.
Ce pregătești înainte să evaluezi roboții?
- Selectează un ciclu complet al unui simbol și păstrează exportul original. Leagă executările de ordine și identificatorul poziției, reconciliază volumele și costurile. Nu crea un exemplu printr-o tranzacție live.
- Declară alocarea cantităților, costurilor și conversiei înainte de calcul. Sursa instrucțiunii și proprietarul analitic sunt coloane diferite. Marchează datele lipsă.
- Compară totalul ciclului închis cu evidența comună. Pentru ciclul deschis adună realizat și nerealizat la același preț și monedă. Păstrează ambele perspective în jurnal; alocarea nu stabilește profitabilitatea viitoare.
Verifică ce ai învățat
Exercițiu: aproximativ 2 minute.
Arată răspunsul și explicația
Corect: 10 − 10 − 3 = −3 USD, la fel ca zero din preț al poziției comune minus trei comisioane.
Alte întrebări
Magic number de la ieșire identifică robotul care a câștigat profitul?
Nu singur. Eticheta ajută investigarea sursei instrucțiunii, dar ieșirea manuală poate reduce poziția construită de mai mulți EA. Leagă executările, ordinele și poziția, reconstruiește cantitățile și declară convenția. Nu transforma sursa manuală în instrucțiune EA; păstrează separat sursa, proprietarul analitic și alocarea costurilor.
FIFO din exemplu este regula brokerului sau fiscală?
Nu. FIFO/LIFO sunt convenții de alocare analitică a cantității. Nu sunt două metode alternative ale serverului MT5 sau reguli fiscale universale. Păstrează istoricul original și declară convenția comparației. Același total de 16 USD nu face orice alocare potrivită oricărui scop; pentru obligații fiscale contează regulile jurisdicției aplicabile.
De ce realizatul diferă după prima ieșire?
După 7003, media comună 1.1010 și ieșirea la același preț dau zero realizat din preț. FIFO atribuie 10 USD realizați lui A, dar B are −10 USD flotanți la 1.1010. Împreună sunt zero din preț, apoi −3 USD cu trei comisioane. Compară realizat plus nerealizat la aceeași evaluare, nu numai componenta închisă.
Pot reconstrui intrarea lipsă din comentariul ieșirii?
Comentariul nu justifică inventarea executării, prețului sau sursei. Lasă atribuirea nerezolvată și verifică acoperirea istoricului, legăturile și cantitățile parțiale. Reconciliază separat costurile și operațiunile de sold. Un tabel aparent complet, forțat cu o intrare presupusă, poate ascunde lipsa dovezii.
De ce modelul RON cere o coloană de reconciliere?
Registrul comun definit convertește 0 USD la prima ieșire și 20 USD la ultima, plus fiecare comision la cursul evenimentului: 75,80 RON net. Conversia profiturilor FIFO/LIFO alocate la alte momente dă subtotaluri 74,80 și 76,80 RON. Ajustările +1/−1 sunt diferențe între convenții, nu taxe noi. Declară alocarea lor; nu le atribui arbitrar unui EA.
Surse și verificare
- MT5 Help — principii de bază
Ordine, executări și poziția unică netting; operațiuni opuse și media ponderată a cantităților.
- MQL5 — proprietățile executărilor
Magic, motiv, ordin, identificatorul poziției și costuri sunt câmpuri distincte.
- MQL5 — proprietățile pozițiilor
POSITION_IDENTIFIER leagă istoricul; ticketul poate fi schimbat prin servicii sau inversare netting.
- MQL5 — HistorySelectByPosition
Selectare după identificator, succesul citirii și resetarea listelor prin selectarea elementelor individuale.
Calculele folosesc ipotezele precizate explicit. Nu înlocuiesc datele actuale ale pieței sau condițiile furnizorului.
