- Bossafx.pl
- Edukacja
- Automatyzacja handlu MQL4
- Funkcje MQL4
- Funkcje zarządzania zleceniami (transakcjami)
Uwaga! Aby korzystać z tej funkcji konieczne jest wcześniejsze „zaznaczenie” zlecenia za pomocą funkcji OrderSelect().
W niniejszym rozdziale zostały opisane wszystkie funkcje dostępu do tak zwanego kontekstu handlowego oraz funkcje pomocnicze operujące na aktualnie otwartych jak i historycznych zleceniach tradingowych.
W celu umożliwienia realizacji automatycznego handlu przez oprogramowanie konieczne jest, aby broker miał włączoną możliwość automatycznego handlu, a po stronie terminala musi być włączony handel automatyczny, co można sprawdzić z poziomu programu MQL4 za pomocą funkcji IsTradeAllowed().
Uwaga! Funkcje handlowe mogą być używane tylko w EA oraz skryptach i nie mogą być używane z programach typu wskaźnik własny użytkownika.
OrderClose
Funkcja zamyka otwartą pozycje transakcyjną. Jeśli funkcja powiedzie się zwraca wartość true, w przeciwnym razie false. Aby uzyskać szczegółowe informacje o błędach, korzystamy z funkcji GetLastError().
Składnia:
bool OrderClose( int ticket, double lots, double price, int slippage, color
Color=CLR_NONE )
Parametry
ticket – identyfikator zlecenia
lots – wielkość zamykanej pozycji w lotach
price – preferowana cena zamknięcia
slippage – maksymalna wielkość odchylenia ceny kwotowanej od ceny
zamknięcia
color – kolor strzałki symbolizującej zamknięcie pozycji lub wartość
domyślna CLR_NONE brak koloru
Wartość zwracana
true – jeśli zamknięcie pozycji powiodło się
false – jeśli zamknięcie pozycji nie powiodło się
Przykład:
if( iRSI(NULL,0,14,PRICE_CLOSE,0) > 80 )
{
OrderClose( numer_zlecenia,1,Ask,3,Red);
return(0);
}
OrdersTotal
Funkcja z liczbą aktualnie otwartych pozycji wraz ze zleceniami oczekującymi. Aby uzyskać szczegółowe informacje o błędach, korzystamy z funkcji GetLastError().
Składnia:
int OrdersTotal()
Parametry
brak
Wartość zwracana
liczba aktualnie otwartych pozycji
Przykład:
int wszystkie_zlecenia = OrdersTotal();
for(int p=0;p<wszystkie_zlecenia;p++)
{
if(OrderSelect(p,SELECT_BY_POS)==false) continue;
Print(OrderTicket(),” | ”,OrderSymbol(),” | ”,OrderOpenPrice());
}
OrderCloseBy
Funkcja zamyka zlecenia przeciwstawne. Jeśli funkcja powiedzie się zwraca wartość true, w przeciwnym razie false. Aby uzyskać szczegółowe informacje o błędach, korzystamy z funkcji GetLastError().
Składnia:
bool OrderCloseBy( int ticket, int opposite, color Color=CLR_NONE)
Parametry
ticket – identyfikator zlecenia
opposite – identyfikator zlecenia przeciwstawnego
color – kolor strzałki symbolizującej zamknięcie pozycji lub wartość
domyślna CLR_NONE brak koloru
Wartość zwracana
Przykład:
if( iRSI(NULL,0,14,PRICE_CLOSE,0) > 80 )
{
OrderCloseBy(numer_zlecenia,numer_zlecenia_przeciwstawnego);
return(0);
}
OrderClosePrice
Funkcja zwraca cenę zamknięcia aktualnie zaznaczonego zlecenia. Aby uzyskać szczegółowe informacje o błędach, korzystamy z funkcji GetLastError().
Uwaga! Aby korzystać z tej funkcji konieczne jest wcześniejsze „zaznaczenie” zlecenia za pomocą funkcji OrderSelectia:().
Składnia:
double OrderClosePrice()
Parametry
brak
Wartość zwracana
cena zamknięcia zlecenia
Przykład:
if( OrderSelect(ticket,SELECT_BY_POS) == true )
Print("Cena zamknięcia zlecenia ",ticket," to ",OrderClosePrice());
else
Print("Błąd wykonania funkcji OrderSelect ",GetLastError());
OrderCloseTime
Funkcja zwraca datę i czasu zamknięcia wybranego zlecenia, które jest zamknięte lub zwraca wartość 0 dla zleceń otwartych oraz oczekujących. Aby uzyskać szczegółowe informacje o błędach, korzystamy z funkcji GetLastError().
Uwaga! Aby korzystać z tej funkcji konieczne jest wcześniejsze „zaznaczenie” zlecenia za pomocą funkcji OrderSelect ().
Składnia:
datetime OrderCloseTime()
Parametry
brak
Wartość zwracana
data i czas zamknięcia zlecenia
Przykład:
datetime ctm;
if( OrderSelect(2112,SELECT_BY_POS,MODE_HISTORY)==true)
{
ctm = OrderOpenTime();
if(ctm>0) Print("Czas otwarcia zlecenia 2112 to ", TimeToStr(ctm));
ctm = OrderCloseTime();
if(ctm>0) Print("Czas zamknięcia zlecenia 2112 to ", TimeToStr(ctm));
}
else
Print("Błąd wykonania funkcji OrderSelect ",GetLastError());
OrderComment
Funkcja zwraca łańcuch znakowy opisujący zlecenie, komentarz do zlecenia. Aby uzyskać szczegółowe informacje o błędach, korzystamy z funkcji GetLastError().
Uwaga! Aby korzystać z tej funkcji konieczne jest wcześniejsze „zaznaczenie” zlecenia za pomocą funkcji OrderSelect ().
Składnia:
string OrderComment()
Parametry
brak
Wartość zwracana
komentarz do zlecenia
Przykład:
string komentarz;
if( OrderSelect(124,SELECT_BY_TICKET)==false )
{
Print("Błąd wykonania funkcji OrderSelect ",GetLastError());
return(0);
}
komentarz = OrderComment();
Print( komentarz );
OrderCommission
Funkcja oblicza i zwraca wartość prowizji pobieranych od aktualnie zaznaczonego zlecenia. Jeśli funkcja powiedzie się zwraca wartość true, w przeciwnym razie false. Aby uzyskać szczegółowe informacje o błędach, korzystamy z funkcji GetLastError().
Uwaga! Aby korzystać z tej funkcji konieczne jest wcześniejsze „zaznaczenie” zlecenia za pomocą.
Składnia
funkcji OrderSelect ().
Składnia:
double OrderCommission()
Parametry
brak
Wartość zwracana
wielkość opłat i prowizji
Przykład:
if( OrderSelect(124,SELECT_BY_POS)==true )
Print("Prowizje dla zlecenia 121 ",OrderCommission());
else
Print("Błąd wykonania funkcji OrderSelect ",GetLastError());
OrderDelete
Funkcja usuwa wcześniej otwarte zlecenie oczekujące. Jeśli funkcja powiedzie się zwraca wartość true, w przeciwnym razie false. Aby uzyskać szczegółowe informacje o błędach, korzystamy z funkcji GetLastError().
Składnia:
bool OrderDelete( int ticket, color Color=CLR_NONE)
Parametry
ticket – numer zlecenia
color – kolor strzałki na wykresie oznaczającej usunięcie zlecenia lub
wartość domyślna CLR_NONE czyli brak koloru
Wartość zwracana
true – jeśli funkcja zakończona powodzeniem
false – jeśli funkcja zakończona niepowodzeniem
Przykład:
if( Ask > 1.5239)
{
OrderDelete( numer_zlecenia );
return(0);
}
OrderExpiration
Funkcja zwraca datę ważności dla aktualnie zaznaczonego zlecenia oczekującego. Aby uzyskać szczegółowe informacje o błędach, korzystamy z funkcji GetLastError().
Uwaga! Aby korzystać z tej funkcji konieczne jest wcześniejsze „zaznaczenie” zlecenia za pomocą funkcji OrderSelect().
Składnia:
datetime OrderExpiration()
Parametry
brak
Wartość zwracana
data i czas wygaśnięcia pozycji oczekującej
Przykład:
if( OrderSelect(124, SELECT_BY_TICKET)==true )
Print("Czas wygaśnięcia zlecenia #124 to
",TimeToStr(OrderExpiration()));
else
Print("Błąd wykonania funkcji OrderSelect ",GetLastError());
OrderLots
Funkcja zwraca wielkość, wolumen aktualnie wybranego zlecenia. Aby uzyskać szczegółowe informacje o błędach, korzystamy z funkcji GetLastError().
Uwaga! Aby korzystać z tej funkcji konieczne jest wcześniejsze „zaznaczenie” zlecenia za pomocą funkcji OrderSelect().
Składnia
double OrderLots()
Parametry
brak
Wartość zwracana
wielkość pozycji w lotach
Przykład:
if( OrderSelect(124,SELECT_BY_POS)==true )
Print("wielkość pozycji #124 ",OrderLots());
else
Print("Błąd wykonania funkcji OrderSelect ",GetLastError());
OrderMagicNumber
Funkcja zwraca identyfikator (magic numer) aktualnie wybranego zlecenia. Aby uzyskać szczegółowe informacje o błędach, korzystamy z funkcji GetLastError().
Uwaga! Aby korzystać z tej funkcji konieczne jest wcześniejsze „zaznaczenie” zlecenia za pomocą funkcji OrderSelect().
Składnia
int OrderMagicNumber()
Parametry
brak
Wartość zwracana
identyfikator pomocniczy MagicNumber
Przykład:
if( OrderSelect(124,SELECT_BY_POS)==true)
Print("MagicNumber dla zlecenia #124 ", OrderMagicNumber());
else
Print("Błąd wykonania funkcji OrderSelect ",GetLastError());
OrderModify
Funkcja modyfikuje wcześniej otwartą pozycję lub zlecenie oczekujące. Jeśli funkcja powiedzie się zwraca wartość true, w przeciwnym razie false. Aby uzyskać szczegółowe informacje o błędach, korzystamy z funkcji GetLastError().
Uwaga! Aby korzystać z tej funkcji konieczne jest wcześniejsze „zaznaczenie” zlecenia za pomocą funkcji OrderSelect().
Uwaga! Cena otwarcia oraz czas wygaśnięcia może być modyfikowany tylko dla zleceń oczekujących.
Składnia
bool OrderModify( int ticket, double price, double stoploss, double
takeprofit, datetime expiration, color arrow_color=CLR_NONE)
Parametry
ticket – identyfikator zlecenia
price – cena otwarcia tylko dla zleceń oczekujących
stoploss – nowy poziom StopLoss
takeprofit – nowy poziom TakeProfit
expiration – czas wygaśnięcia zlecenia oczekującego
arrow_color – color strzałek dla poziomów StopLoss/TakeProfit lub wartość
domyślna CLR_NONE czyli brak koloru
Wartość zwracana
true – jeśli funkcja, modyfikacja zlecenie zakończona powodzeniem
false – jeśli funkcja, modyfikacja zlecenie zakończona niepowodzeniem
Przykład:
if( TrailingStop > 0 )
{
OrderSelect(124,SELECT_BY_TICKET);
if(Bid-OrderOpenPrice()>Point*TrailingStop)
{
if(OrderStopLoss()<Bid-Point*TrailingStop)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-
Point*TrailingStop,OrderTakeProfit(),0,Blue);
return(0);
}
}
}
OrderOpenPrice
Funkcja zwraca wartość ceny otwarcia pozycji dla aktualnie wybranego zlecenia. Aby uzyskać szczegółowe informacje o błędach, korzystamy z funkcji GetLastError().
Uwaga! Aby korzystać z tej funkcji konieczne jest wcześniejsze „zaznaczenie” zlecenia za pomocą funkcji OrderSelect().
Składnia
double OrderOpenPrice()
Parametry
brak
Wartość zwracana
cena otwarcia zlecenia
Przykład:
if(OrderSelect(124, SELECT_BY_POS)==true)
Print("Cena otwarcia zlecenia #124 ",OrderOpenPrice());
else
Print("Błąd wykonania funkcji OrderSelect ",GetLastError());
OrderOpenTime
Funkcja zwraca datę i czas aktualnie wybranego zlecenia. Aby uzyskać szczegółowe informacje o błędach, korzystamy z funkcji GetLastError().
Uwaga! Aby korzystać z tej funkcji konieczne jest wcześniejsze „zaznaczenie” zlecenia za pomocąm funkcji OrderSelect().
Składnia
datetime OrderOpenTime()
Parametry
brak
Wartość zwracana
data i czas otwarcia zlecenia w formacie datetime
Przykład:
if(OrderSelect(124, SELECT_BY_POS)==true)
Print("Czas otwarcia zlecenia #124 ",OrderOpenTime());
else
Print("Błąd wykonania funkcji OrderSelect ",GetLastError());
OrderPrint
Funkcja wyświetla podstawowe informacje w Dzienniku na temat aktualnie wybranego zlecenia. Format informacji to: numer zlecenia | czas otwarcia | typ zlecenia | wielkość pozycji | cena otwarcia| StopLoss | Take Profit | czas zamknięcia | cena zamknięcia | prowizje i opłaty | Swap | zysk/strata | komentarz | MagicNumber | czas wygaśnięcia zlecenia oczekującego. Aby uzyskać szczegółowe informacje o błędach, korzystamy z funkcji GetLastError().
Uwaga! Aby korzystać z tej funkcji konieczne jest wcześniejsze „zaznaczenie” zlecenia za pomocą funkcji OrderSelect().
Składnia
void OrderPrint()
Parametry
brak
Wartość zwracana
Przykład:
if(OrderSelect(10, SELECT_BY_TICKET)==true)
OrderPrint();
else
Print("Błąd wykonania funkcji OrderSelect ",GetLastError());
OrderProfit
Funkcja zwraca aktualny zysk/stratę otwartej i aktualnie zaznaczonej pozycji (bez swap i prowizji). W otwartej pozycji, jest uzwzględniony niezrealizowany zysk. Aby uzyskać szczegółowe informacje o błędach, korzystamy z funkcji GetLastError().
Uwaga! Aby korzystać z tej funkcji konieczne jest wcześniejsze „zaznaczenie” zlecenia za pomocą funkcji OrderSelect().
Składnia
double OrderProfit()
Parametry
brak
Wartość zwracana
zysk/strata z aktualnie otwartych pozycji (bez swap i prowizji)
Przykład:
if(OrderSelect(10, SELECT_BY_POS)==true)
Print("Zysk/strata z pozycji #124 ",OrderProfit());
else
Print("Błąd wykonania funkcji OrderSelect ",GetLastError());
OrderSelect
Funkcja wybiera i zaznacza jako aktualną pozycję do dalszego użycia przez inne funkcje operacji handlowych. Jest to podstawowa funkcja, którą musimy użyć za każdym razem, gdy chcemy pobrać informacje z terminala o aktualnie otwartych, oczekujących lub historycznych pozycjach.
Jeśli funkcja powiedzie się zwraca wartość true, w przeciwnym razie false. Aby uzyskać szczegółowe informacje o błędach, korzystamy z funkcji GetLastError(). Pozycje mogą być wybierane na podstawie niepowtarzalnego identyfikatora zlecenia, wówczas parametr select przyjmuje wartość SELECT_BY_TICKET lub poprzez indeks pozycji wówczas parametr select przyjmuje wartość SELECT_BY_POS. Pozycje mogę być wybierane z aktualnie otwartych lub historycznych co ustalamy parametrem pool, który przyjmuje wartość MODE_TRADES lub MODE_HISTORY.
Składnia
bool OrderSelect( int index, int select, int pool=MODE_TRADES )
Parametry
index – identyfikator zlecenia zależny od drugiego parametru select
select – parametr oznaczający typ zaznaczanego indeksu:
SELECT_BY_POS – identyfikator indeksu pozycji
SELECT_BY_TICKET – identyfikator zlecenia
pool – stosowany tylko w trybie SELECT_BY_POS, może przyjmować poniższe
wartości:
MODE_TRADES (default) – wybierane są zlecenia z otwarte i oczekujące
MODE_HISTORY – wybierane są zlecenia zamknięte z historii rachunku
Wartość zwracana
true – jeśli funkcja zakończona powodzeniem
false – jeśli funkcja zakończona niepowodzeniem
Przykład:
if(OrderSelect(124, SELECT_BY_TICKET)==true)
{
Print("Cena otwarcia zlecenie #124 ", OrderOpenPrice());
Print("Cena zamknięcia zlecenia #124 ", OrderClosePrice());
}
else
Print("Błąd wykonania funkcji OrderSelect ",GetLastError());
OrderSend
Funkcja umożliwia otwieranie zleceń natychmiastowych oraz oczekujących. Funkcja zwraca numer zlecenia, jeśli zakończy się powodzeniem lub wartość -1, jeśli wystąpił błąd wykonania funkcji (otwarcia nowego zlecenia). Aby uzyskać szczegółowe informacje o błędach, korzystamy z funkcji GetLastError(). Jest to podstawowa funkcja z operacji handlowych oraz jedyna służąca do otwierania nowych pozycji z poziomu własnego programu.
Uwaga! W przypadku zleceń po cenie rynkowej typu OP_SELL lub OP_BUY, jako cenę otwarcia możemy podać tylko aktualną cenę Bid dla typu OP_SELL lub Ask dla typu OP_BUY i nie powinniśmy stosować wyliczanych, normalizowanych cen. Jeśli podamy cenę wyliczoną o nieprawidłowym formacie np. za mało pozycji po przecinku to otrzymamy błąd numer 129 (ERR_INVALID_PRICE).
Jeśli podana cena będzie z aktualną ceną rynkową otrzymamy błąd numer 138 (ERR_REQUOTE), w tym przypadku możemy zastosować parametr slippage i określić maksymalne odchylenie od aktualnej ceny rynkowej, przy jakim zgadzamy się na otworzenie pozycji. Jeśli stosujemy parametr slippage to cena po której pozycja będzie otwarta określona jest przez “widełki” = aktualna cena +-
parametr slippage.
Wartość StopLoss i TakeProfit możemy określić podczas otwierania nowego zlecenia, ale muszą być większe niż dopuszczalna przez brokera minimalna wartość stopów (stop level), którą możemy odczytać korzystając z funkcji MarketInfo() parametr MODE_STOPLEVEL. W przypadku ustawienia nieprawidłowych, najczęściej za bliskich poziomów stop otrzymamy błąd o kodzie 130
(ERR_INVALID_STOPS).
Jeśli otwieramy zlecenia oczekujące cena otwarcia nie może być ceną rynkową Ask lub Bid. Minimalny poziom odstępu od aktualnej ceny dla zleceń oczekujących określony przez brokera możemy odczytać za pomocą funkcji MarketInfo() parameter MODE_STOPLEVEL. W przypadku
ustawienia nie prawidłowych cen oczekujących otrzymamy błąd o kodzie 130 (ERR_INVALID_STOPS).
Broker może zablokować zlecenia oczekujące wówczas przy próbie wywołania takiego zlecenie otrzymamy błąd o kodzie 147 (ERR_TRADE_EXPIRATION_DENIED).
Może też zostać nałożone ograniczenie na maksymalna ilość zleceń otwartych i oczekujących wówczas zostanie wygenerowany błąd o kodzie 148 (ERR_TRADE_TOO_MANY_ORDERS).
Składnia
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 )
Parametry
symbol – symbol rynku
cmd – identyfikator typ zlecenia
volume – wielkość zlecenia wlotach
price – cena po jakiej ma zostać otwarte zlecenie
slippage – maksymalne dopuszczalne odchylenie ceny rynkowej w pipsach od
powyższej ceny otwarcia
stoploss – poziom StopLoss
takeprofit – poziom TakeProfit
comment – komentarz tekstowy do zlecenia
magic – identyfikator dla EA
expiration – czas wygaśnięcia tylko dla zleceń oczekujących
arrow_color – kolor strzałki otwierającej zlecenie lub wartość domyślna
CLR_NONE czyli brak koloru
Wartość zwracana
numer nowego zlecenia lub -1 jeśli błąd
Przykład:
int zlecenie;
if( iRSI(NULL,0,14,PRICE_CLOSE,0) < 20 )
{
zlecenie = OrderSend(Symbol(),OP_BUY,1,Ask,3,Ask-
25*Point,Ask+25*Point,"Moje zlecenie kupna",16384,0,Green);
if(zlecenie < 0 )
{
Print("Błąd wykonania funkcji OrderSend ",GetLastError());
return(0);
}
}
OrdersHistoryTotal
Funkcja zwraca liczbę zamkniętych zleceń, które znajdują się w historii rachunku i zależy od zakresu daty wyświetlanej w zakładce pozycji historycznych rachunku.
Składnia
int OrdersHistoryTotal()
Parametry
brak
Wartość zwracana
liczba zamkniętych pozycji znajdujących się w historii
Przykład:
int i,
hTotal = OrdersHistoryTotal();
for(i=0;i<hTotal;i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false)
{
Print("Nie można wybrać pozycji z historii ",GetLastError());
break;
}
}
Print(OrderTicket(),” | ”,OrderSymbol(),” | ”,OrderClosePrice())
OrderStopLoss
Funkcja zwraca wartość StopLoss dla aktualnie zaznaczonego zlecenia. Aby uzyskać szczegółowe informacje o błędach, korzystamy z funkcji GetLastError().
Uwaga! Aby korzystać z tej funkcji konieczne jest wcześniejsze „zaznaczenie” zlecenia za pomocą funkcji OrderSelect().
Składnia
double OrderStopLoss()
Parametry
brak
Wartość zwracana
wartość StopLoss
Przykład:
if(OrderSelect(ticket,SELECT_BY_POS)==true)
Print("StopLoss dla pozycji #124 ", OrderStopLoss());
else
Print("Błąd wykonania funkcji OrderSelect ",GetLastError()
OrderSwap
Funkcja zwraca wartość Swap dla aktualnie wybranego zlecenia. Aby uzyskać szczegółowe informacje o błędach, korzystamy z funkcji GetLastError().
Uwaga! Aby korzystać z tej funkcji konieczne jest wcześniejsze „zaznaczenie” zlecenia za pomocą funkcji OrderSelect().
Składnia
double OrderSwap()
Parametry
brak
Wartość zwracana
wielkość pozycji Swapowych
Przykład:
if(OrderSelect(124, SELECT_BY_TICKET)==true)
Print("Naliczone punkty swap dla pozycji #124 ",OrderSwap());
else
Print("Błąd wykonania funkcji OrderSelect ",GetLastError());
OrderSymbol
Funkcja zwraca ciąg znaków, który reprezentuje nazwę symbolu instrumentu finansowego dla aktualnie zaznaczonego zlecenia. Aby uzyskać szczegółowe informacje o błędach, korzystamy z funkcji GetLastError().
Uwaga! Aby korzystać z tej funkcji konieczne jest wcześniejsze „zaznaczenie” zlecenia za pomocą funkcji OrderSelect().
Składnia
string OrderSymbol()
Parametry
brak
Wartość zwracana
nazwa symbolu rynku
Przykład:
if(OrderSelect(124, SELECT_BY_POS)==true)
Print("Symbol rynku dla zlecenia #124 ", OrderSymbol());
else
Print("Błąd wykonania funkcji OrderSelect ",GetLastError());
OrderTakeProfit
Funkcja zwraca wartość TakeProfit dla aktualnie zaznaczonego zlecenia. Aby uzyskać szczegółowe informacje o błędach, korzystamy z funkcji GetLastError().
Uwaga! Aby korzystać z tej funkcji konieczne jest wcześniejsze „zaznaczenie” zlecenia za pomocą funkcji OrderSelect().
Składnia
double OrderTakeProfit()
Parametry
brak
Wartość zwracana
wartość TakeProfit
Przykład:
if(OrderSelect(124, SELECT_BY_POS)==true)
Print("TakeProfit dla pozycji #124 ", OrderTakeProfit());
else
Print("Błąd wykonania funkcji OrderSelect ",GetLastError());
OrderTicket
Funkcja zwraca numer zlecenia dla aktualnie wybranego zlecenia. Jeśli funkcja powiedzie się zwraca wartość true, w przeciwnym razie false. Aby uzyskać szczegółowe informacje o błędach, korzystamy z funkcji GetLastError().
Uwaga! Aby korzystać z tej funkcji konieczne jest wcześniejsze „zaznaczenie” zlecenia za pomocą funkcji OrderSelect().
Składnia
int OrderTicket()
Parametry
brak
Wartość zwracana
numer identyfikacyjny zlecenia
Przykład:
if( OrderSelect(124, SELECT_BY_TICKET)==true )
Print("Czas wygaśnięcia zlecenia #124 to
",TimeToStr(OrderExpiration()));
else
Print("Błąd wykonania funkcji OrderSelect ",GetLastError());
OrderType
Funkcja z wraca typ zlecenia dla aktualnie wybranego zlecenia. Zwracana wartość odpowiada dostępnym w terminalu typom zleceń, które zamieszczone zostały poniżej.
OP_BUY
wartość
opis
0
pozycja kupna
OP_SELL
wartość
opis
1
pozycja sprzedaży
OP_BUYLIMIT
wartość
opis
2
pozycja oczekującą kupna po spadku do podanej ceny
OP_SELLLIMIT
wartość
opis
3
pozycja oczekującą sprzedaży po wzroście do podanej ceny
OP_BUYSTOP
wartość
opis
4
pozycja oczekującą kupna po wzroście do podanej ceny
OP_SELLSTOP
wartość
opis
5
pozycja oczekującą sprzedaży po spadku do podanej ceny
stała | wartość | opis |
---|---|---|
OP_BUY | 0 | pozycja kupna |
OP_SELL | 1 | pozycja sprzedaży |
OP_BUYLIMIT | 2 | pozycja oczekującą kupna po spadku do podanej ceny |
OP_SELLLIMIT | 3 | pozycja oczekującą sprzedaży po wzroście do podanej ceny |
OP_BUYSTOP | 4 | pozycja oczekującą kupna po wzroście do podanej ceny |
OP_SELLSTOP | 5 | pozycja oczekującą sprzedaży po spadku do podanej ceny |
Aby uzyskać szczegółowe informacje o błędach, korzystamy z funkcji GetLastError().
Uwaga! Aby korzystać z tej funkcji konieczne jest wcześniejsze „zaznaczenie” zlecenia za pomocą funkcji OrderSelect().
Składnia
int OrderType()
Parametry
brak
Wartość zwracana
typ zlecenia
Przykład:
int order_type;
if(OrderSelect(124, SELECT_BY_POS)==true)
{
Print("Typ zlecenia dla pozycji #124 ",OrderType());
}
else
Print("Błąd wykonania funkcji OrderSelect ",GetLastError());
Kody błędów operacji handlowych
W poniższej tabeli zamieszczono błędy krytyczne, które powodują natychmiastowe zatrzymanie wykonywania się programu:
ERR_NO_ERROR
wartość
opis
0
Brak błędu
ERR_NO_RESULT
wartość
opis
1
Nie ma błędu, ale wynik jest nieprawidłowy
ERR_COMMON_ERROR
wartość
opis
2
Błąd ogólny
ERR_INVALID_TRADE_PARAMETERS
wartość
opis
3
Nieprawidłowe parametry handlu
ERR_SERVER_BUSY
wartość
opis
4
Serwer trading owy jest zajęty
ERR_OLD_VERSION
wartość
opis
5
Starsza wersja klienta platform
ERR_NO_CONNECTION
wartość
opis
6
Brak połączenie z serwerem
ERR_NOT_ENOUGH_RIGHTS
wartość
opis
7
Brak uprawnieni do wykonania tej operacji
ERR_TOO_FREQUENT_REQUESTS
wartość
opis
8
Za dużo żądań wysyłanych do serwera
ERR_MALFUNCTIONAL_TRADE
wartość
opis
9
Błąd wewnętrzny serwera
ERR_ACCOUNT_DISABLED
wartość
opis
64
Konto wyłączone
ERR_INVALID_ACCOUNT
wartość
opis
65
Błędny numer konta
ERR_TRADE_TIMEOUT
wartość
opis
128
Przekroczony czas wykonania zlecenia
ERR_INVALID_PRICE
wartość
opis
129
Nieprawidłowa cena
ERR_INVALID_STOPS
wartość
opis
130
Nieprawidłowy poziom stop
ERR_INVALID_TRADE_VOLUME
wartość
opis
131
Nieprawidłowa wielkość zlecenia
ERR_MARKET_CLOSED
wartość
opis
132
Rynek jest zamknięty
ERR_TRADE_DISABLED
wartość
opis
133
Handel jest wyłączony
ERR_NOT_ENOUGH_MONEY
wartość
opis
134
Brak środków na koncie
ERR_PRICE_CHANGED
wartość
opis
135
Cena uległa zmianie
ERR_OFF_QUOTES
wartość
opis
136
Kwotowania są niedostępne
ERR_BROKER_BUSY
wartość
opis
137
Serwer brokera jest niedostępny
ERR_REQUOTE
wartość
opis
138
Rekwotowanie
ERR_ORDER_LOCKED
wartość
opis
139
Zlecenie jest zablokowane
ERR_LONG_POSITIONS_ONLY_ALLOWED
wartość
opis
140
Dopuszczalne są tylko pozycje długie
ERR_TOO_MANY_REQUESTS
wartość
opis
141
Za dużo żądań do serwera
ERR_TRADE_MODIFY_DENIED
wartość
opis
145
Nie można modyfikować zlecenia, ponieważ rynek jest zamknięty
ERR_TRADE_CONTEXT_BUSY
wartość
opis
146
Terminal handlowy jest zajęty
ERR_TRADE_EXPIRATION_DENIED
wartość
opis
147
Zlecenia oczekujące są zablokowane
ERR_TRADE_TOO_MANY_ORDERS
wartość
opis
148
Ilość bieżących zleceń przekracza dopuszczalny limit
ERR_TRADE_HEDGE_PROHIBITED
wartość
opis
149
Otwarcie pozycji przeciwnej do aktualnie otwartej jest niedostępne
ERR_TRADE_PROHIBITED_BY_FIFO
wartość
opis
150
Próba zamknięcia pozycji narusza zasady FIFO
stała | wartość | opis |
---|---|---|
ERR_NO_ERROR | 0 | Brak błędu |
ERR_NO_RESULT | 1 | Nie ma błędu, ale wynik jest nieprawidłowy |
ERR_COMMON_ERROR | 2 | Błąd ogólny |
ERR_INVALID_TRADE_PARAMETERS | 3 | Nieprawidłowe parametry handlu |
ERR_SERVER_BUSY | 4 | Serwer trading owy jest zajęty |
ERR_OLD_VERSION | 5 | Starsza wersja klienta platform |
ERR_NO_CONNECTION | 6 | Brak połączenie z serwerem |
ERR_NOT_ENOUGH_RIGHTS | 7 | Brak uprawnieni do wykonania tej operacji |
ERR_TOO_FREQUENT_REQUESTS | 8 | Za dużo żądań wysyłanych do serwera |
ERR_MALFUNCTIONAL_TRADE | 9 | Błąd wewnętrzny serwera |
ERR_ACCOUNT_DISABLED | 64 | Konto wyłączone |
ERR_INVALID_ACCOUNT | 65 | Błędny numer konta |
ERR_TRADE_TIMEOUT | 128 | Przekroczony czas wykonania zlecenia |
ERR_INVALID_PRICE | 129 | Nieprawidłowa cena |
ERR_INVALID_STOPS | 130 | Nieprawidłowy poziom stop |
ERR_INVALID_TRADE_VOLUME | 131 | Nieprawidłowa wielkość zlecenia |
ERR_MARKET_CLOSED | 132 | Rynek jest zamknięty |
ERR_TRADE_DISABLED | 133 | Handel jest wyłączony |
ERR_NOT_ENOUGH_MONEY | 134 | Brak środków na koncie |
ERR_PRICE_CHANGED | 135 | Cena uległa zmianie |
ERR_OFF_QUOTES | 136 | Kwotowania są niedostępne |
ERR_BROKER_BUSY | 137 | Serwer brokera jest niedostępny |
ERR_REQUOTE | 138 | Rekwotowanie |
ERR_ORDER_LOCKED | 139 | Zlecenie jest zablokowane |
ERR_LONG_POSITIONS_ONLY_ALLOWED | 140 | Dopuszczalne są tylko pozycje długie |
ERR_TOO_MANY_REQUESTS | 141 | Za dużo żądań do serwera |
ERR_TRADE_MODIFY_DENIED | 145 | Nie można modyfikować zlecenia, ponieważ rynek jest zamknięty |
ERR_TRADE_CONTEXT_BUSY | 146 | Terminal handlowy jest zajęty |
ERR_TRADE_EXPIRATION_DENIED | 147 | Zlecenia oczekujące są zablokowane |
ERR_TRADE_TOO_MANY_ORDERS | 148 | Ilość bieżących zleceń przekracza dopuszczalny limit |
ERR_TRADE_HEDGE_PROHIBITED | 149 | Otwarcie pozycji przeciwnej do aktualnie otwartej jest niedostępne |
ERR_TRADE_PROHIBITED_BY_FIFO | 150 | Próba zamknięcia pozycji narusza zasady FIFO |
Niniejszy materiał, przygotowany przez DM BOŚ S.A. ma charakter wyłącznie informacyjny, prezentowany jest w celach edukacyjnych i nie stanowi porady prawnej oraz nie jest rekomendacją osobistą w ramach świadczenia usługi doradztwa inwestycyjnego zgodnie z przepisami prawa. DM BOŚ S.A. nie udziela gwarancji dokładności, aktualności, oraz kompletności niniejszych informacji. Zaleca się przeprowadzenie we własnym zakresie niezależnego przeglądu informacji z niniejszego materiału.