Hogyan tudok TA indikátorokat létrehozni a TradingView-n?
Kezdőlap
Cikkek
Hogyan tudok TA indikátorokat létrehozni a TradingView-n?

Hogyan tudok TA indikátorokat létrehozni a TradingView-n?

Haladó
Közzétéve Aug 28, 2020Frissítve Jun 15, 2023
13m

Bevezetés

Megfelelő kereskedési eszközök nélkül nem végezhet hatékony technikai elemzést. Egy erős kereskedési stratégia segít elkerülni a gyakori hibákat, javítja a kockázatkezelést, és növeli a lehetőségek felismerésének és kihasználásának képességét.

Sokak számára a TradingView a legmegfelelőbb charting platform. A technikai elemzési eszközök központját kínáló, nagy teljesítményű HTML5 webes alkalmazást milliók használják a Forex, a kriptovaluták és a hagyományos részvénypiacok mozgásának nyomon követésére.

A TradingView számos hasznos funkcióval rendelkezik: lehetővé teszi számunkra, hogy különböző kereskedési platformokon keresztül kövessük az eszközöket, és hogy a közösségi hálózatán belül kereskedési tippeket tegyünk közzé. Ebben a cikkben a testreszabhatóságra összpontosítunk. A Pine Scriptet, a TradingView saját programozási nyelvét fogjuk használni, mely segítségével pontosabb ellenőrzést gyakorolhatunk a diagramelrendezés felett.

Kezdjük is el!


Mi az a Pine Script?

A Pine Script egy szkriptnyelv, amely a TradingView diagramok módosítására használható. A platform már számos funkcióval rendelkezik erre a célra, de a Pine Script lehetővé teszi, hogy még tovább menjen. Akár a gyertyadiagramok színét szeretné megváltoztatni, akár egy új stratégiát szeretne visszatesztelni, a Pine Editor lehetővé teszi, hogy a valós idejű diagramokat a saját igényei szerint alakítsa.

Maga a kód kiválóan dokumentált, ezért további információért mindenképpen ellenőrizze a felhasználói kézikönyvet. A jelen útmutató célja, hogy megvitassa az alapokat és bemutassa azokat a mutatókat, amelyek hasznosak lehetnek a kriptokereskedésben.


Beállítás

A Pine Script beállítása hihetetlenül egyszerű. Minden általunk írt kód a TradingView szerverein fut, így egy böngészőből is elérhetjük a szerkesztőt és fejleszthetjük szkriptjeinket – minden további letöltés vagy konfiguráció nélkül.

Ebben a bemutatóban a Bitcoin/Binance USD (BTCBUSD) devizapárt fogjuk feltérképezni. Ha még nincs, hozzon létre egy ingyenes fiókot (pro előfizetés is elérhető, de ehhez az útmutatóhoz nem szükséges). 

Kövesse ezt a linket, és egy, az alábbiakhoz hasonló diagramot fog látni:


BTCBUSD diagram a Tradingview-n

Az Öné valószínűleg naprakészebb lesz.


Itt a teljes funkcionalitású diagramot szeretnénk megkapni – kattintson a gombra a betöltéshez. Ez sokkal részletesebb nézetet, rajzeszközöket és többek között trendvonalak rajzolásának lehetőségét biztosítja.


Teljes funkcionalitású diagram a tradingview oldalán BTCBUSD párra

A teljes funkcionalitású diagram. Az időkeretet a kiemelt fülek feletti nézetekre kattintva állíthatja be.


A különböző rendelkezésre álló eszközök használatát most nem fogjuk részletezni, de ha komolyan gondolja a technikai elemzést, erősen javasoljuk, hogy ismerkedjen meg velük. A bal alsó sarokban (a képen körvonalazva) különböző füleket fog látni – kattintson a Pine Editor fülre.


A Pine Editor


képernyőkép a pine editorról


Ebben a szerkesztőben történik a varázslat. Megmondjuk neki, hogy mit szeretnénk, majd kattintsunk a Hozzáadás az diagramhoz gombra, hogy a fenti mutatók megjelenjenek. A dolgok kuszává válhatnak, ha egyszerre több mutatót is felveszünk, ezért a példák között eltávolítjuk őket (jobb klikk a diagramon > Mutatók eltávolítása).

Láthatja, hogy már van néhány sornyi kódunk. Kattintsunk a Hozzáadás a diagramhoz gombra, és lássuk, mi történik.


Az első szkript hozzáadása a tradingview diagramhoz


Egy második diagram kerül az eredeti alá. Az új diagram történetesen ugyanazokat az adatokat ábrázolja. Vigye az egérmutatót a My Script fölé, és kattintson a keresztre az eltávolításához. Most pedig ássunk bele a kódba.

