MQL5 a Python automatizují předem vymezený proces různými cestami. Nejdříve zvolte účet, data, přístup a provozní sestavu. Jazyk, krátký skript ani hybrid nejsou důkaz ziskových pravidel či univerzálně rychlejší spolehlivé exekuce. Porovnávejte konkrétní závislosti a zaznamenané odpovědi.

Srovnejte provozní uspořádání

MQL5 EA běží přes terminál MT5. Python může použít oficiální balíček MetaTrader 5, samostatné API brokera nebo jen historické soubory. Oficiální balíček komunikuje s terminálem, nikoli přímo s každým brokerovým serverem. Prověřená distribuce na PyPI má Windows x86-64 wheels; dostupnost samotného Pythonu jinde není totéž. Verze interpretu a balíčku musejí souhlasit.

initialize() může terminál podle potřeby spustit. Určete konkrétní instalaci a přečtěte účet, server i demo/live status místo spoléhání na naposledy použitý účet. Úspěšné spojení není potvrzení výsledku dřívějšího pokynu. Samostatné API potřebuje vlastní kontrolu subjektu, produktu, oprávnění, dat a jednotek.

Na malé obrazovce posouvejte tabulku vodorovně, abyste přečetli všechny sloupce.

VariantaZávislosti a první kontrola
MQL5 EATerminál, verze kódu, parametry a účet; ověřte aktivní verzi a odpovědi.
Python přes MT5Python proces, terminál a komunikace; ověřte identitu po připojení.
Python přes jiné APIAutorizace, adaptér, limity a model pokynů; usmiřte jednotky.
Python výzkum/MQL5 provozShodná pravidla a verze; přehrajte stejné mezní vstupy.

Méně procesů může zjednodušit dohled, ale nenahradí reakci na odmítnutí, dílčí plnění nebo nejistý stav. Navazují první algoritmické kroky a základy EA.

Integrace MQL5 má podmínky

MQL5 propojuje události, obchodní funkce a Strategy Tester. Testovací data, náklady a exekuce nejsou automaticky historická realita brokera; cloudová optimalizace má vlastní podmínky. Modely připravené jinde lze provozovat přes podporované ONNX rozhraní: strojové učení tedy nemusí při exekuci potřebovat Python. Ověřte tvary vstupu, předzpracování a význam výstupu.

OnTick není příslib zvláštního callbacku na každý tick. Je-li NewTick ve frontě nebo se zpracovává, další není přidán. Měřte skutečnou zátěž a potřebné časy. Jazyk sám nedokládá jednomilisekundový výkon a rozhodování H1 nevylučuje citlivost na zpoždění vstupu.

Python neodstraňuje kontrolu dat a adaptéru

Analytické knihovny a společná rozhraní pořád potřebují symboly, množství, seance, dostupnost historie a pravidla konkrétního poskytovatele. Více účtů či makrodata jsou požadavky k posouzení, ne automatická převaha jedné sestavy. Uložte verze a konfigurace. Původní repozitář ib_insync byl archivován 14.března 2024: neprokazuje to nefunkčnost existujícího kódu, ale starý návod nepotvrzuje současnou podporu.

Přihlašovací údaje nepatří do veřejného kódu ani běžných logů. Offline analytický test nepotřebuje obchodní oprávnění. Udržujte záznam konkrétní instalace a posledních spolehlivě usmířených operací; návrat procesu po pádu není sám účetní rekonstrukce.

Dva různé významy hybridu

V první variantě Python vyvíjí model a ověřená logika se nasadí jako MQL5 EA. Obsahuje-li provedení vše potřebné, Python nemusí zůstat spuštěn. Ve druhé Python průběžně posílá požadavky přes terminál; sledujte oba procesy, čerstvost vstupů a skutečný stav účtu. MetaQuotes Virtual Hosting migruje podporované EA/grafy, není obecná Windows plocha pro libovolný externí Python.

Záložní EA nedokáže zavřít přes stejný nefunkční terminál či rozbité spojení. Serverové ochrany ověřujte zvlášť podle skutečně přijatých parametrů. Dokumentované order_send() posílá požadavek a vrací strukturu výsledku. Výstup potřebuje odpovídající akci a identifikaci pozice; obecná funkce position_close() zde dokumentována není.

