MQL4 COURSE. V tomto dodatku je obsažen popis 25 obchodních funkcí jazyka MQL4. Rozhodl jsem se napsat

Podobné dokumenty
MQL4 COURSE. By Coders guru (Dodatek 2) Obchodní Funkce

MQL 4 COURSE. By Coders guru -15 Váš první Expert Advisor - Část 3

MQL4 COURSE. By Coders guru Váš první Expert Advisor - Část 2

MQL4 COURSE. By Coders guru Váš první Expert Advisor - část 1

MQL4 COURSE. By Coders guru -12 Váš první indikátor Část 3

MQL4 COURSE. By Coders guru -3 DATA TYPES. Doufám, že předchozí lekce SYNTAX se vám líbila. V té jsme se pokoušeli zodpovědět:

METATRADER 4 PRŮVODCE ZAČÁTEČNÍKA

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

MQL4 COURSE. By Coders guru -8- Proměnné

Logické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false

Úvod do programovacích jazyků (Java)

E-book Magazínu FOREX

MQL4 COURSE. By Coders guru Váš první indikátor - část 2

MQL4 COURSE. By Coders guru -5 Smyčky & Rozhodnutí Část 2

PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

Channel EA: Nastavitelné hodnoty: Take Profit, SL, počet bodů, o které má být trend proražen, Lot size

zapište obslužnou metodu události Click tlačítka a vyzkoušejte chování polevýsledek.text = polečíslo1.text + polečíslo2.text;

6. Příkazy a řídící struktury v Javě

Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií

Kurz Databáze. Obsah. Dotazy. Zpracování dat. Doc. Ing. Radim Farana, CSc.

Microsoft Office. Excel vyhledávací funkce

Návod uživatele. Obchodní platformy BOSSAFX Multiterminál. Dom Maklerski Banku Ochrony Środowiska S.A.

Programování v C++, 2. cvičení

Instrukce pro zprovoznění FXstreet.cz VIP Exit Managera

Uživatelská příručka. Obchodní platforma ibossafx. Dom Maklerski Banku Ochrony Środowiska S.A. Pro zařízení pracující v prostředí ios

Databáze I. Přednáška 4

Úvod do programování - Java. Cvičení č.4

8 Třídy, objekty, metody, předávání argumentů metod

Proměnná. Datový typ. IAJCE Cvičení č. 3. Pojmenované místo v paměti sloužící pro uložení hodnoty.

Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. October 17, 2016

Algoritmizace a programování

Programování 2 (NMIN102) Soubory. RNDr. Michal Žemlička, Ph.D.

Ukazatel (Pointer) jako datový typ - proměnné jsou umístěny v paměti na určitém místě (adrese) a zabírají určitý prostor (počet bytů), který je daný

VISUAL BASIC. Práce se soubory

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných

Algoritmizace a programování

Návrh a tvorba WWW stránek 1/14. PHP a databáze

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek

17. července :51 z moravec@yahoo.com

KIV/ZIS cvičení 5. Tomáš Potužák

DUM 07 téma: Proměnné, konstanty a pohyb po buňkách ve VBA

Zápis programu v jazyce C#

5 Přehled operátorů, příkazy, přetypování

Programovací jazyk Pascal

IUJCE 07/08 Přednáška č. 6

KTE / ZPE Informační technologie

Databázové systémy Cvičení 5.2

MIDAM Verze 1.1. Hlavní okno :

7. Datové typy v Javě

Úvod do programovacích jazyků (Java)

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu }

Preprocesor. Karel Richta a kol. katedra počítačů FEL ČVUT v Praze. Karel Richta, Martin Hořeňovský, Aleš Hrabalík, 2016

Teoretické minimum z PJV

Soubor jako posloupnost bytů

Algoritmizace a programování

PŘETĚŽOVÁNÍ OPERÁTORŮ

Co bude výsledkem mého SELECTu? RNDr. David Gešvindr MVP: Data Platform MCSE: Data Platform MCSD: Windows Store MCT

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

