mforex API dokumentacja protokołu WebSockets wersja 0.9.6

Podobne dokumenty
mforex API dokumentacja protokołu WebSockets wersja 0.9.7

mforex API dokumentacja protokołu binarnego wersja 0.9.7

Instrukcja użytkownika mforex WEB

Pierwsze kroki w mforex Trader Instrukcja

Instrukcja użytkownika

Instrukcja użytkownika Platformy BRE WebTrader

mforex WEB Instrukcja obsługi

API transakcyjne BitMarket.pl

Zarządzanie Kapitałem

Komputerowe systemy na rynkach finansowych. wykład 3 funkcje MQL4

Krok 4: Zamykamy pozycję

SUPERMAKLER FX INSTRUKCJA OBSŁUGI TERMINALA TRANSAKCYJNEGO

str.1 Informacje ogólne

Platforma transakcyjna BOSSA FX. Platforma Metatrader 4 najpopularniejsza na świecie platforma transakcyjna

Rynek akcji a rynek Forex w Polsce

Podstawy inwestowania na rynku Forex, rynku towarowym oraz kontraktów CFD

Podręcznik do platformy MetaTrader dla STP NDD

DOKUMENTACJA INTERFEJSU API - HTTPS

Poradnik Inwestora część 4. Podstawy inwestowania na rynku Forex, rynku towarowym oraz kontraktach indeksowych

INSTRUKCJA APLIKACJI META TRADER 4 W SYSTEMIE APPLE IOS SPIS TREŚCI

BANK ZACHODNI WBK S.A. SPÓŁKA AKCYJNA CZŁONEK ZARZĄDU BANKU

Wielokrotne zamknięcie przez. Zlecenie po cenie rynkowej. Zlecenie oczekujące z limitem

Instrukcja użytkownika Smart Orders

INSTRUKCJA APLIKACJI META TRADER 4 W SYSTEMIE ANDROID

Jaki jest limit odległości ceny aktywacji od ceny rynkowej dla zleceń oczekujących? Czy mogę zająć pozycje przeciwstawne w jednym instrumencie?

Opis Experta Na Andrzeja by MMD

Poradnik Inwestora część 3. Podstawy inwestowania na rynku Forex, rynku towarowym oraz kontraktach indeksowych

HANDEL OPCJAMI W PLATFORMIE DEALBOOK 360

Instrukcja użytkownika. MetaTrader 4 Dla urządzeń mobilnych z systemem Android TM. Android TM jest znakiem handlowym zastrzeżonym przez Google, Inc.

Instrukcja użytkownika. MetaTrader 4 Dla urządzeń mobilnych wyposażonych w ios

mforex Android Platforma transakcyjna Meta Trader 4 dla urządzeń mobilnych z systemem Android TM

Instrukcja użytkownika mforex Android

Biuro Maklerskie. Alior Trader Mobile. Podręcznik użytkownika System Android 1/26

Spis treści. Wstęp. Pierwsze logowanie. Wygląd platformy po zalogowaniu. Składnianie zleceń. Widok nowego zlecenia na wykresie oraz w zakładce handel

Podstawy inwestowania na rynku Forex, rynku towarowym oraz kontraktów CFD

Biuro Maklerskie. Alior Trader Mobile. Podręcznik użytkownika System ios 1/20

Podstawy inwestowania na rynku Forex, rynku towarowym oraz kontraktów CFD

Spis treści: Uzyskiwanie dostępu do konta GWAZY 3. Sekcje platformy 4. Informacje o platformie 5. Lista obserwowanych 5.

SUPERMAKLER FX MODUŁ RAPORTÓW

Pierwsze kroki na rynku Forex.

Instrukcja Noble Markets Webtrader MT4

Przed zapoznaniem się z poniższą instrukcję, zalecamy zapoznanie się z instrukcją Ustawienie platformy.

Działając w najlepiej pojętym interesie Klientów HFT Brokers w sytuacji trudnych do przewidzenia, a mogących mieć

Informacje o Rynkach FX

Spis treści. Wstęp 3. Logowanie 4. Ekran kalendarza 5. Ustawienia 6. Dodawanie akcji 7. Parametry zleceń 8. Zlecenia warunkowe, modyfikacja zleceń 9

1. Rynek Forex. a) Opis rynku

INSTRUKCJA OBSŁUGI WERSJI WEBOWEJ SYSTEMU TRANSAKCYJNEGO NOVA GIEŁDA

Instrukcja użytkownika

Cena Bid, Ask i spread

PRZEWODNIK. Wymiana walut w kantorze internetowym topfx

Podręcznik do platformy xtab

Krok 5: ZAMYKANIE ZLECENIA

DOKUMENTACJA TECHNICZNA SMS API MT

Pips, punkt, spread, kursy bid i ask

Przykładowe scenariusze kosztów dla transakcji w systemie transakcyjnym TMS Trader MT5

Instrukcja użytkownika Platforma Walutowa

0,20% nominału transakcji nie mniej niż 5 USD

Instrukcja użytkownika

SAPRI TRADE składanie zleceń

