[BossAPI] DM BOŚ automatyczne zlecenia i BossaTrader Idzie nowe?

Narzędzia ułatwiające pracę tradera... arkusze, przydatne programy itp

[BossAPI] DM BOŚ automatyczne zlecenia i BossaTrader Idzie nowe?

Postprzez mirobe » 2010-06-07, 22:45

http://bossa.pl/index.jsp?layout=2&page ... at_id=1059

To można już robota na jakimś VPSie zapodać w bosiu:)

RM.
Awatar użytkownika
mirobe
 
Posty: 356
Dołączenie: 2007-12-16, 00:50
Miejscowość: Gdynia

Re: 07.06.2010 - Komentarze w czasie i po sesji...

Postprzez p4wgpw » 2010-06-08, 08:11

Niesamowite, własnym oczom nie dowierzam że jakieś BM zdecydowało się na udostępnienie API. Będzie pięknie jeśli się z tego nie wycofają rakiem.

Dzięki wielkie mirobe za info.
Awatar użytkownika
p4wgpw
 
Posty: 43
Dołączenie: 2008-07-14, 14:39
Miejscowość: Kraków

Re: 07.06.2010 - Komentarze w czasie i po sesji...

Postprzez olaf » 2010-06-08, 08:29

mirobe napisał(a):http://bossa.pl/index.jsp?layout=2&page=0&news_cat_id=1059

To można już robota na jakimś VPSie zapodać w bosiu:)

RM.


Ooo! Dobre :)
Mirobe, p4wgpw bedziecie probowali cos testowo zaprogramowac?

Sama aplikacja BossaTrader wyglada tez ciekawie do codziennego szybkiego klikania.
Musze doczytac jakie warunki uruchomienia tegoz....
Pozdrawiam... Olaf

"Trade What You See, Not What You Think"
"When the facts change, I change my mind - what do you do, sir?"
Awatar użytkownika
olaf
 
Posty: 1981
Dołączenie: 2006-06-21, 20:23

Re: 07.06.2010 - Komentarze w czasie i po sesji...

Postprzez p4wgpw » 2010-06-08, 08:37

Olaf ja na pewno będę próbował coś napisać, szczerze mówiąc już siedzę i kombinuję :)
Awatar użytkownika
p4wgpw
 
Posty: 43
Dołączenie: 2008-07-14, 14:39
Miejscowość: Kraków

Re: 07.06.2010 - Komentarze w czasie i po sesji...

Postprzez olaf » 2010-06-08, 09:58

p4wgpw napisał(a):Olaf ja na pewno będę próbował coś napisać, szczerze mówiąc już siedzę i kombinuję :)


:-)

Myslales juz jak to by to musialo wygladac teoretycznie, zeby skutecznie uruchomic najprosztszy system (no taki np. "3 sredenie") ? Sprzet/soft? Z tego co widze, bez NOLa sie chyba jednak nie da...


Zaraz sprobuje zainstalowac tego BossaTradera.
Pozdrawiam... Olaf

"Trade What You See, Not What You Think"
"When the facts change, I change my mind - what do you do, sir?"
Awatar użytkownika
olaf
 
Posty: 1981
Dołączenie: 2006-06-21, 20:23

Re: 07.06.2010 - Komentarze w czasie i po sesji...

Postprzez olaf » 2010-06-08, 10:36

olaf napisał(a):
p4wgpw napisał(a):Olaf ja na pewno będę próbował coś napisać, szczerze mówiąc już siedzę i kombinuję :)


Zaraz sprobuje zainstalowac tego BossaTradera.


No dobrze, zainstalowalem, poszlo bezproblemowo.
Pierwszy raz kilknalem, zlecenie poszlo i zrealizowalo sie bez problemu.
Troche sie czuje jak we mgle, bo pokazuje sie tylko komunikat o przyjetym zleceniu i nie wiem czy transakcja zawarta i jaki jest stan rejestru. No ale, pierwsze koty za ploty.
Samego BossaTradera moznaby rozwinac jako podstawowa aplikacje do skladania zlecen.

Co ciekawe, BT ma numerek wersji 1.2.6 wiec juz troche ktos testowal ten soft.
Pozdrawiam... Olaf

"Trade What You See, Not What You Think"
"When the facts change, I change my mind - what do you do, sir?"
Awatar użytkownika
olaf
 
Posty: 1981
Dołączenie: 2006-06-21, 20:23

Re: [BossAPI] DM BOŚ automatyczne zlecenia i BossaTrader Idzie n

Postprzez p4wgpw » 2010-06-09, 00:59

Jak dla mnie aplikacyjka BossaTrader i dołączona biblioteka nolclientapi.dll są bezużyteczne głównie z tego powodu że biblioteka jest zamknięta więc nie mogę sam jej rozszerzyć jeśli napotkam na jakąś brakującą funkcję.