study("My Script")

Ez az első sor csak a mutatóinkat állítja be. Csak a nevet kell megadnunk a mutatóhoz ("My Script", ebben az esetben), de van néhány opcionális paraméter is, amit hozzáadhatunk. Ezek közül az egyik az overlay, amely azt mondja a TradingView-nak, hogy helyezze a mutatót a meglévő grafikonra (egy új szegmens helyett). Amint az első példánkból látható, alapértelmezés szerint false értéket kapunk. Bár most nem látjuk működés közben, az overlay=true hozzáadja a mutatót a meglévő diagramhoz.

plot(close)

Ez a sor a Bitcoin záróárának ábrázolására szolgáló utasítás. A plot egyszerűen egy vonaldiagramot ad nekünk, de gyertyadiagramokat és oszlopokat is megjeleníthetünk, amint azt rövidesen látni fogjuk. 

Most próbáljuk meg a következőt:

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

Miután hozzáadta, egy második diagram jelenik meg (amely úgy néz ki, mint az eredeti, jobbra eltolva). Mindössze annyit tettünk, hogy a nyitóárat ábrázoltuk helyette, és mivel az aktuális napi nyitóár az előző napi záróár, logikus, hogy ezek azonos alakúak.

Na jó! Szabaduljunk meg az aktuális mutatóktól (ne feledjük, hogy ezt jobb gombbal a Mutatók eltávolítása lehetőségre kattintva tehetjük meg). Vigye az egérmutatót a Bitcoin / BUSD fölé, majd kattintson az Elrejtés gombra az aktuális diagram törléséhez.

Sok kereskedő a gyertyadiagramokat részesíti előnyben, mivel több információt nyújtanak, mint egy olyan egyszerű diagram, amilyet most csináltunk. Ezután adjuk hozzá őket. 

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

Kezdetnek jó, de a színek hiánya miatt kissé unalmas. Ideális esetben piros gyertyák lennének, ha a nyitóár magasabb, mint a záróár az adott időkeretben, és zöldek, ha a záróár meghaladja a nyitóárat. Hozzáadunk egy sort a plotcandle() függvény fölé:

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

Ez minden gyertyát megvizsgál, és ellenőrzi, hogy a nyitóár nagyobb vagy egyenlő-e a záróárral. Ha igen, akkor ez azt jelenti, hogy az árak csökkentek az adott időszakban, ezért a gyertyát pirosra színezi. Ellenkező esetben a gyertya zöld lesz. Módosítsa a plotcandle() függvényt a színséma átadásához:

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

Távolítsa el az aktuális mutatókat, ha még nem tette meg, és adja hozzá ezt a diagramhoz. Most már nagyon hasonlít egy átlagos gyertyadiagramhoz.


Gyertyadiagram a Tradingview-n

Gyönyörű!


Mozgóátlagok ábrázolása (MA)

Az alapok egy részét már elsajátítottuk. Térjünk át első egyéni mutatónkra – az exponenciális mozgóátlagra, vagyis az EMA-ra. Ez egy értékes eszköz, mivel lehetővé teszi számunkra, hogy kiszűrjük a piaci zajt és elsimítsuk az ármozgást. 

Az EMA némileg eltér az egyszerű mozgóátlagtól (SMA), mivel nagyobb súlyt fektet a legfrissebb adatokra. Általában jobban reagálni a hirtelen mozgásokra, és gyakran használják rövid távú stratégiákhoz (például a nappali kereskedésben).


Az egyszerű mozgóátlag (SMA)

Akár az SMA-t is ábrázolhatjuk, csak hogy utána össze tudjuk hasonlítani a kettőt. Ezt a sort adja a szkripthez:

plot(sma(close, 10))

Ez az előző tíz nap átlagát mutatja. Módosítsa a zárójelben lévő számot, hogy lássa, hogyan változik a görbe a különböző időhosszúságok figyelembevételével.


Az előző 10 nap egyszerű mozgóátlaga

SMA az előző tíz nap alapján.


Az exponenciális mozgóátlag (EMA)

Az EMA-t egy kicsit nehezebb lesz megérteni, de nem kell aggódni. Először bontsuk le a képletet:

EMA = (Záró - Előző napi EMA) * Szorzó - Előző napi EMA

Szóval, mit mond ez nekünk? Nos, minden napra új mozgóátlagot számítunk ki az előző napi alapján. A szorzó az, ami a legutóbbi időszakot „súlyozza”, és a következő képlettel kerül kiszámításra:

Szorzó = 2 / (EMA hossza + 1)

Az egyszerű mozgóátlagokhoz hasonlóan meg kell adnunk, hogy milyen hosszú lesz az EMA. Szintaktikailag az EMA ábrázolására szolgáló függvény hasonló az SMA-hoz. Ábrázolja az SMA mellett, hogy összehasonlíthassa a kettőt:

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


