This repository has been archived by the owner on Jan 5, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 8
/
README.txt
114 lines (87 loc) · 6.38 KB
/
README.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
"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ęnia ona czytelne 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 czy sama komunikacja opiera się na współpracy z aplikacją NOL3
(jak dzisiaj), czy może bezpośrednio z serwerami DM (w przyszłości) albo
jeszcze inaczej (np. z komórki do własnego serwera w domu, gdzie działa NOL3).
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ą udostepniać swoje modyfikacje, do czego oczywiście zachęcam).
Przemysław Jankowski
-------------------------------------------------------------------------------
http://www.pjank.net/bossa.api/ e-mail: [email protected]
-------------------------------------------------------------------------------
Szybki start:
-> uruchom aplikację "DemoApp.exe" -
tak zobaczysz jak (i czy w ogóle :)) to wszystko działa...
-> przejrzyj opis (z przykładami) na początku pliku "BossaAPI\src\Bossa.cs"
-> uruchom "DemoConsole" i obejrzyj jej kod źródłowy, m.in. katalog 'Modules'
-> podlinkuj do swojego projektu "pjank.BossaAPI.dll" i korzystaj ;-)
Mamy tu obecnie 4 projekty (biblioteka + kilka przykładów jej użycia):
1) "BossaAPI" - kod samej biblioteki, podzielony na kilka warstw:
a) "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) DemoApp - przykładowa aplikacja GUI
Aplikacja demonstruje większość dostępnych funkcji, włącznie z możliwością
oglądania tabeli z aktualnymi notowaniami i składania zleceń. Jednocześnie
w okienku logu umożliwia podgląd wszystkiego, co się dzieje "pod maską".
Całość wykorzystuje "zewnętrzną" warstwę biblioteki - klasę "Bossa".
3) DemoConsole - aplikacja konsolowa obejmująca całą serię przykładów
Demonstruje sposób wykorzystania wybranych elementów biblioteki - zarówno
prostszej klasy "Bossa", jak i mniej lub bardziej zaawansowane użycie klasy
"NolClient"... a nawet połączenie obu tych metod w jednej aplikacji.
Każdy z przykładów zapisano w formie samodzielnego "modułu", których lista
wyświetla się w formie menu po uruchomieniu aplikacji.
Polecam zajrzenie do kodu źródłowego interesujących nas modułów.
4) MarketMonitor - bardziej "praktyczna" przykładowa aplikacja konsolowa
Programik, który możemy wywołać z parametrami - listą instrumentów...
a na wyjściu otrzymamy bieżące notowania tych wybranych instrumentów.
===== 2012-06-03 == wersja 0.4 ================================================
Rozbudowa klasy "Bossa" o obsługę takich danych, jak: LOP, wolumen sesji,
cena otwarcia/zamknięcia itp.
Rozszerzenie i uporządkowanie dołączonych aplikacji przykładowych.
I szereg drobniejszych poprawek zrealizowanych w ciągu ostatniego roku.
===== 2011-03-28 == wersja 0.3 ================================================
W miarę zamknięta "zewnętrzna warstwa" biblioteki w postaci klasy "Bossa"
i tego, co się z niej dalej wywodzi (lista rachunków, dane dotyczące tych
rachunków, lista instrumentów, ich notowania, składanie zleceń itp.).
Dodano też drugą przykładową aplikację - tym razem z interfejsem graficznym -
która pozwala niemal całkowicie zarządzać swoim rachunkiem podczas sesji (może
nieco surowa forma, ale to w końcu głównie prezentacja możliwości biblioteki).
===== 2011-02-01 == wersja 0.2 ================================================
Pierwsza upubliczniona wersja biblioteki.
Generalnie ukończony (na ile to możliwe, przy dostępnej na dzień dzisiejszy
wersji protokołu/aplikacji/dokumentacji oferowanych przez ludzi z Bossy) szereg
"niskopoziomowych" klas odpowiedzialnych za komunikację FIXML z aplikacją NOL3.
Do tego klasa "NolClient" umożliwiająca już teraz zbieranie bieżących notowań
wybranych instrumentów w postaci łatwej do dalszego przetwarzania.
===============================================================================