Kuidas luua TradingView's TA indikaatoreid
Avaleht
Artiklid
Kuidas luua TradingView's TA indikaatoreid

Kuidas luua TradingView's TA indikaatoreid

Edasijõudnud
Avaldatud Aug 28, 2020Värskendatud Jun 15, 2023
13m

Sissejuhatus

Ilma õigete kauplemisvahenditeta ei saa sa tõhusat tehnilist analüüsi teha. Tugev kauplemisstrateegia aitab sul vältida levinud vigu, parandada riskihaldust ning suurendada sinu võimet tuvastada ja võimalusi ära kasutada.

Paljude jaoks on TradingView graafikute koostamise platvorm. Tehnilise analüüsi tööriistade keskust pakkuvat võimsat HTML5 veebirakendust kasutavad miljonid inimesed Forexi, krüptoraha ja traditsiooniliste aktsiaturgude liikumise jälgimiseks.

TradingView'l on palju võimsaid funktsioone: see võimaldab meil jälgida varasid paljudes kauplemisplatvormides ja avaldada oma suhtlusvõrgustikus kauplemisideid. Selles artiklis keskendume selle kohandatavusele. Kasutame Pine Scripti, TradingView' oma programmeerimiskeelt, mis annab meile üksikasjaliku kontrolli meie diagrammi paigutuste üle.

Alustame!


Mis on Pine Script?

Pine Script on skriptikeel, mida saab kasutada sinu TradingView graafikute muutmiseks. Platvorm pakub selleks juba palju funktsioone, kuid Pine Script võimaldab astuda veel sammu edasi. Olenemata sellest, kas soovid muuta oma küünalde värve või testida uut strateegiat, võimaldab Pine redaktor sul oma reaalajas graafikuid oma äranägemise järgi kohandada.

Kood ise on suurepäraselt dokumenteeritud, nii et lisateabe saamiseks loe kindlasti selle kasutusjuhendit. Meie eesmärk selles juhendiga on arutada mõningaid põhitõdesid ja tutvustada indikaatoreid, mis võivad krüptoga kauplemisel kasuks tulla.


Seadistamine

Pine Scriptiga alustamine on uskumatult lihtne. Kõik meie kirjutatud koodid töötavad TradingView' serverites, nii et pääseme redaktorile juurde ja arendame oma skripte brauserist – ilma täiendava allalaadimise või konfiguratsioonita.

Selles juhendis koostame diagrammi Bitcoini/Binance USD (BTCBUSD) krüptopaariga. Kui sul seda veel pole, loo tasuta konto (saadaval on ka pro-tellimus, kuid seda pole selle juhendi jaoks vaja). 

Järgi seda linki ja näed diagrammi, mis sarnaneb järgmisega:


BTCBUSD diagramm tradingview's

Sinu oma on tõenäoliselt ajakohasem.


Siin proovime saada täisfunktsionaalsusega diagrammi – sellele juurde pääsemiseks klõpsa nuppu. See annab meile muu hulgas palju üksikasjalikuma ülevaate, joonistustööriistad ja võimalused trendijoonte joonistamiseks.


BTCBUSD tradingview' täisfunktsionaalne diagramm

Täisfunktsionaalne diagramm. Saad reguleerida ajavahemikku, klõpsates esiletõstetud vahekaartide kohal olevatel vaadetel.


Me ei aruta, kuidas kasutada erinevaid saadaolevaid tööriistu, kuid kui oled tõsiselt huvitatud tehnilisest analüüsist, soovitame sul nendega tutvuda. Vasakpoolses allnurgas (pildil välja toodud) näed mõnda erinevat vahekaarti – klõpsa Pine redaktor.


Pine redaktor


pine redaktori kuvatõmmis


See redaktor on koht, kus juhtub maagia. Me ütleme talle, mida tahame teha ja seejärel klõpsame nuppu Lisa diagramm, et näha ülaosas meie märkusi. Pane tähele, et asjad võivad muutuda segaseks, kui lisame korraga mitu märkust, nii et eemaldame need näidete vahel (paremklõpsa diagrammil > Eemalda indikaatorid).

Näed, et meil on seal juba paar rida koodi. Klõpsa nuppu Lisa diagrammi, et näha, mis juhtub.


Esimese skripti lisamine tradingview' diagrammile


Teine diagramm lisatakse originaali alla. Uus diagramm esindab samu andmeid. Hõljuta kursorit Minu skripti kohal ja klõpsa selle eemaldamiseks ristil. Nüüd uurime koodi.

