"BossaAPI.NET Class Library"

Podobne dokumenty
PEKAO24MAKLER SERWIS MOBILNY PODRĘCZNIK UŻYTKOWNIKA. Cz. II ZLECENIA

etrader Pekao Podręcznik użytkownika Zlecenia bieżące

Pulpit Inwestora. Zarządzanie zleceniami. 1. Składanie zleceń. Biuro Maklerskie

NOL3. Zarządzanie zleceniami. 1. Transakcyjne funkcjonalności aplikacji NOL3. Biuro Maklerskie Zlecenia

etrader Pekao Podręcznik użytkownika Strumieniowanie Excel

W prawym górnym rogu widoczna jest nazwa zalogowanego użytkownika.

Składanie zleceń z NOLa. Klient może złożyć zlecenie nie tylko z poziomu r-brokera, ale również z poziomu aplikacji Notowania OnLine (NOL).

Instrukcja użytkownika Smart Orders

PEKAO24MAKLER SERWIS MOBILNY

SIDOMA WEB TWÓJ NOWY WYGODNY SPOSÓB NA INWESTYCJE

MOBILE - Instrukcja

Wersja instalacyjna Firefox 52 ESR(32bit) - Link pobiera plik instalacyjny: Pobierz Firefox 52 ESR(32bit)

Supermakler - wersja tabletowa. Unikalne rozwiązania. Warszawa, czerwiec 2015

Instrukcja korzystania z Systemu Telnom - Nominacje

Poradnik korzystania z usługi FTP

APLIKACJA SHAREPOINT

Proces uprawniania w module klubowym

Instrukcja wypełniania formularza Ankieta Trwałości

Synchronizator plików (SSC) - dokumentacja

Konfiguracja współpracy urządzeń mobilnych (bonowników).

SOGA web co powinieneś wiedzieć

Panel zlecenia standardowego, to najprostszy sposób złożenia zlecenia kupna/sprzedaży wybranego instrumentu finansowego.

Platforma e-learningowa

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

INSTRUKCJA OBSŁUGI SYSTEMU TRANSAKCYJNEGO NOVA GIEŁDA W WERSJI NA ANDROID/iOS

1. Pobieranie i instalacja FotoSendera

Pulpit Inwestora. Podręcznik użytkownika. Spis treści

Udaj się na stronę (lub tymczasowy zapewniający połączenie szyfrowane)

Aby pobrać program FotoSender naleŝy na stronę lub i kliknąć na link Program do wysyłki zdjęć Internetem.

Instrukcja obsługi. Helpdesk. Styczeń 2018

Aktualizacja firmware w urządzeniu za pośrednictwem FTP

Aplikacja Mobilna. Platformy B2B Kompanii Biurowej

INSTRUKCJA OBSŁUGI SYSTEMU TRANSAKCYJNEGO NOVA GIEŁDA W WERSJI NA ANDROID/iOS

MATEMATYKA NAJPEWNIEJSZYM KAPITAŁEM ABSOLWENTA

Nowy sposób autoryzacji przelewów w Usłudze Bankowości Elektronicznej

Pulpit Inwestora. Profesjonalne narzędzia. 1. Komponenty prezentujące stan rachunku. Biuro Maklerskie Portfel

Instrukcja instalacji programu SPSS Statistics 21

ArtPlayer oprogramowanie do odtwarzania plików video sterowane Artnet/DMX V1.0.1

Instrukcja użytkownika mforex WEB

Podstawy technologii WWW

Instrukcja instalacji nos niko w USB w bankowos ci Alior Banku

IBM SPSS Statistics Wersja 22. Linux - Instrukcja instalacji (licencja autoryzowanego użytkownika)

Zakładanie konta w serwisie Canva i opcje interfejsu

Instrukcja użytkownika Platforma Walutowa

Udostępnianie drukarek za pomocą systemu Windows (serwer wydruku).

Jest to program stworzony z myślą o nauczycielach, wykładowcach, trenerach i prezenterach.

WINDOWS Instalacja serwera WWW na systemie Windows XP, 7, 8.

Fuugo dla OSX Podręcznik użytkownika

Przewodnik po Notowaniach Statica mdm 4

ROZPOCZĘCIE PRACY Z PLATFORMĄ INFRONT

