SÄ hÀr skapar du TA-indikatorer i TradingView
Hem
Artiklar
SÄ hÀr skapar du TA-indikatorer i TradingView

SÄ hÀr skapar du TA-indikatorer i TradingView

MedelnivÄ
Publicerad Aug 28, 2020Uppdaterad Jun 15, 2023
13m

Introduktion

Utan rÀtt handelsverktyg kan du inte genomföra en effektiv teknisk analys. En stark handelsstrategi hjÀlper dig att undvika vanliga misstag, förbÀttra din riskhantering och öka din förmÄga att identifiera och dra nytta av möjligheter.

För mÄnga Àr TradingView den bÀsta diagramplattformen. Den kraftfulla HTML5-webbapplikationen erbjuder ett nav av tekniska analysverktyg och anvÀnds av miljoner för att följa rörelser pÄ valuta-, kryptovaluta- och traditionella aktiemarknader.

TradingView har mÄnga kraftfulla funktioner: det gör att vi kan följa tillgÄngar över mÄnga handelsplattformar och publicera handelsidéer inom dess sociala nÀtverk. I den hÀr artikeln fokuserar vi pÄ dess anpassningsbarhet. Vi kommer att anvÀnda TradingViews eget programmeringssprÄk Pine Script, som ger oss detaljerad kontroll över vÄra diagramlayouter.

Nu kör vi!


Vad Àr Pine Script?

Pine Script Àr ett skriptsprÄk som kan anvÀndas för att Àndra dina TradingView-diagram. Plattformen ger dig redan mÄnga funktioner för att göra detta, men Pine Script lÄter dig ta allt ett steg lÀngre. Oavsett om du vill Àndra fÀrgerna pÄ dina candlestickar eller testa en ny strategi gör Pine Editor det möjligt för dig att anpassa dina realtidsdiagram sÄ som du tycker passar bÀst.

Koden i sig Àr ordentligt dokumenterad, sÄ se till att kolla in anvÀndarhandboken för mer information. VÄrt mÄl i denna handledning Àr att gÄ igenom nÄgra av grunderna och introducera indikatorer som kan vara till nytta för kryptovalutahandel.


Konfigureringen

Det Ă€r otroligt enkelt att komma igĂ„ng med Pine Script. All kod vi skriver körs pĂ„ TradingViews servrar, sĂ„ vi kan komma Ă„t redigeraren och utveckla vĂ„ra skript frĂ„n en webblĂ€sare – utan att nĂ„gon extra nedladdning eller konfiguration krĂ€vs.

I den hÀr handledningen ritar vi upp valutaparet Bitcoin/Binance USD (BTCBUSD). Om du inte redan har gjort det kan du skapa ett gratis konto (det finns ocksÄ en pro-prenumeration tillgÀnglig, men den Àr inte nödvÀndig för den hÀr guiden). 

Följ den hÀr lÀnken sÄ ser du ett diagram som liknar detta:


BTCBUSD-diagram pÄ tradingview

Ditt kommer förmodligen att vara en uppdaterad version.


HĂ€r vill vi fĂ„ det fullstĂ€ndiga diagrammet – klicka pĂ„ knappen för att komma Ă„t det. Det ger oss en mycket mer detaljerad vy, ritverktyg och alternativ för att bland annat rita upp trendlinjer.


FullstÀndigt diagram pÄ tradingview för BTCBUSD

Det fullstÀndiga diagrammet. Du kan justera tidsperioden genom att klicka pÄ vyerna ovanför de markerade flikarna.


Vi kommer inte att gĂ„ igenom hur du anvĂ€nder de olika tillgĂ€ngliga verktygen, men om du Ă€r seriöst intresserad av teknisk analys rekommenderar vi starkt att du bekantar dig med dem. LĂ€ngst ner till vĂ€nster (markerad i bilden) ser du nĂ„gra olika flikar – klicka pĂ„ Pine Editor.


Pine Editor


skÀrmbild pÄ pine editor


