Ako vytvoriť indikátory TA na TradingView
Domov
Články
Ako vytvoriť indikátory TA na TradingView

Ako vytvoriť indikátory TA na TradingView

Rozšírené
Zverejnené Aug 28, 2020Aktualizované Jun 15, 2023
13m

Úvod

Bez správnych obchodných nástrojov nemôžete vypracovať efektívnu technickú analýzu. Silná obchodná stratégia vám pomôže vyhnúť sa bežným chybám, zlepšiť riadenie rizík a zvýšiť vašu schopnosť identifikovať a využívať príležitosti.

Pre mnohých je TradingView hlavnou platformou na sledovanie grafov. Túto výkonnú webovú aplikáciu typu HTML5, ktorá ponúka celú sadu nástrojov technickej analýzy, používajú milióny obchodníkov na sledovanie pohybov na Forexe, kryptomenách a na tradičných akciových trhoch.

TradingView má mnoho výkonných funkcií: umožňuje nám sledovať aktíva na mnohých obchodných platformách a zdieľať obchodné tipy v rámci svojej sociálnej siete. V tomto článku sa zameriame na jeho prispôsobiteľnosť. Budeme používať Pine Script, vlastný programovací jazyk TradingView, ktorý nám umožňuje dôkladnú kontrolu nad rozložením grafov.

Poďme na to!


Čo je to Pine Script?

Pine Script je skriptovací jazyk, ktorý možno použiť na zmenu grafov na TradingView. Táto platforma už ponúka mnohé funkcie, ale Pine Script umožňuje ísť ešte o krok ďalej. Či už chcete zmeniť farbu sviečok alebo otestovať novú stratégiu, Pine Editor vám umožní upraviť si grafy v reálnom čase tak ako ich potrebujete mať.

Samotný kód je vynikajúco zdokumentovaný, takže si určite prečítajte používateľskú príručku, kde nájdete ďalšie informácie. Naším cieľom v tomto návode je popísať niektoré základy a predstaviť indikátory, ktoré sa vám môžu hodiť pri obchodovaní s kryptomenami.


Nastavenie

Začať s Pine Scriptom je neuveriteľne jednoduché. Akýkoľvek kód, ktorý napíšeme, beží na serveroch TradingView, takže môžeme pristupovať k editoru a vyvíjať naše skripty v prehliadači – bez potreby ďalšieho sťahovania alebo nastavovania konfigurácie.

V tomto návode si popíšeme menový pár Bitcoin/Binance USD (BTCBUSD). Ak ho ešte nemáte, vytvorte si bezplatný účet (k dispozícii máte aj predplatné pro, ten však nie je potrebný pri tejto príručke). 

Kliknite na tento odkaz a uvidíte graf podobný nasledujúcemu:


Graf BTCBUSD na Tradingview

Váš bude pravdepodobne aktuálnejší.


Tu chceme získať graf s kompletnými funkciami – kliknutím na tlačidlo sa otvorí. To nám okrem iného poskytuje oveľa podrobnejší pohľad, nástroje na vykresľovanie a možnosti kreslenia trendových čiar.


Graf s kompletnými funkciami na tradingview pre BTCBUSD

Graf s kompletnými funkciami. Časový rámec môžete nastaviť kliknutím na pohľady nad zvýraznenými kartami.


Nebudeme diskutovať o tom, ako používať jednotlivé dostupné nástroje, ale ak to s technickou analýzou myslíte vážne, jednoznačne vám odporúčame, aby ste si ich naštudovali. Vľavo dole (vyznačené na obrázku) sa zobrazí niekoľko rôznych kariet – kliknite na Pine Editor.


Pine Editor


snímka obrazovky Pine Editora


Kúzlo prebieha práve v tomto editore. Povieme mu, čo chceme urobiť, a potom klikneme na Pridať do grafu a naše doplnky sa zobrazia vyššie. Všimnite si, že ak zahrnieme niekoľko doplnkov naraz, môže sa to skomplikovať, preto ich medzi príkladmi odstránime (kliknite pravým tlačidlom myši na graf > Odstrániť indikátory).

