Wednesday 6 December 2017

Forexconnect api download


Dostawcy technologii Chmura Wymagania implementacji stawek i informacji o koncie oraz możliwości wysyłania lub modyfikowania zamówień W celu bardziej technicznych zastosowań API oferujemy opcje na wyższy poziom technologii. Nasze interfejsy API dla dostawców technologii i chmury oferują architekturę ciągłą o małej przepustowości, bez minimum na koncie, pełną gamę zamówień handlowych oraz dostęp do historycznych danych forex i CFD. Forexconnect API Nasz ForexConnect jest najbardziej elastyczny API8212 używanym w NinjaTrader. ForexConnect jest zgodny z: Linux, Mac, iOS i Android. Kod na 30 różnych funkcjach i funkcjach Wykorzystanie niskopoziomowych struktur komunikacyjnych lub struktur tabel z obliczonymi polami Łączenie się z firmą MATLAB w celu uruchomienia zaawansowanej analizy danych o cenach Rozpoczęcie pracy Już posiadasz konto FXCM Pobierz aplikację Forexconnect SDK Konta FXCM, w tym konto bezpłatne ,8212no minimalne wymagane saldo IDE lub edytor tekstowy uruchamiający LUA (np. Visual Studio) Potrzebujesz więcej informacji Odwiedź stronę ForexConnect Wiki, aby przeczytać nasze przewodniki dla Javy. NET i C i zobacz przykłady skomplikowanych fragmentów kodu dla akcji takich jak Batch Commands i Contingency Groups. Chcąc stworzyć aplikację kliencką lub serwerową, Java jest skalowalnym, lekkim i solidnym interfejsem API oparta na specyfikacji FIX dla forex i dostosowana do handlu z FXCM. Kompatybilny z dowolnym systemem operacyjnym zgodnym z Java Lekki i oparty na wiadomościach FIX Możliwość uzyskania historycznych transakcji i stawek Pierwsze kroki Posiadanie konta FXCM Pobierz pakiet Java SDK Konta FXCM, w tym bezpłatne konto w praktyce8212no minimum wymaganego salda IDE (np. Netbeans, Eclipse) Wyświetl przykładowy kod i zapoznaj się z dokumentacją na stronie interfejsu Java API GifHand na stronie FXCMs. 1 VPS Free Hosting: utrzymanie równowagi w wysokości 5000 podstawowej waluty (lub 500k JPY, i 40k HKD) na koncie MT4, a VPS jest twój bez żadnych kosztów. (Na przykład, jeśli Twoje konto jest dolar australijski (AUD), to jest na koncie saldo 5000 AUD). Jeśli nie spełnisz tego wymogu pod koniec miesiąca, opłata w wysokości 30 podstawowych walut (lub 3k JPY i 240 HKD) może zostać obciążona z dowolnego konta (ów) FXCM, aby pokryć koszt VPS. Linki osób trzecich: linki do witryn firm zewnętrznych są udostępniane wyłącznie dla Twojej wygody i dla celów informacyjnych. Firma FXCM nie ponosi odpowiedzialności za dokładność, treść lub jakąkolwiek inną sprawę związaną z witryną zewnętrzną lub linki do kolejnych linków i nie ponosi żadnej odpowiedzialności za straty lub szkody wynikające z korzystania z tej lub innej zawartości. Takie witryny nie są pod naszą kontrolą i nie mogą przestrzegać tych samych zasad prywatności, bezpieczeństwa ani dostępności, co nasze. Prosimy o zapoznanie się z warunkami korzystania ze stron internetowych. Ostrzeżenie o ryzyku: nasza usługa obejmuje produkty, które są przedmiotem obrotu na depozycie zabezpieczającym i mogą ponieść straty przekraczające Twoje zdeponowane fundusze. Produkty mogą nie być odpowiednie dla wszystkich inwestorów. Proszę upewnić się, że w pełni rozumie panujące zagrożenia. Ostrzeżenie o wysokim ryzyku inwestycyjnym: transakcje walutowe i kontrakty walutowe o różnicach w marżach charakteryzują się wysokim poziomem ryzyka i mogą nie być odpowiednie dla wszystkich inwestorów. Istnieje prawdopodobieństwo, że można utrzymać stratę przekraczającą zgromadzone fundusze. Przed podjęciem decyzji o handlu produktami oferowanymi przez FXCM należy dokładnie rozważyć cele, sytuację finansową, potrzeby i poziom doświadczenia. Powinieneś być świadom wszystkich ryzyk związanych z obrotem na marżach. FXCM oferuje ogólne porady, które nie uwzględniają Twoich celów, sytuacji finansowej czy potrzeb. Treść niniejszej Witryny nie może być interpretowana jako osobista rada. Firma FXCM zaleca zasięgnąć porady odrębnego doradcy finansowego. Kliknij tutaj, aby przeczytać pełne ostrzeżenie o ryzyku. Forex Capital Markets Limited (FXCM LTD) jest spółką zależną działającą w ramach grupy spółek FXCM (łącznie z Grupą FXCM). Wszystkie odniesienia w tej witrynie do FXCM odnoszą się do Grupy FXCM. Firma Forex Capital Markets Limited jest upoważniona i regulowana w Wielkiej Brytanii przez Instytucję Postępowania Finansowego. Numer rejestracyjny 217689. Podatki: brytyjskie opodatkowanie działalności związanej z zawieraniem zakładów finansowych zależy od indywidualnych okoliczności i może ulec zmianie w przyszłości lub może różnić się w innych jurysdykcjach. Copyright copy 2017 Rynki kapitałowe Forex. Wszelkie prawa zastrzeżone. Northern amp Shell Building, ul. 10 Lower Thames, 8 Floor, London EC3R 6AD Firma zarejestrowana w Anglii, w Walii o numerze 04072877 z siedzibą, jak wyżej. Korzystamy z plików cookie, aby poprawić wydajność i funkcjonalność naszej witryny, co ostatecznie poprawia Twoje doświadczenie w przeglądarce. Poprzez kontynuowanie przeglądania tej strony zgadzasz się na nasze korzystanie z plików cookie. W dowolnym momencie możesz zmienić ustawienia plików cookie. Dowiedz się więcej Twoja przeglądarka jest nieaktualnaZapewnij się, że masz własną firmę maklerską Następnie żądasz najwyższego poziomu technologii z systemem FIX. VPS Free Hosting: Utrzymuj równowagę w wysokości 5000 podstawowej waluty (lub 500k JPY i 40k HKD) na koncie MT4, a VPS jest twój bez żadnych kosztów. (Na przykład, jeśli Twoje konto jest dolar australijski (AUD), to jest na koncie saldo 5000 AUD). Jeśli nie spełnisz tego wymogu pod koniec miesiąca, opłata w wysokości 30 podstawowych walut (lub 3k JPY i 240 HKD) może zostać obciążona z dowolnego konta (ów) FXCM, aby pokryć koszt VPS. Ostrzeżenie o ryzyku: nasza usługa obejmuje produkty, które są przedmiotem obrotu na depozycie zabezpieczającym i mogą ponieść straty przekraczające Twoje zdeponowane fundusze. Produkty mogą nie być odpowiednie dla wszystkich inwestorów. Proszę upewnić się, że w pełni rozumie panujące zagrożenia. Ostrzeżenie o wysokim ryzyku inwestycyjnym: transakcje walutowe i kontrakty walutowe o różnicach w marżach charakteryzują się wysokim poziomem ryzyka i mogą nie być odpowiednie dla wszystkich inwestorów. Istnieje prawdopodobieństwo, że można utrzymać stratę przekraczającą zgromadzone fundusze. Przed podjęciem decyzji o handlu produktami oferowanymi przez FXCM należy dokładnie rozważyć cele, sytuację finansową, potrzeby i poziom doświadczenia. Powinieneś być świadom wszystkich ryzyk związanych z obrotem na marżach. FXCM oferuje ogólne porady, które nie uwzględniają Twoich celów, sytuacji finansowej czy potrzeb. Treść niniejszej Witryny nie może być interpretowana jako osobista rada. Firma FXCM zaleca zasięgnąć porady odrębnego doradcy finansowego. Kliknij tutaj, aby przeczytać pełne ostrzeżenie o ryzyku. Forex Capital Markets Limited (FXCM LTD) jest spółką zależną działającą w ramach grupy spółek FXCM (łącznie z Grupą FXCM). Wszystkie odniesienia w tej witrynie do FXCM odnoszą się do Grupy FXCM. Firma Forex Capital Markets Limited jest upoważniona i regulowana w Wielkiej Brytanii przez Instytucję Postępowania Finansowego. Numer rejestracyjny 217689. Podatki: brytyjskie opodatkowanie działalności związanej z zawieraniem zakładów finansowych zależy od indywidualnych okoliczności i może ulec zmianie w przyszłości lub może różnić się w innych jurysdykcjach. Copyright copy 2017 Rynki kapitałowe Forex. Wszelkie prawa zastrzeżone. Northern amp Shell Building, ul. 10 Lower Thames, 8 Floor, London EC3R 6AD Firma zarejestrowana w Anglii, w Walii o numerze 04072877 z siedzibą, jak wyżej. Korzystamy z plików cookie, aby poprawić wydajność i funkcjonalność naszej witryny, co ostatecznie poprawia Twoje doświadczenie w przeglądarce. Poprzez kontynuowanie przeglądania tej strony zgadzasz się na nasze korzystanie z plików cookie. W dowolnym momencie możesz zmienić ustawienia plików cookie. Dowiedz się więcej Twoja przeglądarka jest przestarzała. API 27 lutego 2017 roku, 11:52, ramack lthidden email gt napisał: gt Jeden z członków odpowiedział: gt quotMożesz pracować z Matlab przez ForeXConnect z dowolnego języka, do którego istnieje API gt Matlab. Oto artykuł, jak pracować z gt C: codeprojectArticles. LAB-Engine-API gt Mam nadzieję, że pomogłoby to gt gt Nigdy nie używałem interfejsów API, straciłem i nie jestem pewien, od czego zacząć, z wyjątkiem gt z podstawami i opierać się na nim. Więc dlaczego postawiłem pytanie gt o dobrym miejscu wyjścia z interfejsem Octave API. W tym kontekście, quotOctave APIquot oznacza niektóre funkcje, które zapewnia ForeXConnect, które można wywoływać w języku Octave. Ta osoba dała wam niepowiązaną odpowiedź, jak zadzwonić do C z Matlaba i nie jest całkowicie niezwiązana z Twoim problemem. Kiedy ludzie mówią quotAPIquot, zapomniałem powiedzieć, że mają na myśli również adresy URL do manipulowania danymi, np. Web API: Na przykład następujący adres URL bitbucket daje ci trochę danych o repozytorium: chodzi o to, że ten URL i różne metody HTTP ( np. GET, POST) pozwoli Ci manipulować tymi danymi. Dane, które widzisz powyżej, są przekazywane jako JSON. To, czego potrzebujesz, to znaleźć webowy interfejs API dla tej witryny, która cię interesuje, a następnie możesz użyć poleceń urlread i urlread w Oktawach do manipulowania danymi za pomocą tych adresów URL. Otwórz ten wpis w widoku gwintowanym Zgłoś treść jako nieodpowiednią odpowiedź: API Octave 27 lutego 2017 12:10, Jordi Gutirrez Hermoso lthidden email gt napisał: gt 27 lutego 2017 11:52, ramack lthidden email gt napisał: gtgt Jeden z członków odpowiedział: gtgt quotYou można pracować z programem Matlab przez ForeXConnect z dowolnego języka, do którego istnieje plik gti-matlab api. Oto artykuł, jak pracować z gtgt C: codeprojectArticles. LAB-Engine-API gtgt Mam nadzieję, że pomogłoby to gtgt gtgt Nigdy nie używałem API, zgubiłem się i nie jestem pewien, od czego zacząć, z wyjątkiem gtgt z podstawami i opierać się na nim. Właśnie dlatego postawiłem pytanie o dobry początek z interfejsem Octave API. gt gt W tym dokumencie, quotOctave APIquot oznacza niektóre funkcje, które zapewnia ForeXConnect gt, które mogą być wywoływane w języku Octave. Ta osoba dała ci niezwiązaną odpowiedź na pytanie, jak wywołać C z Matlab i jest całkowicie niezwiązana z twoim problemem. Źle zrozumiałem, czym był ForexConnect. Myślałem, że to strona internetowa. Jeśli jest to program, musisz dowiedzieć się, jakie funkcje program ten umożliwia wywołanie z C. W tym celu musisz napisać program w języku C, który działa z ForexConnect i Octave. Jednak ForexConnect wydaje się być niewolny. Oznacza to, że nie można rozpowszechniać tego hipotetycznego programu, ponieważ byłoby to naruszeniem GPL. Dla osiągnięcia celu forex, istnieje wiele stron internetowych, które udostępniają tę funkcjonalność za pomocą interfejsu API WWW. Na przykład tutaj jest jeden: Zmień adres URL w sposób oczywisty, aby uzyskać inne waluty. To było stąd stąd: otwórz ten post w wątku. Zgłoś nadużycie jako nieodpowiedni: Octave API Cześć, I havent spojrzał na link, do którego się odnoszą. Ale tabele Google i Yahoo Fx wychodzą tylko z dokładnością do dwóch miejsc po przecinku. Potrzebuję minimum 4. Dane dotyczące zapasów i danych Comm wygląda jak normalne dla 2 miejsc. To nie było, dopóki nie miałem roboczego skryptu, że dane nie są tak dokładne, ile potrzebuję lub jest jak zwykle cytowane dla Forex. Dzięki, Rich Otwórz ten post w wątku. Zgłoś nadużycie jako nieodpowiedni do tego: Octave API 27 lutego 2017 13:30, ramack lthidden email gt napisał: gt I havent spojrzał na link do którego się odnoszą. Ale tabele Google i Yahoo Fx tylko wychodzą na dwa miejsca po przecinku. Potrzebuję minimum 4. Następnie należy spojrzeć na link i zobaczyć, jak ma o wiele więcej niż 2 miejsca po przecinku. Otwórz ten post w widoku z wątków Zgłoś nadużycie jako nieodpowiednik: Octave API Znalazłem ten link stackoverflow w zeszłym tygodniu. Łącze zawierające bardziej znaczące liczby dziesiętne nie generuje danych historycznych, ale w czasie rzeczywistym. Znalazłem trochę więcej informacji w odniesieniu do ForexConnect, więc na razie kontynuować to. Dzięki za sugestie. Rich Otwiera ten post w widoku z wątkiem Zgłoś nadużycie jako nieodpowiedni na temat: Octave API 28 lutego 2017 10:05, ramack lthidden email gt napisał: gt Znalazłem trochę więcej informacji w odniesieniu do ForexConnect, więc na gt wtorek Ill kontynuować że. Dzięki za sugestie. gt Rich Jeśli połączysz Octave z ForexConnect, nie zapomnij o zobowiązaniach z GPL: Jak zacząć korzystać z programu ForexConnect API (Win32Win64) W tym artykule opisano, jak rozpocząć korzystanie z interfejsu ForexConnect API. Tutaj znajdziesz podstawowe informacje o API i instrukcje krok po kroku dotyczące tworzenia próbki roboczej prostej aplikacji handlowej. Platforma . Microsoft Framework 2.0 i nowsze wersje w języku 32-bitowym dla systemu MS Windows. C IDE. Używanie biblioteki ForexConnect w programie Microsoft Visual Studio 2005, 2008, 2017 nie jest obsługiwane przez program Microsoft Silverlight. Biblioteka ForexConnect działająca w trybie Mono nie jest obsługiwana. Uzyskiwanie i instalowanie bibliotek interfejsu ForexConnect Pobierz ostatnią wersję interfejsu ForexConnect: jeśli masz 32-bitową wersję systemu Microsoft Windows, pobierz 32-bitową wersję interfejsu ForexConnect API. Jeśli masz 64-bitową wersję systemu Microsoft Windows, pobierz 64-bitową wersję interfejsu ForexConnect API. Zobacz okno dialogowe Właściwości systemu, aby uzyskać informacje o wersji systemu. Należy zauważyć, że jeśli system Windows XP i nie jest wyświetlany wydanie x64 wydane w oknie dialogowym Właściwości systemu, to na komputerze jest uruchomiona 32-bitowa wersja systemu Windows XP. Uruchom instalator, a następnie postępuj zgodnie z instrukcjami kreatora instalacji. Ponadto założymy, że interfejs API ForexConnect jest zainstalowany w C: Program FilesCandleworksForexConnectAPI. Korzystanie z ForexConnect API z Microsoft Visual Studio W projekcie C należy wprowadzić następujące zmiany: 1. Skonfiguruj zdarzenie post-build projektu, aby skopiować biblioteki API ForexConnect i wspieranie plików do folderu, w którym program jest zbudowany: w projekcie rarr konstruktory rarr Build-event wiersza poleceń zdarzeń, dodaj następujący tekst: copy C: Program FilesCandleworksForexConnectAPIbin. (TargetDir) 2. Dodaj odwołanie do zespołu fxcore2.dll do projektu. Jeśli używasz 4.0, użyj odpowiedniego zestawu fxcore2.dll, który można znaleźć w folderze C: Program FilesCandleworksForexConnectAPIbinnetdotnet40. Jeśli używasz wersji 2.0, użyj zestawu fxcore2.dll z folderu C: Program FilesCandleworksForexConnectAPIbinnetdotnet20. 3. Dodać przestrzeń nazw fxcore2 do swojego kodu: Dystrybucja Musisz rozpowszechniać program ze wszystkimi bibliotekami binarnymi i wsparciem plików z C: Program FilesCandleworksForexConnectAPIbin. Biblioteki ForexConnect i pliki pomocnicze muszą znajdować się w folderze, w którym zainstalowana jest twoja aplikacja. Należy pamiętać, że fxcore2.dll musi być umieszczony w folderze, w którym zainstalowana jest również aplikacja. Funkcje API ForexConnect Architektura sterowana zdarzeniami Wszystkie interfejsy API używane przez ForexConnect są asynchroniczne, więc będziesz musiał zaimplementować architekturę sterowaną zdarzeniami w swoim kodzie. Architektura sterowana zdarzeniami to wzorzec architektury oprogramowania, który zarządza zachowaniem produkcji, wykrywaniem i zużyciem zdarzeń, a także odpowiedzi, które wywołują. W tym kontekście zdarzenie powinno być traktowane jako pewna wartość lub wiadomość, która może zostać zidentyfikowana w ciągłym strumieniu monitorowanych wejść, na przykład konkretnych warunków lub sygnałów czy czegoś innego. Architektury oparte na zdarzeniach zazwyczaj składają się z producentów wydarzeń i konsumentów zdarzeń. Klienci wydarzenia subskrybują jakiegoś menedżera wydarzeń, a producenci wydarzeń publikują go dla tego menedżera. Gdy menedżer odbierze wydarzenie od producenta, przekazuje to wydarzenie wszystkim zarejestrowanym konsumentom lub przechowuje zdarzenie do późniejszego przekazania. Obsługa zdarzeń jest procedurą wywołania zwrotnego, która działa asynchronicznie i obsługuje wejścia otrzymane w programie (zdarzeniach). W tym kontekście zdarzenie jest pewnym znaczącym elementem informacji o aplikacji z bazowego środowiska programistycznego, zwykle z zestawu narzędzi graficznego interfejsu użytkownika (GUI) lub pewnego rodzaju procedury wejściowej. Po stronie interfejsu graficznego zdarzenia obejmują między innymi kluczowe naciśnięcia klawiszy, aktywność myszy, wybór akcji lub wygaśnięcie timera. Po stronie wejściowej zdarzenia obejmują otwieranie i zamykanie plików i strumieni danych, odczytywanie danych itd. Obsługa zdarzeń to odbieranie zdarzenia w przypadku obsługi zdarzenia od producenta zdarzenia i kolejnych procesów. Procesy związane z obsługą zdarzeń obejmują: Identyfikowanie miejsca, w którym powinno nastąpić zdarzenie Przekazywanie dalej Otrzymywanie przekazanego zdarzenia Podjęcie pewnych działań w odpowiedzi, takich jak pisanie do dziennika, wysłanie błędu lub procedury odzyskiwania lub wysłanie wiadomości Zdarzenie handler może ostatecznie przekazać wydarzenie konsumentowi zdarzenia. Zaletą architektur sterowanych zdarzeniami jest to, że umożliwiają dowolnie duże zbiory konsumentów i producentów, wraz z pewną liczbą menedżerów, w celu wymiany bieżących informacji o statusie i odpowiedzi. Zwykle reagują na zdarzenia tak, jak one występują i działają dobrze w nieprzewidywalnych i asynchronicznych środowiskach komunikacyjnych. Cechy szczególne związane z obsługą zdarzeń ForexConnect Interfejs API ForexConnect już implementuje interfejsy IO2GSessionStatus i IO2GResponseListener w celu odbierania powiadomień o zmianach stanu sesji i odbioru danych. Można więc używać odpowiednich zdarzeń w obiekcie O2GSession zamiast wdrażać te interfejsy samodzielnie. Można je jednak zaimplementować i używać do otrzymywania powiadomień z obiektu sesji po subskrypcji, jeśli jest to dla Ciebie bardziej odpowiednie. Należy zauważyć, że wszystkie obsługi zdarzeń, które zostały zaimplementowane w zdarzeniach O2GSession, są wywoływane w oddzielnym wątku. Musisz więc pamiętać o następujących kwestiach: zawsze musisz zapewnić bezpieczny dostęp do wszystkich danych przechowywanych w aplikacji, które są aktualizowane z obsługi zdarzeń. Nie ma potrzeby synchronizowania wywołań procedur obsługi zdarzeń i nie trzeba myśleć o ponownym wprowadzaniu procedury obsługi zdarzeń, ponieważ wszystkie zdarzenia z interfejsu API są już zsynchronizowane w jednym wątku. Dlatego procedury obsługi zdarzeń są wywoływane kolejno. Powinieneś jak najszybciej obsługiwać każde zdarzenie, ponieważ są synchronizowane w wątku obsługi przez bibliotekę ForexConnect. Możesz uruchamiać własne wątki, aby przyspieszyć obsługę zdarzeń. Zarządzanie Lifetime Lifetime Nie potrzebujesz żadnego dodatkowego zarządzania zasobami dla obiektów uzyskiwanych przy użyciu interfejsu ForexConnect API. Jednak zaleca się wywołanie metody Dispose () dla wszystkich otrzymanych obiektów, które ją implementują. Połączenia te pozwalają efektywniej uwolnić niewykorzystane zasoby systemowe. Możesz użyć instrukcji using w tym celu: Przykładowa aplikacja za pomocą API ForexConnect Ten przykład to prosta aplikacja konsolowa korzystająca z interfejsu API ForexConnect. Ta aplikacja ma następujące funkcje: Nawiązywanie połączenia z serwerem transakcyjnym przy użyciu wstępnie zdefiniowanych poświadczeń użytkownika Pobieranie cen dla EURUSD Pobieranie tabeli kont dla użytkownika Tworzenie zlecenia otwartego rynku dla EURUSD po wprowadzeniu b (kup) lub s (sprzedaż) Pobieranie zleceń Powiadomienia o tabelach i odbiorze aktualizacji w tej tabeli Kończenie wykonywania aplikacji po wprowadzeniu znaku q (quit) Aby uprościć próbkę, cała logika aplikacji jest zaimplementowana w jednej klasie MyApp. Możesz pobrać cały kod źródłowy przykładu: Plik: Przykłady ForexConnect Net. zip Łączenie z serwerem handlu Głównym obiektem interfejsu ForexConnect jest obiekt sesji O2GSession w przestrzeni nazw fxcore2. Ten obiekt reprezentuje sesję połączenia użytkowników i można ją utworzyć za pomocą statycznej metody klasy O2GTransport: Obiekt O2GSession powiadamia subskrybentów o wszystkich zmianach stanu połączenia za pośrednictwem następujących zdarzeń: lub za pośrednictwem interfejsu wywołania zwrotnego IO2GSessionStatus. Powiadomienia o odebraniu danych mogą być obsługiwane przy użyciu następujących zdarzeń O2GSession: lub poprzez interfejs wywołania zwrotnego IO2GResponseListener. Aby połączyć się z serwerem handlowym przy użyciu interfejsu ForexConnect, wykonaj następujące czynności: Utwórz obiekt sesji. Wdrażanie obsługi dla zdarzeń obiektu sesji w celu otrzymywania powiadomień o zmianach stanu sesji. Wywołaj login () dla sesji i poczekaj na zakończenie procesu logowania. Przetwarzanie otrzymanych powiadomień o zmianach stanu połączenia w funkcji onSessionStatusChanged w celu zarządzania stanem procesu logowania. Szczegółowe informacje na temat implementacji można znaleźć w następującym kodzie źródłowym: Należy zauważyć, że czekamy na powiadomienie o zakończeniu logowania, ponieważ wywołanie metody ltcodegtlogin () jest asynchroniczne. W tym celu używamy specjalnego sygnału synchronizacji. Kiedy jest wywołany tryb onSessionStatusChanged, w metodzie run () w ciągu metody mSyncSessionEvent. WaitOne (5000) zostanie przywrócony sygnał wykonania wątku. Logowanie przy wyborze sesji handlowej Jeśli konto użytkownika ma kilka sesji handlowych, logowanie to jest procesem wielostronnym: 1. wywołaj metodę login () obiektu sesji z podaną nazwą użytkownika, hasłem, adresem serwera i nazwą bazy danych. 2. Przetwarzanie otrzymanego statusu TradingSessionRequested w procedurze obsługi zdarzenia onSessionStatusChanged. Istnieją następujące typowe kroki, aby przetworzyć status TradingSessionRequested: 2.1. Pobierz listę sesji z obiektu O2GSession przy użyciu metody getTradingSessionDescriptors (). 2.2. Podaj wybór sesji giełdowej dla użytkownika. 2.3. Poproś o hasło od użytkownika. 2.4. Ustaw określony identyfikator sesji handlowej i PIN za pomocą metody setTradingSession (). Pokaż zarządzanie źródłami Zarządzanie cenami zawiera następujące kroki: Sprawdź, czy podczas logowania są automatycznie żądane dane o cenach. Jeśli tak, przejdź do kroku 2. Jeśli nie, wyślij prośbę o bieżące ceny dla wszystkich instrumentów. Obsłużyć odpowiedź. Obsługuj aktualizację ceny dla określonego instrumentu. Aby otrzymywać powiadomienia o odpowiedziach żądania lub zmianach stanu obiektów serwera, należy wdrożyć i zasubskrybować procedury obsługi zdarzeń do odpowiednich zdarzeń w przypadku O2G2Session. W tym celu zmień klasę MyApp w celu obsługi tych zdarzeń: Żądanie cen bieżących W zależności od ustawień serwera handlowego bieżące ceny wszystkich instrumentów mogą być automatycznie otrzymywane podczas procesu logowania lub można wyraźnie poprosić o te dane z serwera handlowego . Aby uzyskać bieżące ceny, należy wykonać następujące czynności: 1. Sprawdź, czy są oferty cenowe otrzymane podczas logowania przy użyciu metody isTableLoadedByDefault () metody O2GLoginRules. 2. Jeśli są one załadowane, uzyskaj już otrzymany obiekt odpowiedzi ofert za pomocą metody getTableRefeshResponse (Offers) instancji O2GLoginRules. Ten obiekt odpowiedzi można przetwarzać w celu uzyskania danych ofert. Aby uzyskać ofertę czytnika do odczytu danych odpowiedzi, wykonaj następujące czynności: Pobierz fabrykę czytników odpowiedzi za pomocą metody getResponseReaderFactory () instancji obiektu sesji. Utwórz czytnik za pomocą metody createOffersTableReader () instancji O2GResponseReaderFactory. 3. Jeśli oferty nie zostały otrzymane podczas logowania, wyślij żądanie tabeli ofert wyraźnie używając metody sendRequest () obiektu sesji. Aby utworzyć odpowiednie żądanie, wykonaj następujące czynności: Uzyskaj fabrykę żądań za pomocą metody getRequestFactory () obiektu sesji. Utwórz żądanie przy użyciu metody createRefreshTableRequest () instancji O2GRequestFactory. Aby zażądać aktualnych cen, dodaj następujący kod źródłowy do metody run () naszej próbki po przetworzeniu logowania: W przykładzie czekamy na otrzymanie odpowiedzi żądania za pomocą sygnału synchronizacji. Tak więc możemy złapać moment, aby rozpocząć monitorowanie zmian cen dla EURUSD z. Oczywiście powinniśmy ustawić ten sygnał, gdy otrzymamy dane o cenie. W naszym przykładzie zastosowano trik, aby uniknąć powielania kodu. Jak widać dalej, przetwarzanie odpowiedzi jest takie samo, gdy oferuje dane są odbierane z obiektu O2GLoginRules i kiedy jawnie pobieramy dane ofert. Aby przetworzyć obiekt odpowiedzi otrzymany z O2GLoginRules. można bezpośrednio wywołać obsługiwane zdarzenie obsługiwane zdarzenia RequestCompleted obiektu sesji. Otrzymywanie danych o cenach Ponieważ wywołanie sendRequest () jest asynchroniczne, aby otrzymać odpowiedź z danymi cenowymi, musisz zaimportować procedurę obsługi zdarzenia dla zdarzenia RequestCompleted obiektu sesji. Ponieważ ten proces obsługi zdarzeń jest używany do odbierania powiadomień o odpowiedziach wszystkich żądań, należy wykonać następujące czynności: Sprawdź, czy typem odpowiedzi jest GetOffers. Pobierz czytnik odpowiedzi O2GOffersTableResponseReader przy użyciu O2GResponseReaderFactory, aby uzyskać dane o cenach z obiektu odpowiedzi. Przetwarzaj wszystkie wiersze w tabeli Oferty przy użyciu czytnika. Musisz zapewnić bezpieczny dostęp do ofert zapisanych w aplikacji. Zobacz przykład kodu źródłowego, aby zobaczyć przykład obsługi odbierania odpowiedzi. Aby zapisać aktualne ceny EURUSD, są definiowane odpowiednie zmienne, a dostęp do nich jest bezpieczny dla wątków. Sygnał synchronizacji jest ustawiany po otrzymaniu danych z oferty. Ten trick pozwala czekać na otrzymanie aktualnych cen w głównym wątku po wysłaniu żądania. Nasza przykładowa aplikacja obsługuje zdarzenie RequestComplete i wyciąga ofertę EURUSD i poprosi o cenę. Otrzymane ceny zapytań i cen ofertowych są przechowywane w zmiennych poziomu klasy mEURUSDBid i mEURUSDAsk, wdrażane są bezpieczne dla wątku metody odczytywania i zmiany tych zmiennych. Otrzymywanie ofert Aktualizacje Należy zauważyć, że powiadomienie jest odbierane w osobnym wątku, dlatego należy używać odczytu wątków i aktualizacji zmiennych przechowujących odebrane dane. Dodaj następujący kod do serwisu MyApp, aby obsłużyć aktualizację cen EURUSD: Przetwarzanie aktualizacji tabeli Oferty zawiera następujące kroki: 1. Pobierz obiekt O2GResponseReaderFactory z obiektu sesji. 2. Pobierz czytnik O2GTablesUpdatesReader z fabryki za pomocą metody createTablesUpdatesReader. 3. Utwórz pętlę, aby wyliczyć każdy element listy aktualizacji, ponieważ odebrane dane mogą zawierać aktualizacje dla dowolnego typu obiektów, nie tylko dla tabeli Oferty. Musisz więc sprawdzić każdy element na liście aktualizacji dla wymaganego typu tabeli i typu operacji aktualizacji. 4. Aby przetworzyć zmianę, użyj metody getOfferRow () w celu pobrania obiektu typu O2GOfferRow: Należy zauważyć, że powiadomienie jest odbierane w oddzielnym wątku, dlatego należy używać odczytywania i aktualizowania zmiennych, które można przechowuj odebrane dane. Dodaj następujący kod do serwisu MyClass, aby obsłużyć aktualizację cen EURUSD: W naszej próbie przetworzamy tylko aktualizacje cen EURUSD i zapisujemy ostatnie wartości w zmiennych mEURUSDBid i mEURUSDAsk. W celu uzyskania dostępu do tych zmiennych, wdrożyliśmy metody bezpieczne dla wątków. Zamów zamówienie Aby utworzyć zamówienie, wykonaj następujące czynności: 1. Upewnij się, że masz co najmniej identyfikator konta użytkownika i identyfikator oferty wymagany do utworzenia zamówienia. Jeśli nie, poproś ich od razu. 2. Użyj instancji O2GRequestFactory, aby utworzyć O2GValueMap w celu określenia parametrów zamówienia. 3. Wypełnij mapę wartości parametrami niezbędnymi do utworzenia konkretnego rodzaju zamówienia. Szczegółowe informacje na temat parametrów poleceń do tworzenia zamówień znajdują się w pakiecie ForexConnectAPI SDK. 4. Utwórz obiekt O2GRequest przy użyciu O2GRequestFactory dla wypełnionej mapy wartości. 5. Uruchom wykonanie żądania. 6. Odbierz odpowiedź żądania, aby upewnić się, że wykonanie żądania zakończyło się pomyślnie. Ponieważ potrzebujemy ID konta dla naszej próbki, najpierw pobieramy tabelę Konta. Pobieranie danych w tabeli Konta jest podobne do pobierania danych z tabeli Oferty. Aby uprościć próbkę, pobierz pierwsze konto z listy kont użytkownika i zapisz go w zmiennej na poziomie klasy, aby uzyskać dalsze wykorzystanie. Czekamy na odpowiedź, aby uniknąć tworzenia zamówień przed pobraniem identyfikatora konta. Najlepszą praktyką jest kapsułkowanie logiki tworzenia zamówień w osobną metodę klasy MyApp. Należy również obsłużyć odpowiedź na żądanie utworzenia zamówienia w module obsługi zdarzeń onRequestCompleted, aby upewnić się, że zamówienie zostało utworzone. Zobacz poniższy kod źródłowy, który tworzy kupon lub zlecenie sprzedaży instrumentu EURUSD z kwotą 100K: Należy zauważyć, że w przestrzeni nazw fxcore2.Constants znajdują się przydatne klasy pomocnicze w celu wypełnienia wartości obiektuMap z parametrami zamówienia: możesz zachować identyfikator żądania Odpowiedź procesu tylko na konkretne żądanie: Pobieranie tabeli zamówień Wszystkie informacje o stanach istniejących zamówień można pobrać z tabeli Zamówienia. Interfejs ForexConnect umożliwia pobieranie tabeli Zamówienia tylko dla określonego konta. Musisz wykonać następujące czynności: Pobierz tabelę kont. Zaczekaj, aż zostaną odebrane dane kont. Pobierz tabelę zamówień dla każdego odebranego konta, używając createRefreshTableRequestByAccount () instancji O2GRequestFactory. Uchwyt odpowiedzi żądania w procedurze obsługi zdarzenia zdarzenia RequestComplete. Uchwyt aktualizacji tabeli Zamówienia w procedurze obsługi zdarzenia zdarzenia TablesUpdates. Aby uprościć próbkę, pobieramy identyfikator konta przechowywanego i używamy go w przykładzie pobierania tabeli zleceń. Zauważ, że jeśli przechowujesz dane z zamówień, musisz zapewnić bezpieczny dostęp do tych danych i poprawić zarządzanie licznikami referencyjnymi dla przechowywanych obiektów. W naszym przykładzie dane o zamówieniach nie są przechowywane, więc synchronizacja nie jest realizowana. Finalizowanie aplikacji. Wyloguj Jak widać, metoda stop () klasy MyApp zwalnia wszystkie zużyte zasoby systemowe i anuluje subskrypcję wszystkich zdarzeń obsługi zdarzeń sesji, aby zatrzymać otrzymywanie powiadomień. Przed zakończeniem Twojego zgłoszenia należy wylogować się (). Również należy wywołać metodę Dispose () instancji sesji, zanim tmain () zwróci kontrolę. Obsługa błędów żądania Gdy wystąpi błąd podczas asynchronicznego wykonywania żądania, wywoływana jest procedura obsługi zdarzenia RequestFailed. W naszej próbce poradzimy sobie z błędem, umieszczając opis błędu na wyjściu konsoli i zatrzymując aplikację: Uruchomienie próbki Teraz nasza próbka może się zalogować, pobierać zmiany cen EURUSD, wyświetlać informacje dotyczące istniejących zamówień i ma metodę tworzenia zlecenie z otwartego rynku. Aby uruchomić próbkę na tym etapie, musimy wdrożyć naszą klasę MyApp. W tym celu wykonaj następujące czynności: Wewnątrz głównej funkcji naszego konsoli należy utworzyć wystąpienie naszej klasy MyApp. Wywołaj metodę run () instancji, aby zalogować się do serwera handlowego i zacząć otrzymywać aktualizacje EURUSD. Zapewnij odczyt danych wejściowych użytkowników do wykonywania poleceń: kiedy b jest wejściem, stwórz zlecenie kupna, gdy s jest wejściem, stwórz zlecenie sprzedaży na rynku, gdy q jest wejściem, zakończ aplikację. Metoda run () próbki przygotowuje aplikację do handlu. Po przygotowaniu jest zwracane, jeśli wszystko jest dobre. Jak widać, ta metoda wywołuje asynchronicznie wszystkie funkcje API, ale oczekuje na ich odpowiedzi przy użyciu specjalnych obiektów synchronizacji. Pamiętaj, że nie jest to skuteczna metoda korzystania z ForexConnectAPI, ale jest łatwa do zrozumienia. Nie zapomnij podać poprawnej nazwy użytkownika i hasła dla wywołania metody logowania (). Teraz możesz zbudować i uruchomić próbkę. Jeśli masz problem z budowaniem próbki, porównaj ją z całym kodem źródłowym próbki: Plik: ForexConnect Sample Net. zip. Co dalej Aby uzyskać szczegółowe informacje o wszystkich klasach API i ich metodach, zobacz Pakiet ForexConnectAPI SDK. Artykuł w innych językach

No comments:

Post a Comment