Wstęp

Bez odpowiednich narzędzi handlowych nie będziesz w stanie przeprowadzić skutecznej analizy technicznej. Solidna strategia handlowa pomoże Ci uniknąć typowych błędów, usprawni zarządzanie ryzykiem i zwiększy Twoją zdolność identyfikowania i wykorzystywania okazji.

Dla wielu TradingView jest platformą wykresów referencyjnych. Ta potężna aplikacja internetowa HTML5, oferująca centrum narzędzi analizy technicznej, jest używana przez miliony ludzi do monitorowania ruchów na rynku Forex, kryptowalut i tradycyjnych giełdach.

TradingView ma wiele zaawansowanych funkcji: pozwala monitorować aktywa na wielu platformach handlowych, a także publikować pomysły na transakcje w sieci społecznościowej. W tym artykule skupimy się na możliwościach dostosowywania. Będziemy używać Pine Script, własnego języka programowania TradingView, który gwarantuje nam szczegółową kontrolę nad naszymi formatami graficznymi.

Zacznijmy!


Co to jest PineScript?

Pine Script to język skryptowy, którego możesz używać do modyfikowania wykresów TradingView. Platforma zapewnia już wiele funkcjonalności, które to umożliwiają, ale Pine Script pozwala pójść o krok dalej. Niezależnie od tego, czy chodzi o zmianę kolorów świec, czy testowanie historyczne nowej strategii, Pine Editor pozwoli Ci dostosować wykresy w czasie rzeczywistym według własnego uznania.

Sam kod jest doskonale udokumentowany, dlatego aby uzyskać więcej informacji, zapoznaj się z instrukcją obsługi. Naszym celem w tym samouczku jest omówienie niektórych podstawowych zasad i przedstawienie wskaźników, które mogą być przydatne w handlu kryptowalutami.


Ustawienie

Rozpoczęcie pracy z Pine Script jest niezwykle proste. Każdy kod, który napiszemy, będzie działał na serwerach TradingView, dzięki czemu będziemy mogli uzyskać dostęp do edytora i rozwijać nasze skrypty z poziomu przeglądarki – bez konieczności pobierania dodatkowych plików i konfiguracji.

W tym samouczku będziemy „wykresować” parę walutową Bitcoin/Binance USD (BTCBUSD). Jeśli jeszcze tego nie zrobiłeś, wykonaj ten krok i zarejestruj bezpłatne konto (dostępna jest również subskrypcja pro, ale nie jest ona konieczna w przypadku tego przewodnika).

Kliknij ten link, a znajdziesz wykres podobny do następującego:


Gráfico BTCBUSD en tradingview

Twoje będą prawdopodobnie bardziej aktualne.


Gdy już tu dotrzemy, będziemy chcieli mieć w pełni funkcjonalny wykres – kliknij przycisk, aby uzyskać do niego dostęp. Zapewni nam to między innymi znacznie bardziej szczegółowy widok, narzędzia do rysowania i opcje rysowania linii trendu.


Gráfico completo en tradingview para BTCBUSD

W pełni funkcjonalny wykres. Możesz dostosować odstęp czasu, klikając widoki pojawiające się nad podświetlonymi zakładkami.


Nie będziemy się rozwodzić nad tym, jak korzystać z różnych dostępnych narzędzi, ale jeśli poważnie podchodzisz do analizy technicznej, zdecydowanie zalecamy zapoznanie się z nimi. W lewym dolnym rogu (pokazanym na obrazku) zobaczysz szereg różnych zakładek – kliknij Edytor Pine.


Redaktor Sosny


captura de pantalla del pine editor


W tym edytorze dzieje się magia. Powiemy mu, co chcemy zrobić, a następnie klikniemy Dodaj do wykresu, aby zobaczyć, jak nasze adnotacje wyglądają powyżej. Pamiętaj, że sytuacja może się skomplikować, jeśli umieścimy kilka adnotacji na raz, więc będziemy je usuwać pomiędzy różnymi przykładami - kliknij prawym przyciskiem myszy na wykresie > Usuń wskaźniki.

Jak widać, mamy już tam kilka linijek kodu. Przejdźmy do kliknięcia Dodaj do wykresu, aby zobaczyć, co się stanie.


Añadiendo primer script al gráfico tradingview


Pod oryginałem dodano drugi wykres. Nowy wykres przedstawia te same dane. Najedź kursorem na Mój skrypt i kliknij krzyżyk, aby go usunąć. Teraz przeanalizujmy szczegółowo kod.

studiuj("Mój skrypt")

Ta pierwsza linia po prostu konfiguruje naszą adnotację. Wymagana jest jedynie nazwa, którą chcesz nadać wskaźnikowi (w tym przypadku „Mój skrypt”), choć istnieje również szereg opcjonalnych parametrów, które możemy dodać. Jednym z nich jest nakładka, która informuje TradingView o umieszczeniu wskaźnika na istniejącym wykresie (a nie na nowym segmencie). Jak widać w naszym pierwszym przykładzie, domyślnie wyświetla się jako false. Chociaż nie zobaczymy go teraz w akcji, overlay=true dodaje wskaźnik do istniejącego wykresu.

działka (zamknij)

Ta linia jest instrukcją oznaczającą cenę zamknięcia Bitcoina. plot po prostu dostarcza nam wykres liniowy, chociaż możemy również wyświetlić świece i słupki, jak się wkrótce przekonamy.

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

//@wersja=4
study("Mój skrypt", nakładka=true)
fabuła(otwarta, kolor=kolor.fioletowy)

Po dodaniu tego powinieneś zobaczyć drugi wykres (który będzie podobny do oryginalnego, przesunięty w prawo). Jedyne, co zrobiliśmy, to zarejestrowanie ceny otwarcia, a ponieważ otwarcie z bieżącego dnia jest zamknięciem z dnia poprzedniego, logiczne jest, że mają one identyczny kształt.

Bardzo dobry! Pozbędziemy się dotychczasowych adnotacji - pamiętajcie, że w tym celu należy kliknąć prawym przyciskiem myszy i wybrać opcję Usuń wskaźniki. Najedź kursorem na Bitcoin/BUSD i kliknij przycisk Ukryj, aby wyczyścić także bieżący wykres.

Wielu traderów preferuje wykresy świecowe, ponieważ dostarczają nam więcej informacji niż prosty diagram, taki jak ten, który właśnie stworzyliśmy. Przejdźmy do dodania ich poniżej.

//@wersja=4
study("Mój skrypt", nakładka=true)
plotcandle(otwarty, wysoki, niski, zamknięty)

To dobry początek, ale brak kolorów sprawia, że ​​​​jest trochę mdły. Idealnie byłoby, gdybyśmy mieli świece czerwone, gdy otwarcie jest większe niż zamknięcie w danym okresie, i zielone, gdy zamknięcie przekracza otwarcie. Dodamy więc linię nad funkcją plotcandle():

//@wersja=4
study("Mój skrypt", nakładka=true)
kolory = otwarte >= zamknięte? kolor.czerwony : kolor.zielony
plotcandle(otwarty, wysoki, niski, zamknięty)

Spowoduje to sprawdzenie każdej świecy i sprawdzenie, czy otwarcie jest większe lub równe zamknięciu. Jeśli tak jest, oznacza to, że ceny spadły w tym okresie, dlatego świeca zabarwi się na czerwono. W przeciwnym razie zabarwi go na zielono. Zmodyfikuj funkcję plotcandle(), aby zatwierdzić ten schemat kolorów:

//@wersja=4
study("Mój skrypt", nakładka=true)
kolory = otwarte >= zamknięte? kolor.czerwony : kolor.zielony
plotcandle(otwarta, wysoka, niska, zamknięta, kolor=kolory)

Usuń bieżące wskaźniki, jeśli jeszcze tego nie zrobiłeś, i dodaj ten do wykresu. Teraz powinniśmy mieć coś, co wygląda jak zwykły wykres świecowy.


Gráfico de velas en tradingview

Cenny!


Wykres średnich kroczących (MA)

Część podstawowych elementów już mamy. Przyjrzyjmy się teraz naszemu pierwszemu niestandardowemu wskaźnikowi – wykładniczej średniej kroczącej lub 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 przywiązuje większą wagę do najnowszych danych. Zwykle jest bardziej reaktywny na nagłe ruchy i często jest używany do krótkoterminowych transakcji (na przykład w handlu dziennym).


Prosta średnia ruchoma (SMA)

Moglibyśmy również wykreślić SMA, abyśmy mogli później porównać te dwie średnie. Dodaj tę linię do swojego skryptu:

fabuła(sma(blisko, 10))

Spowoduje to wykreślenie średniej z poprzednich dziesięciu dni. Dostosuj liczbę w nawiasach, aby zobaczyć, jak zmienia się krzywa, biorąc pod uwagę różne długości.


Media móvil basada en los 10 días anteriores

SMA na podstawie poprzednich dziesięciu dni.


Wykładnicza średnia krocząca (EMA)

EMA będzie nieco trudniejsza do zrozumienia, ale nie ma się czym martwić. Rozłóżmy najpierw formułę:

EMA = (Zamknij – EMA z poprzedniego dnia) * Mnożnik – EMA z poprzedniego dnia

Co nam to mówi? Cóż, dla każdego dnia obliczamy nową średnią ruchomą na podstawie średniej ruchomej z dnia poprzedniego. Mnożnik „waży” ostatni okres i jest obliczany przy użyciu następującego wzoru:

Mnożnik = 2 / (Długość EMA + 1)

Podobnie jak w przypadku prostych średnich kroczących, musimy określić, jak długo będzie trwała EMA. Składniowo funkcja wykreślania EMA jest podobna do funkcji SMA. Narysuj go obok SMA, aby móc porównać oba:

//@wersja=4
study("Mój skrypt", nakładka=true)
fabuła(sma(blisko, 10))
fabuła(ema(zamknij,10))


EMA y SMA en un gráfico de tradingview

Widać, że istnieje niewielka różnica pomiędzy obydwoma typami MA.


➠ Zastanawiasz się nad rozpoczęciem przygody ze światem kryptowalut? Kup Bitcoin na Binance!


Wbudowane skrypty

Do tej pory pisaliśmy nasz kod ręcznie, więc będziesz z nim zaznajomiony. Następnie wprowadzimy element, który może zaoszczędzić nam czasu, zwłaszcza jeśli mamy zamiar pisać bardziej złożone skrypty i nie chcemy tego robić od zera.

W prawym górnym rogu edytora kliknij Nowy. Natkniesz się na rozwijane menu z różnymi wskaźnikami technicznymi. Kliknij Średnia ruchoma wykładnicza, aby zobaczyć kod źródłowy wskaźnika EMA.



Media móvil exponencial en un script pine

Śmiało, dodaj to do wykresu.


Ta różni się od naszej – poznasz funkcje input(). Są świetne z punktu widzenia użyteczności, ponieważ możesz kliknąć to pole…


Modificando un gráfico en la interfaz de tradingview


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


cambiar las entradas en EMA


Aby to zademonstrować, w następnym skrypcie dodamy kilka funkcji input().


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

Indeks siły względnej (RSI) to kolejny istotny wskaźnik analizy technicznej. Jest znany jako wskaźnik „pędu”, co oznacza, że ​​mierzy prędkość, z jaką kupowane i sprzedawane są aktywa. Prezentowany w skali od 0 do 100 wskaźnik RSI ma na celu poinformować inwestorów, czy aktywa są „wykupione”, czy „wyprzedane”. Zazwyczaj składnik aktywów można uznać za wyprzedany, jeśli ma wynik mniejszy lub równy 30, oraz wykupiony z wynikiem większym lub równym 70.

Jeśli przejdziesz do Nowości > Strategia RSI, możesz to sprawdzić sam. RSI jest zwykle mierzony w okresach 14 (tj. 14 godzin lub 14 dni), ale możesz modyfikować te ustawienia, aby dopasować je do własnej strategii.

Dodaj to do wykresu. Powinieneś teraz zobaczyć kilka strzałek (zdefiniowanych przez funkcję Strategy.entry() w kodzie). RsiLE wskazuje potencjalną możliwość przedłużenia aktywa, ponieważ może ono zostać wyprzedane. RsiSE wskazuje możliwe 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, niekoniecznie należy polegać na nich jako na nieomylnym dowodzie wzrostu lub spadku cen.


Testowanie historyczne

Istnieje sposób, w jaki możemy przetestować nasze niestandardowe wskaźniki. Chociaż wyniki w przeszłości nie gwarantują przyszłych wyników, weryfikacja historyczna naszych skryptów może dać nam wyobrażenie o ich skuteczności w wychwytywaniu sygnałów.

Poniżej podamy przykład prostego skryptu. Stwórzmy prostą strategię, która wchodzi w długą pozycję, gdy cena BTC spadnie poniżej 11 000 dolarów i wychodzi z pozycji, gdy cena przekracza 11 300 dolarów. Widzimy zatem, jak historycznie opłacalna byłaby ta strategia.

//@wersja=4
strategia("ALaLuna", nakładka=true)
wprowadź = wejście (11000)
wyjście = wejście (11300)
cena = blisko

jeśli (cena <= wprowadź)
    strategia.entry("CompraLaCaída", strategia.long, komentarz="CompraLaCaída")
jeśli (cena >= wyjście)
    strategia.close_all(comment="VendeLasNoticias")

Tutaj zdefiniowaliśmy dane wejściowe i wyjściowe jako zmienne; oba są danymi wejściowymi, co oznacza, że ​​możemy je później zmienić na wykresie. Ustawiamy także zmienną cenową, która uwzględnia zamknięcie każdego okresu. Mamy więc pewną logikę w postaci instrukcji if. Jeśli część w nawiasach kwadratowych jest prawdziwa, zostanie wykonany blok wcięty poniżej. W przeciwnym razie zostanie pominięty.

Tak więc, jeśli cena jest mniejsza lub równa naszej pożądanej pozycji, pierwsze wyrażenie ma wartość true i otwieramy pozycję długą. Gdy cena osiągnie lub przekroczy żądaną wielkość produkcji, zostanie aktywowany drugi blok, zamykając wszystkie otwarte pozycje.

Oznaczymy wykres strzałkami wskazującymi, gdzie wchodzimy/wychodzimy, dlatego określamy, co oznaczyć te punkty parametrem komentarza (w tym przykładzie „BuyTheDip” i „SellTheNews”). Skopiuj kod i dodaj go do wykresu.


indicador activo en el gráfico tradingview

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


TradingView automatycznie stosuje Twoje reguły do ​​starszych danych. Zauważysz także, że następuje przejście z edytora Pine do zakładki Tester strategii. Dzięki temu możesz zobaczyć przegląd potencjalnych zysków, listę transakcji i poszczególne wyniki.


Trading view strategy tester

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


Złóż kawałki razem

Czas napisać własny scenariusz, korzystając z niektórych koncepcji, które widzieliśmy do tej pory. Połączymy EMA i RSI i wykorzystamy ich wartości do pokolorowania świec, co zwróci informacje, które możemy łatwo zwizualizować.

Nie należy tego interpretować jako porady finansowej; Nie ma obiektywnie prawidłowego sposobu wykorzystania tego wskaźnika. Podobnie jak w przypadku wszystkich innych, należy go używać z innymi narzędziami w celu opracowania własnej strategii.

Teraz popracujmy nad naszym nowym skryptem. Usuń wszystkie wskaźniki z wykresu i ukryj także wykres Bitcoin/BUSD, abyśmy mieli czyste płótno do pracy.

Zacznijmy od zdefiniowania naszego badania. Możesz nazwać to jak chcesz, po prostu pamiętaj o ustawieniu overlay = true.

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

Zapamiętajcie naszą formułę EMA z poprzednich lat. Musimy podać mnożnik z długością EMA. Przekonwertujmy to na dane wejściowe wymagające liczby całkowitej (więc bez miejsc dziesiętnych). Ustalimy również minimum, które może wynosić (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)


Korzystając z tej nowej zmiennej, możemy obliczyć wartość EMA dla każdej świecy na naszym wykresie:

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


Doskonały. O RSI. Długość nadamy mu podobnie:

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

I teraz możemy to obliczyć:

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

Na tym etapie ułożymy logikę, która koloruje świece w oparciu o wartości EMA i RSI. Weźmy sytuację, w której (a) cena zamknięcia świecy przekracza EMA oraz (b) gdy RSI jest powyżej 50.

Ponieważ? Cóż, możesz zdecydować, że te wskaźniki mogą być używane razem, aby powiedzieć Ci, kiedy kupić Bitcoin w perspektywie krótko- lub długoterminowej. Na przykład możesz pomyśleć, że spełnienie obu warunków oznacza, że ​​jest to dobry moment na otwarcie pozycji długiej. Lub odwrotnie, możesz go użyć, aby poinformować Cię, kiedy nie należy wchodzić w pozycję krótką, nawet jeśli inne wskaźniki mówią inaczej.

Zatem nasza następna linia 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(zamknij, emaLength)
rsiLength = input(title="Długość RSI", type=input.integer, defval=25, minval=0)
rsiVal = rsi(zamknij, rsiLength)
kolory = zamknij > emaVal i rsiVal > 50 ? kolor.zielony : kolor.czerwony

Jeśli przełożymy to na prosty język, powiemy po prostu, że jeśli wartość EMA przekroczy cenę zamknięcia, a wynik RSI przekroczy 50, zabarwimy świecę na zielono. W przeciwnym razie pokolorujemy go na czerwono.

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(zamknij, emaLength)
rsiLength = input(title="Długość RSI", type=input.integer, defval=25, minval=0)
rsiVal = rsi(zamknij, rsiLength)
kolory = zamknij > emaVal i rsiVal > 50 ? kolor.zielony : kolor.czerwony
wykres(emaVal, "EMA")

Na koniec narysuj świece, pamiętając o uwzględnieniu parametru koloru:

study(title="Skrypt Akademii Binance", overlay=true)
emaLength = input(title="Długość EMA", type=input.integer, defval=25, minval=0)
emaVal = ema(zamknij, emaLength)
rsiLength = input(title="Długość RSI", type=input.integer, defval=25, minval=0)
rsiVal = rsi(zamknij, rsiLength)
kolory = zamknij > emaVal i rsiVal > 50 ? kolor.zielony : kolor.czerwony
wykres(emaVal, "EMA")
plotcandle(otwarta, wysoka, niska, zamknięta, kolor=kolory)

I to jest scenariusz! Dodaj go do wykresu, aby zobaczyć go w akcji.


Script de Tradingview en acción

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


Podsumowując

W tym artykule przyjrzymy się kilku podstawowym przykładom tego, co można zrobić za pomocą edytora Pine TradingView. W tym momencie pamiętaj o wykonaniu prostych adnotacji na wykresach cenowych, aby uzyskać dodatkowe informacje z własnych wskaźników.

Zainteresowało nas tutaj tylko kilka wskaźników, ale łatwo jest wygenerować bardziej złożone wskaźniki, wybierając wbudowane skrypty New lub pisząc je samodzielnie.

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

  • Krótki przewodnik po parabolicznym wskaźniku SAR

  • Przewodnik po opanowaniu zniesień Fibonacciego

  • Wprowadzenie do wskaźników wiodących i opóźnionych (wskaźniki wyprzedzające/opóźniające)

  • Wyjaśnienie wskaźnika MACD