Wprowadzić
Bez odpowiednich narzędzi handlowych nie będziesz w stanie skutecznie przeprowadzić analizy technicznej. Rozsądna strategia handlowa pomoże Ci uniknąć typowych błędów, poprawi skuteczność zarządzania ryzykiem oraz zwiększy Twoją zdolność identyfikowania i wykorzystywania okazji.
Dla wielu osób TradingView jest kompleksową platformą do tworzenia wykresów. Dzięki szeregowi narzędzi do analizy technicznej ta potężna aplikacja internetowa HTML5 jest używana przez miliony osób do śledzenia ruchów na rynku Forex, kryptowalut i tradycyjnych giełdach.
TradingView ma wiele przydatnych funkcji: pozwala użytkownikom śledzić aktywa na wielu platformach handlowych i publikować pomysły handlowe w sieci społecznościowej TradingView. W tym artykule skupimy się na możliwościach dostosowywania tej platformy. Będziemy używać Pine Script, własnego języka skryptowego TradingView, który daje nam szczegółową kontrolę nad układem wykresu.
Zacznijmy!
Co to jest skrypt sosnowy?
Pine Script to język skryptowy, którego można używać do modyfikowania wykresów w TradingView. Platforma zapewnia już wiele funkcji, które to umożliwiają, ale Pine Script pozwala pójść o krok dalej. Niezależnie od tego, czy chcesz zmienić kolor świec, czy przetestować nową strategię, Pine Editor umożliwia dostosowywanie wykresów w czasie rzeczywistym według własnego uznania.
Sam kod jest nienagannie zaprojektowany, więc koniecznie sprawdź instrukcję, aby uzyskać więcej informacji. Naszym celem w tym przewodniku jest omówienie niektórych podstaw i przedstawienie wskaźników, które mogą być przydatne podczas handlu kryptowalutami.
Tworzyć
Możesz łatwo rozpocząć pracę z Pine Script. Każdy kod, który piszemy, działa na serwerach TradingView, dzięki czemu możesz uzyskać dostęp do edytora i rozwijać swoje skrypty z poziomu przeglądarki – bez pobierania i dodatkowej konfiguracji.
W tym przewodniku przedstawimy wykres pary walutowej Bitcoin/Binance USD (BTCBUSD). Jeśli go nie masz, utwórz bezpłatne konto (dostępna jest również subskrypcja pro, ale nie jest ona konieczna w przypadku tego samouczka).
Kliknij ten link, a zobaczysz wykres podobny do poniższego:

Twój wykres może być nowszy niż nasz.
W tym miejscu użyjemy w pełni funkcjonalnego wykresu – kliknij przycisk, aby uzyskać do niego dostęp. Ten wykres daje nam znacznie bardziej szczegółowe informacje, narzędzia do rysowania i opcje rysowania linii trendu itp.

W pełni funkcjonalne wykresy. Możesz dostosować przedział czasowy, klikając widok nad podświetloną zakładką.
Nie będziemy omawiać, jak korzystać z dostępnych narzędzi, ale jeśli chcesz przeprowadzić poważną analizę techniczną, powinieneś poznać te narzędzia. W lewym dolnym rogu (pokazanym na obrazku) zobaczysz kilka różnych zakładek – kliknij Edytor Pine.
Redaktor Sosny

Ten edytor jest naprawdę pomocny. Określimy, co chcemy zrobić, a następnie kliknij Dodaj do wykresu, aby zobaczyć naszą legendę powyżej. Należy pamiętać, że jeśli umieścimy wiele adnotacji na raz, może dojść do zamieszania, dlatego usuniemy adnotacje z przykładów (kliknij wykres prawym przyciskiem myszy > Usuń wskaźniki).
Jak widać, mamy tam kilka linijek kodu. Kliknij Dodaj do wykresu, aby zobaczyć, co się stanie.

Pod oryginałem dodano drugi wykres. Nowy wykres przedstawia te same dane. Najedź kursorem na Mój skrypt i kliknij ukośnik, aby usunąć. Teraz zagłębimy się w kod.
studiuj("Mój skrypt")Ta pierwsza linia służy tylko do tworzenia komentarza. Ta linia prosi Cię jedynie o nadanie wskaźnikowi żądanej nazwy (w tym przypadku „Mój skrypt”), ale zawiera także pewne (opcjonalne) parametry, które możesz dodać. Jedną z nich jest nakładka, która każe TradingView umieścić wskaźnik na istniejącym wykresie (a nie w nowym segmencie). Jak widać w pierwszym przykładzie, domyślną wartością systemową jest false. Chociaż nakładka nie będzie teraz widoczna, opcja overlay=true doda wskaźnik do istniejącego wykresu.
działka (zamknij)Ta linia jest wskaźnikiem do rysowania ceny zamknięcia Bitcoina. plot po prostu daje nam wykres liniowy, ale możemy także wyświetlić wykresy świecowe i słupkowe, jak wkrótce się przekonasz.
Wypróbujmy teraz następujący wiersz kodu:
//@wersja=4 badanie("Mój skrypt", nakładka=true) plot(otwarte, kolor=kolor.fioletowy)Po dodaniu tej linii kodu zobaczysz drugi wykres (który wygląda jak oryginalny wykres przesunięty w prawo). Zamiast tego jedyne, co zrobiliśmy, to wykreśliliśmy cenę otwarcia, a ponieważ cena otwarcia z bieżącego dnia jest ceną zamknięcia z poprzedniego dnia, oznacza to, że mają one identyczny kształt.
W porządku! Usuńmy istniejące adnotacje (pamiętajmy, robimy to klikając prawym przyciskiem myszy i wciskając Usuń wskaźniki). Najedź kursorem na Bitcoin/BUSD i kliknij przycisk Ukryj, aby wyczyścić również bieżący wykres.
Wielu traderów lubi wykresy świecowe, ponieważ dostarczają więcej informacji niż prosty wykres, taki jak ten, który właśnie stworzyliśmy. Następnie dodamy następujący wiersz kodu.
//@version=4 study("Mój skrypt", overlay=true) plotcandle(otwarte, wysokie, niskie, zamknięte)Początek jest dobry, ale brak koloru sprawia, że wykres jest trochę mdły. Idealnie byłoby, gdybyśmy używali świec czerwonych, gdy cena otwarcia jest wyższa niż cena zamknięcia w danym przedziale czasowym, oraz świec zielonych, jeśli cena zamknięcia jest wyższa niż cena otwarcia. Dodamy linię kodu nad funkcją plotcandle():
//@wersja=4 study("Mój skrypt", nakładka=true) kolory = otwórz >= zamknij ? color.red : color.green plotcandle(otwarty, wysoki, niski, zamknięty)Na tym wykresie przyjrzymy się każdej świecy i sprawdzimy, czy cena otwarcia jest większa lub równa cenie zamknięcia. Jeśli tak, oznacza to, że cena w tym okresie spadła, dlatego świeca będzie miała kolor czerwony. Jeżeli jest odwrotnie, świeca będzie miała kolor zielony. Zmodyfikuj funkcję plotcandle() , aby uwzględnić tę regułę koloru:
//@wersja=4 study("Mój skrypt", nakładka=true) kolory = otwórz >= zamknij ? color.red : color.green plotcandle(otwarty, wysoki, niski, zamknięty, kolor=kolory)Usuń istniejące wskaźniki, jeśli jeszcze tego nie zrobiłeś i dodaj wskaźnik do wykresu. Teraz będziemy mieli zwykły wykres świecowy.

Świetnie!
Rysowanie średniej ruchomej (MA)
Mamy pewne podstawy. Przejdźmy do naszego pierwszego niestandardowego wskaźnika – wykładniczej średniej kroczącej, czyli EMA. Jest to cenne narzędzie, 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 EMA koncentruje się na najnowszych danych. EMA są bardziej wrażliwe na nagłe wahania i często są wykorzystywane do handlu krótkoterminowego (np. handlu jednodniowego).
Prosta średnia ruchoma (SMA)
Możemy również wykreślić SMA, abyśmy mogli później porównać oba. Dodaj tę linię kodu do swojego skryptu:
fabuła(sma(blisko, 10))Ta linia kodu przedstawia średnią z poprzednich dziesięciu dni. Dostosuj liczby w nawiasach, aby zobaczyć, jak zmienia się krzywa, biorąc pod uwagę różne długości.

SMA, na podstawie poprzednich dziesięciu dni.
Wykładnicza średnia krocząca (EMA)
EMA będzie trochę bardziej zagmatwana, ale nie martw się. Najpierw rozłóżmy formułę:
EMA = (Cena zamknięcia – EMA z poprzedniego dnia) * Mnożnik – EMA z poprzedniego dniaCo zatem mówi nam ta formuła? Każdego dnia obliczamy nową średnią ruchomą w oparciu o średnią ruchomą z poprzedniego dnia. Mnożnik „waży” ostatni okres i jest obliczany według wzoru:
Mnożnik = 2 / (Długość EMA + 1)W przypadku prostej średniej ruchomej musimy określić długość EMA. Składniowo funkcja wykresu EMA jest podobna do funkcji wykresu SMA. Wykreślamy EMA obok SMA, abyś mógł je porównać:
//@wersja=4 study("Mój skrypt", overlay=true) plot(sma(close, 10)) plot(ema(close,10))
Można zauważyć niewielkie różnice w obu typach MA.
➠ Chcesz rozpocząć swoją przygodę z kryptowalutą? Kup Bitcoin na Binance!
Wstępnie ustawiony skrypt
Jak dotąd pisaliśmy kod ręcznie, abyś mógł go zrozumieć. Ale omówimy inny sposób na zaoszczędzenie czasu, zwłaszcza jeśli piszesz bardziej złożone skrypty i nie chcesz zaczynać od zera.
W prawym górnym rogu edytora kliknij Nowy. Zobaczysz rozwijane menu wyświetlające wszystkie typy wskaźników technicznych. Kliknij opcję Średnia ruchoma wykładnicza, aby wyświetlić kod źródłowy wskaźnika EMA typu open source.

Śmiało, dodaj tę linię kodu do wykresu.
Ta linia kodu różni się od naszej – zauważysz funkcję input(). Jest to przydatna funkcja z punktu widzenia użyteczności, ponieważ możesz kliknąć to pole…

...i łatwo zmień niektóre wartości w wyskakującym oknie, klikając ikonę Ustawienia.

Aby to zademonstrować, w następnym skrypcie dodamy kilka funkcji input().
Rysowanie wskaźnika wskaźnika względnej siły (RSI).
Indeks siły względnej (RSI) jest kolejnym istotnym wskaźnikiem w analizie technicznej. Wskaźnik ten, znany jako wskaźnik dynamiki, mierzy tempo kupna i sprzedaży aktywów. W skali od 0 do 100 wynik RSI informuje inwestorów, czy dany składnik aktywów jest wykupiony czy wyprzedany. Zazwyczaj składnik aktywów można uznać za wyprzedany, jeśli wynik jest mniejszy lub równy 30, i uznany za wykupiony, jeśli wynik jest większy lub równy 70.
Jeśli przejdziesz do opcji Nowy > Strategia RSI, możesz to zobaczyć. RSI jest zazwyczaj mierzony w okresie 14 godzin (tj. 14 godzin lub 14 dni), ale możesz swobodnie dostosować to ustawienie do swojej strategii.
Dodaj ten wskaźnik do wykresu. Powinieneś teraz zobaczyć kilka strzałek (zdefiniowanych przez funkcję Strategy.entry() w kodzie). RsiLE wskazuje potencjalną szansę na zajęcie pozycji długiej na aktywach, gdy mogą one zostać wyprzedane. RsiSE wskazuje punkty, w których można dokonać krótkiej sprzedaży aktywa, gdy jest ono wykupione. Należy pamiętać, że podobnie jak w przypadku wszystkich wskaźników, nie można koniecznie polegać na tych sygnałach, aby mieć pewność, że cena spadnie/wzrośnie.
Recenzja
Istnieje sposób przetestowania wskaźników niestandardowych. Chociaż dotychczasowe wyniki nie gwarantują przyszłych wyników, skrypty do analizy historycznej mogą powiedzieć, jak skuteczne są w zbieraniu sygnałów.
Poniżej podamy przykład prostego skryptu. Stworzymy prostą strategię polegającą na wejściu w pozycję długą, gdy cena BTC spadnie poniżej 11 000 USD i wyjściu z pozycji, gdy cena przekroczy 11 300 USD. Możesz 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 = zamknięcie if (cena <= enter) strategy.entry("BuyTheDip", strategia.long , komentarz="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 je później zmienić na wykresie. Ustalamy także cenę zmienną, która przyjmuje cenę zamknięcia z każdego okresu. Następnie używamy logiki w formie instrukcji if. Jeśli część w nawiasach jest prawdziwa, zostanie uruchomiony poniższy blok z wcięciem. W przeciwnym razie zostanie zignorowane.
Zatem, jeśli cena jest niższa lub równa naszej pożądanej cenie wejściowej, pierwsze wyrażenie przyjmie wartość true i otworzymy pozycję długą. Gdy cena będzie równa lub wyższa od pożądanej ceny wyjścia, zostanie uruchomiony drugi blok, zamykający wszystkie otwarte pozycje.
Będziemy opisywać wykres strzałkami wskazującymi punkty wejścia/wyjścia, dlatego określiliśmy etykiety, które dołączymy do tych punktów za pomocą parametru komentarza (w tym przykładzie „BuyTheDip” i „SellTheNews”). Skopiuj kod i dodaj go do wykresu.

Możesz teraz zobaczyć wskaźniki na wykresie. Powinieneś zmniejszyć wykres.
TradingView automatycznie zastosuje reguły do danych historycznych. Zauważysz także przeniesienie TradingView z edytora Pine do zakładki Tester strategii. Dzięki temu możesz zobaczyć przegląd potencjalnych zysków, listę transakcji i wyniki każdej transakcji.

Pozycje, na które weszliśmy i opuściliśmy.
Połączyć
Czas napisać własny scenariusz, korzystając z niektórych koncepcji z dotychczasowych początków. Połączymy EMA i RSI i wykorzystamy ich wartości do pokolorowania świec, dostarczając spostrzeżeń, które możemy łatwo zwizualizować.
Treści tych nie należy traktować jako porady finansowej – nie ma obiektywnie prawidłowego sposobu wykorzystania tego wskaźnika. Jak każdy inny wskaźnik, powinieneś używać tego wskaźnika z innymi narzędziami, aby opracować własną strategię.
Teraz będziemy pracować nad nowym scenariuszem. Usuńmy wszystkie wskaźniki z wykresu i ukryjmy także wykres Bitcoin/BUSD, abyśmy mieli zupełnie nowe ramy.
Zacznijmy od zdefiniowania naszych badań. Możesz nazwać to jak chcesz, pamiętaj tylko o ustawieniu overlay=true.
study(title="Skrypt Akademii Binance", overlay=true)Zapamiętaj naszą formułę EMA z poprzedniej sekcji. Musimy podać mnożnik długości EMA. Ustaw go jako wejście wymagające liczby całkowitej (a więc bez miejsc dziesiętnych). Ustalimy także wartość minimalną, która może wynosić (minval) oraz wartość domyślną (defval).
study(title="Skrypt Akademii Binance", overlay=true) emaLength = input(title="Długość EMA", type=input.integer, defval=25, minval=0)Korzystając z 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)Świetnie. Przejdź do RSI. W podobny sposób podamy długość RSI:
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ć wartość:
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 połączymy logikę kolorowania świec w zależności od wartości EMA i RSI. Załóżmy, że (a) cena zamknięcia świecy przekracza EMA oraz (b) gdy RSI jest powyżej 50.
Dlaczego? Możesz zdecydować się na użycie kombinacji tych wskaźników, aby wiedzieć, kiedy kupić lub sprzedać Bitcoin. Na przykład możesz pomyśleć, że spełnienie obu tych warunków oznacza, że jest to właściwy moment na otwarcie pozycji długiej. Lub odwrotnie, możesz użyć tego wskaźnika, aby wiedzieć, kiedy nie robić krótkich pozycji, nawet jeśli inne wskaźniki mówią inaczej.
Dlatego 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.czerwonyJeśli przetłumaczymy tę linijkę kodu, oznacza to po prostu, że jeśli wartość EMA przekracza cenę zamknięcia, a wynik RSI przekracza 50, świeca zostanie zabarwiona na zielono. Jeżeli jest odwrotnie, świeca będzie miała kolor czerwony.
Następnie narysuj 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 świece, pamiętaj o podaniu parametru koloru:
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(otwarty, wysoki, niski, zamknięty, kolor=kolory)Taki jest scenariusz! Dodajmy ten skrypt do wykresu, aby zobaczyć, jak będzie wyglądać.

Wykres BTC/BUSD ze wskaźnikiem EMA/RSI.
streszczenie
W tym artykule pokazaliśmy kilka podstawowych przykładów tego, co możesz zrobić za pomocą edytora Pine w TradingView. Teraz możesz śmiało tworzyć proste adnotacje do wykresów cen, aby uzyskać więcej informacji na podstawie własnych wskaźników.
Nas interesuje tutaj tylko kilka wskaźników, ale możesz łatwo stworzyć bardziej złożone wskaźniki – wybierając wbudowany skrypt z sekcji Nowe lub pisząc go samodzielnie.
Brakuje Ci pomysłów? Poniższe artykuły mogą dać ci kilka pomysłów na następny projekt:
Krótki przewodnik po parabolicznym wskaźniku SAR
Instrukcje korzystania ze wskaźnika zniesienia Fibonacciego
Wyjaśnij wskaźnik szybkiego i wskaźnika wolnego
Wyjaśnienie wskaźnika MACD
