Jak Tworzy膰 Wska藕niki Analizy Technicznej (TA) na TradingView
Strona G艂贸wna
Artyku艂y
Jak Tworzy膰 Wska藕niki Analizy Technicznej (TA) na TradingView

Jak Tworzy膰 Wska藕niki Analizy Technicznej (TA) na TradingView

Zaawansowany
Opublikowane Aug 28, 2020Zaktualizowane Jun 15, 2023
13m

Wprowadzenie

Bez odpowiednich narz臋dzi nie mo偶na przeprowadzi膰 skutecznej analizy technicznej. Solidna strategia handlowa pomo偶e Ci unikn膮膰 typowych b艂臋d贸w, polepszy膰 zarz膮dzanie ryzykiem i zwi臋kszy膰 Twoj膮 zdolno艣膰 do identyfikowania i wykorzystywania natrafiaj膮cych si臋 okazji.
Dla wielu TradingView jest platform膮 do tworzenia wykres贸w. Oferuj膮c wachlarz narz臋dzi do analizy technicznej, ta pot臋偶na aplikacja internetowa HTML5 jest u偶ywana przez miliony do 艣ledzenia ruch贸w na rynku Forex, kryptowalut i tradycyjnych gie艂dach.
TradingView ma wiele zaawansowanych funkcji: pozwala nam 艣ledzi膰 aktywa na wielu platformach handlowych i publikowa膰 swoje pomys艂y w sieci spo艂eczno艣ciowej. W tym artykule skupimy si臋 na mo偶liwo艣ci konfiguracji. B臋dziemy u偶ywa膰 Pine Script, natywnego j臋zyka programowania TradingView, kt贸ry zapewnia nam kontrol臋 nad naszymi wykresami.

Zaczynajmy!


Czym jest Pine Script?

Pine Script to j臋zyk skryptowy, kt贸rego mo偶na u偶ywa膰 do modyfikowania wykres贸w na TradingView. Platforma bazowo wyposa偶a Ci臋 w wiele funkcji, ale Pine Script pozwala p贸j艣膰 o krok dalej. Niezale偶nie od tego, czy chcesz zmieni膰 kolory swoich 艣wiec, czy te偶 przetestowa膰 now膮 strategi臋, Edytor Pine umo偶liwi Ci dostosowanie wykres贸w w czasie rzeczywistym wed艂ug w艂asnego uznania.
Sam kod posiada fantastyczn膮 dokumentacj臋, wi臋c mo偶esz zapozna膰 si臋 z instrukcjami, aby uzyska膰 wi臋cej informacji. Naszym celem w tym samouczku jest om贸wienie niekt贸rych podstaw i wprowadzenie wska藕nik贸w, kt贸re mog膮 si臋 przyda膰 w handlu kryptowalutami.


Konfiguracja

Rozpocz臋cie pracy z Pine Script jest niezwykle proste. Ka偶dy kod, kt贸ry piszemy, jest uruchamiany na serwerach TradingView, dzi臋ki czemu mo偶emy uzyska膰 dost臋p do edytora i tworzy膰 nasze skrypty z przegl膮darki - bez pobierania dodatkowego oprogramowania lub zb臋dnego konfigurowania.

W tym samouczku przedstawimy tworzenie wykresu pary walutowej Bitcoin/Binance USD (BTCBUSD). Je艣li jeszcze go nie masz, utw贸rz bezp艂atne konto (dost臋pna jest r贸wnie偶 subskrypcja pro, ale nie jest to konieczne w tym przewodniku).聽
Kliknij ten link, a zobaczysz wykres podobny do nast臋puj膮cego:


Tw贸j prawdopodobnie b臋dzie bardziej aktualny.


Chcemy uzyska膰 w pe艂ni funkcjonalny wykres - kliknij przycisk, aby uzyska膰 do niego dost臋p. Daje nam to mi臋dzy innymi znacznie bardziej szczeg贸艂owy widok, narz臋dzia do rysowania i opcje kre艣lenia linii trendu.


W pe艂ni funkcjonalny wykres. Mo偶esz dostosowa膰 ramy czasowe, klikaj膮c widoki powy偶ej pod艣wietlonych kart.