EMA és SMA egy Tradingview diagramon

Látszik némi különbség a két MA típus között.


➠ Belépne a kriptovaluták világába? Vegyen Bitcoint a Binance-en!


Beépített szkriptek

Eddig manuálisan írtuk meg a kódunkat, hogy érezzük a működését. De van valami, amivel időt takaríthatunk meg, különösen akkor, ha bonyolultabb szkripteket írunk, és nem akarjuk nulláról kezdeni őket.

A szerkesztő jobb felső sarkában kattintson az Új elemre. Egy legördülő menü jelenik meg mindenféle technikai mutatóval. Kattintson az Exponenciális mozgóátlag lehetőségre az EMA indikátor forráskódjának megtekintéséhez.



Exponenciális mozgóátlag a Pine Scripten

Adja hozzá a diagramhoz.


Ez eltér a miénktől – látni fogja az input() függvényeket. Nem rosszak használhatóság szempontjából, mivel rákattinthat erre a mezőre…


Diagram módosítása a tradingview felületén


...és könnyen megváltoztathat néhány értéket egy felugró ablakban a Beállítások kerékre kattintva.


az EMA bemeneteinek módosítása


A következő szkriptünkben hozzáadunk néhány input() függvényt, hogy demonstráljuk.


A relatív erősségi index (RSI) mutató ábrázolása

A Relatív Erősség Index (RSI) egy másik lényeges mutató a technikai elemzésben. Ez egy úgynevezett momentum indikátor, ami azt méri, hogy az emberek milyen ütemben vásárolnak és adnak el eszközöket. A 0-tól 100-ig terjedő skálán bemutatott RSI-pontszám megpróbálja tájékoztatni a befektetőket arról, hogy az eszközök túlvett vagy túladott állapotban vannak-e. Jellemzően egy eszköz akkor tekinthető túladottnak, ha a pontszáma 30-nál kisebb vagy azzal egyenlő, és 70-nél nagyobb vagy azzal egyenlő pontszámmal lehet túlvett.

Az Új > RSI Stratégia menüpontra kattintva ezt maga is láthatja. Az RSI-t általában 14 egységes időszakokra (azaz 14 órára vagy 14 napra) mérik, de ezt a beállítást szabadon módosíthatja a saját stratégiájának megfelelően.

Adja hozzá a diagramhoz. Most már látnia kell néhány nyilat (a kódban a strategy.entry() függvény által meghatározva). Az RsiLE potenciális lehetőséget jelez az eszköz longolására, mivel túladott lehet. Az RsiSE kiemeli azokat a lehetséges pontokat, ahol az eszköz túlvett állapotban shortolható. Ne feledje, hogy mint minden mutató esetében, ezekre sem szabad feltétlenül az árak csökkenésének/emelkedésének csalhatatlan bizonyítékaként tekinteni.


Visszatesztelés

Van mód arra, hogy teszteljük az egyéni mutatóinkat. Bár a múltbeli teljesítmény nem garancia a jövőbeli eredményekre, a szkriptjeink visszatesztelésével képet kaphatunk arról, hogy mennyire hatékonyak a jelek észlelésében. 

Az alábbiakban egy egyszerű szkriptre mutatunk egy példát. Létrehozunk egy egyszerű stratégiát, amely akkor lép be egy long pozícióba, amikor a BTC árfolyama 11 000 dollár alá esik, és kiszáll a pozícióból, amikor az árfolyam meghaladja a 11 300 dollárt. Ezután láthatjuk, hogy ez a stratégia mennyire lett volna nyereséges a múltban.