Det Àr i redigeringsprogrammet som magin uppstÄr. I redigeringsprogrammet berÀttar vi vad vi vill göra och klickar sedan pÄ LÀgg till i diagram varpÄ vÄra kommentarer visas ovan. Observera att det kan bli rörigt om vi inkluderar flera kommentarer samtidigt, sÄ vi tar bort dem mellan exemplen (högerklicka i diagrammet > Ta bort indikatorer).

Du kan se att vi redan har ett par rader med kod dÀr. Nu klickar vi pÄ LÀgg till i diagram för att se vad som hÀnder.


LÀgg till första skriptet i tradingview-diagrammet


Ett andra diagram lÀggs nu till under originalet. Det nya diagrammet representerar samma data. HÄll muspekaren över Mitt skript och klicka pÄ korset för att ta bort det. LÄt oss nu titta nÀrmare pÄ koden.

study("My Script")

Den hĂ€r första raden stĂ€ller bara in vĂ„r kommentar. Den krĂ€ver bara namnet som du vill kalla indikatorn ("My Script" i det hĂ€r fallet), men det finns ocksĂ„ nĂ„gra valfria parametrar som vi kan lĂ€gga till. En av dessa Ă€r overlay, som sĂ€ger till TradingView att placera indikatorn pĂ„ det befintliga diagrammet (istĂ€llet för i ett nytt segment). Som du kan se frĂ„n vĂ„rt första exempel Ă€r det som standard false. Även om vi inte kommer att se det hĂ€nda nu, lĂ€gger overlay=true till indikatorn i det befintliga diagrammet.

plot(close)

Denna rad Àr instruktionen för att rita upp stÀngningspriset för Bitcoin. Plot ger oss helt enkelt ett linjediagram, men vi kan ocksÄ visa candlestickar och staplar, vilket vi kommer att se inom kort. 

LÄt oss nu prova följande:

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

NÀr du har lagt till detta bör du se ett andra diagram (som ser ut som originalet fast flyttat till höger). Allt vi har gjort Àr att sÀtta in öppningspriset istÀllet och eftersom den aktuella dagens öppningspris Àr föregÄende dags stÀngningspris har dessa sÄ klart en identisk form.

Okej! LÄt oss ta bort de nuvarande anteckningarna (kom ihÄg att vi gör detta genom att högerklicka och vÀlja Ta bort indikatorer). HÄll muspekaren över Bitcoin/BUSD och klicka pÄ knappen Dölj för att Àven rensa det aktuella diagrammet.

MÄnga handlare föredrar candlestick-diagram eftersom de ger oss mer information Àn en enskild punkt som den vi just gjorde. LÄt oss lÀgga till dem nu. 

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

Det Àr en bra början, men bristen pÄ fÀrger gör det lite trÄkigt. Helst bör vi ha röda ljus nÀr det öppningspriset Àr högre Àn stÀngningspriset för den givna tidsperioden och gröna om stÀngningspriset överstiger öppningspriset. Vi lÀgger till en rad ovanför funktionen plotcandle() sÄ hÀr:

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

Denna kod tittar pĂ„ varje candlestick och kontrollerar om öppningspriset Ă€r högre eller lika med stĂ€ngningspriset. Om sĂ„ Ă€r fallet betyder det att priserna har sjunkit under perioden, sĂ„ detta fĂ€rgar din candlestick röd. Annars kommer fĂ€rgen att bli grön. Ändra funktionen plotcandle() för att anvĂ€nda detta fĂ€rgschema:

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

Ta bort de aktuella indikatorerna om du inte redan har gjort det och lÀgg till denna i diagrammet. Nu borde vi ha nÄgot som liknar ett vanligt candlestick-diagram.


Candlestick-diagram pÄ tradingview

Snyggt!


Rita upp glidande medelvÀrden (moving averages/MA)

