Úvod
Bez správných obchodních nástrojů nemůžete provádět efektivní technickou analýzu. Silná obchodní strategie vám pomůže vyhnout se běžným chybám, zlepšit řízení rizik a zvýšit vaši schopnost identifikovat a využít příležitosti.
Pro mnohé je TradingView hlavní platformou pro vytváření grafů. Výkonnou webovou aplikaci HTML5, která nabízí centrum nástrojů technické analýzy, používají miliony lidí ke sledování pohybů na Forexu, kryptoměnách a tradičních akciových trzích.
TradingView má mnoho výkonných funkcí: umožňuje nám sledovat aktiva na mnoha obchodních platformách a publikovat obchodní nápady v rámci své sociální sítě. V tomto článku se zaměříme na jeho přizpůsobitelnost. Budeme používat Pine Script, vlastní programovací jazyk TradingView, který nám poskytuje podrobnou kontrolu nad rozložením grafů.
Začněme!
Co je Pine Script?
Pine Script je skriptovací jazyk, který lze použít k úpravě grafů TradingView. Platforma vás k tomu již vybavuje mnoha funkcemi, ale Pine Script vám umožňuje posunout se o krok dále. Ať už chcete změnit barvy svých svícnů nebo otestovat novou strategii, Pine Editor vám umožní přizpůsobit si grafy v reálném čase, jak uznáte za vhodné.
Samotný kód je skvěle zdokumentován, takže se určitě podívejte do uživatelské příručky pro více informací. Naším cílem v tomto tutoriálu je probrat některé základy a představit indikátory, které se mohou hodit při obchodování s kryptoměnami.
Nastavení
Začít s Pine Scriptem je neuvěřitelně jednoduché. Jakýkoli kód, který napíšeme, běží na serverech TradingView, takže můžeme přistupovat k editoru a vyvíjet naše skripty z prohlížeče – bez nutnosti dalšího stahování nebo konfigurace.
V tomto tutoriálu zmapujeme měnový pár Bitcoin/Binance USD (BTCBUSD). Pokud jej ještě nemáte, pokračujte a vytvořte si bezplatný účet (k dispozici je také profesionální předplatné, ale pro tuto příručku to není nutné).
Klikněte na tento odkaz a uvidíte graf podobný následujícímu:

Ten váš bude pravděpodobně aktuálnější.
Zde chceme získat plnohodnotný graf – kliknutím na tlačítko se k němu dostanete. To nám mimo jiné poskytuje mnohem podrobnější pohled, nástroje pro kreslení a možnosti vykreslování trendových linií.

Plně vybavený graf. Časový rámec můžete upravit kliknutím na zobrazení nad zvýrazněnými kartami.
Nebudeme diskutovat o tom, jak používat různé dostupné nástroje, ale pokud to s technickou analýzou myslíte vážně, důrazně vám doporučujeme, abyste se s nimi seznámili. Vlevo dole (naznačeno na obrázku) uvidíte několik různých karet – klikněte na Pine Editor.
Editor Pine

V tomto editoru se děje kouzlo. Řekneme mu, co chceme udělat, a poté klikněte na Přidat do grafu, aby se výše zobrazily naše anotace. Všimněte si, že pokud zahrneme několik anotací najednou, věci se mohou zamotat, takže je mezi příklady odstraníme (klikněte pravým tlačítkem v grafu > Odebrat indikátory).
Můžete vidět, že už tam máme pár řádků kódu. Klikněte na Přidat do grafu, abyste viděli, co se stane.