Nie b臋dziemy omawia膰, jak korzysta膰 z r贸偶nych dost臋pnych narz臋dzi, ale je艣li powa偶nie my艣lisz o analizie technicznej, zdecydowanie zalecamy zapoznanie si臋 z nimi. W lewym dolnym rogu (zaznaczonym na obrazku) zobaczysz kilka r贸偶nych zak艂adek - kliknij Pine Editor.


Edytor Pine



To w tym w艂a艣nie edytorze dzieje si臋 ca艂a magia. Powiemy mu, co chcemy zrobi膰, a nast臋pnie klikniemy Add to Chart, aby zobaczy膰 to co dodali艣my. Pami臋taj, 偶e sytuacja mo偶e si臋 skomplikowa膰, je艣li dodamy kilka adnotacji naraz, ale dla przejrzysto艣ci b臋dziemy je usuwa膰 mi臋dzy przyk艂adami (aby usun膮膰, kliknij prawym przyciskiem myszy na wykres > Remove Indicators).
Wida膰, 偶e mamy tam ju偶 kilka linii kodu. Kliknij Add to Chart, aby zobaczy膰, co si臋 stanie.



Drugi wykres zostanie dodany pod orygina艂em. Nowy wykres przedstawia te same dane. Najed藕 kursorem na My Script i kliknij krzy偶yk, aby go usun膮膰. Przejd藕my teraz do kodu.
study("My Script")
Ta pierwsza linijka to tylko konfiguracja naszej adnotacji. Wymaga tylko nazwy dla wska藕nika kt贸ry chcesz stworzy膰 (w tym przypadku 鈥濵贸j skrypt鈥), ale istnieje r贸wnie偶 kilka opcjonalnych parametr贸w, kt贸re mo偶emy doda膰. Jednym z nich jest overlay, kt贸ry m贸wi TradingView, aby umie艣ci膰 wska藕nik na istniej膮cym wykresie (zamiast w nowym segmencie). Jak wida膰 z naszego pierwszego przyk艂adu, domy艣lnie przyjmuje on warto艣膰 fa艂sz. Chocia偶 nie zobaczymy tego teraz w akcji, overlay = true dodaje wska藕nik do istniej膮cego wykresu.
plot(close)
W tej linii znajduje si臋 instrukcja nakre艣lenia ceny zamkni臋cia Bitcoina. Komenda plot po prostu poka偶e nam wykres liniowy, ale mo偶emy r贸wnie偶 wy艣wietli膰 艣wiece i s艂upki, do czego przejdziemy wkr贸tce.聽

Spr贸bujmy teraz czego艣 takiego:

//@version=4
study("My Script", overlay=true)
plot(open, color=color.purple)
Po dodaniu tego powiniene艣 zobaczy膰 drugi wykres (kt贸ry wygl膮da jak orygina艂 przesuni臋ty w prawo). Zamiast tego wykre艣lili艣my cen臋 otwarcia, a poniewa偶 otwarcie danego dnia to zamkni臋cie dnia poprzedniego, ma to sens, 偶e maj膮 one identyczny kszta艂t.
W porz膮dku! Pozb膮d藕 si臋 obecnych adnotacji (pami臋taj, robimy to, klikaj膮c prawym przyciskiem myszy i naciskaj膮c Remove Indicators). Najed藕 kursorem na Bitcoin/BUSD i kliknij przycisk Hide, aby wyczy艣ci膰 r贸wnie偶 bie偶膮cy wykres.

Wielu trader贸w woli wykresy 艣wiecowe, poniewa偶 daj膮 nam wi臋cej informacji ni偶 zwyk艂y wykres, taki jak ten, kt贸ry w艂a艣nie zrobili艣my. Stw贸rzmy wi臋c takie.

//@version=4
study("My Script", overlay=true)
plotcandle(open, high, low, close)
To dobry pocz膮tek, ale brak kolor贸w sprawia, 偶e wykres jest troch臋 md艂y. Najlepiej by艂oby, gdyby艣my mieli czerwone 艣wiece, gdy otwarcie jest wi臋ksze ni偶 zamkni臋cie w danym przedziale czasowym, a zielone, je艣li zamkni臋cie jest wi臋ksze ni偶 otwarcie. Dodamy teraz lini臋 kodu powy偶ej funkcji plotcandle():
//@version=4
study("My Script", overlay=true)
colors = open >= close ? color.red : color.green
plotcandle(open, high, low, close)