Nu har vi gĂ„tt igenom grunderna. LĂ„t oss gĂ„ vidare till vĂ„r första anpassade indikator – det exponentiella glidande medelvĂ€rdet, som pĂ„ engelska heter Exponential Moving Average och dĂ€rför förkortas EMA. Detta Ă€r ett vĂ€rdefullt verktyg som gör att vi kan filtrera bort allt marknadsbrus och jĂ€mna ut prishĂ€ndelserna. 

EMA skiljer sig nÄgot frÄn det enkla glidande medelvÀrdet (Simple Moving Average/SMA), eftersom det lÀgger större vikt vid de senaste uppgifterna. Det tenderar att vara mer reaktivt mot plötsliga rörelser och anvÀnds ofta för kortsiktig handel (till exempel under dagshandel).


Det enkla glidande medelvÀrdet (Simple Moving Average/SMA)

Vi kan lika gÀrna rita upp SMA, sÄ att vi kan jÀmföra de tvÄ. LÀgg till den hÀr raden i ditt skript:

plot(sma(close, 10))

Detta ritar upp genomsnittet av de föregÄende tio dagarna. Justera antalet inom parentesen för att se hur kurvan förÀndras nÀr du tar hÀnsyn till olika perioder.


Enkelt glidande medelvÀrde baserat pÄ de föregÄende 10 dagarna

SMA, baserat pÄ de föregÄende tio dagarna.


Det exponentiella glidande medelvÀrdet (EMA)

EMA Àr lite svÄrare att förstÄ, men oroa dig inte. LÄt oss gÄ igenom formeln först:

EMA = (stÀngningspriset - föregÄende dags EMA) * Multiplikator - föregÄende dags EMA

Ok, sÄ vad sÀger detta oss? För varje dag berÀknar vi ett nytt glidande medelvÀrde baserat pÄ föregÄende dags. Multiplikatorn Àr det som "vÀger in" den senaste perioden och berÀknas med följande formel:

Multiplikator = 2 / (EMA_s lÀngd + 1)

Precis som med enkla glidande medelvÀrden mÄste vi ange hur lÄng EMA kommer att vara. Syntaktiskt liknar funktionen för att rita upp EMA funktionen för SMA. Rita upp det tillsammans med SMA sÄ att du kan jÀmföra de tvÄ:

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


EMA och SMA pÄ ett tradingview-diagram

Du kan se en liten skillnad i de tvÄ MA-typerna.


➠ Vill du komma igĂ„ng med kryptovaluta? Köp bitcoin pĂ„ Binance!


Inbyggda skript

Hittills har vi skrivit vÄr kod manuellt, sÄ att du kan fÄ en kÀnsla för hur det fungerar. Men lÄt oss presentera nÄgot som kan spara tid, sÀrskilt om vi skriver mer komplexa skript och inte vill skriva dem frÄn grunden.

Klicka pÄ Ny högst upp till höger i din redigerare. Du ser nu en rullgardinsmeny med alla typer av olika tekniska indikatorer. Klicka pÄ Moving Average Exponential för att se kÀllkoden för en EMA-indikator.



Exponentiellt glidande medelvÀrde i pine script

LĂ€gg nu till detta i diagrammet.


Den hĂ€r skiljer sig frĂ„n vĂ„r – du kommer att mĂ€rka funktionerna input(). Dessa Ă€r bra ur ett anvĂ€ndbarhetsperspektiv, eftersom du kan klicka pĂ„ den hĂ€r rutan 



Ändra ett diagram i tradingview-grĂ€nssnittet



 och enkelt Ă€ndra nĂ„gra av vĂ€rdena i ett popup-fönster genom att klicka pĂ„ hjulet instĂ€llningar.


Àndra indata pÄ EMA


Vi lÀgger till ett par input()-funktioner i vÄrt nÀsta skript för att visa detta.


Rita upp indikatorn för relativt styrkeindex (RSI)