Część I. Zasady obrotu. 1. Organizacja notowań i zawierania transakcji pozaseryjnych na RDN.

0,20% nominału transakcji nie mniej niż 5 USD

Prowizja za wykonanie transakcji na CFD na kryptowalutę 0.08% nominału transakcji brak prowizji 0.08% nominału transakcji brak prowizji

Kurs walut. Specyfikacja projektu. Marek Zając

WYKAZ FORMATÓW ORAZ FUNKCJI KANAŁU PBS-SMS

Instrukcja użytkownika

Instrukcja użytkownika Platformy Walutowej

I. Tabela Opłat i Prowizji TMS Trader MT5. Tabela Opłat i Prowizji TMS Trader MT4

Tutorial LMAX Exchange Mobile

Baza numerów Wersja 1.1

Instrukcja użytkownika

Definiowanie filtrów IP

POLITYKA REALIZACJI ZLECEŃ (OTC)

Tabela Opłat i Prowizji OTC z dnia 17 lipca 2016 roku BASIC PREMIUM, STANDARD PREMIUM PROFESSIONAL PREMIUM

Non-FIFO, hedging oraz zlecenia powiązane (attached orders)

Instrukcja użytkownika

UMOWA O SYSTEMIE KWOTOWANIA I PROCEDURACH TRANSAKCJI

Rynek Finansowy Platforma Transakcyjna XTB-Trader

Dokumentacja serwera REST do obsługi rezerwacji w systemie SaNAtoRIUm.pro

Instrukcja obsługi NM Mobile na iphone

System transakcyjny NS Forex Instrukcja obsługi

Pips, punkt, spread, kursy bid i ask

INSTRUKCJA OBSŁUGI SYSTEMU TRANSAKCYJNEGO NOVA GIEŁDA W WERSJI NA PC

Obsługa platformy xstation

0,20% nominału transakcji nie mniej niż 5 USD

Gatesms.eu Mobilne Rozwiązania dla biznesu

TABELA OPŁAT I PROWIZJI z dnia 4 kwietnia 2017 roku

Przewodnik po rachunku z usługą e-kantor dla firm

Instrukcja użytkownika Platforma Walutowa

Specyfikacja API 1.0. Specyfikacja kontroli Konta systemu CashBill z wykorzystaniem API opartego na REST

Przewodnik po raportach rozliczeniowych w Condico Clearing Station

Specyfikacja techniczna. mprofi Interfejs API

Funkcje dodatkowe. Wersja 1.2.1

DIF Freedom WEB (CFD) Komputer, Tablet oraz Telefon Szybki Start

ZASADY REALIZACJI ZLECEŃ

Warunki Świadczenia Usług Obrotu na Rynku Walutowym Forex i Korzystania z Platformy Transakcyjnej MetaTrader 4 AM UK

PRZEWODNIK PO ETRADER PEKAO ROZDZIAŁ III. JAK ZŁOŻYĆ ZLECENIE GIEŁDOWE? SPIS TREŚCI

Podręcznik do platformy MT4 web access

Przykładowe scenariusze kosztów dla transakcji w systemie transakcyjnym TMS Connect Professional MT5

WebTrader w Noble Markets

Transkrypt:

mforex API dokumentacja protokołu WebSockets wersja 0.9.6

WSTĘP 3 OGÓLNE 3 SERWERY 3 GODZINY HANDLU 3 FORMAT DANYCH 4 DEFINICJE 4 DATA I CZAS 4 OGÓLNE ZASADY OBSŁUGI KOMUNIKATÓW 4 PROTOKÓŁ 5 STRUKTURA PAKIETU 5 INFORMACJE OGÓLNE 5 MODEL ZAPYTANIE-ODPOWIEDŹ 5 MODEL STRUMIENIOWY 5 KOMUNIKATY 6 KOMUNIKATY PROTOKOŁU ZAPYTANIE-ODPOWIEDŹ 6 KOMUNIKATY PROTOKOŁU STRUMIENIOWEGO 20 TYPY WYLICZENIOWE 24 2

WSTĘP Ogólne Niniejszy dokument zawiera opis protokołu używanego podczas komunikacji użytkownika z serwerem transakcyjnym. Komunikaty wysyłane są przy użyciu formatu JSON. Dzięki mforex API użytkownicy zyskują programistyczny dostęp do danych rynkowych (zarówno bieżących, jak i historycznych) aktualnego stanu rachunku oraz systemu transakcyjnego mforex. Serwery Serwery API są dostępne pod poniższymi adresami: REAL: wss://real.api.mforex.pl:443/ DEMO: wss://demo.api.mforex.pl:443/ Komunikacja z serwerem realnym prowadzona jest przy pomocy szyfrowanego połączenia (SSLv3). Wersje SSL starsze niż v3 nie są obsługiwane. Godziny handlu Handel walutami rozpoczyna się w niedzielę o godzinę 23:00 i trwa nieprzerwanie przez cały tydzień, aż do godziny 22:00 w piątek. Pozostałe instrumenty handlowane są w różnych godzinach, zależnie od czasu trwania sesji instrumentu bazowego i zmian czasu w poszczególnych krajach. Godziny handlu dla wszystkich instrumentów podane są w specyfikacji instrumentów. Serwer API przyjmuje połączenia niezależnie od godzin handlu przez 24 godziny na dobę, 7 dni w tygodniu. W szczególności, poza sesją możliwe jest logowanie oraz np. pobranie historycznych danych rynkowych. 3

