Excel RTD (Real Time Data) MetaTrader Supreme Edition

Excel sešit můžete dostat na vyžádání od Vašeho account manažera, ozvěte se mu.
Pracujete rádi v Excelu? Rozumíte funkcím, nebo dokonce umíte programovací jazyk VBA? A chcete tyto Vaše dovednosti zúročit na finančních trzích. Tak to budete chtít vyzkoušet rozšíření Excel RTD do platformy MetaTrader.
Ale nemusíte být nutně borec v Excelu. Rozšíření Excel Real Time Data z balíčku MetaTrader Supreme Edition ocení i průměrný uživatel Excelu, protože nabízí velké množství funkcí, ze kterých se jich může pro vaše obchodování pár hodit.
Co je to Excel RTD neboli Excel Real Time Data? Co poskytuje MT4 Excel plugin z balíčku Supreme Edition, jaké jsou výhody aplikace RTD pro obchodování na finančních trzích a proč Excel RTD MT4 ze Supreme Edition používat? To vše v našem článku - průvodce Excel RTD / Excel Real Time Data v MetaTraderu!
Jak stáhnout Excel RTD pro MetaTrader
Plugin MetaTrader Supreme Edition, který obsahuje více než 60 funkcí, včetně Excel Real Time Data, stáhnete na našich stránkách v sekci Platformy - MetaTrader Supreme Edition nebo stačí, když kliknete na upoutávku níže.
Jakmile MetaTrader Supreme Edition nainstalujete, Excel RTD naleznete v MetaTraderu v okně Navigátor ve Strategiích.
Excel RTD MT4 Supreme Edition přetáhnete do grafu a v záložce Obecné povolíte live obchodování a DLL import:
Excel RTD MetaTrader Supreme Edition →
MT4 Excel plugin z balíčku MetaTrader Supreme Edition Vám umožní vykonávat dvě věci:
- Vkládat live data do Excelu jen za pomocí funkce RTD() v Excelu. Žádná makra, žádné programování, žádné XLL doplňky.
- Posílat jednoduché obchodní pokyny z VBA kódu v Excelu
Můžete spustit více kopií aplikace Excel RTD pro různé účty a pak kombinovat data pro tyto účty v jedné tabulce.
Excel RTD Supreme Edition aplikace je vybavena ukázkovou tabulkou, která Vám umožní využití Excel RTD v MetaTraderu, konkrétně zadat až 5 čísel obchodních účtů a poté automaticky zobrazit přehled zůstatku a majetku atd. například: cenu symbolu, seznam otevřených pozic a další.
Využití MT4 Excel plugin v obchodování na Forexu - Jak spustit RTD aplikaci v MetaTraderu - MetaTrader Excel
Abyste si zobrazili reálná data v Excelu, musíte si spustit aplikaci RTD. Níže zmíněné příkazy v Excelu Vám zobrazí pouze prázdnou hodnotu, pokud aplikace není spuštěna.
Jak používat Excel funkci RTD ze Supreme Edition - Menu symbolů v Excel RTD aplikaci
Pro všechny symboly, které jsou zobrazeny v aplikaci Excel Real Time Data Supreme Edition, ne v okně trhu v platformě (kde se vždy zobrazují všechny dostupné symboly):
Můžete určit, které ceny symbolů jsou přenášeny do Excelu pomocí menu Symboly v aplikaci RTD. Doporučujeme vám nakonfigurovat aplikaci pouze na použití symbolů, které právě potřebujete.
(Jinými slovy: například kolonka bidGBPUSD zůstane prázdná, pokud bude GBPUSD dostupné jen ve Vaší platformě a nezahrnuli jste symbol do seznamu v aplikaci Supreme Edition.
Funkce v Excelu Real Time Data - Excel Vzorec
Jakmile Excel RTD MT4 Supreme Edition nebo Excel RTD MT5 běží, můžete použít následující vzorec v Excelu pro vkládání online dat v reálném čase z Vašeho účtu, jako informace o obchodu nebo o ceně instrumentu. Potřebujete jen jednoduše vyplnit číslo účtu a "téma", které chcete zobrazit:
=RTD("fxbluelabs.excelrtd";;číslo účtu;"téma")
Například pokud je Vaše číslo účtu 156734 a chcete zobrazit zůstatek na Vašem účtu nebo nabídkovou cenu pro GBPUSD, jednoduše napíšete:
=RTD("fxbluelabs.excelrtd";;156734;"balance")
=RTD("fxbluelabs.excelrtd";;156734;"askGBPUSD"
Jak funguje Excel RTD v MetaTraderu - Názvy jednotlivých Vlastností
RTD aplikace poskytuje data o účtu (např. zůstatek nebo majetek), cenu instrumentu a hodnotu "pokynu". Seznam pokynů zahrnuje otevřené a čekající pokyny.
Jak zobrazit reálná data z Obchodního Účtu v Excelu - Vlastnosti Dat z Obchodního Účtu
Vlastnost | Význam |
currency | Měna účtu |
balance | Zůstatek na účtu |
equity | Majetek na účtu |
pl | Plovoucí zisk/ztráta |
usedmargin | Využitá marže |
freemargin | Volná marže |
tickets | Počet pokynů - otevřené a čekající pokyny |
Nastavení Obchodních Symbolů v RTD aplikaci - Vlastnosti cen a symbolů
Aplikace poskytuje současnou nabídkovou a poptávkovou cenu pro symboly nastavené v RTD aplikaci. Například pokud se symbol jmenuje EURUSD, poté jméno vlastnosti pro poptávkovou cenu bude askEURUSD. Excel vzorec pro MetaTrader účet →
=RTD("fxbluelabs.excelrtd";;156734;"askEURUSD")
Vlastnost | Význam |
bidSymbol | Nabídková cena symbolu |
askSymbol | Poptávková cena symbolu |
Aplikace také poskytuje počet a seznam všech vybraných symbolů. Například následující Excel vzorec pro MetaTrader účet vrátí počet dostupných symbolů a název 5. symbolu ze seznamu (který může být v jakémkoliv pořadí):
=RTD("fxbluelabs.excelrtd";;1955385;"symbols")
=RTD("fxbluelabs.excelrtd";;1955385;"s5")
Aplikace poskytuje následující informace o každém „pokynu", každé otevřené pozici a čekajících pozicích. (Hodnota N u každé vlastnosti je index mezi 1 a celkovým počtem otevřených pozic z výkazu vlastností pokynů).
Například, chcete získat název symbolu a čistý zisk 2. příkazu (pokud existuje), použijete následující Excel vzorec pro MetaTrader účet:
=RTD("FXBlueLabs.ExcelRTD"; ; "156734"; "t2s")
=RTD("FXBlueLabs.ExcelRTD"; ; "156734"; "t2npl")
Vlastnost | Význam |
tNt | Číslo n-tého pokynu, tzn. ID otevřené pozice nebo čekajícího pokynu |
tNa | Akce: BUY, SELL, BUYLIMIT, SELLLIMIT, BUYSTOP, SELLSTOP |
tNs | Název symbolu |
tNv | Objem |
tNnpl | Čistý zisk pokynu (hrubý zisk + komise + swap). Nelze použít pro čekající pokyny, hodnota bude nula. |
tNpl | Hrubý zisk. Nelze použít pro čekající pokyny, hodnota bude nula. |
tNswap | Swap. Nelze použít pro čekající pokyny, hodnota bude nula. |
tNcomm | Komise. Nelze použít pro čekající pokyny, hodnota bude nula. |
tNsl | Stop-loss cena |
tNtp | Take-profit cena |
tNop | Otevírací cena |
tNcp | Aktuální cena symbolu |
tNcm | Komentář pokynu |
tNmg | Magické číslo pokynu (pouze MetaTrader 4) |
tNot | Otevírací čas (jako počet vteřin od 1/1/1970) |
Odesílání Obchodů z Excelu do MT4 - Další nastavení
Vlastnost | Význam |
LastUpdateTime | Čas poslední aktualizace RTD aplikace, bude ukazovat 1/1/2000 pokud aplikace RTD neběží na Vašem účtu. |
Platné parametry Excel RTD v Supreme Edition - Názvy symbolů a standardizace
Jako výchozí hodnoty používá Excel RTD aplikace standardní názvy symbolů. Mohou se lišit od těch, které používá Váš broker v obchodní platformě. Například koncovka –ECN, EURUSD-ECN.
Ve výchozím nastavení jsou všechny symboly převedené do formátu AAABBB. Například název EURUSD-ECN bude převeden do výchozího nastavení EURUSD. Můžete vypnout standardizaci odškrtnutím varianty „Použít standardizované názvy symbolů" v aplikaci MetaTrader Excel RTD.
Nastavení platí pro tabulku, ze které sbíráte data z více účtů z více platforem (spuštěním více aplikací RTD) a kde platforma používá jiné názvy symbolů.
Například byste měli následující tabulku, kde jsou v řádku 1 čísla účtů a jména symbolů v řádku 2. Potom můžete vytvořit funkci, která používá název symbolu ve sloupci A bez nutnosti přizpůsobení názvu z EURUSD na EURUSD-ECN.
A | B | C | |
1 | Symbol/Účet | 12376522 | 265823654 |
2 | EURUSD | [níže] | |
3 | GBPUSD |
V buňce B2: =RTD("fxbluelabs.excelrtd";;B$1;CONCATENATE("bid";$A2))
Tento vzorec můžete poté zkopírovat z buňky B2 do B3, C2 atd. a buňky se automaticky přizpůsobí číslu účtu a symbolu.
(Funkce CONCATENATE spojuje v Excelu dva textové řetězce, v příkladu výše je to spojení textu „bid" a názvu symbolu ve sloupci A pro vytvoření názvu vlastnosti bidEURUSD nebo bidGBPUSD.)
Platné příkazy Excel RTD v MetaTraderu - Objemy Pokynů
Excel RTD aplikace ukazuje objemy pokynu v nominální hodnotě a v lotech. Například objem 0.20 lotů bude zobrazen jako 20000 (např. 20000 EUR).
Excel RTD Supreme Edition aplikaci můžeme také používat pro posílání jednoduchých obchodních příkazů z kódu VBA v Excelu. Za pomoci programování také můžete načíst stejná data jako přes Excel Real Time Data funkci.
Následující funkce mohou být použity z jakéhokoliv programovacího jazyka, který podporuje COM, nejenom z VBA z Excelu.
Metatrader Excel MT4 RTD příklady - Čtení dat z VBA kódu
Můžete číst data přes programování za pomoci objektu fxbluelabs.excelreader objekt.
Například:
Set reader = CreateObject("FXBlueLabs.ExcelReader")
reader.Connect ("156734")
MsgBox reader.Read("balance")
Jinými slovy: vytvoříte objekt FXBlueLabs.ExcelReader; použijete funkci Connect() pro spojení s konkrétním číslem účtu; a poté použijete funkci Read() pro získání dat o účtu.
Vlastnosti funkce Read() jsou stejné jako názvy vlastností pro použití funkce RTD v Excelu.
Excel Real Time Data - Kontrola, zda je „reader" úspěšně připojen
Můžete také vytvořit objekt ExcelReader a využít funkci Connect() i přestože RTD aplikace pro tento účet neběží.
Pro kontrolu dostupnosti dat můžete použít funkci Read() a ujistit se, že pole jako „balance" nejsou prázdná, nebo můžete načíst vlastnost LastUpdateTime a zkontrolovat, zda je datum pozdější než 1/1/2000.
Excel RTD v MT5 - Konzistence dat v rámci více připojení
Pokud využíváte více dat najednou, zejména více dat týkajících se pokynu, musíte být opatrní ohledně updatu a konzistence dat. Například zvažte tento kód:
For i = 1 To reader.Read("tickets")
strSymbol = reader.Read("t" & i & "s")
vVolume = reader.Read("t" & i & "v")
Next
Je možné, že se stane následující věc:
- Na začátku jsou 2 otevřené pokyny
- Při použití funkce Read(), tzn. během vykonávání řádku 2 a 3, je jeden z pokynů uzavřen.
- Tudíž to co bylo 2 pokyny je nyní pouze 1 pokyn.
- Výsledek po první smyčce je takový, že strSymbol si zapamatuje symbol, který je nyní zavřený a vVolume si udrží hodnotu objemu pozice, která je právě otevřena.
Pro zajištění konzistence ve čtení několika vlastností dat prosím použijte funkci Reader.ReaderLock(). Tím se pozastaví veškeré změny údajů do té doby, než použijete funkci Reader.ReaderUnlock(). Například:
Reader.ReaderLock()
For i = 1 To reader.Read("tickets")
strSymbol = reader.Read("t" & i & "s")
vVolume = reader.Read("t" & i & "v")
Next
Reader.ReaderUnlock()
Nezapomeňte použít funkci ReaderUnlock() po použití ReaderLock()…
Excel MT4 Supreme Edition - Odesílání obchodních pokynů z Excelu
Pro bezpečnost je odesílání pokynů defaultně vypnuto. Musíte zaškrtnout "Accept commands" v nastavení RTD aplikace, abyste mohli příkazy do MT4 odesílat. Pokud je tato možnost vypnuta, všechny příkazy budou mít hlášku "ERR:Commands not allowed".
Do Excelu můžete posílat jednoduché příkazy pomocí objektu FXBlueLabs.ExcelCommand.
Například:
Set cmd = CreateObject("FXBlueLabs.ExcelCommand")
strResult = cmd.SendCommand("156734"; "BUY"; "s=EURUSD|v=10000"; 5)
Funkce SendCommand() má čtyři parametry:
- Číslo účtu (156734)
- Příkaz, např. BUY
- Parametry akce, např. jméno symbolu a objem
- Počet vteřin na vyčkání na odpověď
SendCommand() je synchronní. Vrátí hodnotu, když RTD aplikace dokončí příkaz nebo když doběhne nastavený čas pro čekání. (Nastavený čas pro čekání neznamená, že příkaz jako třeba tržní pokyn byl zrušen. Znamená to, že platforma či broker neodpověděli v přijatelném čase.)
Vrácená hodnota z funkce SendCommand() je řetěz (string), začínající buď ERR: pro upozornění na Error, nebo OKAY:. Jediná výjimka je funkce TEST command, která vrátí text
HELLO.
Jak funguje Excel RTD v MetaTraderu - Rozdíly mezi obchodním platformami
Můžeme se setkat s několika rozdíly v obchodování na různých platformách:
- "Magická čísla" jsou platná pouze pro MT4 a MT5 a tyto parametry budou na jiných platformách ignorovány.
- Komentáře pokynů jsou dostupné pouze na některých platformách.
Platné příkazy Excel RTD v MetaTraderu - Příkazy a parametry
Parametry pro příkazy jsou posílány jako oddělený řetězec, který se skládá z několika nastavení ve formátu název = hodnota. Parametry mohou být v jakémkoliv pořadí a některé parametry jsou volitelné. Níže vidíme příklad odeslání nákupního pokynu pro EURUSD, 0.1 lotu, čekáme na odezvu max. 5 vteřin:
cmd.SendCommand("156734"; "BUY"; "s=EURUSD|v=10000"; 5)
Obchodní objemy jsou vždy udávány jako objem peněz, ne jako velikost lotu. Formát symbolu závisí na tom, zda používáte standardizované názvy symbolů či nikoliv. Tuto možnost si můžete zvolit v nastavení RTD aplikace.
BUY a SELL příkazy - Excel Real Time Data
Pošlou buy nebo sell tržní příkaz. Pokud se podaří, vrátí se hodnota ID nového pokynu ve formě OKAY: číslo pokynu.
Parametr | Volitelné? | Význam |
S | Povinné | Název symbolu |
V | Povinné | Objem |
sl | Volitelné | Stop Loss cena |
tp | Volitelné | Take Profit cena |
comment | Volitelné | Komentář |
magic | Volitelné | Magické číslo |
MetaTrader příklad Excel RTD - BUYLIMIT, SELLLIMIT, BUYSTOP, a SELLSTOP příkazy
Odešle nový čekající pokyn. Pokud se podaří, vrátí hodnotu ID nového pokynu ve formě OKAY: číslo pokynu.
Parametr | Volitelné? | Význam |
S | Povinné | Název symbolu |
V | Povinné | Objem |
price | Povinné | Vstupní cena pro čekající stop/limit pokyn |
sl | Volitelné | Stop Loss cena |
tp | Volitelné | Take Profit cena |
comment | Volitelné | Komentář |
magic | Volitelné | Magické číslo |
Odesílání Obchodů z Excelu do MT4 - CLOSE příkaz
Zavře otevřenou pozici nebo smaže čekající pokyn. Vrátí OKAY: pokud je operace úspěšná.
Parametr | Volitelné? | Význam |
t | Povinné | ID pozice, která bude uzavřena, nebo čekající pozice, která bude smazána. |
Využití Excel RTD v obchodování na Forexu - PARTIALCLOSE příkaz
Částečně uzavře otevřenou pozici. Vrátí OKAY: pokud je operace úspěšná.
Objemy větší než je pozice jsou jednoduše brány jako úplné zavření (ne jako zavření plus otočení pro zbytek objemu). Nemůže to být použito u čekajících pokynů.
Parametr | Volitelné? | Význam |
t | Povinné | ID pozice, která bude částečně uzavřena |
v | Povinné | Objem pro uzavření, např. 10000 |
Průvodce Excel RTD v MetaTraderu - REVERSE příkaz
Otočí otevřenou pozici, např. uzavře sell pozici a otevře buy pozici. Vrátí OKAY: pokud je operace úspěšná.
Parametr | Volitelné? | Význam |
t | Povinné | ID pozice, která bude otočena |
v | Volitelné | Objem nově otevřené otočené pozice. Pokud je vynecháno, objem bude stejný jako u otáčené pozice (symetrické otočení) |
sl | Volitelné | Stop-loss cena |
tp | Volitelné | Take-profit cena |
comment | Volitelné | Komentář |
magic | Volitelné | Magické číslo |
Funkce v Excelu Real Time Data - CLOSESYMBOL příkaz
Zavře všechny otevřené a čekající pozice pro daný symbol. Vrátí OKAY: pokud je operace úspěšná.
Parametr | Volitelné? | Význam |
s | Povinné | Název symbolu k uzavření |
Excel Real Time Data - CLOSEALL příkaz
Zavře všechny otevřené a čekající pokyny pro všechny symboly. Vrátí OKAY: pokud je operace úspěšná. Prosím vezměte na vědomí, že uzavírání všech pokynů může vyžadovat delší časovou odezvu.
Parametr | Význam |
(none) |
Standardní chybové zprávy - Excel RTD MetaTrader Supreme Edition
Vlastnost | Význam |
ERR:Need account | Hodnota pro účet v SendCommand() je prázdná |
ERR:Need command | Hodnota příkaz pro SendCommand()je prázdná |
ERR:No listening app | Nebyla nalezena spuštěná RTD aplikace pro daný účet |
ERR:No response within timeout | Žádná odpověď z platformy brokera za daný časový limit |
ERR:Commands not allowed | Možnost "Allow commands" není zapnutá v nastavení RTD aplikace |
ERR:Unrecognised command | Hodnota příkazu pro SendCommand() není kompatibilní s RTD příkazy |
ERR:Missing parameters | V příkazu chybí jeden z povinných údajů |
Využití Excel RTD v MetaTraderu - Asynchronní příkazy
Je zde také možnost odesílat příkazy asynchronně než blokovat provádění příkazů ve
VBA kódu do té doby, než je příkaz vykonán nebo doběhl časový úsek. To funguje takto:
Použijete funkci SendCommandAsync() místo SendCommand().
Opakovaně kontrolujete výsledek asynchronní akce za pomocí CheckAsyncResult().
Když je hotovo (nebo když jste se rozhodli toho zanechat) uvolníte paměť příkazu za pomocí funkce FreeAsyncCommand()
Například:
Set cmd = CreateObject("FXBlueLabs.ExcelCommand")
lCommandId = cmd.SendCommandAsync("10915"; "BUY"; "s=EURUSD|v=10000"; 60)
strResult = ""
While strResult = ""
strResult = cmd.CheckAsyncResult(lCommandId)
If strResult = "" Then MsgBox "Still waiting..."
Wend
cmd.FreeAsyncCommand (lCommandId)
SendCommandAsync používá stejné 4 parametry jako SendCommand(), ale vrátí hodnotu "command ID" pro následné použití s CheckAsyncResult() a FreeAsyncCommand(), namísto vrácení výsledku příkazu. Prosím vezměte na vědomí, že SendCommandAsync() má stále timeout (nastavitelný časový úsek pro vrácení hodnoty).
Musíte eventuálně využít FreeAsyncCommand() po SendCommandAsync(), jinak dojde ke ztrátě paměti, i když v malém množství.
CheckAsyncResult() buď vrátí prázdný řetězec, pokud je příkaz stále prováděn a nedosáhl timeoutu nebo pokud je splněn, vrátí stejný řetězec jako SendCommand().
Obchodování na Forexu
O Admirals
Jako licencovaný broker poskytujeme nejspolehlivější a velice oblíbené obchodní platformy, pomocí kterých máte snadný přístup k CFD kontraktům, akciím a ETF.