Relativt styrkeindex (RSI) Àr en annan viktig indikator inom teknisk analys. Den Àr kÀnd som en momentumindikator, vilket innebÀr att den mÀter takten med vilken tillgÄngar köps och sÀljs. RSI-poÀngen mÀts pÄ en skala frÄn 0 till 100 och försöker informera investerare om huruvida tillgÄngar Àr överköpta eller översÄlda. Vanligtvis kan en tillgÄng betraktas som översÄld om den har mindre eller lika med 30 poÀng, och den kan vara överköpt med större eller lika med 70 poÀng.

Om du gÄr till New > RSI Strategy kan du se detta sjÀlv. RSI mÀts vanligtvis i perioder pÄ 14 (det vill sÀga 14 timmar eller 14 dagar), men du kan sjÀlv justera den instÀllningen sÄ att den passar din egen strategi.

LÀgg till detta i diagrammet. Du bör se nÄgra pilar som visas nu (vilka definieras av funktionen strategy.entry() i koden). RsiLE indikerar en potentiell möjlighet att köpa tillgÄngen, eftersom den kan vara översÄld. RsiSE ger möjliga punkter dÀr tillgÄngen kan blankas nÀr den Àr överköpt. Observera att du, precis som med alla andra indikatorer, inte nödvÀndigtvis bör lita pÄ dessa som idiotsÀkra bevis pÄ att priserna kommer att öka eller sjunka.


Vi testar vÄra skript

Det finns ett sĂ€tt för oss att testa vĂ„ra anpassade indikatorer. Även om tidigare resultat inte Ă€r nĂ„gon garanti för framtida resultat, kan ett test av vĂ„ra skript ge oss en uppfattning om hur effektiva de Ă€r pĂ„ att ge oss signaler. 

Vi ger ett exempel pÄ ett enkelt skript nedan. Vi kommer att skapa en enkel strategi som gÄr in i en lÄng position nÀr BTC-priset faller under 11 000 dollar och lÀmnar positionen nÀr priset överstiger 11 300 dollar. Vi kan dÄ se hur lönsam denna strategi skulle ha varit, historiskt sett.