W takim wypadku jedynym sensownym wyjściem wydaje się być użycie bossaAPI - FIXML. Zrobiłem pierwszy krok w tym kierunku, wydaje się to być całkiem proste. Poniżej kawałek kodu w C# umożliwiający zalogowanie do NOL3, może komuś się przyda do szybszego startu :)

//odczytanie parametrów podłączenia do socketa z rejestru
RegistryKey regKey = Registry.CurrentUser.CreateSubKey("Software\\COMARCH S.A.\\NOL3\\7\\Settings");
int nca_pasync = 0;
int.TryParse(regKey.GetValue("nca_pasync", "0").ToString(), out nca_pasync);
int nca_psync = 0;
int.TryParse(regKey.GetValue("nca_psync", "0").ToString(), out nca_psync);
int ncaset_pasync = 0;
int.TryParse(regKey.GetValue("ncaset_pasync", "0").ToString(), out ncaset_pasync);
int ncaset_psync = 0;
int.TryParse(regKey.GetValue("ncaset_psync", "0").ToString(), out ncaset_psync);

//otwarcie socketa synchronicznego
IPEndPoint ipEndSync = new IPEndPoint(IPAddress.Parse("127.0.0.1"), nca_psync);
Socket clientSockSync = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP);
clientSockSync.Connect(ipEndSync);
//komunikat Login
string loginReq = "<FIXML v=\"5.0\" r=\"20080317\" s=\"20080314\"><UserReq UserReqID=\"0\" UserReqTyp=\"1\" Username=\"BOS\" Password=\"BOS\"/></FIXML>";
byte[] loginReqByte = Encoding.ASCII.GetBytes(loginReq);
byte[] loginReqLen = BitConverter.GetBytes(loginReqByte.Length);
clientSockSync.Send(loginReqLen);
clientSockSync.Send(loginReqByte);
//odebranie potwierdzenia
byte[] responceData = new byte[4];
int receivedBytesLen = clientSockSync.Receive(responceData);
int responceDataLen = BitConverter.ToInt32(responceData, 0);
responceData = new byte[responceDataLen];
receivedBytesLen = clientSockSync.Receive(responceData);
string loginResponce = Encoding.ASCII.GetString(responceData);
Awatar użytkownika
p4wgpw
 
Posty: 43
Dołączenie: 2008-07-14, 14:39
Miejscowość: Kraków

Re: [BossAPI] DM BOŚ automatyczne zlecenia i BossaTrader Idzie n

Postprzez olaf » 2010-06-09, 22:58

p4wgpw napisał(a):Jak dla mnie aplikacyjka BossaTrader i dołączona biblioteka nolclientapi.dll są bezużyteczne głównie z tego powodu że biblioteka jest zamknięta więc nie mogę sam jej rozszerzyć jeśli napotkam na jakąś brakującą funkcję.

W takim wypadku jedynym sensownym wyjściem wydaje się być użycie bossaAPI - FIXML. Zrobiłem pierwszy krok w tym kierunku, wydaje się to być całkiem proste. Poniżej kawałek kodu w C# umożliwiający zalogowanie do NOL3, może komuś się przyda do szybszego startu :)

Kod: Zaznacz wszystko
   
//odczytanie parametrów podłączenia do socketa z rejestru
            RegistryKey regKey = Registry.CurrentUser.CreateSubKey("Software\\COMARCH S.A.\\NOL3\\7\\Settings");
            int nca_pasync = 0;
            int.TryParse(regKey.GetValue("nca_pasync", "0").ToString(), out nca_pasync);
            int nca_psync = 0;
            int.TryParse(regKey.GetValue("nca_psync", "0").ToString(), out nca_psync);
            int ncaset_pasync = 0;
            int.TryParse(regKey.GetValue("ncaset_pasync", "0").ToString(), out ncaset_pasync);
            int ncaset_psync = 0;
            int.TryParse(regKey.GetValue("ncaset_psync", "0").ToString(), out ncaset_psync);

           //otwarcie socketa synchronicznego
            IPEndPoint ipEndSync = new IPEndPoint(IPAddress.Parse("127.0.0.1"), nca_psync);
            Socket clientSockSync = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP);
            clientSockSync.Connect(ipEndSync);
            //komunikat Login
            string loginReq = "<FIXML v=\"5.0\" r=\"20080317\" s=\"20080314\"><UserReq UserReqID=\"0\" UserReqTyp=\"1\" Username=\"BOS\" Password=\"BOS\"/></FIXML>";
            byte[] loginReqByte = Encoding.ASCII.GetBytes(loginReq);
            byte[] loginReqLen = BitConverter.GetBytes(loginReqByte.Length);
            clientSockSync.Send(loginReqLen);
            clientSockSync.Send(loginReqByte);

            //odebranie potwierdzenia
            byte[] responceData = new byte[4];
            int receivedBytesLen = clientSockSync.Receive(responceData);
            int responceDataLen = BitConverter.ToInt32(responceData, 0);
            responceData = new byte[responceDataLen];
            receivedBytesLen = clientSockSync.Receive(responceData);
            string loginResponce = Encoding.ASCII.GetString(responceData);