Môžete vidieť, že tam už máme niekoľko riadkov s kódom. Kliknite na Pridať do grafu a uvidíte, čo sa stane.


Pridanie prvého skriptu do grafu Tradingview


Pod pôvodný graf sa pridá druhý graf. Nový graf zobrazuje rovnaké údaje. Prejdite kurzorom myši nad tlačidlom Môj skript a kliknutím na krížik ho odstráňte. Teraz sa pozrime na kód.

study("My Script")

Tento prvý riadok práve nastavuje náš doplnok. Vyžaduje si len požadovaný názov indikátora (v tomto prípade „My Script“), ale môžeme pridať aj ďalšie voliteľné parametre. Jedným z nich je prekrývanie, ktorý hovorí platforme TradingView, aby umiestnila indikátor do existujúceho grafu (namiesto nového segmentu). Ako môžete vidieť v našom prvom príklade, predvolená hodnota je false. Aj keď to teraz neuvidíme v akcii, prekrývanie=true pridá indikátor do existujúceho grafu.

plot(close)

Tento riadok predstavuje pokyn na vykreslenie zatváracej ceny Bitcoinu. snímka nám jednoducho dáva čiarový graf, ale môžeme zobraziť aj sviečky a stĺpce, ako o chvíľu uvidíme. 

Teraz skúsme toto:

//@version=4 study("My Script", overlay=true) plot(open, color=color.purple)

Keď to zadáte, mali by ste vidieť druhý graf (ktorý vyzerá ako pôvodný graf posunutý doprava). Urobili sme len to, že sme namiesto toho vykreslili otváraciu cenu, a keďže otváracia cena aktuálneho dňa sa rovná uzatváracej cene predchádzajúceho dňa, je zrejmé, že majú rovnaký tvar.

Tak. Odstráňme aktuálne doplnky (nezabudnite, urobíte tak kliknutím pravým tlačidlom myši a stlačením tlačidla Odstrániť indikátory). Prejdite kurzorom myši nad tlačidlom Bitcoin / BUSD a kliknite na tlačidlo Skryť a vymaže sa aj aktuálny graf.

Mnoho obchodníkov uprednostňuje sviečkové grafy, pretože nám poskytujú viac informácií ako jednoduchý obrázok, ktorý sme práve urobili. Ďalej ich pridajme. 

//@version=4 study("My Script", overlay=true) plotcandle(open, high, low, close)

Je to dobrý začiatok, ale trochu nevýrazný kvôli nedostatku farebnosti. V ideálnom prípade by sme mali mať červené sviečky, keď je otváracia cena vyššia ako zatváracia v danom časovom rámci, a zelené sviečky, keď je zatváracia cena vyššia ako otváracia. Nad funkciu plotcandle() pridáme jeden riadok:

//@version=4 study("My Script", overlay=true) colors = open >= close ? color.red : color.green plotcandle(open, high, low, close)

Skontroluje každú sviečku a preverí, či je otváracia cena vyššia alebo rovnaká ako zatváracia cena. Ak je, znamená to, že cena počas daného obdobia klesla, takže sviečka sa zafarbí na červeno. V opačnom prípade sa zafarbí na zeleno. Upravte funkciu plotcandle() tak, aby ste splnili túto farebnú schému:

//@version=4 study("My Script", overlay=true) colors = open >= close ? color.red : color.green plotcandle(open, high, low, close, color=colors)

Odstráňte aktuálne indikátory, ak ste tak ešte neurobili, a tento pridajte do grafu. Teraz by sme mali dostať niečo, čo sa podobá bežnému sviečkovému grafu.


Sviečkový graf na Tradingview

Nádhera!


Vykresľovanie kĺzavých priemerov (MA)

Nejaké základy už máme. Prejdime k nášmu prvému vlastnému indikátoru – exponenciálny kĺzavý priemer alebo EMA. Je to cenný nástroj, pretože nám umožňuje odfiltrovať akýkoľvek šum na trhu a vyhladiť cenové pohyby. 