2

MAXScript výukový kurz

Základy programování (IZP)

Konstruktory a destruktory

Programování v C++ 1, 1. cvičení

Správné vytvoření a otevření textového souboru pro čtení a zápis představuje

Výčtový typ strana 67

PB161 Programování v jazyce C++ Přednáška 4

Algoritmizace prostorových úloh

02. HODINA. 2.1 Typy souborů a objektů. 2.2 Ovládací prvky Label a TextBox

MySQLi (objektově) Příklad vytvoření instance třídy včetně parametrů pro připojení: $mysqli = new mysqli('localhost', 'login', 'heslo', 'databaze');

Ukazatele a pole. Chceme-li vyplnit celé pole nulami, použijeme prázdný inicializátor: 207 Čárka na konci seznamu inicializátorů

Přednáška 7. Celočíselná aritmetika. Návratový kód. Příkazy pro větvení výpočtu. Cykly. Předčasné ukončení cyklu.

Funkční objekty v C++.

Základy algoritmizace. Hašování

Obsah přednášky. programovacího jazyka. Motivace. Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup Kontinuace Program

Jazyk C# a platforma.net

Paměť počítače. alg2 1

Základní pojmy. Úvod do programování. Základní pojmy. Zápis algoritmu. Výraz. Základní pojmy

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

PREPROCESOR POKRAČOVÁNÍ

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI

Zapouzdření. Tomáš Pitner, upravil Marek Šabo

Pokročilé programování v jazyce C pro chemiky (C3220) Vstup a výstup v C++

Sada 1 - PHP. 03. Proměnné, konstanty

Úvod do programování. Lekce 3

Programování v jazyku C# II. 5.kapitola

Pokročilé programování v jazyce C pro chemiky (C3220) Operátory new a delete, virtuální metody

Výrazy a operátory. Operátory Unární - unární a unární + Např.: a +b

Generické programování

Standardní algoritmy vyhledávací.

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

XMW4 / IW4 Pokročilé SELECT dotazy. Štefan Pataky

IUJCE 07/08 Přednáška č. 1

Datové typy strana 29

Operátory, výrazy. Tomáš Pitner, upravil Marek Šabo

Klíčové pojmy: Cyklus, řídící proměnná, inicializace, test podmínky, přerušení cyklu, vnořování cyklů.

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. October 23, 2016

Transkript:

MQL4 COURSE By Coders guru www.forex-tsd.com (Appendix 2) Trading Functions -------------------- V tomto dodatku je obsažen popis 25 obchodních funkcí jazyka MQL4. Rozhodl jsem se napsat tento dodatek před uvedením třetí části návodu Your First Expert Advisor (lekce 15) protože je to nezbytné pro pochopení zbývající části programového kódu. OrderSend: int OrderSend(string symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, string comment=null, int magic=0, datetime expiration=0, color arrow_color=clr_none) Funkce OrderSend se používá k zadání příkazů buy/sell (nákup/prodej) nebo pending order (podmíněný vstup do pozice). Vrací číslo štítku příkazu, v případě chyby vrací hodnotu -1. K získání podrobností o chybě se používá funkce GetLastError. Poznámka: Číslo štítku, vrácené funkcí OrderSend je jedinečné a používá se jako reference (návěští) zadaného příkazu. (například můžeme použít funkci OrderClose k uzavření tohoto příkazu). Poznámka: Funkce GetLastError vrací předdefinované číslo poslední chyby. (Například pokud voláme funkci GetLastError po provedení OrderSend, dostaneme číslo chyby, která nastala při provádění funkce OrderSend). Po provedení funkce GetLastError je číslo poslední chyby nastaveno na hodnotu 0. Úplný seznam chyb jazyka MQL4 je uložen v souboru stderror.mqh. Popis konkrétní chyby můžeme získat pomocí funkce ErrorDescription, která je definována v souboru stdlib.mqh.