Dziekujemy p4wgpw za dobry poczatek.
Ja nie jestem programista wiec dla mnie to calkiem nowe pola.
Liczymi, ze jak cos fajnego uda Ci sie wyprodukowac, to znowu sie z nami podzielisz ;-)

Rozwiniecie czegos na ksztalt BossaTrader z kilkoma fjuczerami ulatwiajacymi orientacje w stanie rachunku itd, to bylby dla wiekszosci skladajacych zlecenia juz spory postep.
Czytalem pobieznie specyfikacje FIXML dorobienie stanu portfela jest jak najbardziej mozliwe.

Podsumowujac to co dotychcas udalo mi sie doczytac, to ciagle jestesmy uzaleznieni od odpalania NOLa.
Pozdrawiam... Olaf

"Trade What You See, Not What You Think"
"When the facts change, I change my mind - what do you do, sir?"
Awatar użytkownika
olaf
 
Posty: 1981
Dołączenie: 2006-06-21, 20:23

Re: [BossAPI] DM BOŚ automatyczne zlecenia i BossaTrader Idzie n

Postprzez p4wgpw » 2010-06-10, 08:52

Rzeczywiście NOL musi być cały czas uruchomiony bo wszystko odbywa się za jego pośrednictwem ale nie wydaje mi się to wielkim problemem.

Jestem obecnie w trakcie testowania komunikatów FIXML. Jest możliwość sprawdzenia stanu rachunku (tzw wyciąg), dodawania/modyfikacji/anulowania zleceń, sprawdzania ich stanów, "zapięcia się" na notowania do 100 walorów. NOL co 2 sekundy informuje że jest z nim kontakt (komunikat HEARTBEAT). Dodatkowo istnieje możliwość sprawdzania statusu sesji oraz otrzymywania komuniaktów spływających na wizjer w DMBOŚ.

Dla mnie tak naprawdę wystarczyłaby sama możliwość dodawania/modyfikacji/anulowania zleceń oraz sprawdzanie ich stanów. Udostępnienie tego przez API pozwala na zbudowanie całej reszty "na zewnątrz" a jedynym ograniczeniem jest wówczas nasza pomysłowość :-)

Co do podzielenia się z czymś gotowym to jasne, czemu nie. Problem w tym że zrobienie tego zgodnie z wszelkimi zasadami wymaga napisania klas pośredniczących w obsłudze (komunikacja z socketami, wrappery, obsługa XMLa) a to zajmie sporo czasu. Znacznie szybciej będę miał coś dla siebie dzięki pójściu na skróty ale nie wiem czy będzie sie to nadawało do udostępnienia...
Awatar użytkownika
p4wgpw
 
Posty: 43
Dołączenie: 2008-07-14, 14:39
Miejscowość: Kraków

Re: [BossAPI] DM BOŚ automatyczne zlecenia i BossaTrader Idzie n

Postprzez p4wgpw » 2010-06-14, 15:34

Relacja moich prac :)
Zakończyłem fazę testów API BOSSy, biorę się teraz za coś konkretnego :-)
Poniżej zrzut mojego okna służącego do testów, widać na nim mniej więcej co oferuje API. Oczywiście to czego API nie oferuje można zrobić "na zewnątrz" (np. pociągnąć notowania z metastocka i namalować wykres).
Załączniki
BossaAPI.png
Awatar użytkownika
p4wgpw
 
Posty: 43
Dołączenie: 2008-07-14, 14:39
Miejscowość: Kraków

Re: [BossAPI] DM BOŚ automatyczne zlecenia i BossaTrader Idzie n

Postprzez olaf » 2010-06-14, 15:41

p4wgpw napisał(a):Relacja moich prac :)
Zakończyłem fazę testów API BOSSy, biorę się teraz za coś konkretnego :-)
Poniżej zrzut mojego okna służącego do testów, widać na nim mniej więcej co oferuje API. Oczywiście to czego API nie oferuje można zrobić "na zewnątrz" (np. pociągnąć notowania z metastocka i namalować wykres).


Wyglada obiecujaco. :-)

Niewiem czy zuwazyles, ale w piatek po publikacji danych (zrobil sie dosyc duzy ruch na rynku) mialem spore opoznienie w przekazywaniu informacji pomiedzy NOL a BossaTrader.
A moze tylko u mnie...
Pozdrawiam... Olaf

"Trade What You See, Not What You Think"
"When the facts change, I change my mind - what do you do, sir?"
Awatar użytkownika
olaf
 