study("My Script")

See esimene rida on lihtsalt meie annotatsiooni seadistamine. See nõuab ainult nime, mida soovid indikaatoriks nimetada (antud juhul „Minu skript“), kuid on ka mõningaid valikulisi parameetreid, mida saame lisada. Üks neist on overlay, mis käsib TradingView'l paigutada indikaatori olemasolevale graafikule (uue segmendi asemel). Nagu näed meie esimesest näitest, on see vaikimisi false. Kuigi me seda praegu töös ei näe, lisab overlay=true indikaatori olemasolevale diagrammile.

plot(close)

See rida on juhis Bitcoini sulgemishinna joonistamiseks. plot annab meile lihtsalt joondiagrammi, kuid saame kuvada ka küünlaid ja ribasid, nagu varsti näeme. 

Nüüd proovime järgmist:

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

Kui oled selle lisanud, peaksid nägema teist diagrammi (mis näeb välja nagu originaal nihutatud paremale). Kõik, mida oleme teinud, on joonistanud selle asemel avamishinna ja kuna praeguse päeva avamine on eelmise päeva sulgemine, on mõistlik, et need on identse kujuga.

Okei! Kustutame praegused märkused (pea meeles, et teeme seda paremklõpsuga ja klõpsates nuppu Eemalda indikaatorid). Hõljuta kursorit Bitcoini / BUSD kohal ja klõpsa nupul Peida, et ka praegune diagramm kustutada.

Paljud kauplejad eelistavad küünladiagramme, kuna need annavad meile rohkem teavet kui lihtne joonis, nagu see, mida me just tegime. Lisame need järgmisena. 

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

See on hea algus, kuid värvide puudumine muudab selle pisut magedaks. Ideaalis peaks meil olema punased küünlad, kui avamishind on kõrgem kui antud ajaperioodi sulgemishind ja rohelised, kui sulgemishind ületab avamishinna. Lisame funktsiooni plotcandle() kohale rea:

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

See vaatab iga küünalt ja kontrollib, kas avamishind on kõrgem või võrdne sulgemishinnaga. Kui see on nii, tähendab see, et hinnad on perioodi jooksul langenud, nii et see värvib küünla punaseks. Vastasel juhul värvib see selle roheliseks. Muutke funktsiooni plotcandle() selle värviskeemi edastamiseks:

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

Eemalda praegused indikaatorid, kui sa pole seda veel teinud ja lisa see diagrammile. Nüüd peaks meil olema midagi, mis sarnaneb tavalise küünladiagrammiga.


Küünladiagramm tradingview's

Ilus!


Liikuvate keskmiste joonistamine (MA)

Meil on mõned põhitõed. Liigume edasi meie esimese kohandatud indikaatori – eksponentsiaalse liikuva keskmise ehk EMA juurde. See on väärtuslik tööriist, kuna see võimaldab meil välja filtreerida turumüra ja tasandada hinnamuutusi. 

EMA erineb pisut lihtsast liikuvast keskmisest (SMA) selle poolest, et see annab kõige värskematele andmetele suurema kaalu. See kipub reageerima äkilistele liikumistele ja seda kasutatakse sageli lühiajalisteks mängudeks (näiteks päevakauplemisel).


Lihtne liikuv keskmine (SMA)

Sama hästi võiksime joonistada SMA, et saaksime neid kahte hiljem võrrelda. Lisa oma skriptile see rida:

plot(sma(close, 10))

See näitab eelmise kümne päeva keskmist. Muuda sulgudes olevat numbrit, et näha, kuidas kõver muutub, kui võtta arvesse erinevaid pikkusi.


Lihtne liikuv keskmine eelmise 10 päeva põhjal

SMA, mis põhineb eelmisel kümnel päeval.


Eksponentsiaalne liikuv keskmine (EMA)

EMA-st on pisut keerulisem aru saada, kuid pole vaja muretseda. Uurime kõigepealt valemit:

EMA = (Sulgemishind - eelmise päeva EMA) * kordaja - eelmise päeva EMA

Niisiis, mida see meile ütleb? Arvutame uue liikuva keskmise eelmise päeva oma põhjal. Kordaja on see, mis „kaalub“ kõige viimast perioodi ja see arvutatakse järgmise valemiga:

Kordaja = 2 / (EMA pikkus + 1)