Tato funkce má 11 Parametrů: String symbol: Symbol měnového páru, který obchodujeme ( EURUSD and USDJPY). Poznámka: Funkce Symbol() se používá k načtení symbolu aktuálního měnového páru a funkce OrderSymbol k načtení symbolu měnového páru zadaného příkazu. int cmd: Celé číslo, určuje typ operace, kterou chceme provést; může nabývat následujících hodnot: Konstanta Hodnota Popis OP_BUY 0 Buying position. OP_SELL 1 Selling position. OP_BUYLIMIT 2 Buy limit pending position. OP_SELLLIMIT 3 Sell limit pending position. OP_BUYSTOP 4 Buy stop pending position. OP_SELLSTOP 5 Sell stop pending position. Poznámka: Můžeme použít celočíselné vyjádření hodnoty nebo název konstanty. OrderSend(Symbol(),0, ) je ekvivalentní OrderSend(Symbol(),OP_BUY, ). Obvykle se z důvodu přehlednosti programového kódu používají názvy konstant. double volume: Počet lotů, které chceme obchodovat. double price: Cena, na které chceme zadat příkaz. K získání aktuální ceny se používají funkce Bid a Ask. int slippage: Hodnota slippage kterou v příkazu povolíme. Poznámka: slippage je rozdíl mezi předpokládanou cenou transakce a skutečnou cenou. double stoploss: Cena, na které chceme příkaz uzavřít příkaz v případě, že jde do ztráty. double takeprofit: Cena, na které chceme příkaz uzavřít příkaz v případě, že jde do zisku.

string comment: Komentář, který chceme přiřadit zadanému příkazu (Obrázek 1). Implicitní hodnota je NULL, to znamená bez komentáře. Poznámka: Implicitní hodnota parametru znamená, že nezadáme žádnou hodnotu a MQL4 použije předdefinivanou hodnotu parametru. Například můžeme zapsat funkci OrderSend s parametrem takto: OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-25*Point,Ask+25*Point,"My order comment",12345,0,green); nebo bez parametru takto: OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-25*Point,Ask+25*Point,12345,0,Green); int magic: magické číslo, přiřazené zadanému příkazu. Poznámka: Magické číslo je číslo, které přiřadíme zadanému příkazu jako referenci (návěští), která nám umožní rozlišovat mezi různými příkazy. Například mezi příkazy, které zadal náš expert advisor a příkazy, které jsme zadali manuálně. Obrázek 1 parametr comment datetime expiration: Datum a čas, kdy vyprší platnost příkazu pending order (podmíněný vstup do pozice). Implicitní nastavení je 0, to znamená bez doby expirace. Poznámka: čas, zobrazený zde, je čas serveru, nikoli náš místní čas; k načtení aktuálního času serveru se používá funkce CurTime a k načtení místního času funkce LocalTime. color arrow_color: Barva šipky (Obrázek 2), implicitní nastavení je CLR_NONE, to znamená bez šipky.

Obrázek 2 parametr arrow_color int ticket; if(irsi(null,0,14,price_close,0)<25) ticket=ordersend(symbol(),op_buy,1,ask,3,ask-25*point,ask+25*point,"my order #2",16384,0,Green); if(ticket<0) Print("OrderSend failed with error #",GetLastError()); return(0);