Teraz program sprawdza ka偶d膮 艣wiec臋 i ustala, czy otwarcie jest wi臋ksze lub r贸wne zamkni臋ciu. Je艣li tak, oznacza to, 偶e ceny spad艂y w tym okresie, wi臋c 艣wieca zabarwi si臋 na czerwono. W przeciwnym razie pokoloruje j膮 na zielono. Zmodyfikuj funkcj臋 plotcandle(), aby aktywowa膰 ten schemat kolorowania:

//@version=4
study("My Script", overlay=true)
colors = open >= close ? color.red : color.green
plotcandle(open, high, low, close, color=colors)

Usu艅 obecne wska藕niki, je艣li jeszcze tego nie zrobi艂e艣 i dodaj do wykresu ten kt贸ry w艂a艣nie stworzyli艣my. Teraz powinni艣my mie膰 co艣 przypominaj膮cego zwyk艂y wykres 艣wiecowy.


Pi臋kny!


Kre艣lenie 艣rednich krocz膮cych (MA)

Om贸wili艣my ju偶 kilka podstaw. Przejd藕my do naszego pierwszego wska藕nika niestandardowego - wyk艂adniczej 艣redniej krocz膮cej lub EMA. Jest to cenne narz臋dzie, poniewa偶 pozwala nam odfiltrowa膰 szum rynkowy i wyg艂adzi膰 akcj臋 cenow膮.聽
EMA r贸偶ni si臋 od prostej 艣redniej krocz膮cej (SMA) tym, 偶e przywi膮zuje wi臋ksz膮 wag臋 do najnowszych danych. Zwykle reaguje bardziej na nag艂e ruchy i jest cz臋sto u偶ywane do "zagra艅" kr贸tkoterminowych (na przyk艂ad w day-tradingu).


Prosta 艣rednia krocz膮ca (SMA)

Nakre艣limy teraz SMA, 偶eby艣my mogli por贸wna膰 j膮 p贸藕niej z EMA. Dodaj t臋 lini臋 kodu do swojego skryptu:

plot(sma(close, 10))

Funkcja ta przedstawia 艣redni膮 z poprzednich dziesi臋ciu dni. Zmie艅 liczb臋 w nawiasach, aby zobaczy膰, jak zmienia si臋 krzywa, bior膮c pod uwag臋 r贸偶ne d艂ugo艣ci.


SMA, w oparciu o dane z poprzednich 10 dni.


Wyk艂adnicza 艣rednia krocz膮ca (EMA)

EMA b臋dzie nieco trudniejsza do zrozumienia, ale nie martw si臋. Najpierw przeanalizujmy wz贸r:

EMA = (Zamkni臋cie - EMA z Poprzedniego Dnia) * Mno偶nik - EMA z Poprzedniego Dnia

Wi臋c co nam to m贸wi? C贸偶, dla ka偶dego dnia obliczamy now膮 艣redni膮 ruchom膮 na podstawie 艣redniej z poprzedniego dnia. Mno偶nik 鈥瀢a偶y鈥 ostatni okres i jest obliczany wed艂ug nast臋puj膮cego wzoru:

Mno偶nik = 2 / (D艂ugo艣膰 EMA + 1)

Podobnie jak w przypadku prostych 艣rednich krocz膮cych, musimy okre艣li膰, jaka b臋dzie d艂ugo艣膰 EMA. Pod wzgl臋dem sk艂adniowym funkcja nakre艣lania EMA jest podobna do tej od SMA. Umie艣膰my je obok siebie dla por贸wnania:

//@version=4
study("My Script", overlay=true)
plot(sma(close, 10))
plot(ema(close,10))


Mo偶esz zobaczy膰 drobn膮 r贸偶nic臋 w tych dw贸ch typach MA.



Wbudowane skrypty

Do tej pory pisali艣my nasz kod r臋cznie, aby艣 m贸g艂 zobaczy膰 z czym to si臋 je. Teraz przedstawmy co艣, co pozwoli nam zaoszcz臋dzi膰 czas, zw艂aszcza je艣li piszemy bardziej z艂o偶one skrypty, a nie chcemy robi膰 ich od zera.

