Wykorzystanie wielu interwałów w Amibrokerze

Jedną z wielu zalet programu do analizy technicznej Amibroker jest możliwość wykorzystania przy tworzeniu systemów transakcyjnych różnych interwałów.Na stronie: http://www.amibroker.com/guide_pl/h_timeframe.html można znaleźć szczegółowy opis funkcji wykorzystujących wiele interwałów wewnątrz jednej formuły AFL.

W celu zilustrowania powyższej funkcjonalności programu Amibroker stworzyliśmy prosty system transakcyjny wykorzystujący wskaźnik MACD na danych tygodniowych oraz wskaźnik Ultimate bazujący na danych dziennych. Dodatkowo w systemie tym zamieszczona została formuła pozwalająca wyświetlać na dziennym wykresie tygodniowy wskaźnik MACD, co znacznie ułatwia weryfikację generowanych sygnałów.

Formuła w języku AFL:

TimeFrameSet(inWeekly); // przełączenie na interwał tygodniowy

m = MACD(12,26); // definiowanie zmiennej „m” określającej MACD z danych tygodniowych

TimeFrameRestore(); // przywrócenie interwału do początkowego

//poniższa formuła pozwala na wyświetlenie na dziennym wykresie tygodniowego MACD

m1 = TimeFrameExpand( m, inWeekly );

Plot( m1, „Weekly MACD”, colorRed );

PlotShapes( Cross( m1, 0 ) * shapeUpArrow, colorGreen );

PlotShapes( Cross( 0, m1 ) * shapeDownArrow, colorGreen );

//formuła odpowiedzialna za generowanie poszczególnych sygnałów

Buy = (m1 > Ref(m1,-1)) // określenie rosnącego MACD

AND

Ultimate()<50;

Sell = (m1 < Ref(m1,-1)) //określenie malejącego MACD

AND

Ultimate()>50;

Powyższy system generuje sygnał kupna w przypadku gdy tygodniowy MACD jest rosnący i jednocześnie wartość oscylatora Ultimate bazującego na danych dziennych jest niższa niż 50, a sygnał sprzedaży gdy tygodniowy MACD jest malejący i jednocześnie wartość dziennego oscylatora Ultimate jest wyższa niż 50.

Bardziej rozbudowanym przykładem wykorzystania różnych interwałów w ramach jednego systemu jest „3 ekranowy system Eldera”. Twórca trzyekranowego systemu transakcyjnego opiera się na założeniu, iż rama czasowa, w której inwestor przeprowadza transakcje jest powiązana zarówno z szerszą, jak i z węższą od niej ramą czasową. Głównym celem jaki przyświecał twórcy systemu było stworzenie formuły pozwalającej na odszukanie optymalnego momentu do zajęcia pozycji. W pierwszej kolejności należy zidentyfikować długookresowy trend, a następnie dzięki obserwacji sygnałów generowanych przez wskaźniki bazujące na danych dziennych wykorzystać odpowiednio dzienne spadki do kupna w tygodniowy trendzie wzrostowym oraz dzienne wzrosty do sprzedaży w tygodniowym trendzie spadkowym. Co więcej przy tak wygenerowanym sygnale moment wejścia określany jest przez zastosowanie techniki ?wędrującego kupna – stop” w trendach wzrostowych i techniki ?wędrującej sprzedaży – stop” w trendach spadkowych. Szerszy opis systemu można znaleźć w książce Alexandra Eldera ?Zawód inwestor giełdowy”, natomiast uproszczona wersja systemu w języku AFL wygląda następująco:

TimeFrameSet( inWeekly ); // przełączenie na interwał tygodniowy

// definiowanie zmiennej „whist” określającej MACD z danych tygodniowych

whist = MACD( 12, 26 ) – Signal( 12, 26, 9 );

/*określenie rosnącego MACD przy zastosowaniu wskaźnika ROC*/

wtrend = ROC( whist, 1 );

TimeFrameRestore(); // przywrócenie interwału do początkowego

/* rozciągnięcie obliczonego MACD do interwału dziennego, aby można było go użyć z sygnałami z danych dziennych */

wtrend = TimeFrameExpand( wtrend, inWeekly );

// określenie wskaźnika „elder ray”

bullpower= High – EMA(Close,13);

bearpower= Low – EMA(Close,13);

//formuła odpowiedzialna za generowanie poszczególnych sygnałów

Buy = wtrend > 0 /* określenie wzrostowego trendu tygodniowego w oparciu o tygodniowe MACD*/

AND

bearpower < 0 AND bearpower > Ref( bearpower, -1 ) /* „bear power” ujemny ale rosnący */

AND

H > Ref( H, -1 ); // weryfikacja czy cena ustanowiła nowe maksimum;

Przedstawiona powyżej uproszczona formuła pozwala na dokonywanie transakcji na przestrzeni kilku dni przy równoczesnym uwzględnieniu tygodniowej ramy czasowej (wyższej o jeden rząd wielkości). W ten sposób inwestor zawsze zajmuje pozycje zgodnie z trendem wyższego rzędu.

Sygnał kupna zostanie wygenerowany w przypadku gdy zostaną spełnione następujące warunki:

– tygodniowy MACD jest rosnący,

– bear power jest ujemny ale rosnący (wykorzystanie wskaźnika Elder ray),

– dzienna cena analizowanego waloru ustanawia nowe maksimum.

P.S. Proszę pamiętać, iż zaprezentowane w tym tekście systemy zostały stworzone jedynie w celu pokazania szerokiej funkcjonalności programu Amibroker i nie mogą być traktowane jako bezpieczne narzędzie do zarabiania na giełdzie.

Zbigniew Jabłoński

Podziel się tym artykułem:

Polecamy

Autorzy

Najnowsze komentarze

  1. to są te frustracje związane z aktywnym inwestowaniem. ratuje przed tym cała strategia, czyli stopy. Ale w ub tygodniu miałem…

  2. I w szerszym spojrzeniu, cyt. z literatury: „Proszę wybaczyć – odezwał się łagodnie obcy – ale by móc czymś kierować,…

Tagi

akcje analitycy analiza fundamentalna analiza techniczna bańka spekulacyjna bessa bitcoin bossaEdu edukacja emocje ETF FED forex fundusze giełda GPW hossa inwestowanie pasywne inwestycje kontrakty terminowe krach kryptowaluty kryzys książka książki literatura makro media oszustwa porady inwestycyjne prognozowanie prognozy przewaga psychologia psychologia inwestowania recenzja ropa rynek akcji rynek akcyjny ryzyko statystyka w inwestowaniu strategie strategie inwestycyjne straty systemy WIG20 wykres dnia zagranica złoto

Najnowsze wpisy

Komentarze

2 odpowiedzi na “Wykorzystanie wielu interwałów w Amibrokerze”

  1. Awatar Mike

    Coś małe zainteresowanie tematem.
    Przykład własny zainspirowany tekstem:
    http://www.walory.com/edukacja/strategie/4h-tunell.html
    wykonany w Ami:
    http://4click.eu/PLIKI/ej.png

  2. Awatar Dirk

    Chciałbym przetestować pewien sytem oparty na zmienności, niestety nie potrafię tego zrobić.
    Z indykatorem poszło bez problemu i pokazuje on pewną wartość X po zakończeniu każdego słupka.

    Chodzi o zapisanie wyrażenia „Odwróć pozycję na długą/krótką gdy kurs wzrośnie/spadnie o wartość X z indykatora od kursu otwarcia następnego słupka”.