Samostatný model požaduje 0,10 lotu: první pokyn se provede, odpověď se ztratí a slepé opakování dalších 0,10 se také provede. Celkem je 0,20 místo 0,10. Při lineárním EUR/USD s kontraktem 100 000 EUR/lot, pipu 0,0001 a USD účtu vzroste expozice z 1 na 2USD/pip. Obě plnění jsou přidělený předpoklad, nikoli tvrzení, že všechny nejisté požadavky se provedly nebo každý účet pozice stejně slučuje. Po nejistotě nejdříve usmiřte pokyny, realizace a pozice.

Negace může z chybějících dat udělat True

Chybějící vstup nevyřeší negaceSkalární float NaN, fiktivní mez 10, bez předchozího nahrazení dat.MODELOVÝ VÝPOČETx>10Falsenot(x<=10)Trueisfinite(x) and x>10False
Chybějící vstup nevyřeší negace. Skalární float NaN, fiktivní mez 10, bez předchozího nahrazení dat.

Pravdivý booleovský výraz nepotvrzuje dostupnost indikátoru. Pole a jiné typy mají vlastní pravidla.

x>10
False – Chybějící údaj není vyšší konečná cena.
not(x<=10)
True – Porovnání je False, jeho negace True.
isfinite(x) and x>10
False – Naše explicitní brána vyhodnocení blokuje.

Pro skalární Python float nastavte x = float('nan') a fiktivní mez 10. NaN není nula ani obrovské číslo. x > 10 je False, stejně jako x <= 10; proto not(x <= 10) je True. U konečných čísel mohou podmínky vypadat ekvivalentně, ale chybějící vstup je rozliší. Naše politika math.isfinite(x) and x > 10 blokuje NaN. Před podmínkou prověřte typ, dostupnost a konečnost, nikoli pouze negaci.

Jde o skalární float, ne pole NumPy ani pravidla Decimal. Při přenosu zachovejte chybějící a nekonečné vstupy jako samostatné testy; nepředpokládejte totožnou sémantiku všech jazyků. Samotné True neznamená dostupný indikátor.

Usmiřte hranice pravidla a přidělená plnění

Hypotetický signál po uzavření svíčky na 1,1000: model A tam nakoupí, B až na pozdějším Ask 1,1003. Rozdíl je při pipu 0,0001 tři pipy. Čas, pohyb a cenová strana mohou působit společně; celé tři nelze označit za režii Pythonu ani za spread. Porovnávejte jednotlivé signály, požadavky, množství, ceny a náklady dříve než výnos.

Python float 0.1 + 0.2 je 0.30000000000000004, větší než float 0.3. Decimal vytvořené z řetězců dávají v tomto modelu přesně 0.3; celočíselné jednotky 1+2=3. Zobrazení obou jako „0.3“ nezmění uložené porovnání. Zkontrolujte podmezní, rovný, nadmezní, chybějící a nekonečný případ; tolerance je nové pravidlo, ne kosmetika. Tyto kontroly nespouštějí MQL5 verzi a neprokazují výhodu. Vektorizovaný test může obsahovat náklady a událostní název necertifikuje plnění. MT5 tester neprovozuje libovolný Python skript jako nativní EA.

Nová CZK kontrola čerstvosti: hypotetický požadavek pro 1000EUR byl spočítán s cenou 25,00CZK/EUR v 10:00:00. Pravidlo dovoluje stáří nejvýše 1 sekundu včetně. V 10:00:02 je stáří 2 sekundy, takže po restartu nesmí projít jen proto, že jsou cena a množství konečné. Jeho nominál 25 000Kč se obnovou spojení nezměnil na nový signál. Neodhadujeme tím skutečnou pozdější cenu ani ztrátu. Log obsahuje původní čas, hranici platnosti a důvod odmítnutí, nikoli vymyšlené plnění.

Rozhodněte podle reprodukovatelného požadavku

Sepište účet/API, data, časování, knihovny, systém a dohled. Malý prototyp může číst data a zaznamenávat signál bez obchodování. Pevná doba nastavení, počet řádků ani poměr dvě ku jedné v době učení nevybírá správnou architekturu. Zvažte jednodušší alternativy; zpoždění měřte v konkrétní sestavě.

Další kroky a poruchové případy

  1. Zmrazte malé pravidlo s dostupností vstupu, jednotkami a významem rovnosti.
  2. Oddělte datové kontroly od oprávnění pokynů; přečtěte skutečný účet, instrument a demo status.
  3. Na demu zkoumejte odmítnutí, chybějící vstup, restart a nejistou odpověď. Obnovení komunikace není důkaz dřívějšího neúspěchu.
  4. Porovnejte jednotlivé záznamy před ziskem; Pythonový backtest navazuje na čas a výběr dat.