Úvod
Efektivní technickou analýzu nelze provést bez správných obchodních nástrojů. Výkonná obchodní strategie může pomoci vyhnout se běžným chybám, zlepšit řízení rizik a zlepšit schopnost identifikovat a využívat příležitosti.
Pro mnohé je TradingView hlavní platformou pro vytváření grafů. Tato výkonná webová aplikace HTML5 poskytuje centrum nástrojů technické analýzy a pomáhá milionům uživatelů sledovat pohyby na Forexu, kryptoměnách a tradičních akciových trzích.
TradingView má mnoho výkonných funkcí: umožňuje uživatelům sledovat aktiva na různých obchodních platformách a zveřejňovat své obchodní pohledy na svých stránkách sociálních sítí. Tento článek se zaměří na jeho možnosti přizpůsobení. Budeme používat Pine Script, proprietární programovací jazyk TradingView, který nám umožňuje mít podrobnější kontrolu nad rozložením grafu.
Začněme!
Co je Pine Script?
Pine Script je skriptovací jazyk, který lze použít k úpravě grafů TradingView. Platforma TradingView již nabízí mnoho podobných funkcí, ale Pine Script jde ještě dál. Ať už chcete změnit barvu svíčkového grafu nebo chcete otestovat novou strategii, Pine Editor vám umožní přizpůsobit grafy v reálném čase podle vašich potřeb.
Samotný kód je dobře zdokumentován, takže podrobnosti naleznete v uživatelské příručce. Tento článek si klade za cíl probrat některé základy a představit indikátory, které se mohou hodit při obchodování s kryptoměnami.
vytvořit
Pine Script je jednoduchý a snadno použitelný. Jakýkoli kód, který napíšeme, běží na serverech TradingView, takže můžeme přistupovat k editoru prostřednictvím prohlížeče a vyvíjet naše skripty bez nutnosti dalšího stahování nebo konfigurace.
V tomto tutoriálu zmapujeme měnový pár Bitcoin/Binance USD (BTCBUSD). Pokud ještě nemáte účet Binance, vytvořte si bezplatný účet (je také možný účet Pro, ale není pro tuto příručku nezbytný).
Otevřete odkaz a uvidíte graf podobný následujícímu:

Vaše data grafu mohou být aktualizována.
Nyní chceme získat graf s bohatými funkcemi, klikněte na tlačítko pro vstup. Můžeme pak vidět podrobnější pohledy, kreslicí nástroje, možnosti kreslení trendových čar a další funkce.

Plně funkční grafy. Plán můžete upravit kliknutím na Zobrazit nad zvýrazněnou kartou.
Nebudeme diskutovat o tom, jak používat různé dostupné nástroje, ale pokud opravdu chcete provést technickou analýzu, důrazně doporučujeme, abyste se s nimi nejprve seznámili. V levém dolním rohu (jak je naznačeno na obrázku) uvidíte několik různých karet - klikněte na Pine Editor.
Editor Pine

Tento editor je úžasný. Řekneme mu, co chceme udělat, a poté klikneme na Přidat do grafu a v grafu se zobrazí anotace, kterou jsme přidali. Všimněte si, že pokud přidáme několik anotací současně, zamíchají se, takže je v příkladu odstraníme (klikněte pravým tlačítkem v grafu > Smazat indikátor).
Jak vidíte, máme již několik řádků kódu. Klikneme na Přidat do grafu a uvidíme, co se stane.

