piątek, 11 lipca 2008

MSDataSync

Program do przenoszenia danych intraday z NOL3 lub MT4 do Metastock poprzez DDE.

Jest to wersja portable czyli nie ma potrzeby instalacji, wystarczy rozpakować archiwum i uruchomić plik MSDataSync.exe. Do prawidłowej pracy wymagane jest wskazanie katalogu z plikami metastock, do których mają być przenoszone notowania (można wskazać katalog bieżący programu) oraz udostępnienie kolumn do odczytu przez mechanizm DDE poprzez kombinację klawiszy Ctrl + Shift + C. Dokładniejszy opis w instrukcji.


v1.0.0.2
Dodano możliwość zmiany komend wykorzystywanych przy komunikacji przez DDE. Dzięki temu mamy możliwość połączenia się z dowolnym programem udostępniającym notowania przez ten mechanizm.

v1.0.0.3
Dzięki uprzejmości pewnego internaty (dzięki jasiu :) ) udało się namierzyć i poprawić błąd w dostępie do NOL3 z BZ WBK. Sposób konfiguracji na jednym ze zrzutów poniżej.

v1.0.0.4
Kolejna zmiana w moim programiku - dodałem możliwość spięcia z programem Metatrader 4 (MT4). Testowałem dwa dni na wersji demo dostępnej w xtb (https://www.xtb.pl/strona.php?p=99&cp=1) i działa bez najmniejszych przerw czy problemów.
Osobiście zacząłem z tego korzystać aby na jednym wykresie metastocka wyświetlić FW20 wraz z DE30, są one ostatnimi czasy dość dobrze skorelowane.
W celu spięcia wspomnianych programów należy po pierwsze w programie metatrader zaznaczyć w opcjach "Włącz DDE Server" a następnie w moim programie w opcjach DDE wybrać rodzaj servera "MT4". Pozostaje dodanie przez opcję "New security" potrzebnych instrumentów (jak EURPLN, EURUSD, DE30) i można zacząć synchronizację.
Dodatkowo jako pierwszy krok do dodania funkcjonalności backfill dodałem możliwość uzupełniania notowań na podstawie plików PRN udostępnianych na stronach BOSSA. Przykładowo wczytanie 30 min danych WIG20 na podstawie pliku zawierającego prawie 4 mln linii obejmujących ostatnie 9 lat trwa kilkanaście sekund. Wcześniej aby uzyskać taki efekt musiałem posiłkować się plikami Excela a cały proces zajmował mi nie mniej niż godzinę.

v1.0.0.5
Poprawka - większa odporność na różne ustawienia regionalne związane z formatem daty w pliku PRN (dziękuję za zgłoszenie błędu w komentarzach). Dodałem również możliwość automatycznego ponownego połączenia po trwającej 2min przerwie w komunikatach DDE oraz ustawienie jakie instrumenty mają pomijać informację o wolumenie transakcji (opcja "Indexes list"). Wprowadziłem także zmianę polegającą na tym, że w sytuacji wybrania okresu innego niż dane tickowe (5 min, 10 min itd), kolejne wpisy dodawane są na początku danego okresu a nie w momencie pierwszej transakcji w danym okresie.

v1.0.0.6
Wczytywanie danych intraday z plików prn i txt udostępnianych na stronach BOSSA, BZ WBK, Parkiet.
Poprawki przy wczytywaniu danych intraday - wyskakiwał błąd jak w systemie był inny znak oddzielający cyfry dziesiętne dla waluty i liczb.
Możliwość ustawienia interwału przy tworzeniu nowego instrumentu.
Zapamiętywanie położenia okna.

v1.0.0.7
Drobna modyfikacja ze względu na brak czasu. Tak zwane backfill czyli dodanie możliwości wczytywania plików z MetaTrader (XTB-Trader).
W tym celu w programie MetaTrader otwieramy dany wykres, wybieramy okres (M1, M5, M15, M30, H1, H4, D1, W1, MN), przewijamy wykres wstecz tak aby jak najwięcej danych historycznych zostało załadowanych, naciskamy skrót klawiszy Ctrl+S (Save) i zapisujemy plik PRN lub CSV w katalogu. Następnie ten właśnie plik wskazujemy w MSDataSync pamiętając zawsze aby ustawić opcję „Minutes per bar” ponieważ pliki z MetatTradera nie zawierają tej informacji.

v1.0.0.8
Ponownie drobna zmiana - dołożenie opcji 15min, 30min, 60min na oknie synchronizacji oraz "Quotes to 60 min" do menu kontekstowego.



Konfiguracja DDE dla NOL3 z BOSSA



Konfiguracja NOL3 dla DDE z BZ WBK






Folder z plikami:
MSDataSync

Najbardziej aktualna wersja (1.0.0.8):
MSDataSync.zip

Instrukcja:
MSDataSync.pdf

Pobierz plik