Metatrader 4 |
Metatrader 5 |
Architektura
- Jeden Trade Server - serwer handlowo rozliczeniowy
- Wiele Access Servers - dowolna liczba serwerów dostępowych - dla połączeń klientów
- Watch Dog Server - serwer zapasowy, mający umożliwiać przepięcie obsługi w razie awarii Trade Server - w działanie tego rozwiązania zbytnio nie wierzę - to nie jest active active a powinno być.
|
- Jeden Main Trade Server
- Możliwa instalacja wielu Wspomagających Trade Servers - w ten sposób różne grupy klientów mogą być rozliczane na oddzielnych maszynach co może rozwiązać problemy wydajnościowe.
- Jeden History Server - przechowuje historię kwotowań, dodatkowo obsługuje zlecenia wykonywane przez gatewaye.
Mankamentem jest że wszystkie zlecenia gatewayowe przechodzą przez ten server co pozornie kłóci się z dzieleniem trade serwerów. Jednakże najwięcej obciążenia generuje wyliczanie margin level i sprawdzanie zabezpieczenia klientów (margin).
- Dowolna liczba Backup Server’s - mają w założeniu przejąć działanie Trade server’a w razie awarii
|
Dostęp SQL
- Metaquotes udostępnia service który eksportuje dane do bazy danych ale jedynym targetem może być MYSQL.
- Dodatkowo brakuje niektórych danych - “ustawienia symboli”. Daily statements.
Można napisasać własną aplikację do eksportu tych danych.
|
- Backup server ma opcję eksporotwania danych do bazy.
- Dostęnych jest kilka: MySQl, Postgress, Microsoft MSsql, Oracle, Firebird
|
Daily statements.
Są zapisane jedynie w plikach wysyłanych do klientów.
Aby je uzyskać trzeba albo robić codzienne snapshoty stanu albo parsować te pliki. |
Server przechowuje dane daily statements. Oraz rozszerzone dane monthly statements. Dodatkowo ekpsortuje je do bazydanych.
|
Aplikacje dla klientów
- Terminal win32 windowsowy
- Metaquotes wspomaga uruchamianie terminala na macach oraz linuksach ale nie są to aplikacje natywne
- Brak dedykowanego webtradera - można pisać własny
|
- Terminal win64 windowsowy
- Metaquotes wspomaga uruchamianie terminala na macach oraz linuksach ale nie są to aplikacje natywne
- Są aplikacje mobile dla androida oraz iPhone
- Jest dedykowany webtrader
|
Api dostępowe tylko c/cpp
- Datafeed api - dostarcznie kwotowań
- można albo kożystaćz api
- albo podpinać się pod gotowy protokół unifeeder
- Server api - bardzo szerokie możliwości
- odpytywnie modyfikacje danych na serwerze, np. ustawienia kont
- przechwytywanie i modyfikowanie zdarzeń, np zmiana wyliczania profit, zmiana obsługi take profit
- dodanie zleceń w imieniu klienta - konieczne do własnego webtradera - funkcja RequestAdd
- przechwytywanie akcpetowania zleceń wstrzymywanie i przekazywanie na zewnątrz - gateway
- brakuje zdarzeń margin call - zdarzenia stop out można wychwycić z wykonania stopoutów
- Awaria w serwer api wykłada serwer
- Manager api -
- umożliwia zrobienie własnego manageara - to trochę mija się z celem jako że obecnie zlecenia i tak wykonuje się automatycznie.
- Można użyć do eksportu danych tak aby ograniczyć użycie server api -
rozdzielenie prac na różne maszyny i dodatkowo
awaria w manager api nie wykłada serwera
- Api zawiera event margin call - można go użyć do wysyłania emaili - w serwer api trzeba by liczyć marginy samemu
- Report api - rozszerzanie raportów w aplikacji managera - szczerze lepiej raporty robić z bazy danych - chyba żeby dla jakichś white labes ale też lepiej zrobić jakąś stronę www z raportami - nie będzie obciążać serwera a tak jak ktoś zapyta o dane z ostatnich 5 lat to na serwerze może zabraknąć pamięci
|
- Gateway Api - umożliwia
- dostarczanie kwotowań do serwera
- przekazywanie zleceń na zewtnąrz
- ładnie rozbudowany routing zleceń
- Gateway api działa na zewnątrz serwera - czyli błąd nie zatrzyma całego servera
- Dostępne w cpp oraz c#
- Server Api
podobnie jak w mt4
- oddzielne pluginy działają na serverach handlowych i historycznych
- modyfikacje historycznych świeczek możliwe tylko w pluginach na history server
- tylko cpp
- Manager Api
- odpowiednik manager api z mt4
- Dostępne w cpp oraz c#
- Report Api - bezsens trochę jak mt4
|
Obsługa zleceń byty - encje
- Request - żądnie klienta otwarcia bądź zamknięcia zlecenia - bardzo ulotne i po wykonaniu nie ma aczkolwiek konieczne przy implementacji webtradera bądź gatewaya
- Order - pełni funkję zarówno zlecenia, transakcji jak i otwartej pozycji
- Pending order - zlecenie oczukujące
- market order - natychmiastowe po cenie rynkowej
- open order - powstały z market albo pending order - bieżąca pozycja u klienta - możę być ich kilka wtedy składają się na sumaryczną pozycję
- close order - zamknięte zlecenie z rozliczonym już zyskiem/stratą
|
- Request - żądanie klienta nowego zlecenia lub modyfikacji
- Order - zlecenie które czeka w książce na wykonanie
- może wymagać zabezpieczenia z balance konta
- Deal - transakcja wykonana w imieniu klienta na bazie jego Order i zmieniająca pozycję klienta
- otwiera, zwiększa, zmniejsza
- Position - bieżąca aktywna pozycja
- wymaga zabezpieczenia z balance konta
- generuje zysk lub stratę zależnie o bieżących kwotowań
|
Rodzaje zleceń
- Market Order
- Pending BUY_LIMIT SELL_LIMIT
- Pending BUY_STOP SELL_STOP
- Take profit / stopp loss - ustawiane na open order
|
- Market Order
- Pending BUY_LIMIT SELL_LIMIT
- Pending BUY_STOP SELL_STOP
- Take profit / stopp loss - ustawiane na open order
BUY_STOP_LIMIT SELL_STOP_LIMIT
|
Comments
Post a Comment