Pod původní se přidá druhý graf. Nový graf náhodou představuje stejná data. Najeďte myší na Můj skript a kliknutím na křížek jej odstraňte. Nyní se pojďme ponořit do kódu.
studium ("Můj skript")Tento první řádek právě nastavuje naši anotaci. Vyžaduje pouze název, který chcete nazvat indikátor (v tomto případě „Můj skript“), ale můžeme přidat i některé volitelné parametry. Jedním z nich je překrytí, které říká TradingView, aby umístil indikátor do stávajícího grafu (místo do nového segmentu). Jak můžete vidět z našeho prvního příkladu, výchozí hodnota je false. I když to nyní neuvidíme v akci, overlay=true přidá indikátor do stávajícího grafu.
spiknutí (zavřít)Tento řádek je instrukce k vykreslení uzavírací ceny bitcoinu. plot nám jednoduše poskytuje spojnicový graf, ale můžeme také zobrazit svícny a pruhy, jak brzy uvidíme.
Nyní zkusme následující:
//@version=4
studie("Můj skript", overlay=true)
plot(open, color=color.purple)Jakmile toto přidáte, měli byste vidět druhý graf (který vypadá jako původní posunutý doprava). Vše, co jsme udělali, je místo toho vykreslit otevřenou cenu, a protože otevření aktuálního dne je uzavřením předchozího dne, dává smysl, že mají stejný tvar.
Dobře! Zbavme se aktuálních anotací (nezapomeňte, že to uděláme kliknutím pravým tlačítkem a stisknutím Odebrat indikátory). Umístěte ukazatel myši na bitcoin / BUSD a kliknutím na tlačítko Skrýt vymažte aktuální graf.
Mnoho obchodníků dává přednost svíčkovým grafům, protože nám poskytují více informací než jednoduchý graf, jako je ten, který jsme právě udělali. Dále je přidáme.
//@version=4
studie("Můj skript", overlay=true)
plotcandle (otevřít, vysoko, nízko, zavřít)Je to dobrý začátek, ale kvůli nedostatku barev je to trochu nevýrazné. V ideálním případě bychom měli mít červené svíčky, když je otevření větší než uzavření pro daný časový rámec, a zelené, pokud uzavření převyšuje otevřené. Nad funkci plotcandle() přidáme řádek:
//@version=4
studie("Můj skript", overlay=true)
barvy = otevřít >= zavřít ? barva.červená : barva.zelená
plotcandle (otevřít, vysoko, nízko, zavřít)Tím se podívá na každou svíčku a zkontroluje, zda je otevření větší nebo rovno uzavření. Pokud ano, znamená to, že ceny v daném období klesly, takže to zbarví svícen červeně. Jinak to zbarví do zelena. Upravte funkci plotcandle() tak, aby předávala toto barevné schéma v:
//@version=4
studie("Můj skript", overlay=true)
barvy = otevřít >= zavřít ? barva.červená : barva.zelená
plotcandle(otevřená, vysoká, nízká, zavřená, barva=barvy)Odstraňte aktuální indikátory, pokud jste to ještě neudělali, a přidejte tento do grafu. Nyní bychom měli mít něco, co připomíná běžný svíčkový graf.

Krásná!
Vykreslování klouzavých průměrů (MA)
Máme nějaké základy. Pojďme k našemu prvnímu vlastnímu ukazateli – exponenciálnímu klouzavému průměru neboli EMA. Jedná se o cenný nástroj, protože nám umožňuje odfiltrovat jakýkoli šum trhu a vyhladit cenovou akci.
EMA se mírně liší od jednoduchého klouzavého průměru (SMA) v tom, že přikládá větší váhu nejnovějším údajům. Bývá reaktivnější na náhlé pohyby a často se používá pro krátkodobé hraní (například při denním obchodování).
Jednoduchý klouzavý průměr (SMA)
Mohli bychom také vykreslit SMA, jen abychom je poté mohli porovnat. Přidejte tento řádek do skriptu:
plot(sma(zavřít, 10))To zobrazuje průměr za předchozích deset dní. Upravte číslo v závorce, abyste viděli, jak se křivka mění při zohlednění různých délek.

SMA na základě předchozích deseti dnů.
exponenciální klouzavý průměr (EMA)
EMA bude trochu složitější na pochopení, ale nemusíte se bát. Nejprve si rozeberme vzorec:
EMA = (Zavřít – EMA předchozího dne) * Násobitel – EMA předchozího dneTakže, co nám to říká? Pro každý den vypočítáme nový klouzavý průměr na základě toho z předchozího dne. Multiplikátor je to, co „váží“ poslední období, a vypočítá se podle následujícího vzorce:
Multiplikátor = 2 / (délka EMA + 1)Stejně jako u jednoduchých klouzavých průměrů musíme specifikovat, jak dlouhá bude EMA. Syntakticky je funkce vykreslování EMA podobná funkci SMA. Zakreslete to vedle SMA, abyste je mohli porovnat:
//@version=4
studie("Můj skript", overlay=true)
plot(sma(zavřít, 10))
plot(ema(zavřít,10))
Můžete vidět mírný rozdíl ve dvou typech MA.
➠ Chcete začít s kryptoměnou? Kupte si bitcoiny na Binance!
Vestavěné skripty
Doposud jsme náš kód psali ručně, abyste si jej mohli vyzkoušet. Ale pojďme představit něco, co nám může ušetřit čas, zvláště pokud píšeme složitější skripty a nechceme je dělat od začátku.
V pravé horní části editoru klikněte na Nový. Získáte rozbalovací nabídku se všemi druhy různých technických indikátorů. Kliknutím na Moving Average Exponencial zobrazíte zdrojový kód pro indikátor EMA.

