czwartek, 2 lutego 2012

Jak zaprogramować stop który się nie cofa za pomocą Amibrokera i języka AFL

Jak zaprogramować stop który się nie cofa za pomocą Amibrokera i języka AFL

Autorem artykułu jest Rafał Wysocki



W Amibrokerze bardzo łatwo wylicza się podstawę do skutecznego zlecenia stop. Czy to odległość procentową, czy odległość liczoną ze zmienności. Jednak linia taka narysowana na wykresie będzie iść za wykresem w obydwu kierunkach. Poznaj prosty sposób aby przesuwała się tylko w jednym kierunku.

Podstawową zasadą większości zleceń stop jest podążanie za wykresem po rozpoczęciu inwestycji. Jednak podążanie to powinno odbywać się tylko w kierunku ochrony kapitału. Są przecież sytuacje, kiedy poziom stop wynikający z aktualnych obliczeń jest niższy niż wyliczony poprzednio. Są też takie momenty, kiedy rynek się cofa w kierunku Twojego ostatniego poziomu ochrony. W takich sytuacjach zlecenie stop powinno pozostawać na wartości do której już raz dotarło. Ono nie ma prawa się cofać.

Łatwo powiedzieć, ale początkującemu systemowcowi trudno to uzyskać. Istnieje jednak proste rozwiązanie - wystarczy zastosować zwykłą pętlę.

Jak zwykle w programowaniu taki sam efekt można uzyskać na kilka sposobów. To jest zaledwie jedno rozwiązanie. Drugim jest chociażby użycie instrukcji tablicowych. Kod będzie jeszcze krótszy, ale trudniejszy do zrozumienia. Dlatego poznaj najpierw sposób łatwiejszy.

W tym przykładzie zobaczysz jedynie rozwiązanie problemu cofania. Zakładam, że masz już policzoną odległość stop dla każdego słupka. Obliczenia umieść w tablicy stop1. Np. dla stopu na 5% inwestycji:

stop1 = High * 0.95;

Czas na właściwą linię stop. Umieść ją w zmiennej liniaStop. Dla pierwszego słupka oczywiście musisz przyjąć, że liniaStop jest na tym samym poziomie co stop1:

liniaStop[0] = stop1[0];

Ale co dalej?

Teraz należy przejrzeć wszystkie kolejne słupki od 1 do końca stosując następujące regułę:

Jeżeli stop1 przesuwa się dalej niż dotychczasowa liniaStop, to przesuń liniaStop na wartość taką jak stop1.
Jeżeli nie, oznacza to, że stop1 się cofnął lub nie zmienił. Użyj wtedy dotychczasowej wartości liniaStop.

Po zapisaniu jako AFL wygląda to tak:

for ( i =1; i {
if ( stop1[i] > liniaStop[i-1] ) liniaStop[i] = stop1[i];
else liniaStop[i] = liniaStop[i-1];

//*
}

Jednak brakuje jeszcze jednego ważnego elementu. Tak narysowany stop będzie szedł w górę wykresu również wtedy, gdy zostanie zrealizowany. Będzie się wspinał na wyższe i wciąż wyższe poziomy. Trzeba dodać jeszcze warunek zrealizowania stopu:

Gdy cena zamknięcia zejdzie poniżej liniaStop, pozwól na cofnięcie.

Uznajesz wtedy, że nastąpiło przecięcie i nastąpiła realizacja zlecenia ochronnego. Tym samym zakaz cofania stopu przestaje obowiązywać i przywracasz mu wartość obliczoną w stop1.

W kodzie w miejscu gwiazdki wystarczy dodać:

if ( Close[i] < liniaStop[i] ) liniaStop[i] = stop1[i];


To wszystko. Najprostszy stop masz już zaprogramowany i linia się nie cofa do momentu jego realizacji.

Oczywiście można teraz dodać instrukcje rysujące linie, dodać zaznaczanie sygnałów itd. Można też zastosować bardziej skomplikowane reguły wyliczania linii stop1, nie tylko jako odległość procentową. Jednak ten kod już jest podstawą do rozbudowy w kierunku dowolnie skomplikowanych systemów inwestycyjnych.

---

Zbuduj swój własny, skuteczny system inwestycyjny.
Więcej dowiesz się na http://zobacz.CzarodziejAFL.pl/

Akcje, Kontrakty FW20, DAX, S&P500, Forex.


Artykuł pochodzi z serwisu www.Artelis.pl

9 sekretów twórców najskuteczniejszych automatycznych systemów inwestycyjnych - sekret #9

9 sekretów twórców najskuteczniejszych automatycznych systemów inwestycyjnych - sekret #9

Autorem artykułu jest Rafał Wysocki



Czy wiesz, że na dobry automatyczny system inwestycyjny składa się wiele ważnych elementów? Niektóre z nich wydają się sprzeczne z logiką. Jednak początkujący twórca bez ich znajomości łatwo zacznie tracić pieniądze. Przeczytaj jak Ty możesz ustrzec się przed tymi błędami, a co może dać Ci przewagę.

Każdy rynek inwestycyjny ma swoją specyfikę. Inaczej zachowują się akcje, inaczej kontrakty. Inaczej zachowują się walory polskie, inaczej amerykańskie czy choćby niemieckie. Jeszcze inaczej zachowują się poszczególne pary walutowe na rynku forex.

Jednak jest pewna cecha wspólna której musisz poszukiwać. Jako początkujący (lub nawet średnio zaawansowany) systemowiec musisz szukać walorów które zachowują się trendowo. Nie chodzi tu jednak o ocenę wizualną na wykresach.

Podstawowa zasada brzmi: Buduj systemy inwestujące z trendem.

Być może dziwisz się właśnie. Przecież słyszy się o skalpowaniu rynku. O błyskawicznych wejściach i wyjściach w walor. O inwestowaniu nawet na ciasnych konsolidacjach.

Jednak prawdopodobnie to nie są techniki dla Ciebie. Metody inwestowania na krótkich ruchach najlepsze są dla dużych inwestorów. Wykładają się one bowiem najczęściej na prowizjach. Tak zwany "grubas", czy to fundusz, czy prywatny inwestor z dużym kapitałem ma zupełnie inne prowizje niż Ty. Albo ma je niższe, albo nie ma ich wcale. Płaci wtedy jedynie stały abonament. Może pozwolić sobie na łapanie kilku groszy, punktów czy pipsów.

Natomiast metody inwestowania z trendem generują mniej sygnałów przy większym zysku. Znacznie łatwiej jest skonstruować prawidłowo działający system który zarabia. Nie wymagają one pełnej automatyki zleceń. Pozwalają na wolniejsze reakcje, pozwalają też na inwestowanie przy większych interwałach.

To wszystko decyduje o tym, że od systemów z trendem powinieneś właśnie zaczynać.

Tworząc system musisz badać go dla konkretnego rynku lub nawet waloru. Np. wiele systemów sprawnie działających na kontraktach FW20 przestaje sobie radzić na DAX, S&P500, czy na Forex. To normalne. Oczywiście są systemy, które prawidłowo działają na wielu rynkach. Jeżeli taki uzyskasz - wspaniale! Jednak nie jest to celem nadrzędnym.

A co ze skalpowaniem rynku?

Możesz sięgnąć po nie gdy zdobędziesz już doświadczenie. Gdy staniesz się już zaawansowanym inwestorem poradzisz sobie również z tymi metodami. Będzie to wymagało inwestycji w rynki bardzo płynne. Najczęściej będzie to również wymagało, aby Twój system był w pełni automatyczny. Dojdą wtedy problemy z autonomicznym działaniem programów. Ale będzie to dużo prostszym wyzwaniem, gdy już będziesz mieć tworzenie systemów w małym palcu i inwestycje będziesz robić bez zbędnych emocji.

---

Zbuduj swój własny, skuteczny system inwestycyjny.
Więcej dowiesz się na
http://zobacz.CzarodziejAFL.pl/

Akcje, Kontrakty FW20, DAX, S&P500, Forex.


Artykuł pochodzi z serwisu www.Artelis.pl

9 sekretów twórców najskuteczniejszych automatycznych systemów inwestycyjnych - sekret #8

9 sekretów twórców najskuteczniejszych automatycznych systemów inwestycyjnych - sekret #8

Autorem artykułu jest Rafał Wysocki



Czy wiesz, że na dobry automatyczny system inwestycyjny składa się wiele ważnych elementów? Niektóre z nich wydają się sprzeczne z logiką. Jednak początkujący twórca bez ich znajomości łatwo zacznie tracić pieniądze. Przeczytaj jak Ty możesz ustrzec się przed tymi błędami, a co może dać Ci przewagę.

Każdy system należy testować na danych historycznych. To być może już wiesz. Wiele metod inwestycyjnych propagowanych w internecie tak naprawdę nie działa. Jedynie testy pozwolą Ci wyselekcjonować które z nich dadzą Ci dobry zarobek.

Jednak przy testowaniu można popełnić poważny błąd.

Najmniejszy problem z testem jest przy metodach bez parametrów. Wystarczy zastosować wtedy tak zwany backtest. Po prostu sprawdzasz wykres i znajdujesz wszystkie wejścia, gdzie metoda dawała sygnał wejścia, a gdzie wyjścia. Takimi metodami mogą być np. formacje świecowe, inwestowanie na luki czy formacje klasycznej analizy technicznej. Sygnały są ustawione sztywno i nie dobiera się żadnych współczynników.

Oczywiście łatwiej i szybciej jest zrobić taki test automatycznie. Jednak dla niektórych metod można zrobić go ręcznie, obserwując wykres.

Problem pojawia się dopiero, gdy trzeba dobierać parametry. Dominującym testem jest tutaj prosta optymalizacja. Pozwala ona zazwyczaj na pokazanie dużych zysków, gdybyś znał te najlepsze współczynniki jakiś czas temu. I to właśnie jest dużym błędem.

Przecież znajomość tego najlepiej zarabiającego parametru w przeszłości nie było możliwe. On jest możliwy do sprawdzenia dopiero dzisiaj. Z tego powodu właśnie większość systemów jedynie optymalizowanych radzi sobie słabo lub traci kapitał.

Użycie samej optymalizacji jest oczywiście dopuszczalne. Trzeba znać jej ograniczenia i stosować ją do odpowiednich rynków. Nadają się tu rynki wolne, np. rynek akcji obserwowany w interwale tygodniowym, ewentualnie maksymalnie dziennym. Powinna w wyniku testu wyjść duża stabilność parametrów. Powinna wyjść mała wrażliwość skuteczności systemu na ich zmianę. Wtedy nie zawsze jest sens stosować test, o którym Ci teraz opowiem

Czas teraz na prawdziwe życie. Testem, który symuluje prawdziwe inwestowanie jest walk-forward. Jest to test wszystkich testów.

Pomyśl jak inwestowanie wygląda w praktyce. Prawdziwy inwestor mając system stosuje zazwyczaj cyklicznie dwa kroki. Najpierw robi optymalizację systemu, a następnie inwestuje np. przez tydzień, miesiąc czy pół roku. Do tych inwestycji używa oczywiście wyników ostatniej optymalizacji. Następnie po założonym okresie ponownie optymalizuje swój system i ponownie dobiera parametry na przyszłość.

Tak wygląda prawdziwe używanie systemu i tak właśnie wygląda walk-forward. Komputer optymalizuje system na fragmencie danych. Następnie na danych późniejszych inwestuje (na danych nie znanych w tej optymalizacji). Po zadanym okresie znów zatrzymuje się i optymalizuje. I tak w kółko przechodzi całe dane historyczne.

Oczywiście pozostaje kwestia doboru ilości danych do optymalizacji, długości okresu inwestowania itd. To są decyzje które musi podjąć użytkownik systemu.

Jednak gdy ten ostatni test wykaże zyski - wystarczy zastosować te same okresy i zacząć zarabiać prawdziwe pieniądze.

---

Chcesz zbudować własny system inwestycyjny?
Zobacz więcej na http://zobacz.CzarodziejAFL.pl/

Akcje, Kontrakty FW20, DAX, S&P500, Forex.


Artykuł pochodzi z serwisu www.Artelis.pl

9 sekretów twórców najskuteczniejszych automatycznych systemów inwestycyjnych - sekret #7

9 sekretów twórców najskuteczniejszych automatycznych systemów inwestycyjnych - sekret #7

Autorem artykułu jest Rafał Wysocki



Czy wiesz, że na dobry automatyczny system inwestycyjny składa się wiele ważnych elementów? Niektóre z nich wydają się sprzeczne z logiką. Jednak początkujący twórca bez ich znajomości łatwo zacznie tracić pieniądze. Przeczytaj jak Ty możesz ustrzec się przed tymi błędami, a co może dać Ci przewagę.

Ten sekret będzie prosty. Jednak związany z nim błąd jest popełniany przez 99% inwestorów początkujących. Nie tylko zresztą początkujących. Nawet inwestorzy długoletni łatwo wpadają w jego pułapkę.

Chodzi o interwały na jakich inwestujesz. Jak wiesz zapewne, definiowanie ich w programach do analizy technicznej jest dość elastyczne. Tak samo programy do obsługi systemów inwestycyjnych pozwalają zazwyczaj na pełną dowolność. Najczęściej można obserwować wykres co najmniej na danych miesięcznych, tygodniowych, dziennych. Potem są dane tak zwane intraday. Dane godzinowe, 20 lub 15 minutowe, 10 minutowe, 5 i 1 minutowe. Wreszcie są dane najbardziej precyzyjne, które pokazują dosłownie każdą zawieraną na giełdzie transakcję. Dane tickowe.

Dodatkowo często można definiować interwały własne (np. w Amibrokerze). Oczywiście jest to mechanizm bardzo przydatny, za chwilę dowiesz się dlaczego. Jednak tu również tkwi pułapka związana ze zbyt dużym kombinowaniem przez inwestorów.

Otóż podstawowym błędem inwestorów jest niecierpliwość. Chcą oni inwestować szybko i często. Odruch taki powstaje pod wpływem chęci złapania najdrobniejszych ruchów wykresu. Dlatego zaczynają poszukiwania systemu na coraz szybsze interwały. Jest to widoczne wśród inwestujących w akcje. Jednak wśród kontraktowców czy forexowców jest to po prostu uważane za oczywiste. Dane miesięczne, tygodniowe czy dzienne uważane są za mało przydatne. Godzinowe wyłącznie do określania wsparć czy oporów. Większość chce inwestować na 10, 5 minut. Najbardziej ambitni nawet schodzą poniżej danych minutowych.

Tak robi większość inwestorów których spotykam. Oczywiście wiesz, że większość traci na giełdzie pieniądze.

Praktyka jest taka, że szybkie interwały wykańczają kapitał. Okazuje się, że wraz ze skracaniem ich, przewidywalność rynku maleje. Najczęściej rośnie ilość transakcji błędnych. Dodatkowo psuje się proporcja średniej wartości zysku do średniej straty. Nieuchronnie spada wartość oczekiwana systemu.

Jakby tego było mało, jeszcze dołącza się pożeracz kapitału pod nazwą prowizja maklerska. Tak mało odczuwalny przy dużych interwałach, na niskich potrafi rozłożyć na łopatki najlepszy nawet system. Po prostu koszty częstych transakcji zjadają większość wypracowanego zysku, a mogą zjeść nawet więcej.

Jaka jest na to rada?

Oczywiście interwały należy wydłużać. Np. na akcjach spokojnie można inwestować na danych tygodniowych. Dane dzienne są dla bardzo niecierpliwych inwestorów. A już nigdy nie schodź niżej dla tak spokojnych walorów.

Kontrakty również nadają się do inwestowania na danych dziennych. Najkrótszy interwał jaki polecam to godzinowy. Tu można również użyć interwałów dobrych dla forexu.

I wreszcie rynek najpotężniejszy - forex. To on skupia na sobie najwięcej błędnych przekonań. Otóż dla forexu polecam Ci również interwały od dziennych do godzinowych! Nie drobniej. Szczególnie powinieneś zwrócić uwagę na dane dwu, trzy i cztero godzinowe.

Tak to nie pomyłka. Jeżeli nie jesteś dużym funduszem podłączonym bezpośrednio do rynku, bez prowizji lub z prowizją dużo niższą od przeciętnej nie szukaj szczęścia na interwałach niższych. Nie próbuj budować systemu skalpującego. Buduj systemy na trendy.

Podstawą bowiem skutecznego inwestora jest system gwarantujący inwestowanie spokojne. Trzeba koniecznie połączyć to z doskonałym zarządzaniem kapitałem.

Dopiero wtedy masz i czas i pieniądze.

---

Chcesz zbudować własny system inwestycyjny?
Zobacz więcej na http://zobacz.CzarodziejAFL.pl/

Akcje, Kontrakty FW20, DAX, S&P500, Forex.


Artykuł pochodzi z serwisu www.Artelis.pl

9 sekretów twórców najskuteczniejszych automatycznych systemów inwestycyjnych - sekret #6

9 sekretów twórców najskuteczniejszych automatycznych systemów inwestycyjnych - sekret #6

Autorem artykułu jest Rafał Wysocki



Czy wiesz, że na dobry automatyczny system inwestycyjny składa się wiele ważnych elementów? Niektóre z nich wydają się sprzeczne z logiką. Jednak początkujący twórca bez ich znajomości łatwo zacznie tracić pieniądze. Przeczytaj jak Ty możesz ustrzec się przed tymi błędami, a co może dać Ci przewagę.

Znasz już dwie najważniejsze zasady zarządzania kapitałem. Jednak to jeszcze nie koniec sekretów związanych z tym ważnym tematem. Jest jeszcze jedna metoda. Metoda mało znana, a niejednokrotnie dzięki niej można uzyskać większą stabilność systemu.

Zanim poznasz tą metodę, odpowiedz jednak najpierw na pytanie. Czy przypominasz sobie jeszcze wykres z sekretu #4? Ten zwykły wykres giełdowy, gdzie po dużych ruchach następują duże korekty, a po małych ruchach małe korekty? Chodziło o zlecenia ochronne stop, które raz miały dawać cenie więcej swobody, a za drugim razem miały ten wykres pilnować ciaśniej.

Tak. To był stop wyliczany ze zmienności, czyli z ATR.

Dlaczego masz to sobie teraz przypomnieć? Otóż ktoś kiedyś wymyślił, że gdy rynek jest mało zmienny inwestowanie jest bezpieczniejsze, a gdy jest bardziej zmienny rośnie ryzyko dotkliwej straty. Jeżeli takie założenie jest prawdziwe, to w takim razie powinno się powiązać zmienność z zarządzaniem kapitałem.

I tak właśnie powstała idea zarządzania kapitałem na podstawie zmienności wyliczanej z ATR.

Tu jednak należy rozwiązać problem przekształcenia. Wskaźnik ATR reprezentuje zmianę ceny. Natomiast wielkość pozycji określa się zawsze jako ilość sztuk, lub częściej jako % posiadanego kapitału. Dwie różne wartości z całkowicie różnych przedziałów. Zmienność ceny porusza się w granicach zależnych od waloru. Natomiast % posiadanego kapitału zawsze będzie wartością z przedziału <0;100>.

Najprościej jest zastosować funkcję liniową. Wystarczy zbadać najwyższą i najniższą zmienność na danym walorze w jego historii. Następnie powinno się jeszcze rozszerzyć tak stworzony przedział. Potem musisz zdecydować jaki procent kapitału chcesz inwestować na najspokojniejszym rynku, a jaki na najbardziej gwałtownym. Oczywiście zakładam, że rozumiesz iż na spokojnym rynku można inwestować większą jego część niż na rynku mocno zmiennym.

Gdy już masz te cztery dane, wyliczasz a i b z układu równać liniowych y = ax + b i masz gotowy wzór do zastosowania w systemie. Od teraz dla każdej zmienności badanego waloru jesteś w stanie określić aktualną wielkość zaangażowania na rynku.

Przydadzą się jeszcze ograniczenia. Możesz założyć, że np. poniżej 5% kapitału nie inwestujesz wcale. Możesz też przyjąć ograniczenie górne. Np. nigdy nie inwestujesz więcej niż 80%.

Po takich zabiegach zbadaj ponownie Twój system. Może nie zacznie on zarabiać lepiej, ale jest szansa, że zacznie się on zachowywać stabilniej i zmniejszą się systemowe drawdowny.

Oczywiście jak ze wszystkim na giełdzie i w programowaniu. Przekształcenie zmienności na % kapitału da się zrobić na kilka sposobów. Można chociażby zastosować inną funkcję niż liniowa. Np. funkcją logarytmiczną można przesunąć medianę zaangażowania w stronę systemu bardziej ostrożnego. Jednak tu wzory wyglądają bardziej skomplikowanie i nie ma sensu zajmowanie się nimi gdy jesteś początkującym inwestorem czy twórcą systemu inwestycyjnego.

Twój system ma być skuteczny i prosty. Komplikowanie zostaw na czas, gdy już będziesz swobodnie na giełdzie zarabiać.

---

Chcesz zbudować własny system inwestycyjny?
Zobacz więcej na http://zobacz.CzarodziejAFL.pl/

Akcje, Kontrakty FW20, DAX, S&P500, Forex.


Artykuł pochodzi z serwisu www.Artelis.pl