FORMAT DANYCH Definicje JavaScript Object Notation (JSON) jest lekkim, niezależnym od konkretnego języka, tekstowym formatem wymiany danych. JSON może reprezentować cztery typy pierwotne (łańcuchy znaków, liczby, wartości logiczne i literał pusty) oraz dwa typy złożone (obiekty i tablice). Format ten jest szczegółowo opisany w dokumencie RFC 4627. Data i czas Czas przechowywany jest jako liczba milisekund, które upłynęły od pierwszego stycznia 1970 roku. Ogólne zasady obsługi komunikatów W celu zapewnienia najwyższej jakości świadczonych usług na użytkowników nałożony został szereg ograniczeń: Z API mogą korzystać tylko uprawnieni użytkownicy dalej zwani jako UU. Jeżeli użytkownik nie zostanie zidentyfikowany jako UU, otrzyma on pakiet z błędem przy próbie logowania. Jeżeli po ustanowieniu połączenia UU nie zaloguje się w przeciągu 5 sekund, połączenie zostanie przerwane. Jeżeli UU wyśle wiadomość, która nie będzie rozpoznana przez serwer, połączenie zostanie przerwane Każdy UU posiada ograniczą liczbę wiadomości, które może wysłać w przeciągu minuty. Po przekroczeniu limitu wiadomości użytkownik zostanie rozłączony. Każdy wysłany przez UU pakiet nie powinien przekraczać 4096 B. 4

PROTOKÓŁ Struktura Pakietu Każdy pakiet jest pojedynczym, nienazwanym obiektem JSON, którego pierwszym polem jest łańcuch znaków o nazwie type identyfikujący typ wiadomości. Informacje ogólne Komunikacja z serwerem przeprowadzana jest w dwóch modelach: zapytanie odpowiedź komunikacji strumieniowej Model zapytanie-odpowiedź W rzeczonym modelu komunikacja inicjowana jest przez użytkownika. Każdemu zapytaniu z sufiksem request przypisana jest odpowiedź z sufiksem response zawierająca liczbę z przedziału zdefiniowanego w typie wylieczniowym APIErrorCode przechowującą kod rezultatu zapytania oraz pole typu logicznego Status informujące czy zapytanie zakończyło się sukcesem. Zarówno pakiet typu request jak i response zawiera pole RequestId które pozwala na dobranie je w pary. Wartość przechowywana w polu RequestId powinna 1 być unikatowa dla każdej pary. UWAGA: Wyjątkiem od powyższej reguły jest wiadomość LoginRequestPacket, która rezultat zapytania przechowuje jako typ logiczny w polu LoggedIn. Model strumieniowy W tym modelu komunikacja jest inicjowana przez serwer. Komunikaty TickPacket, MarginLevelPacket oraz TradeUpdatePacket wysyłane są do wszystkich połączonych użytkowników, bez konieczności rejestracji. UWAGA: Komunikat MarginLevelPacket wysyłany jest jedynie przy zmianie Poziomu Zabezpieczenia tj. wyniku ilorazu Salda Rejestru Operacyjnego (Equity) i Wymaganego Depozytu Zabezpieczającego (Margin). W szczególności MarginLevelPacket nie będzie wysłany, jeżeli użytkownik nie posiada otwartych pozycji. W takim przypadku w celu otrzymania aktualnego Poziomu Zabezpieczenia należy skorzystać z protokołu zapytanie-odpowiedź i komunikatu MarginLevelRequestPacket. 1 powinna tj. niespełnienie tego warunku nie jest błędem, jednak powoduje, że poprawne przypisanie odpowiedzi do zapytania może być niemożliwe. 5

Komunikaty Komunikaty protokołu zapytanie-odpowiedź 1. LoginRequestPacket Pakiet umożliwiający zalogowanie się użytkownikowi do serwera. Pakiet ten jest jedynym dopuszczalnym komunikatem, jaki może wysłać klient po nawiązaniu połączenia. RequestId Unikalny identyfikator komunikatu Login Login użytkownika Password String Hasło użytkownika "type : "login", "requestid" : 0, "login" : 77000000, "password" : "pass" 2. LoginResponsePacket Pakiet zwracający informacje o rezultacie logowania użytkownika. RequestId Identyfikator zawarty w pakiecie LoginRequestPacket Login Login użytkownika LoggedIn Bool Informacja o powodzeniu procesu logowania "type" : "login", "requestid" : 0, "login" : 77000000, "loggedin" : true 3. LogoutRequestPacket Pakiet zawierający żądanie wylogowania użytkownika. Pakiet ten powinien być wysłany przed rozłączeniem się sesji użytkownika. Serwer po otrzymaniu pakietu w odpowiedzi zrywa połączenie bez odesłania potwierdzenia do użytkownika. "type" : "logout" 6