//@version=4 strategy("ToDaMoon", overlay=true) enter = input(11000) exit = input(11300) price = close if (price = exit)  p   strategy.close_all(comment="SellTheNews")Itt a belépést és a kilépést változóként definiáltuk – mindkettő bemenet, ami azt jelenti, hogy később megváltoztathatjuk őket a grafikonon. Az árfolyam változóját is beállítjuk, amely az egyes időszakok záróárát veszi. Ezután van némi logika if utasítások formájában. Ha a zárójelben lévő rész igaz, akkor az alatta lévő, behúzott blokk lesz futtatva. Ellenkező esetben átugrásra kerül.Tehát, ha az ár kisebb vagy egyenlő a kívánt belépési árfolyamnál, akkor az első kifejezés igaz lesz, és nyitunk egy long pozíciót. Amint az árfolyam eléri vagy meghaladja a kívánt kilépési szintet, a második blokk aktiválódik, lezárva az összes nyitott pozíciót. A diagramot nyilakkal jelöljük, amelyek megmutatják, hogy hol léptünk be/ki a pozíciókból, ezért megadtuk, hogyan címkézzük fel ezeket a pontokat a megjegyzés paraméterrel (ebben a példában "BuyTheDip" és "SellTheNews"). Másolja ki a kódot, és adja hozzá a diagramhoz.
Most már láthatja a mutatókat a diagramon. Lehet, hogy kicsinyítenie kell.
A TradingView automatikusan alkalmazza a szabályokat a régebbi adatokra. Azt is észre fogja venni, hogy a Pine Editorból átvált a Strategy Tester fülre. Ez lehetővé teszi, hogy áttekintést kapjon a potenciális nyereségről, a kereskedések listájáról és azok egyéni teljesítményéről.
Pozíciók, amelyekbe beléptünk és amelyekből kiléptünk.
ÖsszekötésIdeje megírni a saját forgatókönyvünket az eddig átvett fogalmak felhasználásával. Egyesíteni fogjuk az EMA-t és az RSI-t, és ezek értékeit felhasználjuk a gyertyák színezésére, így könnyen vizualizálható betekintést nyerhetünk. Ez nem értelmezhető pénzügyi tanácsadásként – nincs objektíven helyes módja a mutató használatának. Mint minden mást, ezt is más eszközökkel együtt érdemes használni a saját stratégia kialakításához.Most pedig dolgozzunk az új szkriptünkön. Távolítsa el az összes mutatót a diagramról, és rejtse el a Bitcoin/BUSD diagramot is, hogy tiszta vásznat kapjunk a munkához.Kezdjük a vizsgálatunk meghatározásával. Nyugodtan nevezze el tetszőlegesen, csak győződjön meg róla, hogy az overlay=true értéket állította be.study(title="Binance Academy Script", overlay=true)Emlékezzen a korábbi EMA formulánkra. Meg kell adnunk a szorzót az EMA hosszával. Legyen ez egy olyan bemenet, amely egész számot igényel (tehát nincs tizedesjegy). Beállítunk egy minimális értéket is (minval), valamint egy alapértelmezett értéket (defval).study(title="Binance Academy Script", overlay=true) emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0)
Ezzel az új változóval kiszámíthatjuk az EMA értékét minden gyertyához a diagramunkon:study(title="Binance Academy Script", overlay=true) emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0) emaVal = ema(close, emaLength)
Nagyszerű. Tovább az RSI-re. Hasonló módon adjuk meg a hosszát: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)És most kiszámíthatjuk: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)Ebben a szakaszban állítsuk össze a logikát, amely az EMA és az RSI értékektől függően színezi a gyertyákat. Vegyünk egy olyan helyzetet, ahol (a) a gyertya záróára meghaladja az EMA-t, és (b) ahol az RSI 50 felett van.Miért? Nos, dönthet úgy, hogy ezek a mutatók használhatók együttesen arra, hogy megmondják, mikor kell longolni vagy shortolni a Bitcoint. Például úgy gondolhatja, hogy ha mindkét feltétel teljesül, akkor az egy jó időpont egy long pozícióba való belépéshez. Vagy fordítva, használhatja arra, hogy tájékoztassa Önt, mikor nem érdemes shortolni, még akkor sem, ha a többi mutató mást mond.Tehát a következő sorunk így fog kinézni: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.redMagyarul csak annyit mondunk, hogy ha az EMA értéke meghaladja a záróárat és az RSI pontszáma meghaladja az 50-et, akkor a gyertyát zöldre színezzük. Ellenkező esetben a gyertya piros lesz. Ezután ábrázolja az EMA-t: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")Végül ábrázolja a gyertyákat, ügyelve arra, hogy a színek paraméterét is tartalmazza: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)És ez a szkript! Adja hozzá a diagramhoz, hogy lássa hogyan működik.
BTC/BUSD diagram az EMA/RSI mutatóval.
Záró gondolatokEbben a cikkben végigvettünk néhány alapvető példát arra, hogy miket csinálhat a TradingView Pine Editor nevű szerkesztőprogramjával. Mostanra már magabiztosan kell egyszerű mutatókat ábrázolnia az árdiagramokon, hogy további betekintést nyerjen a saját mutatóiból.Mi itt csak néhány mutatóval foglalkoztunk, de ennél összetettebbek is könnyen létrehozhatók – akár az Új beépített szkriptek kiválasztásával, akár saját szkriptek megírásával.Hiányzik az ihlet? A következő cikkek talán adnak néhány ötletet a következő projektjéhez:Rövid útmutató a parabolikus SAR indikátorhozÚtmutató a Fibonacci korrekció elsajátításáhozMagyarázat az előrejelző és lemaradó indikátorokhozMagyarázat a MACD indikátorhoz