OrderModify: bool OrderModify(int ticket, double price, double stoploss, double takeprofit, datetime expiration, color arrow_color=clr_none) Funkce OrderModify se používá k modifikaci vlastností zadaného příkazu zadáním nových hodnot. Vrací hodnotu true (pravda) v případě úspěšné modifikace a hodnotu false (nepravda) v případě chyby. K získání podrobností o chybě se používá funkce GetLastError. Tato funkce má 6 parametrů: int ticket: Číslo štítku příkazu, který chceme modifikovat. Poznámka: Toto číslo jsme přiřadili příkazu pomocí funkce OrderSend. Pro získaní čísla štítku aktuálního příkazu můžeme použít funkci OrderTicket. double price: Cena, na které chceme zadat příkaz. Poznámka: K získání open price (otvírací ceny) zadaného příkazu můžeme použít funkci OrderOpenPrice. double stoploss: Cena, na které chceme uzavřít příkaz v případě, že jde do ztráty. double takeprofit: Cena, na které chceme uzavřít příkaz v případě, že jde do zisku. Poznámka: Obvykle používáme funkci OrderModify ke změnám hodnot parametrů trailing stoploss a trailing takeprofit. (posuvný stoploss a takeprofit) datetime expiration: Čas, kdy vyprší doba platnosti příkazu pending order (podmíněný vstup do pozice). Pokud nechceme nastavit dobu platnosti příkazu, zadáme hodnotu 0. color arrow_color: Barva šipky, implicitní nastavení je CLR_NONE, to znamená bez šipky.

if(trailingstop>0) SelectOrder(12345,SELECT_BY_TICKET); if(bid-orderopenprice()>point*trailingstop) if(orderstoploss()<bid-point*trailingstop) OrderModify(OrderTicket(),Ask-10*Point,Ask-35*Point,OrderTakeProfit(),0,Blue); return(0); OrderClose: bool OrderClose(int ticket, double lots, double price, int slippage, color Color=CLR_NONE) Funkce OrderClose se používá k uzavření příkazu (dle čísla jeho štítku). Vrací hodnotu true (pravda) pokud je příkaz úspěšně uzavřen, v případě chyby vrací hodnotu false (nepravda). K získání podrobností o chybě se používá funkce GetLastError. Tato funkce má 5 parametrů: int ticket: Číslo štítku příkazu, který chceme uzavřít. double lots: Počet lotů, se kterými příkaz pracuje. Poznámka: K načtení počtu lotů aktuálního příkazu se používá funkce OrderLots. double price: Cena, na které chceme příkaz uzavřít. K načtení aktuální ceny se používají funkce Bid and Ask. int slippage: Hodnota slippage zadaného příkazu.

color Color: Barva šipky, implicitní hodnota je CLR_NONE, to znamená bez šipky. if(irsi(null,0,14,price_close,0)>75) OrderClose(order_id,1,Ask,3,Red); return(0); OrderSelect: bool OrderSelect(int index, int select, int pool=mode_trades) Funkce OrderSelect se používá k výběru zadaného příkazu dle čísla štítku nebo dle indexu. Vrací hodnotu true (pravda) v případě úspěšného výběru, hodnotu false (nepravda) v případě chyby. K získání podrobností o chybě se používá funkce GetLastError. Poznámka: Funkci OrderSelect je nutné použít vždy před voláním funkcí bez parametrů: OrderMagicNumber, OrderClosePrice, OrderCloseTime, OrderOpenPrice, OrderOpenTime, OrderComment, OrderCommission, OrderExpiration, OrderLots, OrderPrint, OrderProfit, OrderStopLoss, OrderSwap, OrderSymbol, OrderTakeProfit, OrderTicket a OrderType Tato funkce má 3 parametry: int index: Index nebo číslo štítku příkazu, který chceme vybrat. Závisí na druhém parametru (selecting type). int select: Typ výběrové operace (dle indexu nebo dle čísla štítku). Může nabývat dvou hodnot: SELECT_BY_POS: výběr dle pozice (indexu) zadaného příkazu. SELECT_BY_TICKET : výběr dle čísla štítku zadaného příkazu.

int pool: Použijeme-li SELECT_BY_POS (výběr dle pozice), musíme určit databázi, ze které budeme potřebný údaj vybírat: MODE_TRADES: výběr z aktuálně zadaných příkazů. Tato hodnota je nastavena jako implicitní. MODE_HISTORY: výběr z historie účtu (uzavřené a zrušené příkazy). if(orderselect(12470, SELECT_BY_TICKET)==true) Print("order #12470 open price is ", OrderOpenPrice()); Print("order #12470 close price is ", OrderClosePrice()); OrderDelete: bool OrderDelete(int ticket) Funkce OrderDelete se používá k vymazání příkazu pending order (podmíněný vstup do pozice). Vrací hodnotu true (pravda) v případě úspěšného vymazání, v případě chyby vrací hodnotu false (nepravda). K získání podrobností o chybě se používá funkce GetLastError. Tato funkce má 1 parametr: int ticket: Číslo štítku příkazu, který chceme vymazat. if(ask>var1) OrderDelete(order_ticket); return(0);

