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 #3

Autor:

Aktualizacja: 04.05.2011


Kategoria: Finanse i Ekonomia / Inwestowanie


Artykuł
  • 0 głosów dodatnich
  • 0 głosów ujemnych
  • 1605 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 te 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ć.


Błąd trzeci wiąże się również z ceną, ale ma również cechy sięgania do danych przeszłych. Tak samo trudny jest do wykrycia gdy zostanie już mocno obudowany innym kodem. Aby się przed nim uchronić trzeba wyrobić sobie prawidłowy nawyk analizy już na etapie tworzenia założeń systemu.

Błąd ten sięga do danych przeszłych, ale robi to subtelniej. Nie używa on bowiem funkcji Ref(), a jedynie steruje ceną i sygnałem w sposób nie do powtórzenia na rzeczywistym rynku.

Przykładem jego jest wygenerowanie sygnału w trakcie trwania lub na koniec słupka i zawarcie transakcji po cenie otwarcia tego samego słupka.

Zobacz bardzo prosty, ale skrajny kod takiej sytuacji:

            Buy = (Close>Open);
            Sell = Buy;
            BuyPrice = Open;
            SellPrice = Close;

Wszystko wygląda w porządku. Amibroker nie wniesie żadnych poprawek do transakcji, bo ceny przyjęte do transakcji rzeczywiście występowały na rynku. Nie ma instrukcji Ref(), więc wydaje się, że nie ma nawet co sprawdzać, czy przypadkiem nie sięgasz do danych przyszłych. Jednak zastanów się nad chronologią.

Kupujesz w cenie otwarcia wg. jakiegoś sygnału - możliwe.

Sprzedajesz w cenie zamknięcia zaraz w tym samym dniu - możliwe.

Sygnał kupna masz gdy słupek jest rosnący, czyli gdy zamknie się wyżej niż się otworzył - jak najbardziej możliwe.

Ale ale. Sygnał przecież jest generowany po zamknięciu słupka. Wtedy dopiero znasz prawdziwą cenę Close. Załóżmy, że inwestujesz na interwale dziennym. Jak zamierzasz wieczorem na koniec sesji zawrzeć realną transakcję w cenie z samego rana?

Musisz zachować uważność nie tylko w trakcie użycia funkcji Ref(). Tak samo w trakcie wyznaczania ceny transakcji nie wystarczy sprawdzić, czy jest ona realnie osiągalna na rynku. Musisz jeszcze pomyśleć nad chronologią.

Po prostu zawsze sprawdź w jakim momencie występuje sygnał, a w jakim momencie występuje przyjmowana cena. Amibroker ma bardzo ograniczone możliwości przypilnowania Ciebie w takiej sytuacji. Jeżeli cena jest dostępna równocześnie z sygnałem - ok. W wielu przypadkach tak będzie dobrze. Jeżeli cena jest brana z otwarcia kolejnego słupka lub transakcja jest jeszcze bardziej opóźniona - masz sytuację idealną i najbardziej zgodną z tym jak inwestowanie wygląda w rzeczywistości.


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