Pasek menu. Kategoria zakładki umożliwia dodawanie zakładek notowań i edytowanie sposobu ich wyświetlania.

Tworzenie prezentacji w MS PowerPoint

OPIS TECHNICZNY I INSTRUKCJA OBSŁUGI PROGRAMU DO MIERNIKA ZOT4. PM wer. 5.0

Okno logowania. Okno aplikacji. 1. Logowanie i rejestracja

Podstawowa instrukcja obsługi STRON stron internetowych serwisu zrealizowanych w systemie zarządzania treścią Wordpress.

Notowania Mobilne wersja Java dotykowa. Instrukcja obsługi programu

Przewodnik dla uczestników etapu RFI Przed wzięciem udziału w projekcie masz obowiązek zapoznać się i zaakceptować umowę z uczestnikiem przetargu.

Podręcznik użytkownika

Usługa RMA (Risk Management Access)

Instrukcja użytkownika Platformy Walutowej

Szybki Start: Wymagania systemowe:

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java

INSTRUKCJA OBSŁUGI SYSTEMU TRANSAKCYJNEGO NOVA GIEŁDA. W WERSJI NA ANDROID/iOS

Content Manager 2.0 podręcznik użytkownika

Instrukcja aktualizacji oprogramowania. Wersja dokumentu: 01i00 Aktualizacja:

Instrukcja użytkownika

Instrukcja instalacji Mobile Marketing Pro

KOMPUTEROWY SYSTEM WSPOMAGANIA OBSŁUGI JEDNOSTEK SŁUŻBY ZDROWIA KS-SOMED

UNISERV s.c. K.Gałązka, P.Szewczyk ul. Kościuszki 42, Wyszków NIP:

Serwery Statefull i Stateless

Baza wiedzy instrukcja

Content Manager 2 podręcznik użytkownika

SKRÓCONA INSTRUKCJA INSTALACJI MODEMU I KONFIGURACJA POŁĄCZENIA Z INTERNETEM NA WINDOWS 8 DLA AnyDATA ADU-510L

Zawartość. 1. Rejestracja na stronie promosms.pl

Instrukcja użytkownika

Instrukcja użytkownika Platformy BRE WebTrader

- 1 Laboratorium fotografii cyfrowej Foto Video Hennig

etrader Pekao Podręcznik użytkownika Jak zacząć pracę z etrader Pekao?

PRZEWODNIK PO ETRADER PEKAO ROZDZIAŁ I. JAK ZACZĄĆ PRACĘ Z ETRADER PEKAO? SPIS TREŚCI

PODRĘCZNIK OBSŁUGI BUSINESSNET

PRZEWODNIK PO SERWISIE BRe BROKERS Rozdział 6

Opis szybkiego uruchomienia programu APBSoft

,Aplikacja Okazje SMS

WYPOŻYCZALNIA BY CTI INSTRUKCJA

Instrukcja Konfiguracji Programu. MS Outlook Express

Dom Maklerski Banku Ochrony Środowiska S.A. 1

Spis treści

Instrukcja generowania certyfikatu PFRON i podpisywania dokumentów aplikacji SODiR w technologii JS/PKCS 12

Dostęp do poczty za pomocą przeglądarki internetowej

Serwis jest dostępny w internecie pod adresem Rysunek 1: Strona startowa solidnego serwisu

Instrukcja instalacji

Instrukcja instalacji programu STATISTICA

Projektowanie oprogramowania. Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz

Przewodnik instalacji i rozpoczynania pracy. dla DataPage+ 2012

Na komputerze z Windowsem

Instrukcja użytkownika tokena mobilnego (mtokena) systemu KBI

IIIIIIIIIIIIIIIMMIMMIII

Transkrypt:

"BossaAPI.NET Class Library" Biblioteka pjank.bossaapi.dll - napisana w C# (.NET 3.5) - powstała, by ułatwić korzystanie z możliwości API udostępnionego niedawno przez DM BOSSA. Udostępnia ona czytelne, proste w użyciu klasy reprezentujące m.in.: poszczególne rachunki użytkownika, papiery tam zgromadzone, ich notowania oraz aktywne zlecenia. Wszystko w takiej formie, by nawet laik, który dopiero zaczyna programować, był w stanie z nich efektywnie korzystać. I to korzystać zawsze tak samo - niezależnie od wybranego sposobu komunikacji z systemem. Na dzień dzisiejszy komunikujemy się z aplikacją NOL3 uruchomioną na tym samym komputerze, w przyszłości pewnie będzie możliwy dostęp bezpośrednio do serwerów Domu Maklerskiego... A niezależnie od tego już niedługo planuję wprowadzić funkcjonalność umożliwiającą każdemu uruchomienie prywatnego serwera, który pozwoli w bezpieczny sposób współdzielić aktywne połączenie z rachunkiem dla kilku aplikacji jednocześnie, dla innego komputera, a nawet dla komórki, czy innego urządzenia mobilnego (przez Internet). Do wykorzystania biblioteki można użyć dowolnego języka programowania dostępnego na platformę.net. Większość funkcji wywołamy za pośrednictwem statycznych metod i właściwości głównej klasy 'Bossa'. W planie jest również stworzenie komponentu COM, który udostępni tą samą funkcjonalność (i w równie czytelnej formie) np. w Excelu (VBA). Bibliotekę udostępniam na licencji Apache v2.0 - wraz z pełnym, otwartym kodem źródłowym. W ten sposób każdy może ją wykorzystać w swoich projektach - nieważne, czy to projekt komercyjny, czy darmowy, otwarty czy też nie... Obowiązuje jedynie zasada, by nie zabrakło tam nigdy wzmianki o pierwotnym autorze (czyli o mnie :)) i wszystkich kolejnych (jeśli tacy się pojawią i będą udostępniać swoje modyfikacje, do czego oczywiście zachęcam). Przemysław Jankowski http://www.pjank.net/bossa.api/ e-mail: bossa.api@pjank.net

