Tworzenie własnych wskaźników
___________________________________________________________________________
Co to jest Indicator Builder?
Mając tyle wbudowanych wskaźników, które oferuje program MetaStock, można się dziwić, dlaczego ktoś chciałby kiedykolwiek tworzyć swoje własne wskaźniki. Otóż, analiza techniczna ustawicznie rozwija się. Świeżo utworzony wskaźnik dzisiaj, wkrótce jest zastępowany przez inny. Dlatego też, program MetaStock dostarcza skutecznego narzędzia, zwanego Indicator Builder, które pozwala na tworzenie wskaźników.
Być może czytałeś o nowym wskaźniku w czasopiśmie fachowym lub książce. Za pomocą Indicator Building jesteś w stanie utworzyć ten nowy wskaźnik.
Indicator Builder jest przemyślanym „potężnym narzędziem”, które nie można używać tak jak typowego programu. Chcąc efektywnie wykorzystywać Indicator Builder, niezbędne jest rozumienie podstawowych pojęć matematycznych oraz wyrażeń logicznych.
Z powodu naturalnej komplikacji przy projektowaniu i tworzeniu wskaźników, systemów transakcyjnych, eksploracji i porad eksperta, Equis nie udziela bezpłatnej pomocy w tych przypadkach. Jednakże, pomoc techniczna jest dostępna za niewielką opłatą. Dzwoń do Equis pod numer 801-265-9998 po szczegóły lub wypełnij formularz FORMULA HELP.DOC znajdujący się w folderze MetaStock. Plik ten można obejrzeć za pomocą Wordpad.
Informacje o programie Equis Solution Provider oraz MetaStock Developer's Kit uzyskasz pod adresem www.equis.com.
Wskaźniki utworzone w Indicator Builder są kreślone dokładnie tak samo, jak wbudowane wskaźniki. Możesz je przeciągać myszą z Indicator QuickList lub wykreślić okienka dialogowego Indicators.
Jeśli potrafisz pisać wzory w arkuszach kalkulacyjnych (tj. Microsoft Excel, Lotus 1-2-3, itp.), to prawdopodobnie nie będziesz miał problemów. Możesz rozpocząć pisanie wskaźników od razu. Jeśli tego nie potrafisz, nie martw się - Indicator Builder Tutorial szybko ci pomoże.
___________________________________________________________________________
Indicator Builder Tutorial
Podstawy
Dodatkowo, do uprzednio zdefiniowanych wskaźników wyszczególnionych w Indicator QuickList (patrz str. 178), program MetaStock dostarcza spory zbiór narzędzi, które możesz użyć do tworzenia i kreślenia własnych wskaźników. Rozdział ten wyjaśnia jak tworzyć i kreślić własne wskaźniki.
Chcąc tworzyć własne wskaźniki, najpierw musisz zapoznać się z językiem MetaStocka. Więcej szczegółowych informacji o języku MetaStocka znajdziesz na str. 257.
Możesz utworzyć ponad 1000 różnych wskaźników. Utworzone wskaźniki są automatycznie gromadzone przez program MetaStock, więc nie musisz wprowadzać wzoru za każdym razem, gdy chcesz go wykreślić.
Wzory utworzone za pomocą Indicator Builder oraz wzory używane do obliczeń wbudowanych wskaźników (tj. Stochastics, RSI, itp.) są całkowicie niezależne od siebie. Dokonanie zmiany we wskaźniku, nie ma żadnego wpływu na uprzednio zdefiniowane wskaźniki.
Okienko dialogowe Indicator Builder
Mając wykres na ekranie, wybierz Indicator Builder z menu Tools. Ukaże się okienko dialogowe Indicator Builder (wskaźniki na twojej liście będą różnić się od tych pokazanych poniżej). Okienko dialogowe Indicator Builder jest odskocznią do tworzenia nowych wskaźników i/lub edytowania istniejących wskaźników.
Jak utworzyć nowy wskaźnik
Mając wyświetlone okienko dialogowe Indicator Builder, kliknij przycisk New. Wpisz nazwę wzoru jako „Tutorial”.
Kliknij na polu Display in QuickList aby wskaźnik był dostępny w standardowym pasku narzędzi Indicator QuickList.
Kliknij na polu Formula, gdzie możesz rozpocząć wpisywanie aktualnego wzoru.
Wpisz poniższy wzór w polu Formula.
close-mov(close,20,simple)
Ten prosty wzór oblicza różnicę pomiędzy ceną zamknięcia a 20-okresową prostą średnią ruchomą cen zamknięcia. Więcej szczegółowych informacji o języku MetaStocka, znajdziesz na str. 257.
Kliknij przycisk OK aby zapisać nowy wskaźnik o nazwie „Tutorial”.
Jak wykreślić nowy wskaźnik
Kliknij Indicator QuickList (patrz str. 178) aby wyświetlić listę wskaźników.
Z QuickList przeciągnij myszą wskaźnik o nazwie „Tutorial” nad pasek tytułowy wykresu. Otworzy się nowe okienko wewnętrzne, w którym będzie wykreślony ten wskaźnik.
Możesz zaznaczyć na liście wskaźników Indicator QuickList utworzony wskaźnik, korzystając ze specjalnej ikony znajdującej się z lewej strony nazwy wskaźnika.
___________________________________________________________________________
Okienko dialogowe Indicator Builder
Okienko dialogowe Indicator Builder zostaje wyświetlone po wybraniu Indicator Builder z menu Tools lub przycisku Indicator Builder na standardowym pasku narzędzi.
New
Wyświetla okienko dialogowe Indicator Editor, w którym możesz nazwać i zdefiniować nowy wskaźnik.
Edit
Wyświetla okienko dialogowe Indicator Editor, w którym możesz edytować zaznaczony wskaźnik.
Copy
Tworzy kopię zaznaczonego wskaźnika w okienku dialogowym Indicator Editor. Po wprowadzeniu każdej zmiany, naciśnij przycisk OK aby zapisać kopię wskaźnika. Więcej informacji o kopiowaniu wskaźników, znajdziesz na str. 331.
Delete
Kasuje zaznaczony wskaźnik. Więcej informacji o kasowaniu wskaźników, znajdziesz na str. 331. Podtrzymując klawisz SHIFT lub CTRL możesz zaznaczyć kilka wskaźników jednocześnie, klikając na nich myszą.
Drukuje zaznaczony wskaźnik. Więcej informacji o drukowaniu wskaźników, znajdziesz na str. 331.
Organize
Wyświetla Formula Organizer Wizard, z którego możesz pobrać lub wysłać systemy eksploracji, systemy testujące, wskaźniki i porady eksperta. Używany wtedy, gdy nabywasz dodatkowe produkty od Equis lub kogoś innego. Więcej informacji o Formula Organizer Wizard, znajdziesz na str. 271.
___________________________________________________________________________
Okienko dialogowe Indicator Editor
Okienko dialogowe Indicator Editor wykorzystywane jest do tworzenia nowych oraz do edytowania istniejących wskaźników.
Name
Możesz wprowadzić nazwę zawierającą do 50 znaków. Nazwa, którą wprowadziłeś, ukaże się w pasku tytułowym okienka wewnętrznego, gdy wykreślisz ten wskaźnik. Lista wskaźników w okienku dialogowym Indicator Builder ułożona jest według nazw.
Display in QuickList
Zaznacz to pole, jeśli chcesz, aby nazwa wskaźnika ukazywała się w QuickList. Wskaźnik ten można bezpośrednio przeciągać myszą z QuickList, tak jak każdy inny wskaźnik (patrz str. 178).
Formula
W tym polu wprowadza się wzór wskaźnika. Wzór może zawierać do 2500 znaków w wielu wierszach. Gdy chcesz przejść do następnego wiersza, naciśnij klawisz ENTER. Uwagi, dotyczące używania kilku wierszy, znajdziesz na str. 269. Więcej informacji o języku MetaStocka, znajdziesz na str. 257.
Functions
Wyświetla okienko dialogowe Paste Functions, gdzie z listy możesz wybrać dostępne funkcje i wkleić je do swojego wzoru. Przycisk ten jest nieaktywny jeśli kursor znajduje się w polu Formula. Więcej informacji znajdziesz na str. 332.
Podczas edycji wzoru, możesz używać standardowych poleceń za pomocą klawiszy przyśpieszenia (patrz str. 270).
___________________________________________________________________________
Kopiowanie i kasowanie wskaźników
Używając przycisk Copy w okienku dialogowym Indicator Builder, możesz wykonać kopię zaznaczonego wskaźnika. Jest to bardzo użyteczne jeśli chcesz skonstruować nowy wskaźnik, który jest bardzo podobny do innego.
Na przykład, jeśli Custom Indicator A jest bardzo podobny do nowego wskaźnika, który chcesz utworzyć, powinieneś w celu zaoszczędzenia czasu użyć polecenia Copy w okienku dialogowym Indicator Builder, aby utworzyć jego kopię, niż go przepisywać. Możesz tak postępować jeśli chcesz dokonać niewielkie, niezbędne zmiany i następnie nadać tak zmienionemu wskaźnikowi nową nazwę.
Używając przycisk Delete w okienku dialogowym Indicator Builder, możesz skasować zaznaczony wskaźnik. Przycisk Delete wyświetla okienko dialogowe Delete Custom Indicator.
___________________________________________________________________________
Drukowanie wskaźników
Używając okienka dialogowego Print możesz drukować nazwy i/lub wzory zaznaczonych wskaźników na drukarce. Okienko dialogowe Print staje się dostępne wybierając Print z okienka dialogowego Indicator Builder.
Print What
Wybierz to, co chcesz drukować z zaznaczonego wskaźnika, tj. Names Only lub Names and Formulas.
Copies
Wybierz liczbę kopii do drukowania.
Print Range
Wybierz to, co chcesz drukować, tj. Selected Custom Indicator(s) lub All Custom Indicators.
Printer
Wyświetla okienko dialogowe, z którego możesz zaznaczyć żądaną drukarkę, zorientować wydruku i rozmiar papieru.
___________________________________________________________________________
Wklejanie funkcji do wzorów
Używając przycisk Functions znajdujący się na dole okienka dialogowego Indicator Editor, możesz wkleić funkcje bezpośrednio do wzoru, który jest edytowany. Ta właściwość nie tylko oszczędza czas, ale również uwalnia od potrzeby zapamiętywania funkcji (lub odwoływania się do podręcznika) oraz ich parametrów. (Informacje na temat listy dostępnych funkcji znajdziesz na str. 274)
Okienko dialogowe Paste Functions zawiera 11 kategorii funkcji, wyszczególnionych w polu Function Category po lewej stronie. Funkcje odpowiadające zaznaczonej kategorii są wyszczególnione po prawej stronie, z nazwami w wersji angielskiej lub nazwami funkcji, w zależności od tego czy zaznaczyłeś pole Show English Names. MSX DLL także będzie wyszczególniony jako kategoria wraz z jego załączonymi funkcjami. Więcej informacji o tworzeniu MSX DLL, używając MetaStock Developer's Kit, znajdziesz pod adresem www.equis.com.
Jeśli przewijasz listę Paste Function, składnia podświetlonej funkcji wyświetlana jest w dolnej części okienka dialogowego. Jeśli chcesz argumentów wklejanej funkcji, zaznacz pole Paste Arguments.
Kliknij przycisk OK (lub dwukrotnie na nazwie funkcji) aby wkleić zaznaczoną funkcję w miejscu, w którym znajduje się kursor.
Jak wklejać funkcje do wzoru
Podczas edytowania wzoru w okienku dialogowym Indicator Editor, kliknij przycisk Functions.
Kliknij na kategorii na liście Functions Category.
Kliknij dwukrotnie na funkcji, którą chcesz wkleić.
___________________________________________________________________________
Tworzenie wskaźników składających się z kilku krzywych
W celu dokładnej interpretacji, wiele wskaźników wymaga dwóch lub więcej krzywych. Jednym z takich wskaźników jest MACD. MACD używa średniej ruchomej (zwanej linią sygnalną) do generowania sygnału przecięcia.
Każde nieoznaczone wyrażenie (tj. wyrażenie, które nie jest oznaczone zmienną) we wskaźniku, daje rezultat jako niezależna krzywa na wykresie. Na przykład, rezultatem poniższego wzoru wprowadzonego jako wskaźnik, są dwa wykresy:
DiffOfAvg:=mov(c,39,s)-mov(c,200,s);
DiffOfAvg;
Mov(DiffOfAvg,9,s;
Pierwszy wiersz oznacza wyrażenie „mov(c,39,s)-mov(c,200,s)” oznaczone zmienną o nazwie „DiffOfAvg”. Drugi wiersz daje jako rezultat wykres DiffOfAvg. Trzeci wiersz daje rezultat jako wykres 9-okresowej średniej ruchomej DiffOfAvg. Pamiętaj, że każde wyrażenie musi być zawarte w nawiasie.
Jeśli używasz funkcji fml( ) (patrz str. 264) jako nazwy wskaźnika zawierającego kilka krzywych, to funkcja fml( ) zwróci tylko ostatni wykres.
Na przykład, jeśli wzór używa funkcji fml( ) jako nazwy poniższego wskaźnika, to zwracana będzie tylko 10-okresowa średnia ruchoma, ponieważ jest to ostatni wykres.
mov(close,30,s);
mov(close,20,s);
mov(close,10,s);
Aby oznaczyć każdą krzywą innym kolorem, wykreśl wskaźnik i następnie zmień ustawienia każdej krzywej.
Jak oznaczyć różnymi kolorami krzywe wchodzące w skład jednego wskaźnika
Wykreśl wskaźnik z listy QuickList w okienku dialogowym Indicators.
Kliknij prawym przyciskiem myszy na krzywej, której kolor chcesz zmienić.
Wybierz Properties z okienka, które się ukaże.
Zmień kolor i następnie kliknij OK.
___________________________________________________________________________
Tworzenie wskaźników sugerujących wartości, które należy wprowadzić
Większość uprzednio zdefiniowanych wskaźników w programie MetaStock, podpowiada jakie dane powinieneś wprowadzić podczas ich obliczania (np. okresy czasowe, procenty, punkty, itp.). Do tworzonych wskaźników także możesz wprowadzić specjalną funkcję, zwaną input( ), która będzie sugerować jakie powinieneś wprowadzić dane.
Funkcja input( ) używa następującej składni:
input(„prompt text”,minimum value, maximumvalue, default value);
Prompt text
Definiuje tekst, który jest wyświetlany za polem wprowadzania. Używany jest do opisywanie tego, co należy wprowadzać.
Minimum value
Jest to najmniejsza wartość, która może być wprowadzona. Jeśli spróbujesz wprowadzić wartość mniejszą, niż ta wartość, program MetaStock wyświetli wiadomość.
Maximum value
Jest to największa wartość, która może być wprowadzona. Jeśli spróbujesz wprowadzić wartość większą, niż ta wartość, program MetaStock wyświetli wiadomość.
Default value
Jest to wartość domyślna (tj. wartość, która ukaże się w polu, gdy po raz pierwszy wyświetlisz okienko dialogowe). Pamiętaj, że wartość domyślna jest zawsze używana, gdy inny wzór przyzywa wskaźnik używający funkcji fml( ).
W obrębie wskaźnika można użyć maksymalnie sześć funkcji input( ). Program MetaStock zasugeruje podanie wszystkich wartości przed obliczeniem wskaźnika, bez względu na to, gdzie funkcje input( ) pojawiają się we wskaźniku. Wystarczy tylko, że użyjesz funkcji input( ) we wskaźniku. Systemy testujące, systemy eksploracji i porad eksperta nie akceptują funkcji input( ).
Jeśli użyjesz funkcji fml( ) (patrz str. 282) do przywoływania wskaźnika używającego funkcji input( ), to nie będziesz poproszony o wprowadzenie danych w przywoływanym wskaźniku. W takim przypadku przywoływana funkcja użyje ustawień domyślnych.
Niżej przedstawiony wskaźnik poprosi o wprowadzenie liczby okresów czasowych używanych przez średnią ruchomą (tj. okresy gładzenia) wskaźnika RSI:
SmoothingPeriods:=input(„Enter the number of RSI smoothing periods”,1,9,3);
mov(rsi(14),SmoothingPeriods,s);
Kiedy kreślony jest wskaźnik, ukazuje się poniższe okienko dialogowe danych wejściowych, które poprosi o „Enter the number of RSI smoothing periods”. Pamiętaj, że jeśli twój wskaźnik wymaga kilku danych wejściowych, o wszystkie te dane zostaniesz poproszony w tym okienku dialogowym.
W większości przypadków będziesz chciał oznaczyć funkcją input( ) zmienną (jak pokazano w powyższym przykładzie); w przeciwnym wypadku zakres jej używania jest bardzo ograniczony. Funkcja input( ) nie może być osadzona w obrębie innych funkcji. Na przykład, poniższe użycie funkcji input( ) jest nieprawidłowe:
mov(close,input(„Enter periods”,1,39,10),simple);
Jednakże, można napisać ten wzór używając zmiennej, jak poniżej:
maperiods:=input(„Enter periods”,1,39,10);
mov(close,maperiods,simple);
Jedną z potencjalnych możliwości użycia funkcji input( ) jest autonomiczne wyrażenie kreślące linię poziomą na określonej wartości:
Input(„Plot a horizontal line at „,1,10000,5);
Wskaźnik ten wykreśli linię poziomą, odpowiadającą wprowadzonej wartości. Może to być pomocne w wykreśleniu precyzyjnej linii poziomej (bardziej niż kreślenie poziomej linii studialnej) podczas kreślenia linii wsparcia/oporu.
___________________________________________________________________________
Przykładowe wskaźniki
Rozdział ten przedstawia przykłady kilku popularnych wskaźników napisanych w języku MetaStocka. Są one przedstawione w prostych przykładach. Wszystkie te wskaźniki są standardowymi wskaźnikami programu MetaStock (tj. nie potrzebujesz tworzyć tych wskaźników, aby je wykreślić). Jednakże, stanowią one dobry przykład zastosowania języka MetaStocka.
Informacje na temat interpretacji tych wskaźników, znajdziesz na str. 488.
Accumulation/Distribution
Wzór Accumulation/Distribution używa funkcji cum( ) (patrz str. 279) do obliczania sumarycznej wartości dziennej.
Cum((((C-L)-(H-C))/(H-L))*V)
Bollinger Bands
Bollinger Bands używa funkcji stdev( ) (patrz str. 299) do obliczania górnej i dolnej wstęgi. Średnia wstęga jest 20-okresową prostą średnią ruchomą.
Periods:=input(„Enter the number of periods:”,5,50,20);
mov(C,Periods,S);
mov(C,Periods,S)+(2*stdev(C,Periods));
mov(C,Periods,S)-(2*stdev(C,Periods))
Chaikin A/D Oscillator
Chaikin Oscillator może odwoływać się do uprzednio zdefiniowanego wskaźnika Accumulation/Distribution używając funkcji ad( ), tak jak poniżej.
ShortMA:=input(„Enter shorter moving average periods”,3,10,3);
LongMA:=input(„Enter longer moving average periods”,10,30,10);
mov(ad( ),ShortMA,E)-mov(ad( ),LongMA,E);
Lub, może zawierać aktualny wzór Accumulation/Distribution, tak jak poniżej.
mov(cum((((C-L)-(H-C))/(H-L))*V),3,E)-mov(cum((((C-L)-(H-C))/(H-L))*V),10,E)
Median Price
(high+low)/2
Momentum
Wzór Momentum używa funkcji ref( ) (patrz str. 298) do odwoływania się do ceny zamknięcia 12 okresów temu.
(close/ref(close,-12))*100
Moving Average MACD
Większość analityków (włączając w to Equis International) twierdzi, że wskaźnik MACD jest „różnicą pomiędzy 12-dniową i 26-dniową wykładniczą średnią ruchomą”. Jednakże, wskaźnik jest w rzeczywistości różnicą pomiędzy 0.15 i 0.075 wykładniczymi średnimi ruchomymi (natomiast, gdy wyrażenie posiada formę dziesiętną, 12 i 26-dniowe wykładnicze średnie ruchome są w rzeczywistości 0.153846 i 0.076923 wykładniczymi średnimi ruchomymi). Więcej informacji na temat metod obliczania wykładniczych średnich ruchomych, znajdziesz na str. 527.
Dzięki tym niewielkim różnicom w wartościach wykładniczych, poniższy wzór nieznacznie różni się od uprzednio zdefiniowanego wskaźnika MACD.
Pamiętaj, że możesz wykreślić prawdziwy wskaźnik MACD używając funkcji macd( ) (patrz str. 289).
mov(close,12,E)-mov(close,26,E)
Linia sygnalna MACD (która jest 9-dniową wykładniczą średnią ruchomą wskaźnika MACD) możne być obliczony tak jak poniżej:
mov(macd( ),9,E)
Negative Volume Index
Do obliczania uprzednio zdefiniowanego Negative Volume Index musisz użyć funkcji nvi( ). Jednakże, podobny wskaźnik może być obliczony przy pomocy poniższego wzoru:
cum(if(V<ref(V,-1),roc(C,1,%),0))
On Balance Volume
Poniższy wzór oblicza wskaźnik On Balance Volume:
(if(c>ref(c,-1),1,-1)*volume)+PREV
Pamiętaj, że stała PREV (patrz str. 268) przedstawia wartość wskaźnika w poprzednim dniu.
Positive Volume Index
Do obliczania uprzednio zdefiniowanego Positive Volume Index musisz użyć funkcji pvi( ). Jednakże, podobny wskaźnik możesz obliczyć używając poniższego wzoru:
cum(if(V>ref(V,-1),roc(C,1,%),0))
Price Oscillator
Poniższy wzór oblicza 10-okresowy/20-okresowy wykładniczy Price Oscillator wyrażony w punktach:
mov(close,10,E)-mov(close,20,E)
Poniższy wzór oblicza 10-okresowy/20-okresowy wykładniczy Price Oscillator wyrażony w procentach:
((mov(C,10,E)-mov(C,20,E))/mov(C,20,E))*100
Price Rate-Of-Change
Poniższy wzór oblicza 12-okresowy Price Rate-Of-Change:
((C-ref(C,-12))/ref(C,-12))*100
12-okresowy rate-of-change można także napisać używając funkcji roc( ), tak jak poniżej:
roc(close,12,%)
12-okresowy rate-of-change może być wyrażony w „punktach” używając poniższego wzoru:
close-ref(close,-12)
Price Volume Trend
Poniższy wzór, do obliczania Price Volume Trend, używa funkcji cum( ) (patrz str. 279):
cum(((C-ref(C,-1))/ref(C,-1))*V)
Wzór ten można także napisać używając funkcji roc( ) (patrz str. 297), tak jak poniżej:
cum(roc(close,1,%)*volume)
Standard Deviation
4-okresowy wskaźnik Standard Deviation może być napisany, tak jak poniżej. Pierwsze wyrażenie oznacza 4-okresową prostą średnią ruchomą zmiennej o nazwie „4PeriodMA”. Drugie wyrażenie sumuje kwadraty różnic pomiędzy średnią ruchomą, a cenami zamknięcia każdego z poprzednich czterech okresów. Następnie wzór oblicza pierwiastek kwadratowy tej sumy.
4PeriodMA:=Mov(CLOSE,4,S);
Sqrt((Power(4PeriodMA-C,2)+
Power((4PeriodMA)-Ref(C,-1),2)+
Power((4PeriodMA)-Ref(C,-2),2)+
Power((4PeriodMA)-Ref(C,-3),2))/4)
Łatwiejszym sposobem jest obliczenie pierwiastka kwadratowego funkcji rozbieżności, tak jak poniżej:
sqrt(var(close,4))
Oczywiście, łatwiejszą drogą jest napisanie wzoru Standard Deviation używając uprzednio zdefiniowanej funkcji stdev( ) (patrz str. 299).
Stochastic Momentum Index
Poniższy wzór oblicza 13,25,2 Stochastic Momentum Index.
100*(Mov(Mov(C-(0.5*(HHV(H,13)+
LLV(L,13))),25,E),2,E)/(0.5*Mov(Mov(HHV(H,13)-
LLV(L,13),25,E),2,E))
Stochastic Oscillator
Poniższy wzór oblicza 5-okresowy %K Stochastic Oscillator z 3-okresowym opóźnieniem:
(sum(C-llv(L,5),3)/sum(hhv(H,5)-llv(L,5),3))*100
Następny wzór oblicza 3-okresowy %D %K w poprzednim wzorze.
mov(stoch(5,3),3,S)
Volatility, Chaikin
Wzór Volatility pokazany poniżej używa 10-okresów w średniej ruchomej i 12-okresów w rate-of-change:
roc(mov(high-low,10,E),12,%)
Volume Oscillator
Poniższy wzór oblicza 10-okresowy/20-okresowy wykładniczy Volume Oscillator wyrażony w punktach.
mov(volume,10,E)-mov(volume,20,E)
Następny wzór oblicza 10-okresowy/20-okresowy wykładniczy Volume Oscillator wyrażony w procentach.
((mov(V,10,E)-mov(V,20,E))/mov(V,20,E))*100
Volume Rate-Of-Change
Poniższy wzór stanowi 12-okresowy wskaźnik Rate-Of-Change.
((V-ref(V,-12))/ref(V,-12))*100
Może on być napisany przy użyciu funkcji roc( ), tak jak poniżej:
roc(volume,12,%)
Weighted Close
Wzór Weighted Close mnoży cenę zamknięcia przez dwa, dodaje wartość maksymalną do minimalnej i następnie wynik dzieli przez cztery.
((close*2)+high+low)/4
Williams' Accumulation/Distribution
Upraszczając objaśnienie tego wzoru, wprowadzimy go jako trzy wzory. Pierwsze wyrażenie oznacza „prawdziwą wartość” maksimum zmiennej. Podobnie, drugi wzór oznacza „prawdziwą wartość” minimum zmiennej. Trzeci wzór oblicza wskaźnik Williams' A/D.
TrueRangeHigh:=max(ref(close,-1),high);
TrueRangeLow:=min(ref(close,-1),low);
Cum(if(C>ref(C,-1),C-TrueRangeLow,if(C<ref(C,-1),C-TrueRangeHigh,0)))
Williams' %R
Ten wzór oblicza wskaźnik Williams' %R. Pamiętaj, że wzór jest odwrócony przez pomnożenie go przez -100.
NumPeriods:=Input(„Enter the number of periods:”,3,50,14);
((HHV(H,NumPeriods)-C)/(HHV(H,NumPeriods)-LLV(L,NumPeriods)))*100;
___________________________________________________________________________
Podwójne fale Achelisa
Rozdział ten wyjaśnia, jak można wykorzystywać wskaźniki do tworzenia wskaźnika „Binary Wave”, który wyświetla ocenę techniczną papieru wartościowego. Koncepcję tego wskaźnika opracował Steven Achelis, prezydent Equis International.
Koncepcja Binary Wave jest trochę skomplikowana. Przed przeczytaniem tego rozdziału, powinieneś najpierw dokładnie zapoznać się ze wskaźnikami.
Binary Wave
Binary Wave kreśli +1 lub -1, w zależności od tego, który wskaźnik interpretuje wzrost lub spadek. (Składniki „Binary Wave” zasadzają się na koncepcji ±1). Rzeczywista siła Binary Wave występuje wtedy, gdy kilka Binary Wave zostało połączonych ze sobą w jeden wskaźnik Binary Waves.
Binary Waves są przeciwieństwem --> [Author:w] czarnego pola systemów transakcyjnych (aczkolwiek obydwa są uważane za „systemy eksperckie”). Nie znasz reguł lub wskaźników, które używane są do analizy papierów wartościowych w czarnym polu. Odwrotnie, sam ustalasz reguły i wskaźniki w Binary Waves.
Przykłady Binary Waves
Poniższa tabela pokazuje reguły wykorzystywane w czterech wskaźnikach Binary Wave. (Aby pomóc w zrozumieniu tych przykładów, użyliśmy tylko cztery Binary Wave oraz bardzo proste kryteria. Jednakże, możesz i powinieneś je zmodyfikować na podstawie swojego własnego doświadczenia).
Wskaźnik |
Wzrost |
Spadek |
MACD |
>linii sygnalnej |
<=linii sygnalnej |
Średnia ruchoma |
zamknięcie>śr. ruchomej |
Zamknięcie<=śr. Ruchomej |
Rate-Of-Change |
Rate-Of-Change>0 |
Rate-Of-Change<=0 |
Stochastic |
>50 |
<=50 |
Jak pokazano w tej tabeli, uważamy że MACD sygnalizuje wzrost, gdy znajduje się ponad linią sygnalną i sygnalizuje spadek, gdy jest równy lub znajduje się pod linią sygnalną. Tak więc, Binary Wave wykreśli ±1, w zależności od tego, czy MACD ponad czy poniżej linii sygnalnej. Ta sama koncepcja wykorzystywana jest przy tworzeniu trzech dodatkowych Binary Wave, które kreślą ±1 na podstawie zachowania innych wskaźników.
Połączmy te cztery Binary Wave w jeden, złożony Binary Waves. Gdy wszystkie cztery Binary Wave sygnalizują wzrost, wartość tego złożonego Binary Waves będzie +4; Gdy wszystkie cztery Binary Wave sygnalizują spadek, jego wartość będzie wynosić -4; gdy dwa z nich sygnalizują wzrost i dwa sygnalizują spadek, jego wartość będzie wynosić zero.
Wprowadzanie przykładu
Każdy pojedynczy Binary Wave, wchodzący w skład wskaźnika Binary Waves (nazwanego „Total Wave”), powinien być oznaczony zmienną i zsumowany, tak jak poniżej.
MACDWave:=if(macd( )>mov(macd( ),9,E),+1,-1);
MovWave:=if(C>mov(C,20,E),+1,-1);
ROCWave:=if(roc(C,12,%)>0,+1,-1);
StochWave:=if(stoch(5,3)>50,+1,-1);
MACDWave=MovWave+ROCWave+StochWave
Pierwszy wzór oznacza „+1”, jeśli wskaźnik MACD znajduje się ponad 9-okresową linią sygnalną. W przeciwnym wypadku, oznacza „-1”. Drugi wzór oznacza „+1”, jeśli zamknięcie znajduje się ponad 20-okresową wykładniczą średnią ruchomą. W przeciwnym wypadku, oznacza „-1”. Trzeci wzór oznacza „+1”, jeśli 12-okresowy rate-of-change cen zamknięcia jest większy niż 0. W przeciwnym wypadku, oznacza „-1”. Czwarty wzór oznacza „+1”, jeśli Stochastic Oscillator znajduje się ponad 50. W przeciwnym wypadku, oznacza „-1”. Piąty wzór składa się z poprzednich czterech zmiennych Binary Wave, zsumowanych w jeden złożony Binary Wave.
Poniższy wykres pokazuje rezultat:
Pamiętaj, że dobry, złożony Binary Wave, będzie dawał wyniki, które są nadrzędne w stosunku do wyników generowanych przez pojedyncze Binary Wave, wchodzące w jego skład.
Interpretacja Binary Wave
Interpretacja Binary Wave jest całkowicie oczywista: maksymalne wartości są sygnałem wzrostu, a minimalne wartości są sygnałem spadku. (Pamiętaj, że pojedyncze Binary Wave kreślą +1 lub -1; Znaczenie złożonego Binary Wave zależy od liczby pojedynczych Binary Wave).
System testujący „Total Wave” (pokazany poniżej) wprowadza długą pozycję, gdy wskaźnik staje się większy od zera i wprowadza krótką pozycję, jeśli wskaźnik staje się mniejszy od zera. Więcej informacji o tworzeniu systemów testujących, znajdziesz na str. 359.
Name :Total Wave
Enter Long :fml(„Total Wave”)<0
Close Long :fml(„Total Wave”)>0
Enter Short :fml(„Total Wave”)>0
Close Short :fml(„Total Wave”)<0
Możesz także utworzyć wzór „MACD-type” kreśląc różnię pomiędzy dwiema średnimi ruchomymi złożonego Binary Wave. Taki wzór powinien być napisany jak poniżej (nazwa wzoru „Smooth Total Wave”):
mov(fml(„Total Wave”),12,E)-mov(fml(„Total Wave”),26,E)
Sposobem ustalenia reguły tego co system ma testować za pomocą powyższego wzoru, jest na przykład reguła otwierania długiej pozycji, tak jak pokazano to poniżej:
Enter Long :fml(„Smooth Total Wave”)>0
Ulepszenia
We wzorach Binary Wave można wprowadzić wiele ulepszeń. Kilka z nich przedstawiono poniżej.
Złożony Binary Wave, przedstawiony na poprzednich stronach, składa się z czterech pojedynczych Binary Wave. Jednakże, możesz spróbować dołączyć znacznie więcej pojedynczych Binary Wave, w celu utworzenia własnego systemu testującego.
Zamiast kreślić ±1, możesz określić wagę Binary Wave, w zależności od twojego doświadczenia. Na przykład, jeden składnik w złożonym Binary Wave może kreślić ±5, podczas gdy inny składnik może kreślić ±0.75.
Możesz dołączyć długoterminowy składnik w obrębie złożonego Binary Wave. Na przykład, możesz dodać poniższy Binary Wave do złożonego „Total Wave”, określonego uprzednio:
if(CLOSE>mov(CLOSE,200,EXPONENTIAL),+10,-10)
Powyższy wzór doda ±10, w zależności od tego czy cena zamknięcia była powyżej lub poniżej swojej 200-dniowej średniej ruchomej. Tak więc, złożony Binary Wave będzie w granicach pomiędzy +6 i +14, gdy długoterminowy składnik będzie wzrostowy oraz będzie w granicach pomiędzy -6 i -14, gdy będzie on malejący. Możesz otworzyć długą pozycję, gdy złożony Binary Wave przekroczy +10, zamknąć długą pozycję, gdy spadnie poniżej +10, otworzyć krótką pozycję, gdy spadnie poniżej -10 oraz zamknąć krótką pozycję, gdy wzrośnie powyżej -10.
Możesz zdecydować, że wzór złożonego Binary Wave będzie zwracać kilka wartości. Poniższy wzór zwraca -2 gdy Stochastic Oscillator jest mniejszy niż 20, -1 gdy jest pomiędzy 20 i 40, 0 gdy jest pomiędzy 40 i 60, +1 gdy jest pomiędzy 60 i 80 oraz +2, gdy jest większy od 80.
if(stoch(5,3)<20,{then}-2,
{else}if(stoch(5,3)<40,{then}-1,
{else}if(stoch(5,3)<60,(then}0,
{else}if(stoch(5,3)<80,{then}+1,
{else}+2))))
Możesz wygładzić Binary Wave używając wzoru podobnego do „Smooth Total Wave” i kreśląc średnią ruchomą linii sygnalnej. System testujący może być tak napisany, aby testował przecięcie wskaźnika i średniej ruchomej linii sygnalnej.
Za pomocą złożonego Binary Wave, możesz określić kryteria oceny papierów wartościowych. Na przykład, możesz tak ustawić złożony wskaźnik Binary Wave, by sygnalizował wzrost, gdy zawarty jest pomiędzy 0 i +2.
Możesz wykreślić rata-of-change złożonego Binary Wave, używając wzoru przedstawionego poniżej:
Roc(fml(„Total Wave”),1,$)
Za każdym razem, gdy ten wskaźnik jest większy od zera, to oznacza, że co najmniej jeden ze wskaźników, wchodzący w skład Binary Wave, sygnalizuje wzrost. Podobnie, gdy jest mniejszy od zera, to oznacza, że jeden z nich sygnalizuje spadek.
Podsumowanie
Pojedynczy Binary Wave wyświetla ocenę (np. „jest wzrost, gdy MACD jest powyżej swojej 9-okresowej średniej ruchomej”) jako ±1. Złożony Binary Wave składający się z kilku pojedynczych Binary Wave, ilustruje twoją analizą papieru wartościowego na podstawie kilku wskaźników jednocześnie.
___________________________________________________________________________
Błędy
Błędy matematyczne
Jeśli spróbujesz wykreślić (lub wykonać) wzór, który zawiera błąd matematyczny, przed wykreśleniem wskaźnika ukaże się poniższe okienko dialogowe. To okienko dialogowe pokazuje liczbę wszystkich występujących rodzajów błędów.
Division by zero
Wzór jest dzielony przez zero. Na przykład, wzór „(ref(close,-1)-open)/(high-low)” będzie dzielony przez zero, gdy maksimum i minimum są sobie równe.
Invalid exponentiation
Wzór powoduje błąd matematyczny przez nieprawidłowe użycie wykładnika.
Invalid log
Wzór próbuje obliczyć logarytm z zera lub logarytm z liczby ujemnej. Na przykład, wzór „log(high-low)” będzie powodować błąd, gdy maksimum i minimum będą sobie równe.
Invalid power
Wzór próbuje obliczyć ujemną liczbę podniesioną do potęgi mniejszej niż jeden.
Modulus by zero
Drugie pole danych funkcji mod( ) jest równe zeru. Na przykład, wzór „mod(close, high-low)” spowoduje błąd, gdy maksimum i minimum będą sobie równe.
Negative square root
Twój wzór próbuje obliczyć pierwiastek kwadratowy liczby ujemnej. Na przykład, wzór „sqrt(open-close)” spowoduje błąd, gdy zamknięcie jest większe niż otwarcie.
Błąd wskaźnika
Okienko dialogowe Custom Indicator Error wyświetli się jeśli wystąpi błąd przetwarzania podczas obliczania wskaźnika. Każdy błąd, który nie jest błędem matematycznym, kwalifikuje się jako błąd przetwarzania.
Remove this indicator from the chart
Wskaźnik jest usuwany z wykresu i nie będzie ponownie obliczany.
Keep this indicator in the chart
Wskaźnik będzie ponownie obliczony przy następnej aktualizacji danych wykresu i wszystkie błędy, które występują będą raportowane.
Don't show future errors for this indicator in this chart
Wskaźnik będzie ponownie obliczony podczas następnej aktualizacji danych wykresu. Wszystkie błędy, który występują nie będą raportowane. Pamiętaj, że błędy będą ukrywane tylko dla wskaźnika w aktualnym wykresie.
Pamiętaj, że to okienko dialogowe może także ukazać się, jeśli zmieniłeś folder wyszczególniony na stronie File Locations w okienku dialogowym Application Options (patrz str. 42).
1
346
przeciwieństwem