Přidejte druhý graf pod původní graf. Nový graf ukazuje přesně stejná data. Umístěte kurzor myši na můj skript a kliknutím na × jej smažte. Nyní pojďme prozkoumat kód.
výzkum ("myscript")První řádek pouze nastavuje naši anotaci. Vyžaduje se pouze název indikátoru, který chcete volat (v tomto případě „Můj skript“), ale můžeme přidat i některé volitelné parametry. Jedním z nich je přepsání, tento parametr dává pokyn TradingView, aby vložil indikátor do stávajícího grafu (místo do nového grafu). Jak můžete vidět z prvního příkladu, který jsme uvedli, výchozí hodnota je false. I když ještě nevidíte, jak to funguje, overlay=true přidá indikátor do stávajícího grafu.
Kreslení grafu (Zavřít)Tento řádek je pokynem ke zmapování závěrečné ceny bitcoinu. Graf nám poskytuje pouze čárový graf, ale můžeme také vykreslit svíčkové grafy a sloupcové grafy, jak brzy uvidíme.
Nyní zkusme následující:
//@version=4 study("Můj skript", overlay=true) plot(open, color=color.purple)Po přidání byste měli vidět druhý graf (bude to vypadat, jako by byl původní graf přesunut doprava). Co děláme, je graf otevírací ceny, a protože otevírací cena dne je zavírací cena předchozího dne, dává smysl, že se tyto grafy budou pohybovat úplně stejně.
v pořádku! Smažeme aktuální anotaci (nezapomeňte, že to uděláte kliknutím pravým tlačítkem a kliknutím na Smazat indikátor). Umístěte myš na Bitcoin/BUSD a kliknutím na tlačítko Skrýt aktuální graf smažte.
Mnoho obchodníků dává přednost použití grafů K-line, které nám mohou poskytnout více informací než jednoduchý graf, který jsme právě vytvořili. Dále přidáme graf, který jsme nakreslili.
//@version=4 study("Můj skript", overlay=true) plotcandle(otevřená, vysoká, nízká, zavřená)Začalo to dobře, ale díky fádním barvám to vypadalo trochu nevýrazně. V ideálním případě by graf K-line měl být červený, když je otevírací cena nižší než uzavírací cena, a zelený, pokud je uzavírací cena vyšší než otevírací cena. Přidáme řádek nad funkci plotcandle():
//@version=4 study("My Script", overlay=true) colors = open >= close?color.red: color.green plotcandle(open, high, low, close)To vyžaduje pohled na každý graf K-line, abyste zjistili, zda je otevírací cena vyšší nebo rovna zavírací ceně. Pokud tomu tak je, znamená to, že cena během této doby klesla a svíčkový graf zčervená. Jinak zezelená. Upravte funkci plotcandle() a přidejte toto barevné schéma:
//@version=4 study("My Script", overlay=true) colors = open >= close?color.red: color.green plotcandle(open, high, low, close, color=colors)Pokud jste to ještě neudělali, odstraňte stávající metriku a přidejte tuto metriku do grafu. Nyní bychom měli nakreslit graf podobný grafu K-line.

Výborně!
Nakreslete klouzavý průměr (MA)
Dokončili jsme některé základní operace. Pojďme se podívat na náš první vlastní ukazatel – exponenciální klouzavý průměr neboli EMA. Tento nástroj je užitečný, protože nám umožňuje odfiltrovat jakýkoli šum trhu a vyhladit akci ceny.
EMA se mírně liší od jednoduchého klouzavého průměru (SMA) v tom, že klade větší důraz na aktuální data. Má tendenci více reagovat na náhlé změny a často se používá pro krátkodobé operace (například při denním obchodování).
Jednoduchý klouzavý průměr (SMA)
Můžeme také vykreslit SMA, abychom je mohli později porovnat. Přidejte tento řádek do skriptu.
plot(sma(zavřít, 10))To zobrazuje průměr za předchozích deset dní. Upravte čísla v závorkách, abyste viděli, jak se křivka mění se změnou délky.

SMA vychází z údajů za posledních deset dní.
Exponenciální klouzavý průměr (EMA)
EMA je složitější na pochopení, ale nebojte se. Nejprve analyzujeme tento vzorec:
EMA = (uzavírací cena – EMA předchozího dne) * násobek – EMA předchozího dneCo to znamená? Každý den vypočítáme novou hodnotu klouzavého průměru na základě hodnoty z předchozího dne. Násobek je „vážen“ počtem posledních dnů a vypočítá se pomocí následujícího vzorce:
Násobek = 2/(délka EMA + 1)Stejně jako u jednoduchého klouzavého průměru musíme délce EMA přiřadit hodnotu. Syntakticky je vykreslení funkce EMA podobné vykreslení funkce SMA. Zakreslete to vedle SMA a můžete je porovnat.
//@version=4 study("Můj skript", overlay=true) plot(sma(zavřít, 10)) plot(ema(zavřít, 10))
Uvidíte, že tyto dva typy MA se mírně liší.
➟ Chcete začít svou cestu kryptoměnami? Vítejte v nákupu bitcoinů na Binance!
Vestavěný skript
Doposud jsme náš kód psali ručně, abyste jej mohli intuitivně vnímat. Nyní si představíme některé funkce, které mohou ušetřit čas, zvláště pokud chceme psát složitější skripty, ale nechceme začínat od nuly.
V pravém horním rohu editoru klikněte na Nový. Zobrazí se rozbalovací nabídka s řadou různých technických indikátorů. Kliknutím na klouzavý průměr Index zobrazíte zdrojový kód indikátoru EMA.

