Úvod
Bez správných obchodních nástrojů nebudete schopni provádět efektivní technickou analýzu. Solidní 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 platformou referenčních grafů. Tato výkonná webová aplikace HTML5, která nabízí centrum nástrojů technické analýzy, je používána 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 vám sledovat aktiva na mnoha obchodních platformách a také nápady po obchodování v rámci vaší sociální sítě. V tomto článku se zaměříme na jeho možnosti přizpůsobení. Budeme používat Pine Script, vlastní programovací jazyk TradingView, který nám zaručuje granulární kontrolu nad našimi grafickými formáty.
Nech nás začít!
Co je to PineScript?
Pine Script je skriptovací jazyk, který můžete použít k úpravě grafů TradingView. Platforma vám k tomu již poskytuje mnoho funkcí, ale Pine Script vám umožňuje jít o krok dále. Ať už se jedná o změnu barev svíček nebo zpětné testování nové strategie, 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 si pro více informací přečtěte uživatelskou příručku. Naším cílem v tomto tutoriálu je prodiskutovat některé základní principy a představit indikátory, které mohou být užitečné pro obchodování s kryptoměnami.
Nastavení
Začít s Pine Script je neuvěřitelně jednoduché. Jakýkoli kód, který napíšeme, poběží 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 se chystáme „zmapovat“ měnový pár Bitcoin/Binance USD (BTCBUSD). Pokud jste to ještě neudělali, udělejte krok a zaregistrujte si bezplatný účet (k dispozici je také profesionální předplatné, které však není nutné pro tuto příručku).
Klikněte na tento odkaz a najdete graf podobný následujícímu:

Ten váš bude pravděpodobně aktuálnější.
Jakmile jsme tady, budeme chtít mít plnohodnotný graf – kliknutím na tlačítko se k němu dostanete. Získáme tak mimo jiné mnohem podrobnější pohled, kreslící nástroje a možnosti kreslení trendových čar.

Plně vybavený graf. Časový interval můžete upravit kliknutím na pohledy, které se zobrazují nad zvýrazněnými kartami.
Nebudeme se zabývat tím, jak používat různé dostupné nástroje, ale pokud to s technickou analýzou myslíte velmi vážně, důrazně doporučujeme, abyste se s nimi seznámili. Vlevo dole (označeno na obrázku) uvidíte řadu různých záložek – klikněte na Pine Editor.
Editor Pine

V tomto editoru se děje kouzlo. Řekneme mu, co chceme udělat, a poté klikneme na Přidat do grafu, abychom viděli, jak se naše anotace zobrazují výše. Mějte na paměti, že věci se mohou zkomplikovat, pokud zahrneme několik anotací najednou, takže je mezi různými příklady odstraníme – klikněte pravým tlačítkem na graf > Odebrat indikátory.
Můžete vidět, že už tam máme pár řádků kódu. Pokračujme kliknutím na Přidat do grafu, abychom viděli, co se stane.

Pod originál je přidán druhý graf. Nový graf představuje stejná data. Umístěte ukazatel myši na Můj skript a kliknutím na křížek jej odstraňte. Nyní podrobně analyzujeme kód.
studium ("Můj skript")Tento první řádek jednoduše nastaví naši anotaci. Vyžaduje pouze název, který chcete dát indikátoru (v tomto případě „Můj skript), ačkoli existuje také řada volitelných parametrů, které můžeme přidat. Jedním z nich je překrytí, které říká TradingView, aby umístil indikátor na stávající graf (spíše než na nový segment). Jak můžete vidět v našem prvním příkladu, ve výchozím nastavení se zobrazí jako false. I když jej nyní v akci neuvidíme, overlay=true přidá indikátor do stávajícího grafu.
spiknutí (zavřít)Tento řádek je pokyn k označení závěrečné ceny bitcoinu. plot nám jednoduše poskytuje čárový graf, i když můžeme zobrazit také svíčky a tyče, 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 být schopni vidět druhý graf (který bude jako ten původní posunutý doprava). Vše, co jsme udělali, je zachytit otevírací cenu, a protože otevření aktuálního dne je uzavřením předchozího dne, je logické, že mají stejný tvar.
Velmi dobře! Zbavíme se aktuálních anotací – pamatujte, že k tomu musíme kliknout pravým tlačítkem a vybrat Odebrat indikátory. Umístěte ukazatel myši na Bitcoin/BUSD a kliknutím na tlačítko Skrýt také 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ý diagram, jako je ten, který jsme právě vytvořili. Pokračujme v jejich přidání níže.
//@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í v příslušném období, a zelené, když uzavření převyšuje otevřené. Přidáme tedy řádek nad funkci plotcandle():
//@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 je, znamená to, že ceny během období klesly, takže svíčku zbarví červeně. Jinak to zbarví do zelena. Upravte funkci plotcandle() tak, aby schválila toto barevné schéma:
//@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 vypadá jako obyčejný svíčkový graf.