EMA sa mierne líši od jednoduchého kĺzavého priemeru (SMA) v tom, že prikladá väčšiu váhu novším údajom. Má tendenciu viac reagovať na prudké pohyby a často sa používa na krátkodobé obchodovanie (napríklad pri dennom obchodovaní).


Jednoduchý kĺzavý priemer (SMA)

Mohli by sme tiež vykresliť SMA, aby sme ich tak mohli porovnať. Pridajte do svojho skriptu tento riadok:

plot(sma(close, 10))

Tým sa zobrazí priemer za predchádzajúcich desať dní. Upravte číslo v zátvorkách a sledujte ako sa krivka mení pri zohľadnení rôznych dĺžok.


Jednoduchý kĺzavý priemer na základe predchádzajúcich 10 dní

SMA na základe predchádzajúcich desiatich dní.


Exponenciálny kĺzavý priemer (EMA)

Pochopiť EMA bude o niečo zložitejšie, ale ničoho sa nebojte. Najprv sa pozrime na vzorec:

EMA = (Zatváracia cena - EMA predchádzajúceho dňa) * Násobiteľ - EMA predchádzajúceho dňa

Takže, čo nám to hovorí? Pre každý deň teda vypočítame nový kĺzavý priemer na základe hodnoty z predchádzajúceho dňa. Násobiteľ „zvažuje“ posledné obdobie a vypočíta sa podľa nasledujúceho vzorca:

Násobiteľ = 2 / (dĺžka EMA + 1)

Tak ako pri jednoduchých kĺzavých priemeroch musíme špecifikovať, aký dlhý bude EMA. Syntakticky je funkcia vykresľovania EMA podobná funkcii SMA. Nakreslite si ju vedľa SMA, aby ste ich mohli porovnať:

//@version=4 study("My Script", overlay=true) plot(sma(close, 10)) plot(ema(close,10))


EMA a SMA na jednom grafe Tradingview

Pri týchto dvoch typoch MA môžete vidieť mierny rozdiel.


➠ Chcete začať s kryptomenou? Kúpte si Bitcoin na Binance!


Vstavané skripty

Doteraz sme náš kód písali ručne, aby ste získali cit na to, ako funguje. Ale predstavme si niečo, čo nám môže ušetriť čas, najmä ak zapisujeme zložitejšie skripty a nechceme ich robiť od začiatku.

V pravej hornej časti editora kliknite na tlačidlo Nový. Zobrazí sa rozbaľovacia ponuka so všetkými typmi rôznych technických indikátorov. Kliknutím na Exponenciálny kĺzavý priemer sa zobrazí zdrojový kód pre indikátor EMA.



Exponenciálny kĺzavý priemer v skripte Pine

Pokračujte a pridajte ho do grafu.


Tento je iný ako ten náš – uvidíte funkcie input(). Sú pekné z hľadiska použiteľnosti, pretože na toto okienko môžete kliknúť…


Úprava grafu v rozhraní Tradingview


...a jednoducho zmeniť niektoré hodnoty vo vyskakovacom okne kliknutím na koliesko Nastavenia.


zmena vstupov na EMA


Aby sme si to ukázali, v našom ďalšom skripte pridáme niekoľko funkcií input().


Vykresľovanie indikátora indexu relatívnej sily (RSI)

Index relatívnej sily (RSI) je ďalším základným indikátorom technickej analýzy. Je známy ako indikátor momentu, čo znamená, že meria rýchlosť, akou sa aktíva kupujú a predávajú. Skóre RSI prezentované na stupnici od 0 do 100 sa pokúša informovať investorov o tom, či sú aktíva prekúpené alebo prepredané. Aktívum sa môže obyčajne považovať za prepredané, ak má skóre menšie alebo rovnajúce sa 30, a mohlo by byť prekúpené pri skóre vyššom alebo rovnajúcom sa 70.

Ak prejdete na Nový > Stratégia RSI, môžete sa o tom presvedčiť na vlastné oči. RSI sa vo všeobecnosti meria za obdobie 14 (t. j. 14 hodín alebo 14 dní), ale toto nastavenie si môžete upraviť tak, aby vyhovovalo vašej vlastnej stratégii.