4. HeartBeatRequestPacket Pakiet utrzymujący połączenie z serwerem. Wymagane wysyłanie pakietu co 30 sekund. Jeżeli użytkownik nie wyśle komunikatu w przeciągu 60 sekund od ostatniego, połączenie zostanie zerwane natychmiast. RequestId Unikalny identyfikator komunikatu "type" : "heartbeat", "requestid" : 1 5. HeartBeatRsponsePacket Pakiet potwierdzający otrzymanie komunikatu HeartBeatRequestPacket. RequestId Identyfikator zawarty w pakiecie HeartBeatRequestPacket "type" : "heartbeat", "requestid" : 1 6. CandleRequestPacket Pakiet umożliwiający pobranie historycznych danych rynkowych w postaci świec japońskich. RequestId Unikalny identyfikator komunikatu FromTime Data początkowa okresu, dla którego pobierane są dane rynkowe ToTime Data końcowa okresu, dla którego pobierane są dane rynkowe Symbol String Symbol instrumentu, dla którego pobierane są dane rynkowe Period CandlePeriod Identyfikator interwału, dla którego pobierane są dane rynkowe (CandlePeriod) "type" : "candles", "requestid" : 0, "fromtime" : "2014-01-27T08:00:00", "totime" : "2014-01-27T12:00:00", "symbol" : "EURUSD", "period" : 240 7

7. CandleResponsePacket Pakiet zwracający informacje na zapytanie zawarte w komunikacie CandleRequestPacket. RequestId Identyfikator zawarty w pakiecie CandleRequestPacket Status Bool Informacja o sukcesie realizacji zapytania ErrorCode Kod błędu (APIErrorCode) FromTime Date Data początkowa okresu, dla którego pobierane są dane rynkowe ToTime Date Data końcowa okresu, dla którego pobierane są dane rynkowe Symbol String Symbol instrumentu, dla którego pobierane są dane rynkowe Candles Candle[] Tablica struktur typu Candle Period Identyfikator interwału, dla którego pobierane są dane rynkowe (CandlePeriod) Przykład "type" : "candles", "requestid" : 0, "status" : true, "ec" : 0, "fromtime" : "2014-01-27T08:00:00", "totime" : "2014-01-27T12:00:00", "symbol" : "EURUSD", "candles" : [ "o" : 1.23455, "h" : 1.24756, "l" : 1.23331, "c" : 1.23421, "vol" : 23, "time" : "2014-01-27T08:00:00", "o" : 1.23421, "h" : 1.24834, "l" : 1.23223, "c" : 1.23886, "vol" : 45, "time" : "2014-01-27T12:00:00" ], "period" : 240 8

Candle Struktura zawierająca dane o pojedynczej świecy japońskiej. Open Cena otwarcia Close Cena zamknięcia Low Najniższa wartość w danym okresie High Najwyższa wartość w danym okresie Volume Wysokość wolumenu Time Czas od którego konstruowana jest świeca japońska "o" : 1.23455, "h" : 1.24756, "l" : 1.23331, "c" : 1.23421, "vol" : 23, "time" : ":"2014-01-27T11:24:00" 8. InstrumentSettingsRequestPacket Pakiet reprezentujący zapytanie o ustawienia wszystkich instrumentów. RequestId Unikalny identyfikator komunikatu "type" : "instrsettings", "requestid" : 0 9

9. InstrumentSettingsResponsePacket Pakiet zwracający informację o ustawieniach wszystkich instrumentów. RequestId Identyfikator zawarty w pakiecie InstrumentSettingsRequestPacket Status Bool Informacja o sukcesie realizacji zapytania ErrorCode Kod błędu (APIErrorCode) InstrumentSettings InstrumentSettings[] Tablica struktur typu InstrumentSettings "type" : "instrsettings", "requestid" : 0, "status" : true, "ec" : 0, "settings" : [ "name" : "EURUSD", "digits" : 5, "csize" : 100000, "profitcalcmode" : 0, "margincalcmode" : 0, "marginhedged" : 50000, "margindivider" : 1, "swaptype" : 0, "swaplong" : -2.692, "swapshort" : 3.3371, "trademode" : 2, "currency" : "EUR", "bid" : 1.36871, "ask" : 1.36874, "low" : 1.36748, "high" : 58.21452, "time" : "2014-01-27T11:24:41", "name" : "EURGBP", "digits" : 5, "csize" : 100000, "profitcalcmode" : 0, "margincalcmode" : 0, "marginhedged" : 50000, "margindivider" : 1, "swaptype" : 0, "swaplong" : -5.1779, "swapshort" : 3.9943, "trademode" : 2, "currency" : "EUR", "bid" : 0.82692, "ask" : 0.82694, "low" : 0.82664, "high" : 0.83058, "time" : "2014-01-27T11:24:41" ] 10