OrderCloseBy: bool OrderCloseBy(int ticket, int opposite, color Color=CLR_NONE) Funkce OrderCloseBy se používá k uzavření příkazu zadáním příkazu v opačném směru. Vrací hodnotu true (pravda) v případě úspěšného uzavření, v případě chyby vrací hodnotu false (nepravda). K získání podrobností o chybě se používá funkce GetLastError. Tato funkce má 3 parametry: int ticket: Č9slo štítku příkazu, který chceme uzavřít. int opposite: Číslo štítku příkazu, který chceme uzavřít v opačném směru. color Color: Barva šipky, implicitní hodnota je CLR_NONE, to znamená bez šipky if(irsi(null,0,14,price_close,0)>75) OrderCloseBy(order_id,opposite_id); return(0); OrderType: int OrderType( ) Funkce OrderType vrací typ vybraného příkazu, může nabývat hodnot:

OP_BUY, OP_SELL, OP_BUYLIMIT, OP_BUYSTOP, OP_SELLLIMIT nebo OP_SELLSTOP (viz funkce OrderSend) Před voláním funkce OrderType musí být příkaz vybrán pomocí funkce OrderSelect. Tato funkce nemá parametry a vrací celočíselnou hodnotu typu int (typ vybraného příkazu). int order_type; if(orderselect(12, SELECT_BY_POS)==true) order_type=ordertype(); //... Print("OrderSelect returned error - ",GetLastError()); HistoryTotal: int HistoryTotal( ) Funkce HistoryTotal prohledává načtenou historii účtu a vrací počet uzavřených příkazů. Poznámka: Obvykle se tato funkce používá společně s funkcí OrderSelect k získaní informací o určitém příkazu z historie účtu. Tato funkce nemá parametry a vrací celočíselnou hodnotu typu int (počet uzavřených příkazů v historii účtu). K získání podrobností o chybě se používá funkce GetLastError.

// retrieving info from trade history int i,hsttotal=historytotal(); for(i=0;i<hsttotal;i++) //---- check selection result if(orderselect(i,select_by_pos,mode_history)==false) Print("Access to history failed with error (",GetLastError(),")"); break; // some work with order OrderClosePrice: double OrderClosePrice( ) Funkce OrderClosePrice vrací close price (uzavírací cenu) vybraného příkazu. Před voláním funkce OrderClosePrice musí být příkaz vybrán pomocí funkce OrderSelect. Tato funkce nemá parametry a vrací hodnotu typu double (close price vybraného příkazu). if(orderselect(ticket,select_by_pos)==true) Print("Close price for the order ",ticket," = ",OrderClosePrice());

OrderCloseTime: datetime OrderCloseTime( ) Funkce OrderCloseTime vrací close time (uzavírací čas) vybraného příkazu. Pokud vrátí hodnotu 0 znamená to, že příkaz nebyl dosud uzavřen, nebo byl uzavřen a později znovu vyvolán z historie. Před voláním funkce OrderCloseTime musí být příkaz vybrán pomocí funkce OrderSelect. Tato funkce nemá parametry a vrací hodnotu typu datetime (uzavírací čas vybraného příkazu). if(orderselect(10,select_by_pos,mode_history)==true) datetime ctm=orderopentime(); if(ctm>0) Print("Open time for the order 10 ", ctm); ctm=orderclosetime(); if(ctm>0) Print("Close time for the order 10 ", ctm); OrderComment: string OrderComment( ) Funkce OrderComment vrací komentář k vybranému příkazu. Poznámka: Tento komentář byl přiřazen při zadání příkazu pomocí funkce OrderSend nebo jej přiřadil server. Někdy server přidává svůj komentář na konec námi zadaného komentáře. Před voláním funkce OrderComment musí být příkaz vybrán pomocí funkce OrderSelect.