Posty: 1981
Dołączenie: 2006-06-21, 20:23

Re: [BossAPI] DM BOŚ automatyczne zlecenia i BossaTrader Idzie n

Postprzez olaf » 2010-06-16, 10:11

olaf napisał(a):Niewiem czy zuwazyles, ale w piatek po publikacji danych (zrobil sie dosyc duzy ruch na rynku) mialem spore opoznienie w przekazywaniu informacji pomiedzy NOL a BossaTrader.
A moze tylko u mnie...


W piątek był dużo większy LAG, wczoraj (15.06) "tylko" 15sekund ;)
A to statica jest słynna ze sporego lagowania danych.
Załączniki
BT_NOL_STATICA_LAG_2.jpg
BT_NOL_STATICA_LAG.jpg
Pozdrawiam... Olaf

"Trade What You See, Not What You Think"
"When the facts change, I change my mind - what do you do, sir?"
Awatar użytkownika
olaf
 
Posty: 1981
Dołączenie: 2006-06-21, 20:23

Re: [BossAPI] DM BOŚ automatyczne zlecenia i BossaTrader Idzie n

Postprzez p4wgpw » 2010-06-21, 12:28

Zalążek mojej platformy.
Załączniki
moje.png
Awatar użytkownika
p4wgpw
 
Posty: 43
Dołączenie: 2008-07-14, 14:39
Miejscowość: Kraków

Re: [BossAPI] DM BOŚ automatyczne zlecenia i BossaTrader Idzie n

Postprzez p4wgpw » 2010-06-22, 00:50

No to jeszcze jeden obrazek bo przez jakiś czas nie przewiduję zmian w interfejsie. Dołożyłem m.in. możliwość składania zleceń oraz anulowania za pomocą dodatkowych przycisków na liście.
Załączniki
mojabossa.png
Awatar użytkownika
p4wgpw
 
Posty: 43
Dołączenie: 2008-07-14, 14:39
Miejscowość: Kraków

Re: [BossAPI] DM BOŚ automatyczne zlecenia i BossaTrader Idzie n

Postprzez olaf » 2010-06-22, 09:15

p4wgpw napisał(a):No to jeszcze jeden obrazek bo przez jakiś czas nie przewiduję zmian w interfejsie. Dołożyłem m.in. możliwość składania zleceń oraz anulowania za pomocą dodatkowych przycisków na liście.


Noo... dobre, dobre. Gratulacje :)
A jak jest rozwiazana sprawa algo do "autotradingu", czy np. mozna pobrac sygnaly z Amibrokera?
albo czy zlecenia moglyby byc skladane na podstawie warunkow zapisanych w zewnetrznym .txt?
Pozdrawiam... Olaf

"Trade What You See, Not What You Think"
"When the facts change, I change my mind - what do you do, sir?"
Awatar użytkownika
olaf
 
Posty: 1981
Dołączenie: 2006-06-21, 20:23

Re: [BossAPI] DM BOŚ automatyczne zlecenia i BossaTrader Idzie n

Postprzez p4wgpw » 2010-06-22, 10:02

Nie wiem jakie Amibroker daje możliwości odnośnie pobierania z niego danych a w szczególności sygnałów, czy to jest DDE czy jakiś inny mechanizm ale jeśli udostępnia takie informacje na zewnątrz to jak najbardziej. Składanie zleceń na podstawie parametrów zapisanych w pliku txt również jest możliwe. To jest właśnie piękne w API że nie jesteśmy wtłoczeni w żadne ramy pomijając rzecz jasna samo składanie zleceń. Dane można pobrać z wielu źródeł, coś tam sobie policzyć albo i nie a następnie puścić zlecenie.
Awatar użytkownika
p4wgpw
 
Posty: 43
Dołączenie: 2008-07-14, 14:39
Miejscowość: Kraków

Re: [BossAPI] DM BOŚ automatyczne zlecenia i BossaTrader Idzie n

Postprzez p4wgpw » 2010-06-23, 23:04

Przeglądając strony bosia znalazłem informację, że uruchomiony moduł wykresów zapisuje do pliku
C:\Users\...\.ispagpro\moja.nova.bossa.pl\FW20U10.intraday.txt
dane intra z 20 ostatnich sesji.

Mając dane wstecz z takiego okresu uzupełniane na bieżąco otrzymujemy ostatni element układanki do stworzenia automatu, chociażby grającego na trzech średnich ;-)

Poniżej wykresik namalowany w moim module na podstawie wspomnianego pliku.
Załączniki
wykres.png
Awatar użytkownika
p4wgpw
 
Posty: 43
Dołączenie: 2008-07-14, 14:39
Miejscowość: Kraków


Powróć do Narzędzia

Kto jest na forum

Użytkownicy przeglądający to forum: Brak zarejestrowanych użytkowników oraz 1 gość