//@version=4 strategy("ToDaMoon", overlay=true) enter = input(11000) exit = input(11300) price = close if (price = exit)     strategy.close_all(comment="SellTheNews")HÀr har vi definierat ingÄng och utgÄng som variabler - bÄda Àr indata, vilket innebÀr att vi kan Àndra dem i diagrammet senare. Vi stÀller ocksÄ in prisvariabeln, som tar stÀngningspriset för varje period. Sedan har vi lite logik i form av if-uttalanden. Om delen inom parentes Àr sann, kommer det indragna blocket under den att köras. Annars hoppas detta över.SÄ om priset Àr mindre Àn eller lika med det vi angav utvÀrderas det första uttrycket som sant och vi öppnar en lÄng position (köper). NÀr priset Àr lika med eller överstiger det vi angav aktiveras det andra blocket och stÀnger alla öppna positioner. Vi kommenterar diagrammet med pilar som visar var vi har gÄtt in i och ut ur en position, sÄ vi har angett vad som ska mÀrka dessa punkter med kommentarsparametern (i det hÀr exemplet "BuyTheDip" och "SellTheNews"). Kopiera koden och lÀgg till den i diagrammet.
Du kan nu se indikatorerna i diagrammet. Du kanske behöver zooma ut.
TradingView tillÀmpar automatiskt dina regler pÄ Àldre data. Du kommer Àven mÀrka att den vÀxlar frÄn Pine Editor till fliken Strategy Tester . Detta gör att du kan fÄ en översikt över dina potentiella vinster, en lista över handel och var och en av deras individuella resultat.
Positioner vi har gÄtt in i och ut ur.
Prova allt tillsammansDet Ă€r nu dags att skriva vĂ„rt eget skript genom att anvĂ€nda nĂ„gra av de begrepp vi har sett hittills. Vi ska kombinera EMA och RSI och anvĂ€nda deras vĂ€rderingar för att fĂ€rga candlestickar, vilket ger statistik som vi enkelt kan visualisera. Detta ska inte tolkas som ekonomisk rĂ„dgivning – det finns inget objektivt korrekt sĂ€tt att anvĂ€nda denna indikator. Precis som med alla andra bör den anvĂ€ndas med andra verktyg, sĂ„ att du kan utveckla din egen strategi.LĂ„t oss nu arbeta med vĂ„rt nya skript. Ta bort alla dina indikatorer frĂ„n diagrammet och dölj dessutom Bitcoin/BUSD-diagrammet, sĂ„ att vi har en ren yta att arbeta med.LĂ„t oss börja med att definiera vĂ„r studie. Namnge den gĂ€rna vad du vill, se bara till att ange overlay=true.study(title="Binance Academy Script", overlay=true)Kom ihĂ„g vĂ„r EMA-formel frĂ„n tidigare. Vi mĂ„ste förse multiplikatorn med EMA:s lĂ€ngd. LĂ„t oss göra detta till indata som krĂ€ver ett heltal (inga decimaler alltsĂ„). Vi anger Ă€ven ett minimum som det kan ha (minval) och ett standardvĂ€rde (defval).study(title="Binance Academy Script", overlay=true) emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0)
Med hjÀlp av denna nya variabel kan vi berÀkna EMA-vÀrdet för varje ljus i vÄrt diagram:study(title="Binance Academy Script", overlay=true) emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0) emaVal = ema(close, emaLength)
Bra! Nu gÄr vi vidare till RSI. Vi ger den en lÀngd pÄ ett liknande sÀtt: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)Och nu kan vi berÀkna detta: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)LÄt oss nu sÀtta ihop logiken som fÀrgar vÄra candlestickar beroende pÄ EMA- och RSI-vÀrdena. Vi anvÀnder en situation dÀr (a) ljusets stÀngningspris överstiger EMA och (b) dÀr RSI Àr över 50.Varför? För att du kan bestÀmma att dessa indikatorer kan anvÀndas tillsammans, för att ange nÀr du ska köpa eller blanka bitcoin. Du kanske till exempel tror att uppfyllandet av bÄda dessa villkor innebÀr att det Àr ett bra lÀge att köpa. Eller sÄ kan du anvÀnda den för att informera dig om nÀr du inte ska blanka, Àven om andra indikatorer sÀger nÄgot annat.NÀsta rad kommer att se ut sÄ hÀr: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.redOm vi översÀtter detta till vanlig svenska sÀger vi helt enkelt att om EMA-vÀrdet överstiger stÀngningspriset och RSI-poÀngen överstiger 50, kommer vi att fÀrga ljuset grönt. Annars blir fÀrgen grön. Nu ska vi rita upp ett 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")Slutligen ska vi rita upp ljusen och se till att inkludera parametern för fÀrg: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)Och det Àr hela skriptet! LÀgg till det i diagrammet för att se hur det fungerar.
Ett BTC/BUSD-diagram med EMA/RSI-indikatorn.
SammanfattningsvisI den hĂ€r artikeln har vi gĂ„tt igenom nĂ„gra grundlĂ€ggande exempel pĂ„ vad du kan göra med TradingViews Pine Editor. Nu bör du kunna göra enkla kommentarer i prisdiagram för att fĂ„ ytterligare statistik frĂ„n dina egna indikatorer.Vi har bara gĂ„tt igenom nĂ„gra indikatorer hĂ€r, men det Ă€r enkelt att göra nĂ„gra som Ă€r lite mer komplexa – antingen genom att vĂ€lja de inbyggda skripten frĂ„n New eller genom att skriva dem sjĂ€lv.Vill du ha lite inspiration? Följande artiklar kan sĂ€kert ge dig nĂ„gra idĂ©er för ditt kommande projekt:En kort guide om den paraboliska SAR-indikatornEn guide till att bemĂ€stra Fibonacci RetracementVi förklarar ledande och efterslĂ€pande indikatorerVi förklarar MACD-indikatorn