Klikněte a přidejte jej do grafu.
Tento index se liší od našeho, všimnete si funkce input(). Jsou skvělé z hlediska použitelnosti, protože můžete kliknout na toto pole…

...a kliknutím na ikonu ozubeného kola nastavení snadno změníte některé hodnoty ve vyskakovacím okně.

Do dalšího skriptu přidáme několik funkcí input(), abychom to demonstrovali.
Znázorněte ukazatel indexu relativní síly (RSI).
Index relativní síly (RSI) je dalším důležitým ukazatelem v technické analýze. Známý jako indikátor hybnosti, měří cenu, za kterou se aktivum kupuje a prodává. Na stupnici od 0 do 100 se skóre RSI snaží investorům sdělit, zda je aktivum překoupené nebo přeprodané. Obvykle, pokud má aktivum skóre 30 nebo méně, může být považováno za přeprodané, zatímco skóre 70 nebo více může být překoupené.
Přejděte na Nová>Strategie RSI a uvidíte to sami. RSI se obecně měří za období 14 (tj. 14 hodin nebo 14 dní), ale toto nastavení můžete upravit tak, aby vyhovovalo vaší strategii.
Přidejte RSI do grafu. Nyní byste měli vidět několik šipek (definovaných funkcí strategy.entry() v tomto kódu). RsiLE představuje potenciální příležitost rozšířit aktivum, protože může být přeprodáno. RsiSE upozorňuje na možné body zkratu, když je aktivum překoupeno. Vezměte prosím na vědomí, že jako u všech ukazatelů nemusíte nutně brát tyto ukazatele jako nezvratný důkaz toho, že ceny klesnou/rostou.
Zpětné testování
Existuje způsob, jak otestovat naše vlastní ukazatele. Zatímco minulý výkon není zárukou budoucích výsledků, zpětné testování našeho skriptu nám může poskytnout představu o jeho účinnosti při zachycování signálů.
Níže uvedeme jednoduchý příklad skriptu. Plánujeme jednoduchou a jasnou strategii, jak vstoupit do dlouhé pozice, když cena bitcoinu klesne na 11 000 $ a opustit dlouhou pozici, když cena překročí 11 300 $. Pak můžeme vidět, jak zisková tato strategie byla historicky.
//@version=4 strategy("ToDaMoon", overlay=true) enter = input(11000) exit = input(11300) price = close if (cena <= enter) strategy.entry("BuyTheDip",strategy.long ,comment="BuyTheDip") if (cena >= exit) strategy.close_all(comment="SellTheNews")Zde definujeme vstup a výstup jako proměnné – obě jsou vstupy, což znamená, že v obou můžeme provést změny později v grafu. Nastavili jsme také cenovou proměnnou, která vezme závěrečnou cenu každého období. Pak máme nějakou logiku, která se řídí vzorem příkazu 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ší požadované vstupní ceně a první výraz se vyhodnotí jako pravdivý, otevřeme dlouhou pozici. Jakmile se cena vyrovná nebo překročí požadovanou výstupní cenu, spustí se druhý blok, který uzavře všechny otevřené pozice.
Graf označíme šipkami ukazujícími, kde vstupujeme/vycházíme, takže pomocí parametrů hodnocení specifikujeme, co tyto body označuje (v tomto případě „BuyTheDip“ a „SellTheNews“). Zkopírujte kód a přidejte jej do grafu.

Nyní můžete tyto ukazatele vidět v grafu. Může být vyžadováno zesílení.
TradingView automaticky aplikuje vaše pravidla na starší data. Také si všimnete, že TradingView se přepne z editoru Pine na kartu Strategy Tester. To vám umožní vidět přehled potenciálních zisků, seznam obchodů a výkon každého ukazatele.