Tato funkce nemá parametry a vrací řetězec typu string (komentář k vybranému příkazu). string comment; if(orderselect(10,select_by_ticket)==false) return(0); comment = OrderComment(); //... OrderCommission: double OrderCommission( ) Funkce OrderCommission vrací výši commission (poplatku) u vybraného příkazu. Před voláním funkce OrderCommission musí být příkaz vybrán pomocí funkce OrderSelect. Tato funkce nemá parametry a vrací hodnotu typu double (výše poplatku u vybraného příkazu). if(orderselect(10,select_by_pos)==true) Print("Commission for the order 10 ",OrderCommission()); OrderExpiration: datetime OrderExpiration( )

Funkce OrderExpiration vrací datum a čas, kdy vyprší platnost příkazu pending order (podmíněný vstup do pozice); datum a čas jsme zadali pomocí funkce OrderSend. Před voláním funkce OrderExpiration musí být příkaz vybrán pomocí funkce OrderSelect. Tato funkce nemá parametry a vrací hodnotu typu datetime (datum a čas, kdy vyprší platnost příkazu pending order). if(orderselect(10, SELECT_BY_TICKET)==true) Print("Order expiration for the order #10 is ",OrderExpiration()); OrderLots: double OrderLots( ) Funkce OrderLots vrací počet lotů vybraného příkazu; tuto hodnotu jsme nastavili pomocí funkce OrderSend (parametr volume). Před voláním funkce OrderLots musí být příkaz vybrán pomocí funkce OrderSelect. Tato funkce nemá parametry a vrací hodnotu typu double (počet lotů vybraného příkazu). if(orderselect(10,select_by_pos)==true) Print("lots for the order 10 ",OrderLots());

OrderMagicNumber: int OrderMagicNumber( ) Funkce OrderMagicNumber vrací magické číslo vybraného příkazu, zadané pomocí funkce OrderSend. Před voláním funkce OrderMagicNumber musí být příkaz vybrán pomocí funkce OrderSelect. Tato funkce nemá parametry a vrací hodnotu typu int (magické číslo vybraného příkazu). if(orderselect(10,select_by_pos)==true) Print("Magic number for the order 10 ", OrderMagicNumber()); OrderOpenPrice: double OrderOpenPrice( ) Funkce OrderOpenPrice vrací open price (otevírací cenu) vybraného příkazu. Před voláním funkce OrderOpenPrice musí být příkaz vybrán pomocí funkce OrderSelect. Tato funkce nemá parametry a vrací hodnotu typu double (open price vybraného příkazu). if(orderselect(10, SELECT_BY_POS)==true) Print("open price for the order 10 ",OrderOpenPrice());

OrderOpenTime: datetime OrderOpenTime( ) Funkce OrderOpenTime vrací datum a čas zadání vybraného příkazu. Před voláním funkce OrderOpenTime musí být příkaz vybrán pomocí funkce OrderSelect. Tato funkce nemá parametry a vrací hodnotu typu datetime (čas zadání vybraného příkazu). if(orderselect(10, SELECT_BY_POS)==true) Print("open time for the order 10 ",OrderOpenTime()); OrderPrint: void OrderPrint( ) Funkce OrderPrint zapíše vybraná data příkazu do expert log file (protokolu experta). Před voláním funkce OrderPrint musí být příkaz vybrán pomocí funkce OrderSelect. Tato funkce nemá parametry a nevrací žádnou hodnotu (void). Poznámka: void znamená, že funkce nevrací žádnou hodnotu, takže není možné ji přiřadit proměnné, například takto: int i = OrderPrint(); //tento řádek nemá smysl, přestože překladač jazyka nebude hlásit chybu.

