În acest articol
După lectură vei putea să…
- Verifici completitudinea datelor înaintea regulii.
- Separi istoricul lipsă de o decizie validă fără intrare.
- Reconciliezi cererile neconfirmate înaintea retrimiterii și contabilizezi expunerea posibilă.
Explicații ale termenilor în articol
Media mobilă simplă (SMA) Plan de tranzacționare Backtesting: testare pe date istorice Valoare noțională a poziției Cont demonstrativ (demo) Valoare așteptată a rezultatuluiPrimul proiect algoritmic poate înregistra semnale, calcula volumul ori verifica expunerea fără să trimită ordine. Alege o operațiune al cărei rezultat îl poți explica și reproduce. Definește datele, regula și comportamentul programului înaintea permisiunii de tranzacționare. Automatizarea nu dovedește profitabilitatea strategiei și nu înlătură supravegherea.
Ce automatizezi efectiv?
Separă alegerea semnalului, execuția unei decizii existente, administrarea poziției și raportarea. Un program care împarte un ordin existent are alt scop decât robotul care alege intrarea. Raportul Markets Committee din 30 octombrie 2020 privește algoritmi de execuție FX, structura pieței și riscurile aferente. Nu demonstrează că un robot retail produce profit. În acel context EA înseamnă execution algorithm; în MetaTrader, Expert Advisor.
Specifică instrumentul, sursa datelor, intervalul de operare, timestampul deciziei, intrarea, ieșirea, volumul, plafonul de expunere și conduita când există deja o poziție. O regulă poate elimina o greșeală manuală și introduce alta: cerere duplicată după repornire. Verifică separat corectitudinea programului și rezultatul economic al regulii.
Cum alegi instrumentul de lucru?
Pentru un mesaj poate fi suficientă o alertă. MT5 standard compară preț, volum al ultimei tranzacții și timp; nu este editor arbitrar de medie mobilă plus ATR. Pentru logică proprie poate fi necesar indicator ori EA. MQL5 funcționează în MT5, Python poate analiza date sau utiliza o conexiune documentată. Nu există scară obligatorie alerte→MQL5→Python→FIX.
Alege mediul potrivit contului, datelor și operațiunii. Nu presupune număr standard de linii, durată de dezvoltare, latență ori acces API la orice broker. Bazele EA în MQL5 explică programul platformei, iar Backtestul Forex în Python un flux de cercetare separat. Implementarea aceleiași idei în ambele este opțională.
De ce nu poți ghici al treilea preț?
Regulă fictivă: ultimul preț închis trebuie să fie strict peste media a exact trei prețuri închise, ordonate cronologic x, 100, 102. Lipsa lui x nu autorizează schimbarea perioadei. Toate sunt bare istorice încheiate; x nu reprezintă o valoare viitoare.
A treia valoare nu poate fi ghicită
Pe un ecran mic, derulează diagrama orizontal sau mărește-o. Explicația este disponibilă și în text.
Prima completare dă (98+100+102)/3=100, deci 102 >100. A doua dă 308/3≈102,667, deci condiția nu trece. Media celor două valori cunoscute, 101, evaluează altă regulă. Zero ar inventa o observație. Suspendă evaluarea; „date lipsă” diferă de „intrare refuzată după calcul valid”.
CopyRates întoarce numărul înregistrărilor copiate ori eroare; disponibilitatea poate fi parțială în timpul descărcării. Verifică numărul cerut și barele concrete înaintea calculului. Dacă recuperarea reușește mai târziu, confirmă că sunt aceleași intervale intenționate. Exemplul nu rezolvă separat ordinea indexării din array.
Ce competențe cere proiectul?
Programare suficientă pentru operațiunea folosită, manipularea datelor, dimensionarea riscului și raționament statistic. O curbă scurtă descrie eșantionul, fără probă de profitabilitate viitoare. Planifică date reprezentative, evaluare separată și verificări demo ale execuției. Modificarea unui parametru fără eroare de sintaxă nu testează starea sau ipotezele economice.
MQL5 se conectează prin terminal; Python poate utiliza terminalul ori alte interfețe documentate. Latența integrală depinde de cod, hosting, rețea și execuția brokerului. Nu promite milisecunde cu o singură cifră. Datele, licențele, hostingul și timpul pot costa chiar dacă limbajul nu are taxă de licență.
Cum treci de la idee la test?
Model EUR/USD H1, fără recomandare: definește exact EMA 21, SMA 55 și distanța bazată pe ATR aleasă pentru exercițiu. Decide folosirea barelor H1 închise și momentul evaluării. Începe cu jurnal de semnale. Testează semnal valid, lipsa semnalului, schimbarea barei, istoric incomplet și poziție existentă.
Compară manual și automat aceleași date și date calendaristice. Cinci ani de test automat nu trebuie să reproducă șase luni manuale din altă perioadă. Reconciliază deciziile individuale, modelează costurile, apoi îngheață regula pentru date separate. Ajustarea regulii după rezultatul „out-of-sample” transformă perioada respectivă în date de dezvoltare.
Model separat de volum: capital curent/equity 10.000 USD, buget ales 0,5% =50 USD, stop la 25 pipuri, pip EUR/USD 0,0001 și contract 100.000 EUR/lot. Pipul per lot este 10 USD, deci 50/(25×10)=0,20 loturi, valoare noțională 20.000 EUR. Procentele alese nu sunt recomandări universale. Marja, nominalul și pierderea inițială planificată sunt măsuri diferite.
Include comisionul și ipotezele execuției înaintea ajustării la pasul permis. Stopul obișnuit poate executa la alt preț, mai ales la gap; bugetul 50 USD nu este plafon garantat. Alegerea parametrilor pe o curbă favorabilă poate reflecta selecția, fără avantaj persistent.
Verifică și coerența cotației: t1 Bid/Ask 1,1000/1,1002, t2 1,1010/1,1012. Fiecare spread este 2 pipuri cu pip 0,0001. Ask din t1 combinat cu Bid din t2 dă însă −8 pipuri, nu spread negativ observat. Filtrul spread <2,5 ar accepta greșit această construcție. SymbolInfoTick oferă prețuri și momentul actualizării într-un MqlTick; verifică succesul și păstrează câmpurile aceleiași structuri. Coerența datelor nu garantează lichiditate sau fill viitor.
Cum separi codul, datele și rezultatul economic?
Proiectul poate eșua prin regulă slabă, date, cod, execuție ori operare. După răspuns ambiguu la ordin, verifică ordinele, tranzacțiile și pozițiile înaintea retrimiterii. OrderSend=true nu demonstrează fill final. Verifică rezultatul, codurile și starea tranzacției. Înregistrează versiunea regulii, timestampul informației și motivul acțiunii ori al suspendării.
Backtestul cere produsul, costurile și cronologia relevante. Păstrează toate variantele încercate și rapoartele nereușite. Evaluarea avantajului statistic explică separarea dezvoltării de evaluare. Profit final asemănător nu înseamnă aceleași ordine ori aceeași expunere.
Eșantion fix-R fictiv: 100 tranzacții, 40 câștiguri de +2R și 60 pierderi de −1R. Media, adică speranța matematică empirică, este (80−60)/100=+0,2R, înainte de costuri. Profit factor este 80/60≈1,33. Sunt inputuri alese pentru aritmetică, fără strategie testată sau predicția următorului eșantion.
Model RON: cererea neconfirmată nu eliberează automat bugetul
Model propriu fictiv: plafon intern al pierderii de preț planificate 300 RON și poziții existente cu 50 RON de risc planificat. O cerere de 0,20 loturi, 25 pipuri și 10 USD/pip/lot ar consuma 50 USD, adică 250 RON la conversie sintetică fixă 5 RON/USD. Nu includem costuri ori gap și nu pretindem pierdere maximă garantată.
Răspunsul ambiguu nu dovedește respingerea. Dacă robotul presupune zero și repetă cererea, ambele pot ajunge executate: 50+250+250=550 RON planificați, peste plafonul 300. Registrul intern prudent rezervă cei 250 pentru cererea încă neclară; 50+250=300, fără loc pentru duplicat. Reconciliază întâi starea efectivă. Eliberează rezervarea numai pe baza stării confirmate; un identificator intern ajută reconcilierea, fără a transforma API-ul în serviciu garantat „exact o dată”.
Lipsa confirmării nu dovedește expunere zero. Include starea posibilă înaintea unui retry.
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.
- Cerere neclară
- 50 + 250 = 300 RON – Rezervarea păstrează cererea posibil executată în buget.
- Retry orb
- 50 + 250 + 250 = 550 RON – Două cereri executate ar depăși plafonul intern.
- Pas următor
- Reconciliază, apoi decide – Identificator, ordine, tranzacții și poziții; fără garanție API exact o dată.
Ce pregătești pentru proiectul inițial?
- Scrie o operațiune reproductibilă: date, timestamp, regulă, rezultat și condiții de suspendare. Un jurnal verificabil poate constitui proiectul complet.
- Testează istoricul incomplet și cotațiile amestecate pe cazuri mici explicabile. Distinge bara curentă de cea încheiată.
- Dacă ai nevoie de ordine, folosește mediu demo identificat explicit. Testează acceptare, respingere, restart și răspuns ambiguu; verifică starea înainte de retry.
- Îngheață regula pentru evaluare separată, cu costuri potrivite produsului. Compară aceleași date și decizii, fără toleranță procentuală universală.
- Scrie procedura de pauză, restart și actualizare. AutoTrading local dezactivat nu închide poziții. Protecția server acceptată diferă de administrarea prin program; verifică instanța remote separat. Demo nu garantează aceeași execuție live.
Verifică ce ai învățat
Exercițiu: aproximativ 2 minute.
Arată răspunsul și explicația
98 și 106, completări alternative, dau răspunsuri opuse. Păstrează lipsa drept lipsă.
Alte întrebări
Ce înseamnă tranzacționare algoritmică retail?
Cum alegi între alertă, EA și cercetare în Python?
Ce abilități contează dincolo de modificarea codului?
Ce eșecuri verifici înaintea extinderii?
Surse și verificare
- MetaQuotes — CopyRates
Număr de înregistrări returnate, eroare, date parțiale și bara curentă; verifică intervalele.
- MetaQuotes — SymbolInfoTick
Prețurile și timestampul într-o structură; verifică succesul.
- MetaQuotes — OrderSend
True nu dovedește execuție finală; verifică rezultat, coduri și tranzacții.
- BIS Markets Committee — FX execution algorithms and market functioning
Raport publicat la 30 octombrie 2020 despre execuție și riscuri instituționale, fără profitabilitate retail demonstrată.
Calculele folosesc ipotezele precizate explicit. Nu înlocuiesc datele actuale ale pieței sau condițiile furnizorului.