Nagu lihtsate liikuvate keskmiste puhul, peame täpsustama, kui pikk on EMA. Süntaktiliselt sarnaneb EMA joonistamise funktsioon SMA funktsiooniga. Joonista see koos SMA-ga, et saaksid neid kahte võrrelda:

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


EMA ja SMA ühel tradingview' diagrammil

Näete kahe MA tüübi vahel väikest erinevust.


➟ Kas soovid alustada krüptorahaga? Osta Bitcoini Binance'ist!


Sisseehitatud skriptid

Seni oleme oma koodi kirjutanud käsitsi, et sellest aru saada. Kuid tutvustame midagi, mis võib meie aega säästa, eriti kui kirjutame keerukamaid skripte ja me ei taha neid luua nullist.

Redaktori ülaosa paremas servas klõpsa nuppu Uus. Saad rippmenüü kõikvõimalike erinevate tehniliste näitajatega. EMA indikaatori lähtekoodi kuvamiseks klõpsa nuppu Eksponentsiaalne liikuv keskmine.



Liikuv keskmine eksponentsiaal pine skriptis

Jätka ja lisa see diagrammi.


See erineb meie omast – sa märkad input() funktsioone. Need on kasutatavuse seisukohast kenad, kuna saad sellel kastil klõpsata...


Diagrammi muutmine tradingview' liideses


...ja hõlpsalt mõnda väärtust hüpikaknas muuta, klõpsates sätete rattal.


EMA sisendite muutmine


Selle demonstreerimiseks lisame oma järgmisesse skripti paar input() funktsiooni.


Suhtelise tugevuse indeksi (RSI) indikaatori joonistamine

Suhtelise tugevuse indeks (RSI) on tehnilise analüüsi teine oluline indikaator. Seda tuntakse momentumi indikaatorina, mis tähendab, et see mõõdab varade ostmise ja müümise kiirust. Skaalal 0–100 esitatud RSI skoor püüab investoreid teavitada sellest, kas varad on üleostetud või ülemüüdud. Tavaliselt loetakse vara ülemüüduks, kui selle skoor on väiksem või võrdne 30, ja seda võidab olla üleostetud, kui hind on suurem või võrdne 70-ga.

Kui valid Uus > RSI strateegia, näed seda ise. RSI-d mõõdetakse tavaliselt 14 (st 14 tunni või 14 päeva) perioodide jooksul, kuid saad seda sätet oma strateegia järgi kohandada.

Lisa see diagrammile. Peaksid nüüd nägema mõnda noolt (määratletud strateegia.entry() abil funktsioon koodis). RsiLE viitab potentsiaalsele võimalusele avada vara pikk positsioon, kuna see võib olla ülemüüdud. RsiSE tõstab esile võimalikud punktid, kus vara lühikeseks müüa, kui see on ülemüüdud. Pane tähele, et nagu kõigi indikaatorite puhul, ei tohiks sa tingimata tugineda neile kui lollikindlatele tõenditele, et hinnad langevad/tõusevad.


Tagasitestimine

Meil on võimalus oma kohandatud indikaatoreid testida. Kuigi varasem tootlus ei garanteeri tulevasi tulemusi, võib meie skriptide järeltestimine anda meile aimu, kui tõhusad need signaalid on. 

Allpool anname lihtsa skripti näite. Loome lihtsa strateegia, mis siseneb pikale positsioonile, kui BTC hind langeb alla 11 000 dollari ja väljub positsioonist, kui hind ületab 11 300 dollarit. Seejärel näeme, kui tulus oleks see strateegia ajalooliselt olnud.