if(orderselect(10, SELECT_BY_TICKET)==true) OrderPrint(); OrderProfit: double OrderProfit( ) Funkce OrderProfit vrací výši profitu vybraného příkazu. Před voláním funkce OrderProfit musí být příkaz vybrán pomocí funkce OrderSelect. Tato funkce nemá parametry a vrací hodnotu typu double (výši profitu vybraného příkazu). if(orderselect(10, SELECT_BY_POS)==true) Print("Profit for the order 10 ",OrderProfit()); OrderStopLoss: double OrderStopLoss( ) Funkce OrderStopLoss vrací hodnotu stoploss vybraného příkazu, kterou jsme nastavili pomocí funkce OrderSend nebo modifikovali pomocí funkce OrderModify. Před voláním funkce OrderStopLoss musí být příkaz vybrán pomocí funkce OrderSelect.

Tato funkce nemá parametry a vrací hodnotu typu double (stoploss vybraného příkazu). if(orderselect(ticket,select_by_pos)==true) Print("Stop loss Hodnota for the order 10 ", OrderStopLoss()); OrdersTotal: int OrdersTotal( ) Funkce OrdersTotal vrací počet zadaných příkazů (tj. součet otevřených pozic a příkazů typu pending order). Jestliže vrátí hodnotu 0 znamená to, že není zadán žádný příkaz. Tato funkce nemá parametry a vrací hodnotu typu int (počet zadaných příkazů). int handle=fileopen("ordersreport.csv",file_write FILE_CSV,"\t"); if(handle<0) return(0); // write header FileWrite(handle,"#","open price","open time","symbol","lots"); int total=orderstotal(); // write open orders for(int pos=0;pos<total;pos++) if(orderselect(pos,select_by_pos)==false) continue; FileWrite(handle,OrderTicket(),OrderOpenPrice(),OrderOpenTime(), OrderSymbol(),OrderLots()); FileClose(handle);

OrderSwap: double OrderSwap( ) Funkce OrderSwap vrací hodnotu swap (přerolování) vybraného příkazu. Před voláním funkce OrderSwap musí být příkaz vybrán pomocí funkce OrderSelect. Tato funkce nemá parametry a vrací hodnotu typu double (hodnotu swap vybraného příkazu). if(orderselect(order_id, SELECT_BY_TICKET)==true) Print("Swap for the order #", order_id, " ",OrderSwap()); OrderSymbol: string OrderSymbol( ) Funkce OrderSymbol vrací symbol měnového páru vybraného příkazu ( EURUSD and USDJPY). Před voláním funkce OrderSymbol musí být příkaz vybrán pomocí funkce OrderSelect. Tato funkce nemá parametry a vrací hodnotu typu string (symbol měnového páru vybraného příkazu).

if(orderselect(12, SELECT_BY_POS)==true) Print("symbol of order #", OrderTicket(), " is ", OrderSymbol()); OrderTakeProfit: double OrderTakeProfit( ) Funkce OrderTakeProfit vrací hodnotu takeprofit vybraného příkazu, kterou jsme zadali pomocí funkce OrderSend nebo modifikovali pomocí funkce OrderModify. Před voláním funkce OrderTakeProfit musí být příkaz vybrán pomocí funkce OrderSelect. Tato funkce nemá parametry a vrací hodnotu typu double (hodnotu takeprofit vybraného příkazu). if(orderselect(12, SELECT_BY_POS)==true) Print("Order #",OrderTicket()," profit: ", OrderTakeProfit()); Print("OrderSelect failed error code is ",GetLastError()); OrderTicket: int OrderTicket( ) Funkce OrderTicket vrací číslo štítku vybraného příkazu. Před voláním funkce OrderTicket musí být příkaz vybrán pomocí funkce OrderSelect.

Tato funkce nemá parametry a vrací celočíselnou hodnotu typu int (číslo štítku vybraného příkazu). if(orderselect(12, SELECT_BY_POS)==true) order=orderticket(); Coders Guru 20-12-2005