mforex API dokumentacja protokołu WebSockets wersja 0.9.7

Podobne dokumenty
mforex API dokumentacja protokołu WebSockets wersja 0.9.6

mforex API dokumentacja protokołu binarnego wersja 0.9.7

Instrukcja użytkownika mforex WEB

Instrukcja użytkownika

Pierwsze kroki w mforex Trader Instrukcja

Instrukcja użytkownika Platformy BRE WebTrader

mforex WEB Instrukcja obsługi

Zarządzanie Kapitałem

Krok 4: Zamykamy pozycję

SUPERMAKLER FX INSTRUKCJA OBSŁUGI TERMINALA TRANSAKCYJNEGO

API transakcyjne BitMarket.pl

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

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

Rynek akcji a rynek Forex w Polsce

str.1 Informacje ogólne

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

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

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

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

Podręcznik do platformy MetaTrader dla STP NDD

INSTRUKCJA APLIKACJI META TRADER 4 W SYSTEMIE ANDROID

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

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

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

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

Cena Bid, Ask i spread

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

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

DOKUMENTACJA INTERFEJSU API - HTTPS

Krok 5: ZAMYKANIE ZLECENIA

HANDEL OPCJAMI W PLATFORMIE DEALBOOK 360

Opis Experta Na Andrzeja by MMD

Instrukcja użytkownika Smart Orders

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

SUPERMAKLER FX MODUŁ RAPORTÓW

Pips, punkt, spread, kursy bid i ask

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

Pierwsze kroki na rynku Forex.

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

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

Instrukcja użytkownika mforex Android

1. Rynek Forex. a) Opis rynku

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

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

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

Instrukcja Noble Markets Webtrader MT4

Informacje o Rynkach FX

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

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

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

Instrukcja użytkownika Platformy Walutowej

Pips, punkt, spread, kursy bid i ask

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

Instrukcja użytkownika Platforma Walutowa

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

DOKUMENTACJA TECHNICZNA SMS API MT

Zarządzanie Kapitałem

Szczegóły Szybkiego Polecenia Transakcji

Rynek Finansowy Platforma Transakcyjna XTB-Trader

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

PRZEWODNIK. Wymiana walut w kantorze internetowym topfx

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

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

Instrukcja użytkownika

Dokumentacja API Stacja z Paczką ver. 2.14

Obsługa platformy xstation

Spis treści. Wstęp 3. Logowanie 4. Ekran główny 5. Dodawanie instrumentów i wykresów 6. Składanie zleceń w panelu One Click 7. Zlecenia oczekujące 8

Tutorial LMAX Exchange Mobile

Podręcznik do platformy xtab

Instrukcja użytkownika

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

Instrukcja użytkownika

Platforma Transakcyjna X-Trade obsługa, analiza, transakcje

Definiowanie filtrów IP

System transakcyjny NS Forex Instrukcja obsługi

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

Instrukcja użytkownika

Kurs walut. Specyfikacja projektu. Marek Zając

UMOWA O SYSTEMIE KWOTOWANIA I PROCEDURACH TRANSAKCJI

Baza numerów Wersja 1.1

Instrukcja obsługi NM Mobile na iphone

INSTRUKCJA OBŁUGI APLIKACJI ASSECO MAA

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

OPIEKUN DORADCY: KONTO FIRMY DODAWANIE KLIENTÓW

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

Podstawy przedsiębiorczości kolokwium zakres materiału

Instrukcja użytkownika

Komunikat nr 14/DM/DRPiKO/2014

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

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

System transakcyjny oparty na średnich ruchomych. ś h = gdzie, C cena danego okresu, n liczba okresów uwzględnianych przy kalkulacji.

SAPRI TRADE składanie zleceń

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

etrader Pekao Podręcznik użytkownika Jak złożyć zlecenie giełdowe?

Instrukcja Użytkownika Systemu Zarządzania Tożsamością Wersja. 1.0

Funkcje dodatkowe. Wersja 1.2.1

Instrukcja użytkownika Platforma Walutowa

Platforma Transakcyjna MetaTrader

POLITYKA REALIZACJI ZLECEŃ (OTC)

Transkrypt:

mforex API dokumentacja protokołu WebSockets wersja 0.9.7

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 22 TYPY WYLICZENIOWE 25 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. Aby uniknąć błędów podczas serializacji/deserializacji pakietów protokół jest wersjonowany. Więcej informacji o wersjonowaniu znajduje się opisie komunikatu LoginRequestPacket. Jeżeli klient wysyłać będzie nieobsługiwane komunikaty zostanie automatycznie rozłączony. 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 wyliczeniowym 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 wyliczeniowy LoginStatusw polu o tej samej nazwie. 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. Wyjątkiem jest komunikat TickPacket, który wymaga wcześniejszej rejestracji przy użyciu komunikatu TickRegistrationRequestPacket. 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 MajorProtocolVersion Znaczący numer wersji protokołu MinorProtocolVersion Nieznaczący numer wersji protokołu "type : "login", "requestid" : 0, "login" : 77000000, "password" : "pass" "majorprotocolversion" : 0, "minorprotocolversion" : 97, 2. LoginResponsePacket Pakiet zwracający informacje o rezultacie logowania użytkownika. RequestId Identyfikator zawarty w pakiecie LoginRequestPacket Login Login użytkownika LoginStatus LoginStatus Kod rezultatu procesu logowania (LoginStatus) "type" : "login", "requestid" : 0, "login" : 77000000, "loginstatus" : 0 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. 6

"type" : "logout" 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. AccountSettingsRequestPacket Pakiet reprezentujący zapytanie o ustawienia konta użytkowania. RequestId Unikalny identyfikator komunikatu "type" : "accountsettings", "requestid" : 0 9

9. AccountSettingsResponsePacket Pakiet zwracający informację o ustawieniach kona użytkownika. RequestId Identyfikator zawarty w pakiecie AccountSettingsRequestPacket Status Bool Informacja o sukcesie realizacji zapytania ErrorCode APIErrorCode AccountSettings AccountSettings Struktura typu AccountSettings "type" : "accountsettings", "requestid" : 0, "status" : true, "ec" : 0, "accountsettings" : "name" : "Jan Kowalski", "leverage" : 100, "interestrate" : 0, "MarginCall" : 0, "MarginStopOut" : 0, "MarginMode" : 3, AccountSettings Obiekt zawierający dane o ustawieniach rachunku użytkownika. Name String Nazwa użytkownika Leverage Int32 Domyślna dźwignia na rachunku InterestRate Stopa procentowa od której naliczają się odsetki MarginCall Poziom aktywacji wezwania do dopłaty MarginStopOut Poziom aktywacji zlecenia stop-out MarginMode Kod sposobu obliczania Free Margin (MarginMode) MarginType Kod zdarzenia aktywującego Margin Call (MarginType) AccountType Kod typu konta (AccountType) "name" : "Jan Kowalski", "leverage" : 100, "interestrate" : 0, "margincall" : 1, "marginstopout" : 0.8, "marginmode" : 3, "margintype" : 3, "accounttype" : 1 10

10. InstrumentSettingsRequestPacket Pakiet reprezentujący zapytanie o ustawienia wszystkich instrumentów. RequestId Unikalny identyfikator komunikatu "type" : "instrsettings", "requestid" : 0 11. 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[] "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", "lomin" : 0.1, "lotmax": 100, "Commission": 0.000045, "CommissionType": 0, "CommissionLots": 1 ] Tablica struktur typu InstrumentSettings 11

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 (TradeMode) 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ń LotMin Najmniejszy wolumen zlecenia LotMax Największy wolumen zlecenia LotStep Krok zmiany wielkości wolumenu zlecenia Commission Prowizja od transakcji walutowych CommissionType Kod sposobu pobierania prowizji (CommissionType) CommisstionLots Kod bazy do naliczania prowizji (CommissionLots) 12

"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", "lomin" : 0.1, "lotmax": 100, "Commission": 0.000045, "CommissionType": 0, "CommissionLots": 1 12. MarginLevelRequestPacket Pakiet reprezentujący zapytanie o najnowsze szczegóły salda rachunku zalogowanego użytkownika. RequestId Unikalny identyfikator komunikatu "type" : "marginlevel", "requestid" : 0 13. 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 13

"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 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 (MarginLevelType) 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 14. TickRegistrationRequestPacket Pakiet reprezentujący żądanie rejestracji/derejestracji na strumień kwotowań dla danego instrumentu. Pakiet rejestrujący można wysłać dowolną liczbę razy, jednak dla danego symbolu zostanie utworzony tylko jeden strumień danych. W dowolnym momencie można wyrejestrować się wysyłając pakiet z odpowiednią wartością pola RegistrationAction RequestId Unikalny identyfikator komunikatu Symbol String Nazwa interesującego nas instrumentu RegistrationAction Kod rezultatu procesu rejestracji/derejestracji 14

"type" : "tickregistration", "requestid" : 0, "registrationaction" : 1 15. TickRegistrationResponsePacket Pakiet zwracający informację o rezultacie próby rejestracji na dane tickowe. RequestId Identyfikator zawarty w pakiecie TickRegistrationRequestPacket Status Bool Informacja o sukcesie realizacji zapytania ErrorCode Kod błędu "type" : " tickregistration ", "requestid" : 0, "status" : true, "ec" : 0 16. 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" 15

17. 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 18. 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 19. 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 16

"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 20. TradesInfoRequestPacket Pakiet reprezentujący żądanie o kolekcję otwartych transakcji oraz zleceń oczekujących. 17