//@version=4 strategy("ToDaMoon", overlay=true) enter = input(11000) exit = input(11300) price = close if (price = exit)     strategy.close_all(comment="SellTheNews")Siin oleme defineerinud sisenemise ja väljumise muutujatena – mõlemad on sisendid, mis tähendab, et saame neid hiljem diagrammil muuta. Seadistame ka hinnamuutuja, mis võtab iga perioodi sulgemispunkti. Siis on meil loogikat if lausete kujul. Kui sulgudes olev osa on tõene, siis käivitatakse selle all olev sisestatud plokk. Vastasel juhul jäetakse see vahele.Seega, kui hind on väiksem või võrdne meie soovitud kirjega, hinnatakse esimest avaldist tõeseks ja me avame pika positsiooni. Kui hind on võrdne soovitud väljumishinnaga või ületab seda, käivitub teine plokk, mis sulgeb kõik avatud positsioonid. Märgime ära diagrammi nooltega, mis näitavad, kus me sisenesime/väljusime, seega oleme täpsustanud need punktid kommentaarparameetriga (selles näites "BuyTheDip" ja "SellTheNews"). Kopeeri kood ja lisage see diagrammi.
Nüüd näed diagrammil indikaatoreid. Võimalik, et peate välja suumima.
TradingView rakendab sinu reegleid automaatselt vanematele andmetele. Samuti näed, et see lülitub Pine'i redaktorist vahekaardile Strateegiatestija. See võimaldab teil näha ülevaadet oma potentsiaalsest kasumist, tehingute loendit ja iga nende individuaalset tulemust.
Positsioonid, kuhu oleme sisenenud ja millest väljusime.
Võtame selle kokkuOn aeg kirjutada oma stsenaarium, kasutades mõnda seninähtud kontseptsiooni. Me ühendame EMA ja RSI ning kasutame nende väärtusi küünlate värvimiseks, andes ülevaate, mida on lihtne visualiseerida. Seda ei tohiks tõlgendada finantsnõustamisena – selle indikaatori kasutamiseks pole objektiivselt õiget viisi. Nagu kõiki teisigi, tuleks seda kasutada koos teiste vahenditega oma strateegia väljatöötamiseks.Nüüd töötame oma uue skripti kallal. Eemalda diagrammist kõik indikaatorid ja peida ka Bitcoini/BUSD diagramm, et saaksime töötada puhtal lõuendil.Alustame oma uuringu määratlemisest. Nimeta see kuidas ise soovid, lihtsalt veendu, et oleks määratud overlay=true.study(title="Binance Academy Script", overlay=true)Tuleta meelde meie varasem EMA valem. Peame esitama kordaja EMA pikkusega. Teeme sellest sisendi, mis nõuab täisarvu (seega, ilma kümnendkohtadeta). Samuti määrame minimaalse, mis võib olla (minval) ja vaikeväärtus (defval).study(title="Binance Academy Script", overlay=true) emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0)
Seda uut muutujat kasutades saame arvutada EMA väärtuse meie diagrammi iga küünla jaoks:study(title="Binance Academy Script", overlay=true) emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0) emaVal = ema(close, emaLength)
Tore. Nüüd läheme RSI peale. Anname sellele pikkuse sarnaselt: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)Ja nüüd saame selle arvutada: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)Selles etapis paneme kokku loogika, mis värvib küünlaid sõltuvalt EMA ja RSI väärtustest. Võtame olukorra, kus (a) küünla sulgemishind ületab EMA ja (b) kus RSI on üle 50.Miks? Võid otsustada, et neid indikaatoreid saab kasutada koos selleks, et öelda, millal avada Bitcoini pikk positsioon või seda lühikeseks müüa. Näiteks võid arvata, et mõlema tingimuse täitmine tähendab, et on õige aeg siseneda pikale positsioonile. Või vastupidi, võid seda kasutada selleks, et ennast teavitada, millal mitte lühikeseks müüa, isegi kui muud indikaatorid näitavad vastupidist.Niisiis, meie järgmine rida näeb välja selline: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.redKui tõlgime selle lihtsasse inimkeelde, siis me lihtsalt ütleme, et kui EMA väärtus ületab sulgemishinna ja RSI skoor ületab 50, värvime küünla roheliseks. Vastasel juhul värvime selle punaseks. Järgmisena joonistame EMA-diagrammi: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")Viimaseks joonista küünlad, lisades kindlasti värviparameetri: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)Ja see ongi skript! Lisa see diagrammile, et näha seda tegevuses.
BTC/BUSD diagramm koos EMA/RSI indikaatoriga.
LõppmärkusedSelles artiklis oleme läbi vaadanud mõned põhilised näited selle kohta, mida saab teha TradingView' Pine redaktoriga. Nüüdseks peaksid tundma end kindlalt tehes hinnadiagrammidele lihtsaid märkusi, et saada oma indikaatoritest täiendavat teavet.Oleme siin huvi tundnud vaid paari indikaatori vastu, kuid on lihtne üles sättida keerukamaid – kas valides New alt sisseehitatud skriptid või kirjutades need ise.Vajad inspiratsiooni? Järgmised artiklid võivad anda sulle ideid oma järgmise projekti jaoks.Paraboolse SAR-indikaatori lühijuhendFibonacci Retracementi juhendEnnetavate ja viivitusega indikaatorite tutvustusMACD indikaatori tutvustus