InstrumentSettings Obiekt zawierający dane o ustawieniach pojedynczego instrumentu. Name String Nazwa instrumentu Digits Liczba cyfr w rozwinięciu dziesiętnym ceny ContractSize Liczba jednostek instrumentu dla 1 lota ProfitCalcMode Kod sposobu w jaki serwer oblicza wynik z transakcji na danym instrumencie (ProfitCalcMode) MarginCalcMode Kod sposobu w jaki serwer oblicza Wymagany Depozyt Zabezpieczający dla transakcji na danym instrumencie (MarginCalcMode) MarginHedged Procent wartości nominalnej każdej z przeciwstawnych transakcji zablokowany na depozyt zabezpieczający. MarginDivider Współczynnik ilorazowy Wymaganego Depozytu Zabezpieczającego SwapType Kod sposobu w jaki serwer nalicza koszt codziennego finansowania pozycji (SwapType) SwapLong Punkty swap dla pozycji długiej na danym instrumencie dla 1 lota SwapShort Punkty swap dla pozycji krótkiej na danym instrumencie dla 1 lota TradeMode Kod zakresu handlu jaki jest możliwy dla danego instrumentu (SwapType) Currency String Waluta bazowa danego instrumentu Bid Aktualna cena bid Ask Aktualna cena ask Low Najniższa cena z dania ostatniej aktualizacji ustawień High Najwyższa cena z dania ostatniej aktualizacji ustawień Time Ostatnia aktualizacja ustawień "name" : "EURUSD", "digits" : 5, "csize" : 100000, "profitcalcmode" : 0, "margincalcmode" : 0, "marginhedged" : 50000, "margindivider" : 1, "swaptype" : 0, "swaplong" : -2.692, "swapshort" : 3.3371, "trademode" : 2, "currency" : "EUR", "bid" : 1.36871, "ask" : 1.36874, "low" : 1.36748, "high" : 58.21452, "time" : "2014-01-27T11:24:41" 11

10. MarginLevelRequestPacket Pakiet reprezentujący zapytanie o najnowsze szczegóły salda rachunku zalogowanego użytkownika. RequestId Unikalny identyfikator komunikatu "type" : "marginlevel", "requestid" : 0 11. MarginLevelResponsePacket Pakiet zwracający najnowsze szczegóły salda rachunku użytkownika. RequestId Identyfikator zawarty w pakiecie MarginLevelRequestPacket Status Bool Informacja o sukcesie realizacji zapytania ErrorCode Kod błędu (APIErrorCode) MarginLevel MarginLevel Struktura zawierająca szczegóły salda rachunku "type" : "marginlevel", "requestid" : 0, "status" : true, "ec" : 0, "marginlevel" : "login" : 77000000, "balance" : 24641.86, "equity" : 24630.99, "freemargin" : 24209.94, "leveltype" : 0, "margin" : 421.6, "level" : 5849.83 12

MarginLevel Struktura zawierająca bieżące podsumowanie rachunku zalogowanego użytkownika. Login Login użytkownika Balance Saldo Rachunku Equity Saldo Rejestru Operacyjnego FreeMargin Wolne Środki Pieniężne LevelType Informacje o Wymaganym Depozycie Zabezpieczającym (Meta4MarginLevelType) Margin Wymagany Depozyt Zabezpieczający Level Poziom Zabezpieczenia "login" : 77000000, "balance" : 24641.86, "equity" : 24630.99, "freemargin" : 24209.94, "leveltype" : 0, "margin" : 421.6, "level" : 5849.83 12. TradeTransRequestPacket Pakiet reprezentujący żądanie zawarcia transakcji. RequestId Unikalny identyfikator komunikatu TradeCommand Informacja o typie zlecenia (TradeCommand) TransactionType Akcja dokonanej na zadanym zleceniu/transakcji. (TransactionType) Price Cena zlecenia/transakcji StopLoss Poziom zlecenia obronnego Stop Loss TakeProfit Poziom zlecenia obronnego Take Profit Symbol String Symbol instrumentu Volume Wolumen transakcji w lotach Order Identyfikator transakcji Comment string Komentarz Expiration Data wygasania zlecania (tylko oczekujące) "type" : "tradetransaction", "requestid" : 0, "tradecommand" : 1, "transactiontype" : 2, "price" : 0, "takeprofit" : 0, "stoploss" : 0, "symbol" : "EURUSD", "volume" : 0.2, "order" : 500, "comment" : "", "expiration" : "1970-01-01T00:00:00" 13