Pridajte to do grafu. Teraz by ste mali vidieť niekoľko šípok (zadefinovaných pomocou funkcie strategy.entry() v kóde). RsiLE naznačuje potenciálnu príležitosť kúpiť aktívum, pretože môže byť prepredané. RsiSE označuje možné body, v ktorých je možné predať aktívum, keď je prekúpené. Všimnite si, že tak ako pri všetkých ukazovateľoch, nemali by ste sa na ne nevyhnutne spoliehať ako na spoľahlivý dôkaz toho, že ceny klesnú/porastú.


Spätné testovanie

Existuje spôsob, ako môžeme otestovať naše vlastné indikátory. Hoci minulá výkonnosť nie je zárukou budúcich výsledkov, spätné testovanie našich skriptov nám dáva istú predstavu o tom, ako efektívne sú pri zadávaní signálov. 

Nižšie si uvedieme príklad jednoduchého skriptu. Vytvoríme priamočiaru stratégiu, ktorá vstúpi do dlhej pozície, keď cena BTC klesne pod 11 000 USD a pozícia sa zatvorí, keď cena presiahne 11 300 USD. Potom môžeme vidieť, aká zisková by bola táto stratégia z historického hľadiska.

//@version=4 strategy("ToDaMoon", overlay=true) enter = input(11000) exit = input(11300) price = close if (price = exit)     strategy.close_all(comment="SellTheNews")Tu sme definovali vstup a výstup ako premenné – obe sú vstupy, čo znamená, že ich môžeme neskôr v grafe zmeniť. Taktiež sme nastavili cenovú premennú, ktorá berie do úvahy zatváraciu cenu pre každé obdobie. Potom tu máme istú logiku vo forme príkazov if. Ak je časť v zátvorkách pravdivá, potom sa spustí uvedený blok pod ňou. Inak sa preskočí.Ak je teda cena nižšia ako alebo sa rovná našej požadovanej položke, prvý výraz sa vyhodnotí ako pravdivý a otvoríme dlhú pozíciu. Keď sa cena vyrovná alebo presiahne požadovaný výstup, spustí sa druhý blok, ktorý zatvorí všetky otvorené pozície. Do grafu pridáme šípky, ktoré ukazujú, kde sme vstúpili/vystúpili, takže sme určili, ako označiť tieto body parametrom komentára (v tomto príklade „BuyTheDip“ a „SellTheNews“). Skopírujte kód a pridajte ho do grafu.
Teraz môžete vidieť indikátory na grafe. Možno budete musieť graf oddialiť.
TradingView automaticky aplikuje vaše pravidlá na staršie údaje. Tiež si všimnete, že sa prepne z editora Pine Editor na kartu Strategy Tester. To vám umožní zobraziť prehľad vašich potenciálnych ziskov, zoznam obchodov a každý ich individuálny výsledok.
Pozície, do ktorých sme vstúpili a vystúpili.
SpájanieJe na čase napísať vlastný skript s pomocou niektorých konceptov, ktoré sme doteraz videli. Skombinujeme EMA a RSI a použijeme ich hodnoty na zafarbenie sviečok, čím získame poznatky, ktoré si môžeme ľahko zobraziť. Toto by sa nemalo považovať za finančné poradenstvo – neexistuje žiadny objektívne správny spôsob použitia tohto ukazovateľa. Rovnako ako u všetkých ostatných indikátorov, mal by sa používať s inými nástrojmi na vývoj vlastnej stratégie.Teraz poďme pracovať na našom novom skripte. Odstráňte z grafu všetky svoje indikátory a skryte aj graf Bitcoin/BUSD, aby sme dostali čistý podklad, na ktorom môžeme pracovať.Začnime zadefinovaním našej štúdie. Neváhajte a pomenujte si ju ako chcete, len nezabudnite nastaviť overlay=true.study(title="Binance Academy Script", overlay=true)Nezabudnite náš vzorec EMA z predchádzajúceho obdobia. Musíme poskytnúť násobiteľ s dĺžkou EMA. Urobme z neho vstup, ktorý vyžaduje celé číslo (čiže žiadne desatinné miesta). Nastavíme tiež minimálnu možnú hodnotu (minval) a predvolenú hodnotu (defval).study(title="Binance Academy Script", overlay=true) emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0)
Pomocou tejto novej premennej môžeme vyrátať hodnotu EMA pre každú sviečku v našom grafe:study(title="Binance Academy Script", overlay=true) emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0) rsiVal = rsi(close, rsiLength)
Výborne. Na RSI. Dĺžku mu dáme podobným spôsobom:study(title="Binance Academy Script", overlay=true) emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0) emaVal = ema(close, emaLength) rsiLength = input(title="RSI Length", type=input.integer, defval=25, minval=0)A teraz to môžeme vyrátať:study(title="Binance Academy Script", overlay=true) emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0) emaVal = ema(close, emaLength) rsiLength = input(title="RSI Length", type=input.integer, defval=25, minval=0) rsiVal = rsi(close, rsiLength)V tejto fáze si poskladajme logiku, ktorá vyfarbuje sviečky v závislosti od hodnôt EMA a RSI. Zoberme si situáciu, kedy (a) zatváracia cena sviečky presahuje EMA a (b) kedy je RSI nad 50.Prečo? Možno sa rozhodnete, že tieto indikátory možno použiť spolu, aby vám povedali, kedy nakupovať a kedy predávať Bitcoin. Môžete si napríklad myslieť, že splnením oboch týchto podmienok nastáva vhodný čas na vstup do dlhej pozície. Alebo naopak ho môžete použiť na to, aby vás informoval, kedy ne predávať, aj keď ostatné indikátory hovoria inak.Takže náš ďalší riadok bude vyzerať takto:study(title="Binance Academy Script", overlay=true) emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0) emaVal = ema(close, emaLength) rsiLength = input(title="RSI Length", type=input.integer, defval=25, minval=0) rsiVal = rsi(close, rsiLength) colors = close > emaVal and rsiVal > 50 ? color.green : color.redAk to preložíme do jednoduchého jazyka, vlastne hovoríme, že ak hodnota EMA prekročí zatváraciu cenu a skóre RSI prekročí 50, zafarbíme sviečku na zeleno. V opačnom prípade sa zafarbí na červeno. Ďalej nakreslite EMA:study(title="Binance Academy Script", overlay=true) emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0) emaVal = ema(close, emaLength) rsiLength = input(title="RSI Length", type=input.integer, defval=25, minval=0) rsiVal = rsi(close, rsiLength) colors = close > emaVal and rsiVal > 50 ? color.green : color.red plot(emaVal, "EMA")Napokon nakreslite sviečky a nezabudnite zahrnúť parameter farby:study(title="Binance Academy Script", overlay=true) emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0) emaVal = ema(close, emaLength) rsiLength = input(title="RSI Length", type=input.integer, defval=25, minval=0) rsiVal = rsi(close, rsiLength) colors = close > emaVal and rsiVal > 50 ? color.green : color.red plot(emaVal, "EMA") plotcandle(open, high, low, close, color=colors)A toto je skript! Pridajte ho do grafu, aby ste ho videli v akcii.
Graf BTC/BUSD s indikátorom EMA/RSI.
Záverečné myšlienkyV tomto článku sme si prešli niektoré základné príklady toho, čo môžete robiť s Pine Editorom TradingView. Teraz by ste si mali byť istí pri vytváraní jednoduchých doplnkov do cenových grafov, aby ste získali ďalšie poznatky a základe vašich vlastných indikátorov.Tu sme sa venovali len niekoľkým indikátorom, ale je ľahké vytvoriť zložitejšie indikátory – buď výberom vstavaných skriptov v položke Nový alebo tak, že si ich napíšete sami.Chýba vám inšpirácia? Nasledujúce články vám môžu poskytnúť nejaké nápady pre váš ďalší projekt:Stručný sprievodca ukazovateľom Parabolic SARSprievodca zvládnutím Fibonacciho retracementuVysvetlenie predbiehajúcich a zaostávajúcich ukazovateľovVysvetlenie indikátora MACD