U g贸ry po prawej stronie edytora kliknij New. Pojawi si臋 rozwijane menu z r贸偶nymi rodzajami wska藕nik贸w technicznych. Kliknij opcj臋 Moving Average Exponential, aby wy艣wietli膰 kod 藕r贸d艂owy wska藕nika EMA.



艢mia艂o, dodaj to do wykresu.


Ten skrypt r贸偶ni si臋 od naszego - na pewno zauwa偶y艂e艣 funkcje input(). Jest bardzo fajna z punktu widzenia u偶yteczno艣ci, poniewa偶 mo偶esz klikn膮膰 to pole鈥



... i 艂atwo zmieni膰 niekt贸re warto艣ci w wyskakuj膮cym okienku, klikaj膮c w Settings.



W nast臋pnym skrypcie dodamy kilka funkcji input(), aby zademonstrowa膰 ich dzia艂anie.


Kre艣lenie Wska藕nika Relatywnej Si艂y (RSI)

Wska藕nik Si艂y Wzgl臋dnej (RSI) jest kolejnym niezast膮pionym wska藕nikiem analizy technicznej. Jest znany jako wska藕nik dynamiki, co oznacza, 偶e mierzy tempo, w jakim aktywa s膮 kupowane i sprzedawane. Przedstawiony w skali od 0 do 100, wynik RSI jest pr贸b膮 poinformowania inwestor贸w, czy aktywa s膮 nadmiernie kupowane, czy wyprzedawane. Zazwyczaj aktywa mog膮 by膰 uznane za "nad-sprzedawane", je艣li maj膮 wynik RSI mniejszy lub r贸wny 30, oraz "nad-kupowane" przy RSI wi臋kszym lub r贸wnym 70.
Je艣li przejdziesz do New > RSI Strategy, mo偶esz to zobaczy膰 na w艂asne oczy. RSI jest zazwyczaj mierzony w okresach 14 (tj. 14 godzin lub 14 dni), ale mo偶esz dostosowa膰 to ustawienie do w艂asnej strategii.
Dodaj to do wykresu. Powiniene艣 teraz zobaczy膰 kilka strza艂ek (zdefiniowanych przez funkcj臋 strategy.entry() w kodzie). RsiLE wskazuje na potencjaln膮 mo偶liwo艣膰 longowania aktyw贸w, poniewa偶 mog膮 one by膰 "nad-sprzedawane". RsiSE zwraca uwag臋 na mo偶liwe punkty, w kt贸rych mo偶e by膰 warto shortowa膰 aktywa, gdy s膮 "nad-kupowane". Pami臋taj, 偶e tak jak w przypadku wszystkich wska藕nik贸w, nie nale偶y koniecznie polega膰 na nich jako na niezawodnych dowodach, 偶e ceny spadn膮/wzrosn膮.


Backtesting

Istnieje spos贸b na przetestowanie naszych niestandardowych wska藕nik贸w. Chocia偶 dotychczasowe wyniki nie gwarantuj膮 przysz艂ych rezultat贸w, backtesting (testowanie historyczne) naszych skrypt贸w mo偶e da膰 nam wyobra偶enie o tym, jak skuteczne s膮 one w odbieraniu sygna艂贸w.

Poni偶ej podamy przyk艂ad prostego skryptu. Zamierzamy stworzy膰 prost膮 strategi臋, kt贸ra wejdzie na pozycj臋 long, gdy cena BTC spadnie poni偶ej $11,000 i wyjdzie, gdy cena przekroczy $11,300. Mo偶emy w ten spos贸b zobaczy膰, jak op艂acalna by艂aby ta strategia w przesz艂o艣ci.

//@version=4
strategy("ToDaMoon", overlay=true)
enter = input(11000)
exit = input(11300)
price = close

if (price <= enter)
    strategy.entry("BuyTheDip", strategy.long, comment="BuyTheDip")
if (price >= exit)
    strategy.close_all(comment="SellTheNews")