13. TradeTransResponsePacket Pakiet zwracający informację o rezultacie zawarcia transakcji. RequestId Identyfikator zawarty w pakiecie TradeTransRequestPacket Status Bool Informacja o sukcesie realizacji zapytania ErrorCode Kod błędu (APIErrorCode) Order Identyfikator transakcji TradeEc Kod błędu zawarcia transakcji (TradeErrorCode) "type" : "tradetransaction", "requestid" : 0, "status" : true, "ec" : 0, "order" : 500, "tradeec" : 0 14. ClosedTradesRequestPacket Pakiet reprezentujący żądanie o kolekcję zamkniętych transakcji. RequestId Unikalny identyfikator komunikatu DateFrom Data początkowa okresu, dla którego pobierane są zamknięte transakcje DateTo Data końcowa okresu, dla którego pobierane są transakcje "type" : "closedtrades", "requestid" : 0, "datefrom" : 2014-01-28T00:00:00, "dateto" : 2014-01-28T20:00:00 15. ClosedTradesResponsePacket Pakiet zwracający kolekcję zamkniętych transakcji. RequestId Identyfikator zawarty w pakiecie ClosedTradesRequestPacket Status Bool Informacja o sukcesie realizacji zapytania ErrorCode Kod błędu (APIErrorCode) Trades TradeRecord[] Tablica zamkniętych transakcji DateFrom Data początkowa okresu, dla którego pobierane są zamknięte transakcje DateTo Data końcowa okresu, dla którego pobierane są transakcje 14