Pokračujte a přidejte to do grafu.
Tento je jiný než ten náš – všimnete si funkcí input(). To jsou pěkné z hlediska použitelnosti, protože můžete kliknout na toto pole…

...a snadno změnit některé hodnoty ve vyskakovacím okně kliknutím na kolečko Nastavení.

Do našeho dalšího skriptu přidáme několik funkcí input(), abychom to demonstrovali.
Vynesení indikátoru indexu relativní síly (RSI).
Index relativní síly (RSI) je dalším zásadním ukazatelem v technické analýze. Je známý jako indikátor hybnosti, což znamená, že měří rychlost, za kterou se aktiva kupují a prodávají. Skóre RSI prezentované na stupnici od 0 do 100 se pokouší informovat investory o tom, zda jsou aktiva překoupená nebo přeprodaná. Aktivum lze obvykle považovat za přeprodané, pokud má skóre menší nebo rovné 30, a mohlo by být překoupeno se skóre vyšším nebo rovným 70.
Pokud zamíříte do New > RSI Strategy, můžete to vidět sami. RSI se obecně měří za období 14 (tj. 14 hodin nebo 14 dní), ale toto nastavení si můžete upravit tak, aby vyhovovalo vaší vlastní strategii.
Přidejte to do grafu. Nyní byste měli vidět několik zobrazených šipek (definovaných funkcí strategy.entry() v kódu). RsiLE naznačuje potenciální příležitost prodloužit aktivum, protože může být přeprodáno. RsiSE upozorňuje na možné body, ve kterých lze aktivum zkrátit, když je překoupené. Všimněte si, že stejně jako u všech ukazatelů byste se na ně neměli nutně spoléhat jako na spolehlivý důkaz, že ceny budou klesat/vzrůstat.
Zpětné testování
Existuje způsob, jak otestovat naše vlastní indikátory. Přestože minulý výkon není zárukou budoucích výsledků, zpětné testování našich skriptů nám může poskytnout představu o tom, jak efektivní jsou při zachycování signálů.
Níže uvedeme příklad jednoduchého skriptu. Vytvoříme přímou strategii, která vstoupí do dlouhé pozice, když cena BTC klesne pod 11 000 $ a opustí pozici, když cena překročí 11 300 $. Pak můžeme vidět, jak zisková by tato strategie byla historicky.
//@version=4
strategie("ToDaMoon", overlay=true)
enter = vstup(11000)
exit = input(11300)
cena = zavřít
if (cena <= zadejte)
strategy.entry("BuyTheDip", strategy.long, comment="BuyTheDip")
if (cena >= výstup)
strategy.close_all(comment="SellTheNews")Zde jsme definovali vstup a výstup jako proměnné – obě jsou vstupy, což znamená, že je můžeme později v grafu změnit. Nastavíme také cenovou proměnnou, která uzavírá pro každé období. Pak máme nějakou logiku ve formě příkazů if. Pokud je část v závorkách pravdivá, spustí se odsazený blok pod ní. V opačném případě bude přeskočen.
Pokud je tedy cena nižší nebo rovna našemu požadovanému vstupu, první výraz se vyhodnotí jako pravdivý a otevřeme dlouhou pozici. Jakmile se cena vyrovná nebo překročí požadovaný výstup, spustí se druhý blok, který uzavře všechny otevřené pozice.
Graf označíme šipkami, které ukazují, kde jsme vstoupili/vystoupili, takže jsme určili, co označit tyto body parametrem komentáře (v tomto příkladu „BuyTheDip“ a „SellTheNews“). Zkopírujte kód a přidejte jej do grafu.

Nyní můžete vidět indikátory na grafu. Možná budete muset oddálit.
TradingView automaticky aplikuje vaše pravidla na starší data. Také si všimnete, že se přepne z Pine Editoru na kartu Strategy Tester. To vám umožní vidět přehled vašich potenciálních zisků, seznam obchodů a každý jejich individuální výkon.