Tutaj zdefiniowali艣my wej艣cie (entry) i wyj艣cie (exit) jako zmienne 鈥 obie s膮 inputami (danymi wej艣ciowymi), co oznacza, 偶e mo偶emy je p贸藕niej zmieni膰 na wykresie. Stworzyli艣my r贸wnie偶 zmienn膮 cenow膮 (price), kt贸ra zamyka ka偶dy okres. Nast臋pnie wprowadzamy troch臋 logiki w postaci instrukcji if. Je艣li formu艂a w nawiasach przyjmuje warto艣膰 prawda, zostanie uruchomiony blok kodu z "wci臋cia" pod ni膮. W przeciwnym razie zostanie pomini臋ty.

Je艣li wi臋c cena jest ni偶sza lub r贸wna ustawionemu wej艣ciu, pierwsze wyra偶enie przyjmuje warto艣膰 鈥瀙rawda鈥 i otworzymy pozycj臋 long. Gdy cena zr贸wna si臋 lub przekroczy ustalone wyj艣cie, zostanie uruchomiony drugi blok, zamykaj膮cy wszystkie otwarte pozycje.

Opiszemy wykres strza艂kami wskazuj膮cymi, gdzie weszli艣my/wyszli艣my. Okre艣lili艣my tak偶e jak nazwa膰 konkretne punkty za pomoc膮 parametru komentarza (comment) (w tym przyk艂adzie 鈥濨uyTheDip鈥 i 鈥濻ellTheNews鈥). Skopiuj kod i dodaj go do wykresu.


Teraz mo偶esz zobaczy膰 wska藕niki na wykresie. By膰 mo偶e b臋dziesz musia艂 powi臋kszy膰.


TradingView automatycznie aplikuje Twoje "zasady" do starszych danych. Zauwa偶y r贸wnie偶, 偶e prze艂膮cza si臋 z Edytora Pine na kart臋 Strategy Tester. Dzi臋ki temu mo偶esz zobaczy膰 przegl膮d potencjalnych zysk贸w, list臋 transakcji i wyniki ka偶dej z nich.


Pozycje na kt贸re weszli艣my i z kt贸rych wyszli艣my.


Podsumowanie

Czas napisa膰 w艂asny skrypt, korzystaj膮c z niekt贸rych koncepcji, kt贸re poznali艣my. Zamierzamy po艂膮czy膰 EMA i RSI i u偶y膰 ich warto艣ci do pokolorowania 艣wiec, uzyskuj膮c spostrze偶enia, kt贸re mo偶emy 艂atwo zwizualizowa膰.

Nie nale偶y tego interpretowa膰 jako porady finansowej - nie ma obiektywnie poprawnego sposobu wykorzystania tego wska藕nika. Podobnie jak w przypadku wszystkich innych, nale偶y go u偶ywa膰 z innymi narz臋dziami, aby utworzy膰 w艂asn膮 strategi臋.

Popracujmy teraz nad naszym nowym skryptem. Usu艅 wszystkie wska藕niki z wykresu i ukryj wykres Bitcoin/BUSD, aby艣my mieli czyste stanowisko pracy.

Zacznijmy od zdefiniowania naszego badania (parametr study). Mo偶esz nada膰 mu dowoln膮 nazw臋, po prostu upewnij si臋, 偶e ustawi艂e艣 overlay = true.
study(title="Binance Academy Script", overlay=true)
Przypomnij sobie wcze艣niej omawiany wz贸r EMA. Musimy poda膰 mno偶nik wraz z d艂ugo艣ci膮 EMA. Zr贸bmy to jako dane wej艣ciowe (input) wymagaj膮ce liczby ca艂kowitej (a wi臋c bez miejsc po przecinku). Ustawimy r贸wnie偶 minimum (minval) i warto艣膰 domy艣ln膮 (defval).
study(title="Binance Academy Script", overlay=true)
emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0)


Korzystaj膮c z tej nowej zmiennej, mo偶emy obliczy膰 warto艣膰 EMA dla ka偶dej 艣wiecy na naszym wykresie:

study(title="Binance Academy Script", overlay=true)
emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0)
emaVal = ema(close, emaLength)


Wspaniale. Teraz RSI. D艂ugo艣膰 w tym wypadku ustawimy w podobny spos贸b:

study(title="Binance Academy Script", overlay=true)
emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0)
emaVal = ema(close, emaLength)
rsiLength = input(title="RSI Length", type=input.integer, defval=25, minval=0)

Teraz mo偶emy je policzy膰:

study(title="Binance Academy Script", overlay=true)
emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0)
emaVal = ema(close, emaLength)
rsiLength = input(title="RSI Length", type=input.integer, defval=25, minval=0)
rsiVal = rsi(close, rsiLength)

Na tym etapie dodajmy logik臋, za pomoc膮 kt贸rej pokolorujemy 艣wiece w zale偶no艣ci od warto艣ci EMA i RSI. We藕my sytuacj臋, w kt贸rej (a) cena zamkni臋cia 艣wiecy przekracza EMA i (b) RSI wynosi powy偶ej 50.

Czemu? C贸偶, mo偶esz zdecydowa膰, 偶e te wska藕niki mog膮 by膰 u偶ywane naraz, aby powiedzie膰 Ci, kiedy longowa膰 lub shortowa膰 Bitcoina. Na przyk艂ad mo偶esz pomy艣le膰, 偶e spe艂nienie obu tych warunk贸w oznacza, 偶e jest to dobry moment na zaj臋cie pozycji long. Lub odwrotnie, mo偶esz go u偶y膰, aby poinformowa艂 Ci臋, kiedy nie nale偶y shortowa膰, nawet je艣li inne wska藕niki m贸wi膮 inaczej.

Tak wi臋c nasza nast臋pna linia kodu b臋dzie wygl膮da膰 tak:

study(title="Binance Academy Script", overlay=true)
emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0)
emaVal = ema(close, emaLength)
rsiLength = input(title="RSI Length", type=input.integer, defval=25, minval=0)
rsiVal = rsi(close, rsiLength)
colors = close > emaVal and rsiVal > 50 ? color.green : color.red
Gdyby przet艂umaczy膰 to na ludzki j臋zyk, to po prostu m贸wimy, 偶e je艣li warto艣膰 EMA przekracza cen臋 zamkni臋cia i RSI jest wi臋ksze ni偶 50, pokolorujemy 艣wiec臋 na zielono. W przeciwnym razie pokolorujemy j膮 na czerwono.聽

Teraz nakre艣lmy EMA:

study(title="Binance Academy Script", overlay=true)
emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0)
emaVal = ema(close, emaLength)
rsiLength = input(title="RSI Length", type=input.integer, defval=25, minval=0)
rsiVal = rsi(close, rsiLength)
colors = close > emaVal and rsiVal > 50 ? color.green : color.red
plot(emaVal, "EMA")
Na koniec nakre艣lmy 艣wiece, upewniaj膮c si臋, 偶e uwzgl臋dnili艣my parametr color:
study(title="Binance Academy Script", overlay=true)
emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0)
emaVal = ema(close, emaLength)
rsiLength = input(title="RSI Length", type=input.integer, defval=25, minval=0)
rsiVal = rsi(close, rsiLength)
colors = close > emaVal and rsiVal > 50 ? color.green : color.red
plot(emaVal, "EMA")
plotcandle(open, high, low, close, color=colors)

Oto nasz skrypt! Dodaj go do wykresu i zobacz jak wygl膮da.


Wykres BTC/BUSD ze wska藕nikiem EMA/RSI.


Przemy艣lenia ko艅cowe

W tym artykule om贸wili艣my kilka podstawowych przyk艂ad贸w tego, co mo偶esz zrobi膰 za pomoc膮 Edytora Pine na TradingView. Na ten moment powiniene艣 mie膰 pewno艣膰, 偶e potrafisz zrobi膰 proste adnotacje do wykres贸w cenowych, aby uzyska膰 dodatkowe informacje na podstawie w艂asnych wska藕nik贸w.

Tutaj przyjrzeli艣my si臋 tylko kilku podstawowym wska藕nikom, ale 艂atwo stworzy膰 bardziej skomplikowane - wybieraj膮c wbudowane skrypty z zak艂adki New, albo pisz膮c je samodzielnie.

Brakuje Ci inspiracji? Poni偶sze artyku艂y mog膮 dostarczy膰 pomys艂贸w na kolejny projekt: