Warsztat inwestora

Nadchodzący 2000 rok stanowi poważne zagrożenie dla prawidłowego funkcjonowania milionów komputerów na całym świecie. Nad rozbrojeniem milenijnej bomby w programach giełdowych informatycy pracują od dłuższego czasu. Wielu producentów, zwłaszcza zagranicznych, przygotowało już odpowiednie nakładki, pozostali zapewniają, że zdążą przed końcem roku.

Przyczyn "problemu 2000", określanego także w skrócie jako Y2K (z ang. year-2-kilo, czyli rok 2000), należy doszukiwać się w wysokich cenach pamięci operacyjnej i masowej w początkowym okresie rozwoju informatyki. Stałe kłopoty z pojemnością pamięci przesłoniły informatykom niebezpieczeństwo wystąpienia katastrofy z końcem wieku, który wydawał się okresem bardzo odległym. Zapewne nie przypuszczali, że do tego czasu przetrwają tworzone przez nich programy stosujące skrócony zapis daty. Przyjęte wówczas rozwiązanie polegało bowiem na oznaczaniu roku za pomocą jedynie dwóch ostatnich cyfr. Przyniosło to duże oszczędności pamięci (krótsza data to o dwa bajty pamięci mniej) i czasu potrzebnego na wprowadzanie danych. Dodatkowymi korzyściami były skrócenie czasu przesyłania danych oraz zmniejszenie liczby błędów podczas wprowadzania danych. Dwucyfrowy format zapisu roku do dzisiaj pozostał standardem w zdecydowanej większości komputerów. Za oszczędność programistów z lat 60. świat zapłacił już kilkadziesiąt miliardów dolarów (sprawdzenie programów komputerowych, ich poprawienie lub wymiana). Rachunek w przyszłym roku może być wielokrotnie wyższy.Cofanie czasuW niemal wszystkich eksploatowanych obecnie komputerach i to zarówno domowych PC-etach, jak i potężnych systemach komputerowych klasy mainframe, dane dotyczące daty są zapisywane w formacie rrmmdd, przy czym dwie pierwsze cyfry roku przyjmują wartość domyślną 19. 1 stycznia 2000 roku zapis daty w postaci "000101" może zostać zinterpretowany jako 1 stycznia 1900, z wszelkimi dotyczącymi tego konsekwencjami obliczeniowymi. Prawdopodobne jest również wystąpienie innych błędów w rozpoznawaniu daty. Jak wiadomo, 2000 rok jest rokiem przestępnym, jednak niektóre komputery mogą rozpoznać go jako rok zwykły. W rezultacie po 28 lutego nastąpi od razu 1 marca.Istnieją także inne możliwości. Komputery w 2000 roku mogą przestawić zegar na domyślny czas systemowy. W niektórych systemach będzie to 1980 rok, w innych 1900 lub 1984. Prawdopodobne jest także, że część komputerów w ogóle przestanie działać - po ustawieniu rejestrów, daty na 01.01.00 po prostu zatrzymają się.Analiza problemuOdporność giełdowego software'u na problem roku 2000 należy rozpatrywać w dwóch kategoriach - formatu danych oraz wewnętrznej budowy programu. Z jakimi problemami może wiązać się przejście z daty 1999 na 1900? Na przykład, zlecenia złożone w 1999 roku mogą okazać się zleceniami złożonymi później niż aktualna sesja (1900), a więc system odrzuci je, jako nieadekwatne dla bieżącej obróbki danych. Nowe notowanie dopisane po ostatnim może automatycznie "wskoczyć" do bazy przed dotychczasowe pierwsze notowanie. Spółka, która po raz pierwszy była notowana w 1995 roku, nie będzie wyświetlana w 2000 roku, ponieważ dla komputera jest to 1900 rok, trzeba więc jeszcze długo czekać na jej pojawienie się. Na koncie może nie być pieniędzy, bo pierwsza wpłata nadejdzie za 90 lat itd., itp.Formaty danychNotowania giełdowe są dostępne na rynku w kilku różnych formatach tekstowych. W popularnych formatach dominuje zapis daty zawierający dwucyfrowe oznaczenie roku. Łatwo to sprawdzić, otwierając plik z notowaniami za pomocą edytora tekstu. Rok zapisany dwucyfrowo nie pozwala określić stulecia, którego dotyczy notowanie. Należy przyjąć, że formaty zawierające dwucyfrowe oznaczenie roku nie są odporne na problem roku 2000, nawet jeśli zawierają dane wyłącznie z bieżącego stulecia.Warto zauważyć, że dwucyfrowy zapis roku nie wyklucza możliwości obsługi notowań na przełomie stuleci. Wystarczy ustalić rok graniczny. Notowania z rokiem wcześniejszym niż grany należy uznać za dotyczące nowego stulecia. Rozwiązanie to ma jednak wiele wad, należy je więc traktować jako półśrodek.Wewnętrzna budowa programuProgramy do analizy technicznej odczytują dane z plików tekstowych, a następnie zapisują je we własnej, wewnętrznej bazie danych. Część programów stosuje dwucyfrowy zapis roku w bazie wewnętrznej. Takie programy są z definicji nieodporne na problem roku 2000. Można wprawdzie wyobrazić sobie rozwiązanie z rokiem granicznym, analogiczne do opisanego w akapicie dotyczącym formatów danych, jednak takie rozwiązanie ma sporo wad.Rozważając dostosowanie programów do problemu roku 2000 nie należy zapominać o tym, że program zazwyczaj pobiera dane z plików tekstowych. Jeśli więc jest dostosowany wyłącznie do plików z dwucyfrowym oznaczeniem roku, to sposób zapisu danych w wewnętrznej bazie jest nieistotny. Wymienione wcześniej potencjalne przyczyny problemów to tylko drobna część potencjalnych zagrożeń. Trzeba także pamiętać, że zaawansowane programy do analizy technicznej wykonują wiele operacji z użyciem daty notowania. Przykładem może być optymalizacja wskaźników. Miarą jakości systemu jest zazwyczaj roczna stopa zwrotu. Obliczając tę stopę dla lat od 1998 do 2001, uzyskamy różny okres czasu dla obliczeń opartych na zapisie dwu- i czterocyfrowym. Dla zapisu czterocyfrowego będą to 3 lata (prawidłowo), a dla zapisu dwucyfrowego będzie to -97 lat, a więc kompletna bzdura.Stan przygotowańPora na prezentację przygotowań do "problemu 2000" producentów najbardziej znanych na naszym rynku programów giełdowych. Najczęściej stosowanym rozwiązaniem jest opracowanie dodatkowych programów, tzw. nakładek, które wprowadzają 4-cyfrowy format roku lub zapobiegają awarii systemów przy użyciu starego formatu.l ABAKUS - Giełda 96, Statystyka. Przed końcem br. użytkownicy otrzymają nakładkę uodparniającą program na rok 2000.l ABAKUS - Giełda Gold (freeware). Nowa wersja, odporna na rok 2000, została już przetestowana i zostanie udostępniona zaraz po wakacjach. Poza poprawką obsługi danych wprowadzono w niej wiele ułatwień i ulepszeń - między innymi obsługę notowań ciągłych.l Advanced GET. Pakiet obsługuje dwu- i czterocyfrowy sposób zapisu roku. Najpopularniejszy w kraju sposób zasilania programu w dane polega na korzystaniu z bazy danych programu MetaStock. W takim przypadku zgodność z rokiem 2000 zależy od formatu danych programu MetaStock. Uzyskanie zgodności z rokiem 2000 wymaga formatu danych zastosowanego w programie MetaStock 6.52. Notowania w tym formacie mogą być wykorzystywane przez wersję 7.5 programu Advanced GET.l ASHER AAT. Program w pełni dostosowany do problemu roku 2000. Akceptuje dwu- i czterocyfrowe oznaczenie roku. Dla oznaczenia dwucyfrowego, rokiem granicznym jest 50. Oznaczenie czterocyfrowe pozwala prawidłowo interpretować notowania od początku naszego kalendarza, aż do roku 9999. Dotyczy to wszystkich wersji programu i wszystkich systemów notowań.l ASHER NPG. Program jest przystosowany do korzystania z notowań uzyskiwanych z popularnych wśród inwestorów dekoderów teletekstu, a więc zawierających dwucyfrowe oznaczenie roku. Rokiem granicznym jest 09. Oznacza to, że program powinien prawidłowo interpretować notowania do końca 2009 roku.l ATech. W przygotowaniu upgrade uodporniający program na rok 2000.l Kapitał, Cyklop, Tsunami, Horyzont (dawniej Victor). Ze względu na korzystanie przez programy firmy MOTTE z jednej bazy danych i ich wewnętrzną zgodność z sobą, wszystkie mogą być rozpatrywane razem. Baza, w której przechowywane są notowania, jest klasyczną bazą danych Paradox firmy BORLAND. Możemy więc tę bazę podejrzeć i zobaczyć ewidentnie czterocyfrowy rok (patrz rysunek). W przypadku dodawania nowych notowań z s-plików o dwucyfrowej dacie, sesje o roku mniejszym od 50 program traktuje jako występujące po 2000 roku. Ponadto po wczytaniu, a przed zapisem do bazy notowań, istnieje możliwość ręcznej zmiany daty dwucyfrowej na czterocyfrową. Opcja ta może być zablokowana w niektórych wersjach, co oznacza istnienie opcji automatycznego przeliczania lat.l MetaStock. Kompatybilna z rokiem 2000 jest najnowsza wersja oznaczona numerem 6.52. Program akceptuje dwu- i czterocyfrowy zapis roku. Przy zapisie dwucyfrowym rokiem granicznym jest 26. Baza danych programu MetaStock jest wykorzystywana przez wielu inwestorów jako źródło danych dla innych programów giełdowych (np. Advanced GET, OmniTrader). Warto zaznaczyć, że nie wszystkie wersje takich programów rozpoznają format danych, zastosowany w wersji 6.52. Problem może pozostać niewidoczny, aż do chwili wprowadzenia pierwszych notowań z 2000 roku, kiedy to MetaStock automatycznie przebuduje bazę danych. Do chwili wprowadzenia notowań z 2000 roku program przechowuje notowania w formacie stosowanym w wersji 6.5.l SuperCharts. Instalacja nakładki zgodnej z rokiem 2000 (SC 4.0 build 8) wymaga posiadania wersji 4.0 build 7. SuperCharts 4.0 będzie prawidłowo interpretować datę w formacie dwucyfrowym (rr) do 31.12.2020 (najbardziej popularny format np. pliki tekstowe). Z kolei czterocyfrowy format roku (rrrr) daje gwarancję niezawodnego działania do 31.12. 2079. Warto także dodać, że SuperCharts 4.0 build 8 bezproblemowo "czyta" notowania zapisane w formacie MetaStock zgodnym z rokiem 2000. Sprawdziłem to, generując bazę testową utworzoną z fikcyjnych danych obejmujących 1999 i 2000 rok za pomocą DownLoadera z MetaStocka 6.52. Tego rodzaju kompatybilność jest dobrą wiadomością dla użytkowników obu programów, prowadzących bazę tylko w jednym wybranym formacie (głównie MetaStocka). Pod koniec roku Omega Research zapowiada nową wersję: SuperCharts 2000i, pozostałe produkty firmy Omega Research mają już swoje odpowiedniki 2000: TradeStation 2000i, OptionStation 2000i, RadarScreen 2000i, Prosuite 2000i.Dodatkowe problemyMimo że do nadejścia 2000 roku pozostały jeszcze 4 miesiące, to jednak już pewne zamieszanie w komputerach może wywołać także inna, znacznie wcześniejsza data. Już za 2 tygodnie dzień 9 września 1999 zapisany będzie w komputerach w postaci 9.9.99, która w niektórych systemach informatycznych jest stosowana do oznaczania nieskończoności (mówiąc językiem fachowym, chodzi o zjawiska, które nie mają ograniczenia czasowego).Warto także pamiętać, że na odporność programu na rok 2000 może wpłynąć odporność samego systemu operacyjnego. DOS w zasadzie nie jest przygotowany do pracy po 2000 rokuX. Podobnie może być też z niektórymi odmianami wersji MS-Windows 3.1. Może też zdarzyć się, że "cofnięcie" daty zostanie zinterpretowane przez moduł zabezpieczeń któregoś z programów przed kopiowaniem jako próba utworzenia nielegalnej kopii, lub że programy prowadzą własne rejestry czasu, które zapobiegają przenoszeniu programu z komputera na komputer.

KAROL JARZYŃSKI