Pozice, na které jsme vstoupili a vystoupili.
Kombinovaný
Nyní můžeme napsat vlastní skript pomocí některých konceptů, které jsme doposud viděli. Zkombinujeme EMA a RSI a použijeme jejich hodnoty k ovlivnění barvy grafu K-line, abychom mu snadno porozuměli.
Nejedná se však o finanční poradenství a neexistuje žádný objektivně správný způsob, jak tyto ukazatele používat. Stejně jako všechny ostatní nástroje by měl být kombinován s dalšími nástroji pro rozvoj vlastní investiční strategie.
Nyní se pojďme podívat na nový skript. Odstraňte z grafu všechny indikátory a skryjte graf Bitcoin/BUSD, abychom měli čisté provozní pozadí.
Nejprve se podívejme na definici. Pojmenujte to, jak chcete, jen nezapomeňte nastavit overlay=true.
studie(title="Binance Academy Script", overlay=true)Vzpomeňte si na náš předchozí vzorec EMA. K výpočtu násobku potřebujeme použít délku EMA. Převedeme to na vstup, který vyžaduje celý počet číslic, takže žádná desetinná místa. Nastavíme také minimální hodnotu (minval) a výchozí hodnotu (defval).
study(title="Binance Academy Script", overlay=true) emaLength = input(title="EMA Length", type=input.integer,defval=25, minval=0)Na základě této nové proměnné můžeme vypočítat hodnotu EMA pro každou svíčku v grafu:
study(title="Binance Academy Script", overlay=true) emaLength = input(title="EMA Length", type=input.integer,defval=25, minval=0) emaVal = ema(zavřít, emaLength)velmi dobře. Dále se podívejme na RSI. Podobným způsobem mu přiřadíme hodnotu délky:
study(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", type=input.integer,defval=25, minval=0)Nyní můžeme vypočítat:
study(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=vstup.integer, defval=25, minval=0) rsiVal = rsi(zavřít, rsiLength)V této fázi si dáme dohromady logiku, která určuje barvy svícnů v závislosti na hodnotách EMA a RSI. Předpokládejme, že (a) svíčka zavře nad EMA a (b) RSI je nad 50.
Proč bychom to měli předpokládat? Protože se můžete rozhodnout použít kombinaci těchto indikátorů, abyste věděli, kdy zvolit dlouhý nebo krátký bitcoin. Mohli byste si například myslet, že splnění těchto dvou podmínek znamená, že nyní je vhodná doba na to, abyste jeli dlouho. Nebo naopak, můžete si pomocí něj připomenout, kdy nechodit nakrátko, i když jiné ukazatele říkají opak.
Náš další řádek kódu tedy bude vypadat takto:
study(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áPokud tuto větu přeložíme do jednoduché angličtiny, ve skutečnosti říkáme, že pokud hodnota EMA překročí uzavírací cenu a skóre RSI překročí 50, svíčkový graf se zezelená. Jinak zčervená.
Dále nakreslete graf EMA:
study(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? color.green: color.red plot(emaVal, "EMA")Nakonec nakreslete graf K-čáry, nezapomeňte prosím uvést parametry barev:
study(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(close, rsiLength) colors = close > emaVal a rsiVal > 50?color.green: color.red plot(emaVal , "EMA") plotcandle(otevřená, vysoká, nízká, zavřená, barva=barvy)Pak je scénář napsán! Přidejte to do grafu a uvidíte, jak to funguje.

Graf bitcoinů/BUSD s indikátory EMA/RSI.
Shrnout
V tomto článku vám na několika základních příkladech demonstrujeme funkčnost Pine Editoru na TradingView. Nyní byste měli mít jistotu při vytváření jednoduchých anotací na cenových grafech, abyste získali více informací ze svých vlastních ukazatelů.
V tomto článku jsme se zabývali pouze několika z těchto indikátorů, ale není těžké vytvořit složitější indikátory – můžete si vybrat, zda vytvoříte nový vestavěný skript, nebo si jej napíšete sami.
Stále vám chybí inspirace? Následující články vám mohou poskytnout nápady pro váš další projekt:
Stručný průvodce parabolickým indikátorem
„Průvodce studiem Fibonacciho retracementu“
"Podrobné vysvětlení vedoucích a zaostávajících indikátorů"
Podrobné vysvětlení indikátoru exponenciálního klouzavého průměru (MACD).