Zawartość katalogów Biblioteka rozwijana jest w darmowym środowisku Visual Studio 2010 Express Microsoftu. Wystarczy załadować plik BossaAPI.sln (ew. BossaAPI.vs2008.sln dla Visual Studio 2008). W ramach tego solution zawarto trzy projekty, w następujących podkatalogach: 1. 'BossaAPI' - kod samej biblioteki, podzielony na kilka warstw: a) warstwa "zewnętrzna", udostępniająca w prostej formie większość funkcji API. Obejmuje najważniejszą klasę 'Bossa' i dostępne z niej potem kolejne: 'BosAccount', 'BosPaper', 'BosOrder', 'BosInstrument', 'BosTrade' itd. (wszystko w podkatalogach "src\accountdata\" i "src\marketdata\"). b) niskopoziomowa obsługa protokołu FIXML Komplet klas znajdujący się w katalogu "src\networking\fixml\". Dla każdego rodzaju komunikatu (tych wysyłanych, jak i odbieranych) mamy indywidualną klasę C# oferującą wszystkie możliwe parametry w formie łatwo dostępnych pól obiektu (reprezentowanych przez kolejne klasy albo typy wyliczeniowe odpowiednie do rodzaju danego parametru). Jeśli z jakiegoś powodu chcesz samodzielnie oprogramować komunikację np. bezpośrednio z aplikacją NOL3, to będzie najlepsze rozwiązanie - pozwala skupić się na treści komunikatów zamiast obsłudze samego XML'a i zmniejsza ryzyko popełniania błędów. Możesz też użyć dodatkowej klasy 'NolClient' (katalog "src\networking\"), która wspomaga całą komunikację z NOLem - zajmuje się ustalaniem numeru portu do nawiązania połączenia, zalogowaniem użytkownika, obsługą kanału asynchronicznego w oddzielnym wątku itp. itd. c) warstwa pośrednia - łącząca dwie powyższe i zaprojektowana w taki sposób, by umożliwić bardzo szybką podmianę protokołu FIXML czymś zupełnie innym. Obejmuje interfejs 'IBosClient' (którego jedyną na razie implementację stanowi wspomniana klasa 'NolClient') oraz klasy transportowe (DTO) służące do przekazywania danych między kolejnymi warstwami biblioteki. 2. 'TestApp1' - przykładowa aplikacja konsolowa Demonstruje sposób bezpośredniego wykorzystania m.in. klasy 'NolClient', a więc tej bardziej "niskopoziomowej" warstwy niniejszej biblioteki. 3. 'TestApp2' - przykładowa aplikacja GUI Tutaj wykorzystano już "zewnętrzną" warstwę biblioteki - klasę 'Bossa'. Aplikacja demonstruje większość dostępnych funkcji, włącznie z możliwością oglądania tabeli aktualnych notowań oraz składania zleceń. Jednocześnie w okienku logu umożliwia podgląd wszystkiego, co się dzieje "pod maską".

Jak korzystać... Przykładowa aplikacja Na początek proponuję uruchomić przykładowy program 'TestApp2.exe', dzięki któremu w praktyce poznamy podstawowe możliwości biblioteki. Uwaga: program uruchamiasz na swoim rachunku na własną odpowiedzialność! Nie odpowiadam za ewentualne nieprawidłowości w składaniu zleceń itp. - tym bardziej, że to wciąż wersja rozwojowa biblioteki... nie mówiąc już o samym interfejsie bossaapi w aplikacji NOL3, który też trudno nazwać wersją finalną. Zakładając, że w systemie mamy zainstalowany.net (w wersji 3.5) i w bieżącym katalogu będzie dostępna biblioteka 'pjank.bossaapi.dll' - na ekranie ukaże się następujące okienko: Widzimy tu następujące obszary: na górze - przyciski do wywoływania poszczególnych funkcji, po lewej - okienko, gdzie będą wyświetlane informacje o naszych rachunkach: lista obecnych na rachunku papierów wartościowych (otwartych pozycji), lista aktywnych zleceń oraz krótkie zestawienie najważniejszych kwot dotyczących danego rachunku. po prawej - tabelka z aktualnymi notowaniami wybranych instrumentów: symbol, najlepsza oferta kupna (liczba walorów, cena), najlepsza oferta sprzedaży (cena, liczba) oraz ostatnio zrealizowana transakcja (liczba walorów, cena, godzina transakcji). na dole - okienko logu, gdzie podczas pracy programu będą wyświetlane mniej lub bardziej szczegółowe informacje nt. wewnętrznych działań biblioteki (np. treść przesyłanych komunikatów oryginalna albo przetworzona do bardziej czytelnej postaci) poziom tej szczegółowości ustalamy przełącznikami, które się pojawią po najechaniu tam myszką.

Kolejne przyciski, jakie mamy do dyspozycji: Connect nawiązanie połączenia z aplikacją NOL3 uruchomioną na tym samym komputerze (zalogowanie użytkownika, otwarcie kanału asynchronicznego, pobranie informacji o rachunkach i automatyczne włączenie subskrypcji notowań dla każdego instrumentu, jaki się znajdzie na którymś z tych rachunków). Disconnect przerwanie połączenia z NOLem (zamknięcie kanału asynchronicznego, wylogowanie użytkownika). W każdej chwili możemy wznowić połączenie (i aktualizacje stanu rachunków, notowań) klikając ponownie przycisk Connect. M modyfikacja zlecenia (jedno z aktywnych zleceń wskazane przez nas w lewym okienku - na załączonym obrazku aktywnych zleceń akurat nie ma, ale gdyby były... tam właśnie należy najpierw kliknąć :)) Po wybraniu tej funkcji, program zapyta o nową cenę (można wpisać kwotę lub np. PKC) i po jej zaakceptowaniu wyśle do systemu żądanie zmiany tego zlecenia. Biblioteka (jak i sama Bossa - z tego, co mi wiadomo, więcej opcji modyfikacji zleceń nie ma) udostępnia również możliwość zmiany daty ważności... tutaj to pominięto, żeby nie komplikować aplikacji. Cancel anulowanie wskazanego zlecenia jw. (uwaga: bez żadnych pytań! od razu wysyła anulatę...) Buy złożenie zlecenia kupna dla instrumentu wskazanego w okienku po prawej stronie. Po wywołaniu przycisku, program najpierw zapyta o cenę (i jak przy M możemy podać kwotę albo słówko: PKC, PCR, PCRO), przy czym domyślnie podstawi cenę z najlepszej aktualnie oferty sprzedaży... a następnie pyta o liczbę walorów, jaką chcemy kupić. Dopiero zatwierdzenie tej drugiej wartości spowoduje wysłanie zlecenia do systemu. Inne parametry zleceń (limit aktywacji, WiA, WuA, WUJ itp. itd.) znowu pominięto, by nie burzyć prostoty tej przykładowej aplikacji, ale biblioteka sama w sobie obsługuje je wszystkie. Sell złożenie zlecenia sprzedaży analogicznie jw. Add Instrument pozwala dodać do tabelki kolejny instrument włączając go w zakres papierów, dla których aktualizujemy notowania i pozwalając na składanie na nim zleceń.