"type" : "closedtrades", "requestid" : 0, "status" : true, "ec" : 0, "trades" : [ "login" : 77000000, "order" : 81210, "tradecommand" : 1, "symbol" : "AUDCAD", "volume" : 0.001, "profit" : 5.02, "swaps" : 0, "commission" : 5.02, "stoploss" : 0, "takeprofit" : 0, "openprice" : 0.96641, "opentime" : "2014-01-27T16:04:32", "closeprice" : 0.96623, "closetime" : "2014-01-28T11:25:43", "closed" : false, "digits" : 5, "comment" : "", "expiration" : "1970-01-01T00:00:00", "commissionagent" : 0, "login" : 77000000, "order" : 81211, "tradecommand" : 0, "symbol" : "EURUSD", "volume" : 0.001, "profit" : 5.54, "swaps" : 0, "commission" : 5.54, "stoploss" : 0, "takeprofit" : 0, "openprice" : 1.36602, "opentime" : "2014-01-27T16:04:42", "closeprice" : 1.3662, "closetime" : 2014-01-28T14:34:49", "closed" : false, "digits" : 5, "comment" : "", "expiration" : "1970-01-01T00:00:00", "commissionagent" : 0 ], "datefrom" : 2014-01-28T00:00:00, "dateto" : 2014-01-28T20:00:00 15

16. TradesInfoRequestPacket Pakiet reprezentujący żądanie o kolekcję otwartych transakcji oraz zleceń oczekujących. RequestId Unikalny identyfikator komunikatu "type" : "tradesinfo", "requestid" : 0 17. TradesInfoResponsePacket Pakiet zwracający kolekcję otwartych transakcji oraz zleceń oczekujących. RequestId Identyfikator zawarty w pakiecie ClosedTradesRequestPacket Status Bool Informacja o sukcesie realizacji zapytania ErrorCode Kod błędu (APIErrorCode) Trades TradeRecord[] Tablica otwartych transakcji oraz zleceń oczekujących "type" : " tradesinfo ", "requestid" : 0, "status" : true, "ec" : 0, "trades" : [ "login" : 77000000, "order" : 81210, "tradecommand" : 1, "symbol" : "AUDCAD", "volume" : 0.001, "profit" : 5.02, "swaps" : 0, "commission" : 5.02, "stoploss" : 0, "takeprofit" : 0, "openprice" : 0.96641, "opentime" : "2014-01-27T16:04:32", "closeprice" : 0.96623, "closetime" : "1970-01-01T00:00:00", "closed" : false, "digits" : 5, "comment" : "", "expiration" : "1970-01-01T00:00:00", "commissionagent" : 0, 16

] "login" : 77000000, "order" : 81211, "tradecommand" : 0, "symbol" : "EURUSD", "volume" : 0.001, "profit" : 5.54, "swaps" : 0, "commission" : 5.54, "stoploss" : 0, "takeprofit" : 0, "openprice" : 1.36602, "opentime" : "2014-01-27T16:04:42", "closeprice" : 1.3662, "closetime" : "1970-01-01T00:00:00", "closed" : false, "digits" : 5, "comment" : "", "expiration" : "1970-01-01T00:00:00", "commissionagent" : 0 TradeRecord Obiekt zawierający dane o transakcji. Login Login użytkownika Order Identyfikator transakcji TradeCommand Informacja o typie zlecenia (TradeCommand) Symbol String Symbol instrumentu Volume Wolumen transakcji w lotach Profit Wynik na transakcji Swaps Wynik finansowania pozycji Comission Wartość zapłaconej prowizji StopLoss Poziom zlecenia obronnego Stop Loss TakeProfit Poziom zlecenia obronnego Take Profit OpenPrice Cena otwarcia OpenTime Czas otwarcia transakcji ClosePrice Cena zamknięcia CloseTime Czas zamknięcia Closed Bool Czy transakcja została zamknięta Digits Liczba cyfr w rozwinięciu dziesiętnym ceny Comment String Komentarz do transakcji Expiration Data wygasania zlecania (tylko oczekujące) 17

"login" : 77000000, "order" : 81211, "tradecommand" : 0, "symbol" : "EURUSD", "volume" : 0.001, "profit" : 5.54, "swaps" : 0, "commission" : 5.54, "stoploss" : 0, "takeprofit" : 0, "openprice" : 1.36602, "opentime" : "2014-01-27T16:04:42", "closeprice" : 1.3662, "closetime" : "1970-01-01T00:00:00", "closed" : false, "digits" : 5, "comment" : "", "expiration" : "1970-01-01T00:00:00", "commissionagent" : 0 18. SessionScheduleRequestPacket Pakiet reprezentujący zapytanie o godziny handlu na żądanym instrumencie. RequestId Unikalny identyfikator komunikatu Symbol String Symbol instrumentu "type" : "sessionschedule", "requestid" : 0 "symbol" : "EURUSD" 19. SessionScheduleResponsePacket Pakiet zawierający informację o godzinach handlu na żądanym instrumencie. RequestId Identyfikator zawarty w pakiecie SessionScheduleRequestPacket Status Bool Informacja o sukcesie realizacji zapytania ErrorCode Kod błędu (APIErrorCode) DailySessions DailySession[] Tablica z obiektami opisującymi sesje w danym dniu 18

"type" : "sessionschedule", "requestid" : 0, "status" : true, "errorcode" : 0, "symbol" : "EURUSD", "dailysessions":[ "dayofweek":0, "tradingsessions" : [ "opentime" : "00:00:00", "closetime" : "1.00:00:00" ] "dayofweek":6, "tradingsessions" : [] ] DailySession Obiekt zawierający informację o sesjach notowań w trybie ciągłym w danym dniu 2. DayOfWeek Numer Typ wyliczeniowy kodujący dany dzień tygodnia. TradingSessions TradingSession[] Tablica obiektów opisujących sesję notowań "dayofweek":0, "tradingsessions" : [ "opentime" : "00:00:00", "closetime" : "22:00:00", "opentime" : "23:00:00", "closetime" : "1.00:00:00" ] TradingSession Obiekt reprezentujący pojedynczą sesje notowań w trybie ciągłym, składający się z godziny rozpoczęcia sesji i godziny zakończenia sesji. Wszystkie godziny podane są w czasie środkowoeuropejskim (UTC+01:00 zima/utc+2 - lato). OpenTime Godzina rozpoczęcia handlu w sesji CloseTime Godzina zakończenia handlu w sesji 2 Należy pamiętać o tym, iż dla różnych instrumentów obiekt DailySession może zawierać inne sesje. 19

"opentime" : "00:00:00" "closetime" : "23:00:00" Komunikaty protokołu strumieniowego 1. TickPacket Pakiet zawierający dane o notowaniach instrumentów. Ticks Tick[] Tablica z kwotowaniami instrumentów "type": "ticks", "ticks" : [ "symbol":"eurusd", "bid":1.36666, "ask":1.36666, "time":"2014-01-28t14:35:05", "rate": "symbol":"eurusd", "depositccy":"pln", "bid":306511, "ask":306677, "symbol":"usdsek", "bid":6.44777, "ask":6.4491,"time":"2014-01-28t14:35:05", "rate": "symbol":"usdsek", "depositccy":"pln", "bid":47538.92157987958, "ask":47553.45707152937 ] 20

Tick Symbol String Symbol instrumentu Bid Cena bid Ask Cena ask Time Data notowania Rate Obiekt zawierający dane o kursie konwersji na walutę ConversionRate depozytową "symbol":"eurusd", "bid":1.36666, "ask":1.36666, "time":"2014-01-28t14:35:05", "rate": "symbol":"eurusd", "depositccy":"pln", "bid":306511, "ask":306677 ConversionRate Symbol String Symbol instrumentu DepositCurrency String Waluta depozytowa Bid Cena sprzedaży Ask Cena kupna "symbol":"eurusd", "depositccy":"pln", "bid":306511, "ask":306677 21

2. MarginLevelPacket Pakiet zawierający informację z podsumowaniem rachunku użytkownika. MarginLevel MarginLevel Struktura zawierająca bieżące podsumowanie rachunku zalogowane użytkownika "type": "marginlevelnotify", "marginlevel" : "login": 77000000, "balance": 24641.86, "equity": 24630.99, "freemargin": 24209.94, "leveltype": 0, "margin": 421.6, "level": 5849.83 22

3. TradeUpdatePacket Pakiet zawierający informację o dokonanej operacji na transakcji. Trade TradeRecord Obiekt zawierający informację o aktualizowanej transakcji Action "type" : "tradeupdate", "trade" : "login" : 77000000, "order" : 81210, "tradecommand" : 1, "symbol" : "AUDCAD", "volume" : 0, "profit" : -382.64, "swaps" : -2.46, "commission" : 2.42," stoploss" : 0.9805, "takeprofit" : 0, "openprice" : 0.96641, "opentime" : "2014-01-27T16:04:32", "closeprice" : 0.98029, "closetime" : "1970-01-01T00:00:00", "closed" : false, "digits" : 5, "comment" : "", "expiration" : "1970-01-01T00:00:00", "commissionagent" : 0, "action" : 2 Typ operacji wykonanej na aktualizowanej transakcji (Błąd! Nie można odnaleźć źródła odwołania.) 23

Typy wyliczeniowe 1. CandlePeriod Kod interwału z którego brane są dane tickowe używane do konstrukcji świecy japońskiej. Występowanie: CandleRequestPacket, CandleResponsePacket Wartość Opis 1 1 minuta 5 5 minut 15 15 minut 30 30 minut 60 60 minut (1 godzina) 240 240 minut (4 godziny) 1440 1440 minut (1 dzień) 10080 10080 minut (1 tydzień) 43200 43200 minut (30 dni) 2. APIErrorCode Kod rezultatu zwracanego przez serwer w odpowiedzi na pakiet typu request. Występowanie: wszystkie pakiety typu response. Wartość Opis 0 OK 1 Błąd serwera 2 Niezidentyfikowany błąd 3 Błąd transakcji 3. ProfitCalcMode Kod sposobu w jaki serwer oblicza wynik na transakcji. Występowanie: InstrumentSettings Wartość Opis 0 Forex (close_price open_price) * contract_size * lots 1 CDF (close_price open_price) * contract_size * lots 2 Futures (close_price open_price) * tick_price/tick_size * lots 4. MarginCalcMode Kod sposobu w jaki serwer wylicza Wymagany Depozyt Zabezpieczający (Margin) dla danego instrumentu. Występowanie: InstrumentSettings Wartość Opis 0 Forex lots*contract_size*leverage*margin_divider 1 CFD lots*contract_size*market_price*margin_divider 2 Futures lots/margin_divider 3 CFD-index lots*contract_size*market_price/margin_divider*(tick_price-tick_size) 4 CFD-leverage lots*contract_size*market_price/leverage*percentage/100 24

5. SwapType Kod sposobu w jaki serwer nalicza koszt codziennego finansowania pozycji Występowanie: InstrumentSettings Wartość Opis 0 Points Koszt finansowania wyrażony jest w punktach 1 Dollars Koszt finansowania wyrażony jest w dolarach 2 Interest Koszt finansowania wyrażony jest za pomocą rocznej stopy procentowej naliczanej dziennie 3 Margin Koszt finansowania wyrażony jest w walucie, w której obliczany jest Currency Wymagany Depozyt Zabezpieczający (Margin) 6. TradeMode Kod zakresu handlu jaki jest możliwy dla danego instrumentu. Występowanie: InstrumentSettings Wartość Opis 0 No Brak możliwości handlu 1 Close Tylko zamykanie otwartych transakcji 2 Full Brak ograniczeń handlu 7. Meta4MarginLevelType Kod dodatkowej informacji o Poziomie Zabezpieczenia (Margin Level). Występowanie: MarginLevel Wartość Opis 0 OK Poziom Zabezpieczenia powyżej 100% 1 MarginCall Poziom Zabezpieczenia znajduje się między 80% a 100% 2 StopOut Nastąpiło automatyczne zamknięcie najbardziej stratnej pozycji 8. TradeCommand Kod informujący o typie zlecenia, które zostało złożone. Występowanie: TradeTransRequestPacket, Wartość Opis 0 Buy 1 Sell 2 Buy limit 3 Sell limit 4 Buy stop 5 Sell stop 6 Balance 7 Credit 25

9. TransactionType Kod informujący o akcji dokonanej na zadanym zleceniu/transakcji. Występowanie: TradeTransRequestPacket Wartość Opis 0 Złóż zlecenie 2 Zamknij otwartą transakcję 3 Zmodyfikuj zlecenie/transakcję 4 Usuń zlecenie oczekujące 10. TradeErrorCode Kod rezultatu zwracanego przez serwer w odpowiedzi na próbę złożenie zlecenia. Występowanie: TradeTransResponsePacket Wartość Opis 0 OK 1 OK brak operacji 2 Ogólny błąd 3 Nieprawidłowe dane 4 Techniczny problem serwera 5 Stara wersja terminala klienckiego 6 Brak połączenia 7 Brak wymaganych uprawnień 8 Zbyt częsty dostęp do serwera 9 Nieprawidłowa operacja 10 Zabezpieczenie początku sesji 64 Konto zablokowane 65 Nieprawidłowe informacje o koncie 128 Upłynął limit czasu zawarcia transakcji 129 Zlecenie posiada błędne ceny 130 Nieprawidłowe poziomy StopLoss, Take Profit 131 Nieprawidłowy wolumen zlecenia 132 Rynek zamknięty 133 Zawieranie transakcji jest obecnie wyłączone 134 Niewystarczająca ilość pieniędzy do zrealizowania transakcji 135 Cena uległa zmianie 136 Brak notowań 137 Broker jest zajęty 138 Dozwolone tylko zlecenie kupna 139 Za dużo żądań od jednego klienta 140 Transakcja zaakceptowana przez serwer i umieszczona w kolejce 141 Transakcja anulowana przez klienta 142 Odmowa modyfikacji zlecenia 143 Odmowa użycia daty ważności 144 Zbyt wiele zleceń 145 Hedge jest zabroniony 26