RequestId Unikalny identyfikator komunikatu "type" : "tradesinfo", "requestid" : 0 21. 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, 18

] "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) 19

"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 22. 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" 23. 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 20

"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. 21

"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 ] 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ą 22

"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 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 23

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 (TradeAction) 24

Typy wyliczeniowe 1. AccountType Kod rodzaju rachunku, który posiada inwestor. Występowanie: AccountSettings 0 Mini 1 Standard 2 VIP 2. APIErrorCode Kod rezultatu zwracanego przez serwer w odpowiedzi na pakiet typu request. Występowanie: pakiety typu response 0 OK 1 Błąd serwera 2 Niezidentyfikowany błąd 3 Błąd transakcji 3. CandlePeriod Kod interwału z którego brane są dane tickowe używane do konstrukcji świecy japońskiej. Występowanie: Candle, CandleRequestPacket 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) 4. CommissionLots Kod bazy służącej do naliczania prowizji. Występowanie: 25

InstrumentSettings 0 Od każdego lota 1 Od każdej transakcji 26

5. CommissionType Kod sposobu w jaki naliczana jest prowizja. Występowanie: 27

InstrumentSettings 0 Kwotowo 1 Jako pipsy 2 Procentowo 6. DayOfWeek Kod dni tygodnia Występowanie: DailySession 0 Niedziela 1 Poniedziałek 2 Wtorek 3 Środa 4 Czwartek 5 Piątek 6 Sobota 7. LoginStatus Kod rezultat rezultatu logowania. Nieudana autoryzacja może być spowodowana nieprawidłowym hasłem, brakiem praw dostępu do API bądź korzystaniem z nieaktualnej wersji protokołu. 0 OK 1 Nieprawidłowe hasło 2 Brak dostępu do API 3 Zła wersja protokołu 8. MarginCalcMode Kod sposobu w jaki serwer wylicza Wymagany Depozyt Zabezpieczający (Margin) dla danego instrumentu. Występowanie: 28

InstrumentSettings 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 29

9. MarginMode Kod sposobu w jaki serwer wylicza Wolne Środki Pieniężne (Free Margin) dla zalogowanego użytkownika. Domyślnie do wyliczania Free Maregin są tylko stratne transakcje Występowanie: AccountSettings 0 DontUse Nie uwzględniaj otwartych pozycji w obliczeniach 1 UseAll Uwzględniaj zarówno zysk jak i stratę 2 UseProfit Uwzględniaj tylko zyskowne transakcje 3 UseLoss Uwzględniaj tylko stratne transakcje 10. MarginType Kod typu zdarzenia aktywującego Margin Call. Występowanie: AccountSettings 0 Percent Wyrażenie Equity / Margin * 100 spadnie poniżej pewnego poziomu 1 Currency Euity spadnie kwotowo poniżej pewnego poziomu 11. MarginLevelType Kod dodatkowej informacji o Poziomie Zabezpieczenia (Margin Level). Występowanie: MarginLevel 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 12. ProfitCalcMode Kod sposobu w jaki serwer oblicza wynik na transakcji. Występowanie: 30

InstrumentSettings 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 13. RegistrationAction Kod stosowany do rejestrowania/wyrejestrowywania się z strumienia danych tickowych dla danego instrumentu. Występowanie: TickRegistrationRequestPacket 0 Unregister Wyrejestruj się z strumienia danych 1 Register Zarejestruj się na strumień danych 14. SwapType Kod sposobu w jaki serwer nalicza koszt codziennego finansowania pozycji Występowanie: 31

InstrumentSettings 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) 15. TradeAction Kod akcji, jaka została dokonana na transakcji Występowanie: TradeUpdatePacket 0 Otwarcie 1 Modyfikacja 2 Zamknięcie 16. TradeCommand Kod informujący o typie zlecenia, które zostało złożone. Występowanie: TradeRecord 0 Buy 1 Sell 2 Buy limit 3 Sell limit 4 Buy stop 5 Sell stop 6 Balance 7 Credit 32

17. TradeErrorCode Kod rezultatu zwracanego przez serwer w odpowiedzi na próbę złożenie zlecenia. Występowanie: TradeTransResponsePacket 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 18. TradeMode Kod zakresu handlu jaki jest możliwy dla danego instrumentu. Występowanie: 33

InstrumentSettings 0 No Brak możliwości handlu 1 Close Tylko zamykanie otwartych transakcji 2 Full Brak ograniczeń handlu 34

19. TransactionType Kod informujący o akcji dokonanej na zadanym zleceniu/transakcji. Występowanie: TradeTransRequestPacket 0 Złóż zlecenie 2 Zamknij otwartą transakcję 3 Zmodyfikuj zlecenie/transakcję 4 Usuń zlecenie oczekujące 35