Wstęp

Skutecznej analizy technicznej nie można przeprowadzić bez odpowiednich narzędzi handlowych. Skuteczna strategia handlowa może pomóc uniknąć typowych błędów, poprawić zarządzanie ryzykiem i zwiększyć zdolność identyfikowania i wykorzystywania okazji.

Dla wielu TradingView jest najpopularniejszą platformą do tworzenia wykresów. Ta potężna aplikacja internetowa HTML5 stanowi centrum narzędzi analizy technicznej, pomagając milionom użytkowników śledzić ruchy na rynku Forex, kryptowaluty i tradycyjne ruchy na giełdzie.

TradingView ma wiele zaawansowanych funkcji: pozwala użytkownikom śledzić aktywa na wielu platformach transakcyjnych i publikować swoje poglądy na temat handlu na swoich portalach społecznościowych. W tym artykule skupimy się na możliwościach dostosowywania. Będziemy używać Pine Script, zastrzeżonego języka programowania TradingView, który pozwala nam mieć bardziej szczegółową kontrolę nad układem wykresów.

Zacznijmy!


Co to jest skrypt sosnowy?

Pine Script to język skryptowy, którego można używać do modyfikowania wykresów TradingView. Platforma TradingView oferuje już wiele podobnych funkcji, ale Pine Script idzie jeszcze dalej. Niezależnie od tego, czy chcesz zmienić kolor wykresu świecowego, czy chcesz przetestować nową strategię, Pine Editor pozwala dostosować wykresy w czasie rzeczywistym do własnych potrzeb.

Sam kod jest dobrze udokumentowany, więc koniecznie sprawdź instrukcję obsługi, aby uzyskać szczegółowe informacje. Ten artykuł ma na celu omówienie kilku podstaw i przedstawienie wskaźników, które mogą się przydać w handlu kryptowalutami.


tworzyć

Pine Script jest prosty i łatwy w użyciu. Każdy kod, który piszemy, działa na serwerach TradingView, dzięki czemu możemy uzyskać dostęp do edytora za pośrednictwem przeglądarki i rozwijać nasze skrypty bez konieczności dodatkowego pobierania lub konfiguracji.

W tym samouczku przedstawimy wykres pary walutowej Bitcoin/Binance USD (BTCBUSD). Jeśli nie masz jeszcze konta Binance, załóż darmowe konto (konto Pro jest również możliwe, ale nie jest konieczne w przypadku tego przewodnika).

Otwórz link, a zobaczysz wykres podobny do następującego:


Tradingview上的BTCBUSD图表

Twoje dane na wykresie mogą zostać zaktualizowane.


Teraz chcemy uzyskać wykres z bogatymi funkcjami, kliknij przycisk, aby wejść. Możemy wtedy zobaczyć bardziej szczegółowe widoki, narzędzia do rysowania, opcje rysowania linii trendu i inne funkcje.


BTCBUSD在tradingview上的全功能图表

W pełni funkcjonalne wykresy. Możesz dostosować harmonogram, klikając Widok nad wyróżnioną zakładką.


Nie będziemy omawiać, jak korzystać z różnych dostępnych narzędzi, ale jeśli naprawdę chcesz przeprowadzić analizę techniczną, zdecydowanie zalecamy wcześniejsze zapoznanie się z nimi. W lewym dolnym rogu (jak pokazano na obrazku) zobaczysz kilka różnych zakładek - kliknij Edytor Pine.


Redaktor Sosny


screenshot截屏


Ten edytor jest niesamowity. Powiemy mu, co chcemy zrobić, a następnie klikniemy Dodaj do wykresu, a dodana przez nas adnotacja pojawi się na wykresie. Pamiętaj, że jeśli dodamy kilka adnotacji jednocześnie, zostaną one pomieszane, dlatego w przykładzie je usuniemy (kliknij prawym przyciskiem myszy na wykresie > Usuń wskaźnik).

Jak widać, mamy już kilka linijek kodu. Kliknijmy Dodaj do wykresu i zobaczmy, co się stanie.


将第一个脚本添加到tradingview图表中


Dodaj drugi wykres poniżej oryginalnego wykresu. Nowy wykres pokazuje dokładnie te same dane. Umieść kursor myszy nad moim skryptem i kliknij ×, aby usunąć. Teraz przeanalizujmy kod.

badania("myscript")

Pierwsza linia po prostu konfiguruje naszą adnotację. Wystarczy, że podasz nazwę wskaźnika, który chcesz wywołać (w tym przypadku „Mój Skrypt”), ale możemy też dodać kilka opcjonalnych parametrów. Jednym z nich jest override, ten parametr instruuje TradingView, aby umieścił wskaźnik na istniejącym wykresie (zamiast na nowym wykresie). Jak widać w pierwszym przykładzie, domyślna wartość to false. Chociaż nie możesz jeszcze zobaczyć, jak to działa, overlay=true doda wskaźnik do istniejącego wykresu.

Rysowanie wykresu (Zamknij)

Ta linia jest instrukcją służącą do wykreślenia ceny zamknięcia Bitcoina. Wykresy dają nam po prostu wykres liniowy, ale możemy także przedstawić wykresy świecowe i wykresy słupkowe, jak wkrótce się przekonamy.

Teraz spróbujmy wykonać następujące czynności:

//@wersja=4 badanie("Mój skrypt", nakładka=true) plot(otwarte, kolor=kolor.fioletowy)

Po dodaniu powinieneś zobaczyć drugi wykres (będzie wyglądał, jakby oryginalny wykres został przesunięty w prawo). Robimy wykres cen otwarcia, a ponieważ cena otwarcia danego dnia jest ceną zamknięcia z poprzedniego dnia, logiczne jest, że te wykresy będą się poruszać dokładnie w ten sam sposób.

W porządku! Usuńmy bieżącą adnotację (pamiętajmy, że robi się to poprzez kliknięcie prawym przyciskiem myszy i wybranie opcji Usuń wskaźnik). Umieść mysz na Bitcoin/BUSD i kliknij przycisk Ukryj, aby usunąć bieżący wykres.

Wielu traderów woli korzystać z wykresów typu K, które mogą dostarczyć nam więcej informacji niż prosty wykres, który właśnie stworzyliśmy. Następnie dodajmy narysowany przez nas wykres.

//@version=4 study("Mój skrypt", overlay=true) plotcandle(otwarte, wysokie, niskie, zamknięte)

Zaczęło się dobrze, ale szare kolory sprawiły, że wyglądało to trochę mdłe. W idealnym przypadku wykres linii K powinien być czerwony, gdy cena otwarcia jest niższa niż cena zamknięcia, i zielony, jeśli cena zamknięcia jest wyższa niż cena otwarcia. Dodajemy linię nad funkcją plotcandle():

//@version=4 study("Mój skrypt", overlay=true) kolory = otwarte >= zamknij?color.red: color.green plotcandle(otwarte, wysokie, niskie, zamknij)

Wymaga to spojrzenia na każdy wykres linii K, aby sprawdzić, czy cena otwarcia jest wyższa lub równa cenie zamknięcia. Jeśli tak się stanie, oznacza to, że cena w tym czasie spadła, a wykres świecowy zmieni kolor na czerwony. W przeciwnym razie zmieni kolor na zielony. Zmodyfikuj funkcję plotcandle() i dodaj następujący schemat kolorów:

//@version=4 study("Mój skrypt", overlay=true) kolory = otwarte >= zamknij?color.red: color.green plotcandle(otwarte, wysokie, niskie, zamknij, kolor=kolory)

Jeśli jeszcze tego nie zrobiłeś, usuń istniejące dane i dodaj je do wykresu. Teraz powinniśmy narysować wykres podobny do wykresu liniowego K.


Tradingview上的K线图

Dobrze zrobiony!


Narysuj średnią ruchomą (MA)

Zakończyliśmy kilka podstawowych operacji. Rzućmy okiem na nasz pierwszy niestandardowy wskaźnik – wykładniczą średnią kroczącą, czyli EMA. To narzędzie jest przydatne, ponieważ pozwala nam odfiltrować wszelkie zakłócenia rynkowe i wygładzić akcję cenową.

EMA różni się nieco od prostej średniej kroczącej (SMA) tym, że kładzie większy nacisk na najnowsze dane. Ma tendencję do szybszego reagowania na nagłe zmiany i często jest używany do operacji krótkoterminowych (na przykład w handlu dziennym).


Prosta średnia ruchoma (SMA)

Możemy również wykreślić SMA, abyśmy mogli później porównać oba. Dodaj tę linię do swojego skryptu.

fabuła(sma(blisko, 10))

To wykreśla średnią z poprzednich dziesięciu dni. Dostosuj liczby w nawiasach, aby zobaczyć, jak zmienia się krzywa wraz ze zmianą długości.


基于前10天的简单移动平均数

SMA opiera się na danych z poprzednich dziesięciu dni.


Wykładnicza średnia krocząca (EMA)

EMA jest bardziej skomplikowana do zrozumienia, ale nie martw się. Przeanalizujmy najpierw tę formułę:

EMA = (kurs zamknięcia – EMA z poprzedniego dnia) * wielokrotność – EMA z poprzedniego dnia

Co to oznacza? Każdego dnia obliczamy nową średnią ruchomą na podstawie wartości z poprzedniego dnia. Mnożnik jest „ważony” liczbą ostatnich dni i obliczany według następującego wzoru:

Wielokrotność = 2/(długość EMA + 1)

Podobnie jak w przypadku prostej średniej kroczącej, musimy przypisać wartość długości EMA. Syntaktycznie wykreślanie funkcji EMA jest podobne do wykreślania funkcji SMA. Narysuj to obok SMA i porównaj oba.

//@wersja=4 study("Mój skrypt", overlay=true) plot(sma(close, 10)) plot(ema(close, 10))


EMA和SMA在同一个tradingview图表上

Przekonasz się, że te dwa typy MA są nieco inne.


➟ Chcesz rozpocząć swoją przygodę z kryptowalutami? Zapraszamy do zakupu Bitcoinów na Binance!


Wbudowany skrypt

Do tej pory pisaliśmy nasz kod ręcznie, dzięki czemu możesz uzyskać intuicyjną obsługę. Teraz przedstawimy kilka funkcji, które mogą zaoszczędzić czas, zwłaszcza jeśli chcemy pisać bardziej złożone skrypty, ale nie chcemy zaczynać od zera.

W prawym górnym rogu edytora kliknij Nowy. Otrzymasz rozwijane menu pokazujące wiele różnych wskaźników technicznych. Kliknij Indeks średniej ruchomej, aby wyświetlić kod źródłowy wskaźnika EMA.



Pine script中的移动平均指数

Kliknij i dodaj go do wykresu.


Ten indeks różni się od naszego, zauważysz funkcję input(). Są świetne z punktu widzenia użyteczności, ponieważ możesz kliknąć to pole…


在tradingview界面上修改图表


...i kliknij ikonę koła zębatego ustawień, aby łatwo zmienić niektóre wartości w wyskakującym oknie.


改变EMA的输入内容


Aby to zademonstrować, do następnego skryptu dodamy kilka funkcji input().


Wykres wskaźnika względnej siły (RSI).

Indeks siły względnej (RSI) to kolejny ważny wskaźnik w analizie technicznej. Znany jako wskaźnik dynamiki, mierzy cenę, po której dany składnik aktywów jest kupowany i sprzedawany. W skali od 0 do 100 wynik RSI stara się powiedzieć inwestorom, czy dany składnik aktywów jest wykupiony czy wyprzedany. Zwykle, jeśli zasób ma wynik 30 lub mniej, można go uznać za wyprzedany, natomiast wynik 70 lub wyższy może zostać wykupiony.

Przejdź do New>RSI Strategy i przekonaj się sam. RSI jest zazwyczaj mierzony w okresie 14 (tj. 14 godzin lub 14 dni), ale możesz dostosować to ustawienie do swojej strategii.

Dodaj RSI do wykresu. Powinieneś teraz zobaczyć kilka strzałek (zdefiniowanych przez funkcję Strategy.entry() w tym kodzie). RsiLE stanowi potencjalną okazję do rozbudowy aktywa, ponieważ może ono zostać wyprzedane. RsiSE podkreśla możliwe punkty zwarcia, gdy aktywa są wykupione. Należy pamiętać, że podobnie jak w przypadku wszystkich wskaźników, niekoniecznie należy je traktować jako rozstrzygający dowód na to, że ceny będą spadać/rosnąć.


Testowanie historyczne

Istnieje sposób, w jaki możemy przetestować własne, niestandardowe wskaźniki. Chociaż dotychczasowe wyniki nie gwarantują przyszłych wyników, weryfikacja historyczna naszego skryptu może dać nam wyobrażenie o jego skuteczności w wychwytywaniu sygnałów.

Poniżej podamy prosty przykład skryptu. Planujemy prostą i przejrzystą strategię polegającą na wejściu na pozycję długą, gdy cena Bitcoina spadnie do 11 000 USD i wyjściu z pozycji długiej, gdy cena przekroczy 11 300 USD. Możemy wtedy zobaczyć, jak opłacalna była ta strategia w przeszłości.

//@wersja=4 strategia("ToDaMoon", nakładka=true) enter = wejście(11000) wyjście = wejście(11300) cena = zamknij jeśli (cena <= enter) strategia.entry("BuyTheDip",strategy.long ,comment="BuyTheDip") if (cena >= wyjście) strategia.close_all(comment="SellTheNews")

Tutaj definiujemy wejście i wyjście jako zmienne - oba są danymi wejściowymi, co oznacza, że ​​możemy wprowadzić zmiany w obu w dalszej części wykresu. Ustawiamy również zmienną cenową, która uwzględnia cenę zamknięcia każdego okresu. Następnie mamy pewną logikę zgodną ze wzorcem instrukcji if. Jeśli część w nawiasach jest prawdziwa, wówczas zostanie uruchomiony wcięty blok poniżej. W przeciwnym razie zostanie pominięty.

Dlatego też, jeśli cena jest mniejsza lub równa naszej pożądanej cenie wejściowej, a pierwsze wyrażenie ma wartość true, otworzymy pozycję długą. Gdy cena będzie równa lub wyższa od wymaganej ceny wyjścia, zostanie uruchomiony drugi blok, zamykający wszystkie otwarte pozycje.

Na wykresie umieszczamy adnotacje strzałkami pokazującymi, gdzie wchodzimy/wychodzimy, więc używamy parametrów oceny, aby określić, co oznacza te punkty (w tym przypadku „BuyTheDip” i „SellTheNews”). Skopiuj kod i dodaj go do wykresu.


指标在tradingview图表中处于活跃状态

Teraz możesz zobaczyć te wskaźniki na wykresie. Może być konieczne wzmocnienie.


TradingView automatycznie stosuje Twoje reguły do ​​starszych danych. Zauważysz również, że TradingView przełącza się z edytora Pine na zakładkę Tester strategii. Dzięki temu możesz zobaczyć przegląd potencjalnych zysków, listę transakcji i wydajność każdego wskaźnika.


交易观点策略测试器

Pozycje, do których weszliśmy i opuściliśmy.


Łączny

Teraz możemy napisać własny skrypt, korzystając z niektórych koncepcji, które widzieliśmy do tej pory. Połączymy EMA i RSI i wykorzystamy ich wartości, aby wpłynąć na kolor wykresu linii K, abyśmy mogli go łatwo zrozumieć.

Nie stanowi to jednak porady finansowej i nie ma obiektywnie prawidłowego sposobu wykorzystania tych wskaźników. Podobnie jak wszystkie inne narzędzia, należy go łączyć z innymi narzędziami, aby opracować własną strategię inwestycyjną.

Przyjrzyjmy się teraz nowemu skryptowi. Usuń wszystkie wskaźniki z wykresu i ukryj wykres Bitcoin/BUSD, abyśmy mieli czyste tło operacyjne.

Przyjrzyjmy się najpierw definicji. Nadaj mu dowolną nazwę, pamiętaj tylko o ustawieniu overlay=true.

study(title="Skrypt Akademii Binance", overlay=true)

Zapamiętaj naszą poprzednią formułę EMA. Musimy użyć długości EMA, aby obliczyć wielokrotność. Zamieńmy to na dane wejściowe wymagające całkowitej liczby cyfr, więc bez miejsc dziesiętnych. Ustawimy także wartość minimalną (minval) i wartość domyślną (defval).

study(title="Skrypt Akademii Binance", overlay=true) emaLength = input(title="Długość EMA", type=input.integer,defval=25, minval=0)


Na podstawie tej nowej zmiennej możemy obliczyć wartość EMA dla każdej świecy na wykresie:

study(title="Skrypt Akademii Binance", overlay=true) emaLength = input(title="Długość EMA", type=input.integer,defval=25, minval=0) emaVal = ema(close, emaLength)


bardzo dobry. Następnie spójrzmy na RSI. W podobny sposób przypiszemy mu wartość długości:

study(title="Skrypt Akademii Binance", overlay=true) emaLength = input(title="Długość EMA", type=input.integer,defval=25, minval=0) emaVal = ema(close, emaLength) rsiLength = wejście (title="Długość RSI", type=input.integer,defval=25, minval=0)

Teraz możemy obliczyć:

study(title="Skrypt Akademii Binance", overlay=true) emaLength = input(title="Długość EMA", type=input.integer, defval=25, minval=0) emaVal = ema(close, emaLength) rsiLength = wejście (title="Długość RSI", type=input.integer, defval=25, minval=0) rsiVal = rsi(close, rsiLength)

Na tym etapie ułóżmy logikę określającą kolory świeczników w zależności od wartości EMA i RSI. Załóżmy, że (a) świeca zamyka się powyżej EMA i (b) RSI jest powyżej 50.

Dlaczego powinniśmy to zakładać? Ponieważ możesz zdecydować się na użycie kombinacji tych wskaźników, aby wiedzieć, kiedy wybrać pozycję długą lub krótką na Bitcoinie. Na przykład możesz pomyśleć, że spełnienie tych dwóch warunków oznacza, że ​​teraz jest dobry moment na zajęcie pozycji długiej. Lub odwrotnie, możesz go użyć, aby przypomnieć sobie, kiedy nie wchodzić w pozycję krótką, nawet jeśli inne wskaźniki mówią coś przeciwnego.

Dlatego nasza następna linia kodu będzie wyglądać następująco:

study(title="Skrypt Akademii Binance", overlay=true) emaLength = input(title="Długość EMA", type=input.integer,defval=25, minval=0) emaVal = ema(close, emaLength) rsiLength = wejście (title="RSI Długość", type=input.integer,defval=25, minval=0) rsiVal = rsi(close, rsiLength) kolory = blisko > emaVal i rsiVal > 50? kolor.zielony: kolor.czerwony

Jeśli przetłumaczymy to zdanie na prosty angielski, tak naprawdę mówimy, że jeśli wartość EMA przekroczy cenę zamknięcia, a wynik RSI przekroczy 50, wykres świecowy zmieni kolor na zielony. W przeciwnym razie zmieni kolor na czerwony.

Następnie narysuj wykres EMA:

study(title="Skrypt Akademii Binance", overlay=true) emaLength = input(title="Długość EMA", type=input.integer,defval=25, minval=0) emaVal = ema(close, emaLength) rsiLength = wejście (title="RSI Długość", type=input.integer,defval=25, minval=0) rsiVal = rsi(close, rsiLength) kolory = blisko > emaVal i rsiVal > 50? kolor.zielony: kolor.czerwony wykres (emaVal, „EMA”)

Na koniec narysuj wykres liniowy K, pamiętaj o podaniu parametrów kolorów:

study(title="Skrypt Akademii Binance", overlay=true) emaLength = input(title="Długość EMA", type=input.integer,defval=25, minval=0) emaVal = ema(close, emaLength) rsiLength = wejście (title="RSI Długość", type=input.integer,defval=25, minval=0) rsiVal = rsi(close, rsiLength) kolory = blisko > emaVal i rsiVal > 50?color.green: color.red plot(emaVal , "EMA") plotcandle(otwarta, wysoka, niska, zamknięta, kolor=kolory)

Następnie scenariusz jest pisany! Dodaj to do wykresu i zobacz, jak to działa.


Tradingview脚本在运行

Wykres Bitcoin/BUSD ze wskaźnikami EMA/RSI.


Podsumować

W tym artykule za pomocą kilku podstawowych przykładów zademonstrujemy funkcjonalność edytora Pine w TradingView. Powinieneś teraz czuć się pewnie, dodając proste adnotacje na wykresach cen, aby uzyskać więcej informacji na podstawie własnych wskaźników.

W tym artykule omówiliśmy tylko kilka z tych wskaźników, ale zbudowanie bardziej złożonych wskaźników nie jest trudne — możesz utworzyć nowy wbudowany skrypt lub napisać własny.

Nadal brakuje Ci inspiracji? Poniższe artykuły mogą dostarczyć pomysłów na kolejny projekt:

  • Krótki przewodnik po wskaźniku parabolicznym

  • „Przewodnik po badaniu zniesienia Fibonacciego”

  • „Szczegółowe wyjaśnienie wskaźników wiodących i opóźnionych”

  • Szczegółowe wyjaśnienie wskaźnika wykładniczej średniej kroczącej (MACD).