Pozice, na které jsme vstoupili a vystoupili.
Spojte to dohromady
Je čas napsat vlastní scénář pomocí některých konceptů, které jsme doposud viděli. Zkombinujeme EMA a RSI a použijeme jejich hodnoty k obarvení svícnů, čímž získáme poznatky, které si můžeme snadno představit.
To by nemělo být vykládáno jako finanční poradenství – neexistuje žádný objektivně správný způsob, jak tento ukazatel použít. Stejně jako u všech ostatních by měl být používán s jinými nástroji k vývoji vlastní strategie.
Nyní pojďme pracovat na našem novém skriptu. Odstraňte z grafu všechny své indikátory a skryjte také graf Bitcoin/BUSD, abychom měli čisté plátno, na kterém můžeme pracovat.
Začněme definováním naší studie. Klidně si to pojmenujte, jak chcete, jen nezapomeňte nastavit overlay=true.
studie(title="Binance Academy Script", overlay=true)Pamatujte si náš vzorec EMA z dřívější doby. Musíme poskytnout multiplikátoru délku EMA. Udělejme z něj vstup, který vyžaduje celé číslo (tedy žádná desetinná místa). Nastavíme také minimální hodnotu (minval) a výchozí hodnotu (defval).
studie(title="Binance Academy Script", overlay=true)
emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0)Pomocí této nové proměnné můžeme vypočítat hodnotu EMA pro každou svíčku v našem grafu:
studie(title="Binance Academy Script", overlay=true)
emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0)
emaVal = ema(zavřít, emaDélka)Skvělý. Na RSI. Délku dáme podobným způsobem:
studie(title="Binance Academy Script", overlay=true)
emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0)
emaVal = ema(zavřít, emaLength)
rsiLength = input(title="Délka RSI", typ=input.integer, defval=25, minval=0)A teď to můžeme spočítat:
studie(title="Binance Academy Script", overlay=true)
emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0)
emaVal = ema(zavřít, emaDélka)
rsiLength = input(title="Délka RSI", typ=input.integer, defval=25, minval=0)
rsiVal = rsi(zavřít, rsiLength)V této fázi dáme dohromady logiku, která barví svícny v závislosti na hodnotách EMA a RSI. Vezměme si situaci, kdy (a) uzavírací cena svíčky převyšuje EMA a (b) kde je RSI nad 50.
Proč? No, můžete se rozhodnout, že tyto indikátory mohou být použity ve spojení, aby vám řekly, kdy prodloužit nebo zkrátit bitcoiny. Můžete si například myslet, že splnění obou těchto podmínek znamená, že je vhodný čas vstoupit do dlouhé pozice. Nebo naopak, můžete jej použít k tomu, aby vás informoval, kdy nemáte shortovat, i když jiné indikátory říkají něco jiného.
Takže náš další řádek bude vypadat takto:
studie(title="Binance Academy Script", overlay=true)
emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0)
emaVal = ema(zavřít, emaDélka)
rsiLength = input(title="Délka RSI", typ=input.integer, defval=25, minval=0)
rsiVal = rsi(zavřít, rsiLength)
barvy = zavřít > emaVal a rsiVal > 50 ? barva.zelená : barva.červenáPokud to převedeme do jednoduché angličtiny, pouze říkáme, že pokud hodnota EMA překročí uzavírací cenu a skóre RSI přesáhne 50, obarvíme svíčku zeleně. V opačném případě jej vybarvíme červeně.
Dále vykreslete EMA:
studie(title="Binance Academy Script", overlay=true)
emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0)
emaVal = ema(zavřít, emaDélka)
rsiLength = input(title="Délka RSI", typ=input.integer, defval=25, minval=0)
rsiVal = rsi(zavřít, rsiLength)
barvy = zavřít > emaVal a rsiVal > 50 ? barva.zelená : barva.červená
plot(emaVal, "EMA")Nakonec vykreslete svíčky a nezapomeňte uvést parametr barvy:
studie(title="Binance Academy Script", overlay=true)
emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0)
emaVal = ema(zavřít, emaDélka)
rsiLength = input(title="Délka RSI", typ=input.integer, defval=25, minval=0)
rsiVal = rsi(zavřít, rsiLength)
barvy = zavřít > emaVal a rsiVal > 50 ? barva.zelená : barva.červená
plot(emaVal, "EMA")
plotcandle(otevřená, vysoká, nízká, zavřená, barva=barvy)A to je scénář! Přidejte jej do grafu, abyste jej viděli v akci.

Graf BTC/BUSD s indikátorem EMA/RSI.
Závěrečné myšlenky
V tomto článku jsme prošli několika základními příklady toho, co můžete dělat s Pine Editorem TradingView. Nyní byste si měli být jisti vytvářením jednoduchých anotací do cenových grafů, abyste získali další poznatky ze svých vlastních ukazatelů.
Zajímali jsme se zde pouze o několik indikátorů, ale je snadné vytvořit složitější – buď výběrem vestavěných skriptů z New, nebo jejich napsáním sami.
Chybí vám inspirace? Následující články vám mohou poskytnout nápady pro váš další projekt:
Stručný průvodce parabolickým indikátorem SAR
Průvodce zvládnutím Fibonacciho retracementu
Vysvětlení předních a zaostávajících indikátorů
Vysvětlení indikátoru MACD

