0
głosów
- +

6 największych błędów przez które Twój system inwestycyjny w AFL będzie oszukiwał przy testach, a potem będzie tracił na giełdzie - błąd #1

Autor:

Aktualizacja: 04.05.2011


Kategoria: Finanse i Ekonomia / Inwestowanie


Artykuł
  • 0 głosów dodatnich
  • 0 głosów ujemnych
  • 1462 razy czytane
  • 1 przedrukowany
  • 0 Polemik/Poparć <span class="normal">Odpowiadanie na artykuł</span>
  • Licencja: CC <span class="normal">Zezwala się na kopiowanie, dystrybucję, wyświetlanie i użytkowanie dzieła i wszelkich jego pochodnych pod warunkiem umieszczenia informacji o tw&oacute;rcy.</span>
Dostęp bezpłatny <span class="normal">Dostęp do treści jest bezpłatny.<br/> Inne pola eksploatacji mogą być zastrzeżone sprawdź <b>licencję</b>, żeby dowiedzieć się więcej</span>
 

Język AFL w Amibrokerze jest potężnym narzędziem konstruowania systemów inwestycyjnych. Można też przeprowadzić bardzo rozbudowane testy zanim zainwestuje się prawdziwe pieniądze. Jednak kilka błędów może spowodować, że wszystkie testy będą przekłamane, a Twoja inwestycja będzie zagrożona. Zobacz jak się przed tym uchronić


Pierwszym błędem jest sięganie po dane przyszłe. Jest to błąd czasami bardzo trudny do znalezienia w kodzie, zwłaszcza gdy jest już zaszyty w bardziej złożonych grupach instrukcji. Więc lepiej od razu przyswoić sobie właściwe nawyki i go nie popełniać.

W Amibrokerze jest taka instrukcja AFL która służy do przesuwania danych. Jest to funkcja Ref ( Tablica, Przesunięcie ). Pozwala ona pobrać do obliczeń dane sprzed dowolnej liczby słupków. Jeżeli spojrzysz na dane w Amibrokerze, to np. zamknięcie najstarszego słupka jest określone jako Close[0], a najnowszego Close[x], gdzie x jest numerem ostatniego słupka.

Teraz wyobraź sobie. Gdy wywołujesz Ref ( Close, -2), sięgasz dwa słupki do tyłu. Czyli np. podczas obliczeń dla słupka 10 dane pobierane są ze słupka 10-2, czyli ze słupka 8. Ponieważ słupek 8 jest starszy, był wcześniej niż 10, tak jest ok. Bo przecież cała analiza techniczna polega na sięganiu w przeszłość i obliczaniu na podstawie tej przeszłości bieżącej sytuacji.

Jednak gdy użyjesz Ref( Close, 2), sięgasz do danych o dwa słupki nowszych. W teście jest to wykonalne. Na przykład licząc dzisiaj gdy to czytasz coś dla szczytu 29 października 2007, znasz notowania dwa słupki później, czyli 31 października. Ale potem w prawdziwym życiu taki system nie otrzyma danych z przyszłości. Dzisiaj nie wiesz co będzie za dwie sesje. Nie znasz przecież przyszłości i Amibroker też jej nie zna.

Prosty system dający niesamowite rezultaty w testach:

            Buy = ( 1.02*Close < Ref(Close,1) );
            Sell = ( Close > Ref( Close,1) );
            Buy = ExRem( Buy,Sell );
            Sell = ExRem( Sell,Buy );

Zrobi z 10 000 zł w 10 lat inwestując tylko na danych dziennych 47 552 245zł. Czterdzieści siedem milionów! To jest ponad 475 tysięcy %!

Ale ten system sięga po dane przyszłe. Na prawdziwym rynku nie ma w ogóle szans na zyski i jakiekolwiek podejmowanie decyzji.

Dlatego pilnuj, żeby zawsze parametr który w funkcji Ref() oznacza przesunięcie miał wartość ujemną. Tylko wtedy Twój system działa w realnym świecie.


Podobał Ci się artykuł?
0
głosów
- +

Brak polemik/poparć



Podobne artykuły:


KOMENTARZE


Używając tej strony zgadzasz się na wykorzystywanie plików Cookie.
Dowiedz się więcej.

Używamy plików cookies, aby ułatwić Ci korzystanie z naszego serwisu oraz do celów statystycznych. Jeśli nie blokujesz tych plików, to zgadzasz się na ich użycie oraz zapisanie w pamięci urządzenia. Pamiętaj, że możesz samodzielnie zarządzać cookies, zmieniając ustawienia przeglądarki. Z dniem 25.05.2018 wprowadziliśmy też w życie rozporządzenia dotyczące ochrony danych osobowych. Więcej informacji w naszej Polityce Prywatności i Regulaminie.

Zamknij