Złoto jako bezpieczna inwestycja Dlaczego warto inwestować w złoto? Analiza i przewidywania Jakub Kaczmarski Bartosz Holski 26.01.2025 II rok, studia niestacjonarne Informatyka Uniwersytet Ekonomiczny w Katowicach WPROWADZENIE DO ZŁOTA Złoto od wieków cieszy się uznaniem jako bezpieczna forma przechowywania wartości. Jest to jeden z niewielu surowców, który nie tylko przetrwał próbę czasu, ale także zwiększył swoje znaczenie w dzisiejszym świecie inwestycji. W tym dokumencie przedstawimy argumenty, które tłumaczą, dlaczego złoto jest uznawane za bezpieczną inwestycję oraz jak można w nie inwestować. DLACZEGO ZŁOTO JEST CENNE? Złoto to jeden z najstarszych znanych człowiekowi surowców. Od tysiącleci pełni rolę waluty, symbolu bogactwa i statusu. Jego wartość utrzymuje się na stabilnym poziomie, ponieważ jest surowcem rzadkim i odpornym na korozję. Współczesna gospodarka traktuje złoto jako formę przechowywania wartości, a także jako zabezpieczenie przed inflacją oraz kryzysami gospodarczymi. • Rzadkość: Złoto jest ograniczonym zasobem, którego wydobycie staje się coraz trudniejsze, co wpływa na jego cenę. • Popyt: Złoto znajduje szerokie zastosowanie nie tylko w jubilerstwie, ale także w przemyśle technologicznym, medycynie i elektronice. • Odpornność na zmiany: Złoto nie podlega takim samym zjawiskom rynkowym jak inne aktywa, np. waluty czy akcje, które mogą szybko stracić na wartości. KORZYŚCI Z INWESTOWANIA W ZŁOTO Złoto oferuje szereg korzyści, które przyciągają inwestorów na całym świecie: • Stabilność: Złoto jest jednym z nielicznych aktywów, którego wartość utrzymuje się stabilnie na przestrzeni lat, niezależnie od zmieniającej się sytuacji gospodarczej. • Zabezpieczenie przed inflacją: Złoto jest znane ze swojej zdolności do ochrony przed wzrostem cen i spadkiem wartości pieniądza. 1 • Dywersyfikacja portfela: Złoto jest doskonałym uzupełnieniem innych form inwestycji, takich jak akcje czy obligacje. Zwykle jego cena rośnie, gdy inne aktywa tracą na wartości. • Płynność: Złoto jest łatwo dostępne na rynku międzynarodowym i może być sprzedane w dowolnym momencie, co czyni je bardzo płynny aktywem. JAK NAJPROŚCIEJ ZAINWESTOWAĆ W ZŁOTO Najprostszymi sposobami inwestowania w złoto są: 1. Zakup fizycznego złota - Można kupić monety bulionowe, sztabki lub biżuterię. Wymaga to przechowywania i ubezpieczenia. 2. Fundusze ETF na złoto - Inwestowanie w fundusze giełdowe śledzące cenę złota, np. SPDR Gold Trust (GLD). 3. Konta maklerskie - Zakup kontraktów terminowych (futures) lub akcji spółek związanych z wydobyciem złota. 4. Kryptowaluty oparte na złocie - Cyfrowe tokeny, np. PAX Gold, które są zabezpieczone fizycznym złotem. 5. Lokaty i certyfikaty złota - Banki oferują produkty inwestycyjne oparte na wartości złota. PRZEWIDYWANIE CENY ZŁOTA Przewidywanie przyszłych cen złota może być wyzwaniem, ponieważ zależy od wielu zmiennych, w tym polityki monetarnej, inflacji, podaży złota oraz wydarzeń geopolitycznych. Istnieją różne metody analizy i prognozowania przyszłych cen złota, w tym analiza fundamentalna oraz techniczna. Do przewidywań cen złota można wykorzystywać dane historyczne oraz modele matematyczne, np. regresję liniową, drzewa decyzyjne, czy sztuczne sieci neuronowe. 2 WYNIKI LSTM - Long Short-Term Memory Skrypt wykorzystuje dane historyczne cen złota do przewidywania przyszłych wartości przy użyciu sieci neuronowej LSTM (Long Short-Term Memory). Poniżej opis poszczególnych etapów i funkcji: 1. Pobranie danych: ○ df = yf.download("GC=F", start="2014-01-01", end="2025-01-01") - Pobiera dane historyczne cen kontraktów futures na złoto. ○ data = df[['Close']] - Wybiera kolumnę z cenami zamknięcia. 2. Przetwarzanie danych: ○ scaler = MinMaxScaler(feature_range=(0, 1)) - Skalowanie danych do przedziału 0-1. ○ look_back = 60 - Definiuje zakres danych (60 dni) do nauki modelu. ○ Przygotowanie danych treningowych i testowych, w tym przekształcenie do formatu 3D dla LSTM. 3. Budowa modelu LSTM: ○ model = Sequential() - Tworzy model sieci neuronowej. ○ Dodanie warstw LSTM oraz gęsto połączonych (Dense). ○ model.compile(optimizer='adam', loss='mean_squared_error') Kompilacja modelu z optymalizatorem Adam. ○ model.fit(x_train, y_train, batch_size=1, epochs=5) - Trening modelu. 4. Predykcja i walidacja: ○ Testowanie modelu na zbiorze testowym. ○ Odwrócenie skalowania wyników do oryginalnej skali. ○ Obliczenie błędu RMSE dla oceny dokładności modelu. 5. Prognozowanie przyszłych cen: ○ Skrypt przewiduje ceny na kolejny rok (365 dni). ○ Wyniki są wizualizowane na wykresie. 6. Wizualizacja wyników: ○ Wykresy pokazują historyczne i przewidywane ceny. 3 ○ Osobny wykres dla przewidywanej ceny następnego dnia. KNN - K-Nearest Neighbors 4 1. Pobieranie danych ● Skrypt korzysta z biblioteki Yahoo Finance (yfinance) do pobrania historycznych danych cen złota (symbol: GC=F) w okresie od 2010-01-01 do 2023-12-31. Dane obejmują kilka kolumn, jednak wybierana jest tylko kolumna Close (cena zamknięcia), która jest podstawą analizy. 2. Normalizacja danych ● Dane są skalowane do zakresu [0,1] za pomocą MinMaxScaler z biblioteki sklearn.preprocessing. Normalizacja poprawia skuteczność algorytmu KNN poprzez standaryzację wartości wejściowych. 3. Podział danych Zbiór danych jest dzielony na część treningową i testową w proporcji 80% trening / 20% test. 4. Przygotowanie danych do trenowania ● Zaimplementowana jest funkcja create_dataset(), która generuje zestawy cech i etykiet na podstawie określonej liczby kroków czasowych (time_step=60). ○ Wejście: data - znormalizowane dane cenowe. ○ Wyjście: X, y - tablice z odpowiednio przygotowanymi próbkami danych do modelowania. ● Funkcja przesuwa okno czasowe o 60 dni, gdzie dla każdego punktu X składającego się z 60 kolejnych wartości, przypisana jest następna wartość y. 5. Trenowanie modelu KNN ● Skrypt wykorzystuje algorytm K Nearest Neighbors (KNN) do przewidywania przyszłych wartości cenowych. Model jest trenowany za pomocą KNeighborsRegressor z parametrem n_neighbors=10, co oznacza, że prognoza jest wyznaczana na podstawie 10 najbliższych sąsiadów. 6. Prognozowanie 5 ● Model KNN przewiduje przyszłe wartości cenowe na zbiorze testowym, a prognozy są przekształcane do pierwotnej skali za pomocą odwrotnej transformacji normalizacji. 7. Ocena modelu ● Do oceny jakości modelu wykorzystuje się Mean Squared Error (MSE), który mierzy średnią kwadratową różnicę między rzeczywistymi a prognozowanymi wartościami. Im niższa wartość MSE, tym lepsza dokładność modelu. 8. Wizualizacja wyników ● Wykres przedstawia: ○ Rzeczywiste ceny zamknięcia - wykres linii rzeczywistych wartości testowych. ○ Prognozy - przewidywane ceny w formie wykresu przerywanego. XGBoost Kod implementuje algorytm predykcji przyszłych cen złota przy użyciu modelu XGBoost Regressor. Wykorzystuje dane historyczne pobrane z Yahoo Finance, przetwarza je poprzez inżynierię cech (feature engineering), normalizuje oraz dzieli na zestawy treningowe i testowe. Model XGBoost, który jest zaawansowaną wersją drzew decyzyjnych, prognozuje ceny zamknięcia złota, a wyniki są oceniane za pomocą metryki błędu średniokwadratowego (MSE) i współczynnika determinacji (R²). 1. Importowanie bibliotek ○ Pobierane są biblioteki do obsługi danych finansowych, obliczeń matematycznych, wizualizacji oraz uczenia maszynowego (XGBoost, sklearn). 2. Pobieranie danych ○ Funkcja yf.download() pobiera dane dla ETF śledzącego cenę złota (ticker: GLD) od 2010 do 2023 roku. 3. Inżynieria cech (feature engineering) 6 ○ Tworzone są nowe kolumny: ■ Year, Month, Day – rozbicie daty na poszczególne składniki. ■ Price_diff – różnica cen zamknięcia między kolejnymi dniami. ○ Usuwane są brakujące wartości powstałe przez obliczenia różnicowe. 4. Przygotowanie danych ○ Dane są podzielone na zestawy: ■ X (cechy wejściowe): Year, Month, Day, Price_diff. ■ y (wartość docelowa): ceny zamknięcia (Close). ○ Zastosowany jest podział na zbiór treningowy i testowy (80/20%). 5. Normalizacja danych ○ Dane wejściowe są skalowane do zakresu [0,1] przy użyciu MinMaxScaler, co poprawia wydajność modelu. 6. Tworzenie i trenowanie modelu ○ Model XGBoost jest tworzony z parametrami: ■ objective='reg:squarederror' – funkcja kosztu. ■ colsample_bytree=0.3 – proporcja cech używanych w drzewie. ■ learning_rate=0.1 – szybkość uczenia. ■ max_depth=5 – maksymalna głębokość drzewa. ■ alpha=10 – regularyzacja L1. ■ n_estimators=100 – liczba drzew decyzyjnych. ○ Model jest trenowany na danych treningowych. 7. Prognozowanie i ocena modelu ○ Model dokonuje predykcji na danych testowych. ○ Wyliczane są metryki: ■ Mean Squared Error (MSE): określa średnią różnicę kwadratową między wartościami rzeczywistymi a przewidywanymi. ■ R² (współczynnik determinacji): ocenia, jak dobrze model dopasował się do danych. 8. Wizualizacja wyników ○ Rysowany jest wykres porównujący rzeczywiste ceny zamknięcia z przewidywanymi wartościami przez model XGBoost. 7 SVM - Support Vector Regression Algorytm wykorzystuje metodę Support Vector Regression (SVR), która jest odmianą SVM przeznaczoną do regresji. Celem jest przewidywanie przyszłych cen złota na podstawie danych historycznych pobranych z Yahoo Finance. Dane są najpierw skalowane, a następnie model uczony na podstawie okna czasowego, gdzie wcześniejsze wartości pomagają przewidywać kolejne. 1. Pobieranie danych finansowych: ○ Pobierane są historyczne ceny złota z Yahoo Finance przy użyciu symbolu GC=F, obejmujące zakres od 2010 do 2023 roku. ○ Wykorzystywana jest tylko kolumna "Close" (cena zamknięcia), ponieważ jest kluczowa do analizy. 2. Normalizacja danych: ○ Dane są skalowane przy użyciu MinMaxScaler, który przekształca wartości do zakresu [0,1]. ○ Normalizacja pomaga w lepszym działaniu modelu poprzez ujednolicenie skali wartości. 8 3. Podział danych: ○ Zbiór danych jest podzielony na zestaw treningowy (80%) i testowy (20%). ○ Dane są podzielone zgodnie z indeksacją czasową, aby zachować kolejność historyczną. 4. Tworzenie zbioru danych: ○ Funkcja create_dataset() generuje próbki danych poprzez zastosowanie okna czasowego o długości 60 dni. ○ Dla każdej sekwencji 60 dni model uczy się przewidywać kolejną wartość. ○ Dane są przygotowywane w postaci dwóch tablic: ■ X (wejście): sekwencje cen z ostatnich 60 dni. ■ y (wyjście): rzeczywista cena w kolejnym dniu. 5. Trenowanie modelu: ○ Tworzony jest model SVR z parametrami: ■ kernel='rbf' – jądro radialne, które dobrze sprawdza się w przypadku nieliniowych zależności. ■ C=1000 – parametr regularyzacji, im większy, tym mniejsza tolerancja na błędy. ■ gamma=0.1 – określa wpływ pojedynczych przykładów na model. ■ epsilon=0.1 – zakres błędu, który jest akceptowalny dla modelu bez kary. ○ Model jest trenowany na danych treningowych. 6. Prognozowanie cen: ○ Model dokonuje prognozy na zestawie testowym. ○ Przewidywane wartości są odwrotnie przekształcane do oryginalnej skali za pomocą funkcji inverse_transform(). 7. Ocena modelu: ○ Dokonywana jest ocena modelu przy użyciu metryki Mean Squared Error (MSE), która mierzy średni błąd kwadratowy między wartościami rzeczywistymi a przewidywanymi. ○ Niższa wartość MSE oznacza lepszą dokładność modelu. 8. Wizualizacja wyników: ○ Wykres przedstawia rzeczywiste wartości cen oraz prognozy modelu. ○ Linie rzeczywistych cen oraz prognoz są oznaczone odpowiednimi etykietami dla łatwiejszej interpretacji. 9 1. Importowanie bibliotek: ○ Wykorzystano różne biblioteki do pobierania danych, przetwarzania ich, uczenia maszynowego oraz wizualizacji: ■ yfinance: Pobieranie danych finansowych. ■ numpy, pandas: Operacje na danych. ■ matplotlib: Wizualizacja wyników. ■ sklearn: Algorytmy uczenia maszynowego (SVM) i przetwarzanie danych. 2. Pobieranie danych: ○ Pobierane są dane dotyczące cen zamknięcia złota (symbol: "GC=F") z Yahoo Finance za okres od 1 stycznia 2010 r. do 31 grudnia 2023 r. ○ Dane są ograniczone do kolumny "Close", która reprezentuje ceny zamknięcia. 3. Normalizacja danych: ○ Dane są skalowane do zakresu (0, 1) przy użyciu MinMaxScaler, co jest istotne dla poprawnego działania algorytmów uczenia maszynowego, szczególnie SVM. 10 4. Przygotowanie zbiorów treningowych i testowych: ○ Dane są podzielone na zbiór treningowy (80% danych) i testowy (20% danych). ○ Dane są przekształcane na format sekwencji czasowych przy pomocy funkcji create_dataset. Każda sekwencja ma 60 poprzednich wartości jako wejście i jedną wartość jako wyjście (wartość docelowa). 5. Trening modelu SVM: ○ Model maszyn wektorów nośnych (SVR z jądrem RBF) jest trenowany na danych treningowych. 6. Prognozowanie: ○ Model generuje prognozy na zbiorze testowym. ○ Prognozy oraz rzeczywiste wartości są odwracane z powrotem do pierwotnej skali (przez odwrócenie normalizacji). 7. Ocena modelu: ○ Obliczana jest metryka Mean Squared Error (MSE), która mierzy dokładność modelu. ○ Wyniki modelu są wizualizowane na wykresie, przedstawiając rzeczywiste ceny oraz prognozowane wartości. 3. Użyte algorytmy i metody ● Maszyna wektorów nośnych (SVM): ○ Wykorzystano regresję SVM (Support Vector Regression) z jądrem radialnym (RBF), które jest efektywne dla danych nieliniowych. ○ Parametry: ■ C=1000: Współczynnik regularyzacji. ■ gamma=0.1: Parametr jądra RBF. ■ epsilon=0.1: Definiuje margines błędu dla regresji. ● Normalizacja: ○ Skalowanie danych do zakresu (0, 1) przyspiesza uczenie modelu i poprawia dokładność. ● Metryka błędu: ○ MSE (Mean Squared Error) ocenia, jak dobrze model prognozuje rzeczywiste ceny. 11 4. Wizualizacja Skrypt generuje wykres porównujący rzeczywiste ceny złota z prognozami modelu. Wykres ułatwia ocenę jakości predykcji. 5. Możliwe ulepszenia ● Eksperymentowanie z różnymi wartościami parametrów C, gamma i epsilon w SVR. ● Wykorzystanie większej ilości danych lub dodatkowych cech (np. wskaźników technicznych). PODSUMOWANIE Złoto odgrywa kluczową rolę w ochronie kapitału, zwłaszcza w czasach kryzysów gospodarczych i inflacyjnych. Inwestycja w złoto to doskonała strategia dywersyfikacji portfela, zapewniająca stabilność oraz zabezpieczenie przed utratą wartości pieniądza. Istnieje wiele form inwestowania w złoto, zarówno bezpośrednich, jak i pośrednich, w zależności od preferencji inwestora. Prognozy cen złota bazują na analizie fundamentalnej oraz metodach matematycznych, które pomagają przewidywać możliwe scenariusze rynkowe w przyszłości. 12
0
You can add this document to your study collection(s)
Sign in Available only to authorized usersYou can add this document to your saved list
Sign in Available only to authorized users(For complaints, use another form )