Własna aplikacja Gdy już na opisanym wyżej przykładzie przekonasz się, że to działa... czas spróbować wykorzystać bibliotekę do własnych zastosowań. Potrzebna będzie oczywiście dll-ka pjank.bossaapi.dll, którą dołączamy (w References ) do swojego projektu. Warto też w tym samym katalogu (obok ww. dll-ki), umieścić również plik pjank.bossaapi.xml, dzięki czemu uzyskamy w Visual Studio podpowiedzi (komentarze) do poszczególnych metod i właściwości większości klas biblioteki. Kolejny krok to zaimportowanie namespace biblioteki do każdego pliku, w którym będziemy się odwoływać do oferowanych przez nią klas (krok opcjonalny, ale poprawia czytelność kodu). W przypadku języka C# dodajemy na początku pliku instrukcję: using pjank.bossaapi; I to tyle! Już możemy korzystać - m.in. ze statycznej klasy 'Bossa', będącej niejako punktem wyjścia do reszty biblioteki (a przynajmniej tej prostszej w użyciu, zewnętrznej warstwy). Poniżej kilka przykładów (C# 3.0)... a po szczegóły zapraszam do komentarzy w źródłach. Najpierw należy się zalogować do rachunku na www, uruchomić NOL'a i nawiązać z nim połączenie: // nawiązanie połączenia z aplikacją NOL3 Bossa.ConnectNOL3(); Po chwili powinniśmy mieć już dostęp do danych na listach Bossa.Accounts[] oraz Bossa.Instruments[]... // odczyt stanu rachunku var stan_konta = Bossa.Accounts["nr-rachunku"].PortfolioValue; var wolne_srodki = Bossa.Accounts["nr-rachunku"].AvailableFunds; Każde Accounts[] (klasa BosAccount) poza kwotami jw. udostępnia też listę papierów (BosPaper): // sprawdzenie liczby otwartych pozycji danego kontraktu // (przy okazji: jak w miejsce numeru rachunku wystarczy podać jego fragment) var ile = Bossa.Accounts["00-22-"].Papers["FW20M11"].Quantity;... oraz listę wszystkich bieżących zleceń (BosOrder): // wylistowanie aktywnych zleceń z danego rachunku foreach (var order in Bossa.Accounts["00-55-"].Orders) if (order.isactive) Console.WriteLine("{0}: {1} {2} x {3} - {4}", order.instrument, order.side, order.quantity, order.price, order.statusreport); Lista instrumentów (BosInstrument) jest automatycznie uzupełniana przy pierwszym użyciu danego symbolu: // szybki odczyt kursu danego instrumentu var kurs = Bossa.Instruments["KGHM"].Trades.LastPrice; Jeśli nie zdażył odebrać notowań, zwróci wyżej null. Możemy poczekać... albo podłączyć się pod Bossa.OnUpdate. // tym razem po kodzie ISIN zamiast Symbolu - możemy ich używać zamiennie var kghm = Bossa.Instruments.FindByISIN("PLKGHM000017"); // odczyt całej znanej historii notowań foreach (var trade in kghm.trades) Console.WriteLine("{0} {1,7} x {2,-5}", trade.time.timeofday, trade.price, trade.quantity); // odczyt najlepszych pozycji w tabeli ofert var bid = kghm.buyoffers.bestprice; var ask = kghm.selloffers.bestprice; Zlecenia składamy najlepiej też spod obiektu klasy BosInstrument: // złożenie zlecenia kupna 10 sztuk po 175.50 zł Bossa.Instruments["KGHM"].Buy(175.50, 10); // zlecenie sprzedaży 10 sztuk StopLoss z aktywacją po 170.00 zł Bossa.Instruments["KGHM"].Sell(BosPrice.PKC, 170, 10);