Ostatnio wyjaśniałem znaczenie skrótu OHLC jako syntetycznego
opisu
kursu waluty w obrębie pewnego interwału czasowego. Podane były
również przykłady jego typowych sposobów wizualizacji. Trzeba
jednak sobie zdawać sprawę, że obrazki to jedno, natomiast równie
istotne (jeśli nie bardziej) są metody wykonywania obliczeń na
historycznych notowaniach walut. Szczególnie istotne w kontekście
algorytmów i symulacji komputerowych, które jak wiadomo leżą w
centralnym punkcie tematyki tego bloga.
Skoro
tak, to te dane trzeba przechowywać w jakichś plikach
i jakoś je wczytywać celem realizacji algorytmu. Czy to za pomocą
dostępnych gotowych narzędzi czy też z wykorzystaniem tworzonego
samodzielnie oprogramowania. Musi istnieć zatem określony format
pliku
do tego przeznaczony.
Formatów
plików jest niezliczona ilość: biurowych, graficznych,
multimedialnych i innych. Co gorsza, powszechnym zjawiskiem jest
ich zmienność.
Wraz z kolejnymi wersjami oprogramowania, format danych przez nie
stosowany ulega zmianom. Cóż, producenci software-u muszą z czegoś
żyć. Jest to jednak co najmniej uciążliwe z punktu widzenia
użytkownika. Często jedna wersja programu nie jest w stanie dokonać
poprawnego importu
i exportu
danych tak, aby można było wymieniać dane z inną jego wersją.
W
przypadku obliczeń i symulacji działań na rynkach finansowych
sytuacja taka jest jednak wręcz niedopuszczalna. Inwestor
działający na Forex nie może sobie pozwolić na to, aby zaprzątać
jego głowę ciągłymi problemami niezgodności formatów – on
musi się skupić na obliczeniach i ich wynikach, które są podstawą
do działań finansowych. W końcu tu chodzi o pieniądze.
Potrzebny
jest zatem format, który jest:
- prosty,
- niezmienny od lat,
- czytelny dla człowieka – odpadają zatem formaty binarne.
Taki
format jest: plik typu CSV,
co pochodzi od angielskich słów comma-separated
values.
Jest to w istocie plik tekstowy, który zawiera kolejne linijki o
takiej samej strukturze. Są to liczby oddzielane ustalonym znakiem,
typowo przecinkiem,
jak mówi sama nazwa.
Najprościej
wszystko wyjaśnia przykład – fragment pliku zawierającego kursy
dolara USA względem złotówki:
2012.05.29,11:00,3.4739,3.4834,3.4708,3.4784,1737
2012.05.29,12:00,3.4785,3.4843,3.4756,3.4793,1572
2012.05.29,13:00,3.4791,3.4838,3.4739,3.4745,1762
2012.05.29,14:00,3.4744,3.4811,3.4643,3.4725,2416
Pierwsze
pole zawiera datę w formacie yyyy.mm.dd
czyli rok, miesiąc i dzień zapisane zawsze za pomocą ustalonych
ilości cyfr. Następnie jest czas podany jako hh:mm,
czyli godzina i minuta. Przy tym jest to czas początku
interwału czasowego,
który obejmuje dana linijka. Dalsze cztery liczby oznaczają kurs z
początku (O), kurs maksymalny (H), minimalny (L) oraz końcowy (C).
Przy tym kolejność
tych wartości jest zawsze taka sama.
Ostatnia
z tych liczb oznacza wielkość obrotu daną parą walut. Zwykle jest
ona jednak najmniej przydatna z punktu widzenia inwestora ponieważ
typowo zawiera wielkość obrotu jedynie u jednego konkretnego
brokera – tego który udostępnia notowania. A Forex jest rynkiem
zdecentralizowanym.
Z punktu widzenia strategii i algorytmu działania najbardziej
przydatna byłaby liczba dająca informację, choćby szacunkową, na
temat ogólnej
wielkości obrotu
danymi walutami na całym świecie. Są brokerzy, który udostępniają
takie wartości, jednak zwykle dotyczy to rachunków dla klientów o
dużych wielkościach obrotu. Mając rachunek o skali rzędu 5 tys.
lub 10 tys. PLN raczej nie ma co liczyć na dostęp do takich danych.
Z tego też powodu praktycznie wszystkie prezentowane tutaj strategie
i algorytmy będą bazować wyłącznie
na danych OHLC.
Ostatnią
kwestią którą trzeba znać jest nazewnictwo plików. Tutaj też
sprawa jest prosta – nazwa pliku zaczyna się od sekwencji
zawierającego 2 razy po 3 znaki. Są one kodami walut wg standardu
ISO 4217 widocznego tutaj. Pierwszą jest
waluta, której kurs jest podawany w pliku a drugą jest ta, w której
ten kurs jest wyrażony. W podanym wyżej przykładzie fragmentu
pliku ten ciąg znaków to zatem USDPLN.
Dalej
następuje liczba określająca interwał
czasowy
wyrażony w minutach,
ponieważ taka jest typowa minimalna jego długość dla powszechnie
dostępnych
archiwów danych. Krótsze interwały dostępne są raczej w drogich
komercyjnych serwisach. Stąd łatwo określić przykładowe nazwy
plików i zapamiętać liczby, co przydaje się przy przeglądaniu
archiwów:
USDPLN1.csv
– dane minutowe,
USDPLN60.csv
– dane godzinne,
USDPLN1440.csv
– dane dobowe,
USDPLN10080.csv
– dane tygodniowe (przyjmuje się 7 dni w tygodniu),
USDPLN43200.csv
– dane miesięczne - .niektórzy operują nawet na tak długich
interwałach!
Długość
interwału nazywana jest też często skrótem
TF,
co oznacza ramę czasową (ang. time
frame).
Warto ten skrót pamiętać bowiem należy on do żargonu stosowanego
na różnych forach i listach dyskusyjnych dotyczących Forex.
Jak
więc widać, wszystko jest maksymalnie
proste i czytelne.
W następnych tekstach pokażę na przykładach gdzie tych danych
można szukać i co z nimi można zrobić. Tak aby móc z nich
skorzystać do realizacji celów właściwych – projektowania i
badania strategii i algorytmów.
Brak komentarzy:
Prześlij komentarz