Drahocenný!
Vykreslit klouzavé průměry (MA)
Některé základní prvky již máme. Podívejme se nyní na náš první vlastní ukazatel – exponenciální klouzavý průměr 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 dává 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í (jako například při denním obchodování).
Jednoduchý klouzavý průměr (SMA)
Mohli bychom také vykreslit SMA, abychom mohli později porovnat dva prostředky. Přidejte do svého skriptu tento řádek:
plot(sma(blízko, 10))Tím se vynese průměr za předchozích deset dní. Upravte číslo v závorkách, abyste viděli, jak se křivka mění při zvažová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 není třeba se obávat. 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ě klouzavého průměru z předchozího dne. Multiplikátor je to, co „váží“ poslední období, a vypočítá se podle následujícího vzorce:
Násobitel = 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 pro vykreslení EMA podobná funkci SMA. Zakreslete to vedle SMA, abyste je mohli porovnat:
//@version=4
studie("Můj skript", overlay=true)
plot(sma(blízko, 10))
plot(ema(zavřít,10))
Vidíte, že mezi oběma typy MA je nepatrný rozdíl.
➠ Přemýšlíte o tom, jak začít ve světě kryptoměn? Kupte si bitcoiny na Binance!
Vestavěné skripty
Až dosud jsme náš kód psali ručně, abyste se s ním seznámili. Dále si představíme prvek, který nám může ušetřit čas, zvláště pokud budeme psát složitější skripty a nechceme to dělat od začátku.
V pravém horním rohu editoru klikněte na Nový. Narazíte na 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 indikátoru EMA.

Pokračujte a přidejte to do grafu.
Ten je jiný než ten náš – funkce input() poznáte. Jsou skvělé 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í.

V našem dalším skriptu přidáme několik funkcí input(), abychom to demonstrovali.
Označte indikátor indexu relativní síly (RSI).
Index relativní síly (RSI) je dalším základním ukazatelem technické analýzy. Je známý jako indikátor „hybnosti“, což znamená, že měří rychlost, s jakou jsou aktiva nakupována a prodávána. Skóre RSI prezentované na stupnici od 0 do 100 se pokouší informovat investory, zda jsou aktiva „překoupená“ nebo „přeprodaná“. Aktivum může být obvykle považováno za přeprodané, pokud má skóre menší nebo rovné 30, a překoupené se skóre vyšším nebo rovným 70.
Pokud zamíříte do New > RSI Strategy, můžete se na to sami podívat. RSI se obvykle měří v obdobích 14 (tj. 14 hodin nebo 14 dní), ale tato nastavení můžete upravit tak, aby vyhovovala vaší vlastní strategii.
Přidejte to do grafu. Nyní byste měli vidět některé šipky (definované funkcí strategy.entry() v kódu). RsiLE naznačuje potenciální příležitost k prodloužení aktiva, 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řekoupeno. Mějte na paměti, že stejně jako u všech ukazatelů byste se na ně neměli nutně spoléhat jako na neomylný důkaz toho, že ceny porostou nebo klesnou.
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 jednoduchou strategii, která vstoupí do dlouhé pozice, když cena BTC klesne pod 11 000 USD a z pozice vystoupí, když cena překročí 11 300 USD. Můžeme tedy vidět, jak zisková by tato strategie byla historicky.
//@version=4
strategie("ALaLuna", overlay=true)
enter = vstup(11000)
exit = input(11300)
cena = zavřít
if (cena <= zadejte)
strategy.entry("CompraLaCaída", strategy.long, comment="CompraLaCaída")
if (cena >= výstup)
strategy.close_all(comment="VendeLasNoticias")Zde jsme definovali vstup a výstup jako proměnné; oba jsou vstupy, což znamená, že je můžeme později v grafu změnit. Nastavíme také cenovou proměnnou, která zaznamenává uzávěrku každého období. Máme tedy určitou logiku ve formě příkazů if. Pokud je část v hranatých závorkách pravdivá, provede se níže odsazený blok. Jinak bude přeskočen.
Pokud je tedy cena nižší nebo rovna našemu požadovanému zadání, první výraz se vyhodnotí jako true a otevřeme dlouhou pozici. Jakmile se cena vyrovná nebo překročí požadovaný výstup, bude aktivován druhý blok, který uzavře všechny otevřené pozice.
Graf označíme šipkami ukazujícími, kde vstupujeme/vycházíme, takže specifikujeme, 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 ukazatele 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ý váš individuální výkon.

Pozice, na které jsme vstoupili a vystoupili.
Dejte kousky 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íček, které nám vrátí informace, které si můžeme snadno vizualizovat.
To by nemělo být chápáno jako finanční poradenství; Neexistuje žádný objektivně správný způsob použití tohoto ukazatele. 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, takže máme č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ška. Musíme poskytnout multiplikátoru délku EMA. Převedeme to na vstup, který vyžaduje celé číslo (takže žádná desetinná místa). Nastavíme také minimum, které může být (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, emaLength)Vynikající. O RSI. Délku dáme podobně:
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)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íčky na základě hodnot EMA a RSI. Vezměme si situaci, kdy (a) uzavírací cena svíčky převyšuje EMA a (b) kdy je RSI nad 50.
Protože? Můžete se rozhodnout, že tyto indikátory lze použít společně, aby vám řekly, kdy koupit bitcoiny v krátkodobém nebo dlouhodobém horizontu. Můžete si například myslet, že splnění obou 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 jít zkrátka, 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áPřevedeme-li to do jednoduchého jazyka, jednoduše říkáme, že pokud hodnota EMA překročí uzavírací cenu a skóre RSI přesáhne 50, obarvíme svíčku na zeleno. V opačném případě jej obarví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, emaLength)
rsiLength = input(title="RSI Length", type=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.
Na závěr
V tomto článku se podíváme na některé základní příklady toho, co můžete dělat s editorem Pine od TradingView. V tomto okamžiku byste si měli být jisti, že uděláte jednoduché poznámky na cenových grafech, abyste získali další informace z vašich vlastních ukazatelů.
Zajímalo nás zde pouze několik indikátorů, ale je snadné generovat složitější indikátory, buď výběrem vestavěných skriptů New nebo je napíšete sami.
Nedostatek 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 retracements
Úvod do předstihových a zaostávajících indikátorů (vedoucí/zaostávající indikátory)
Vysvětlení indikátoru MACD
