Hvordan lage TA-indikatorer på TradingView
Innholdsfortegnelse
Innledning
Hva er Pine Script?
Konfigurering
Pine Editor
Plotting av glidende gjennomsnitt (MA)
Plotting av indikatoren relativ styrkeindeks (RSI / Relative Strength Index)
Etterprøving
Hvordan lage TA-indikatorer på TradingView
Hjem
Artikler
Hvordan lage TA-indikatorer på TradingView

Hvordan lage TA-indikatorer på TradingView

Avansert
Publisert Aug 28, 2020Oppdatert Nov 11, 2022
13m

Innledning

Uten de riktige handelsverktøyene er det ikke mulig å utføre effektiv teknisk analyse. En god handelsstrategi hjelper deg med å unngå vanlige feil, forbedre risikostyringen og øke evnen til å identifisere og utnytte muligheter.

Mange synes at TradingView er den beste diagramplattformen. Den kraftige HTML5-nettapplikasjonen fungerer som et senter for verktøy for teknisk analyse og brukes av millioner til å spore bevegelser i valuta-markeder, krypto-valutamarkeder og tradisjonelle aksjemarkeder.

TradingView har mange kraftige funksjoner: Man kan spore aktiva på tvers av mange handelsplattformer og publisere handelsideer på det sosiale nettverket der. I denne artikkelen skal vi fokusere på tilpasningsmulighetene. Vi skal bruke Pine Script, som er TradingViews eget programmeringsspråk, som gir oss detaljert kontroll over diagramoppsettet.

Vi setter i gang!


Hva er Pine Script?

Pine Script er et skriptspråk som kan brukes til å endre TradingView-diagrammene. Plattformen tilbyr allerede mange funksjoner for å gjøre det, men med Pine Script kan du ta det et skritt videre. Enten du vil endre fargene på candlestick-mønstrene eller du vil prøve en ny strategi, gjør Pine Editor det mulig for deg å tilpasse sanntidsdiagrammene dine slik du ønsker.

Selve koden er veldig godt dokumentert, så pass på at du sjekker brukermanualen for mer informasjon. Målet med denne opplæringen er å ta opp noe av det grunnleggende og introdusere indikatorer som kan være nyttige for handel med kryptovaluta.


Konfigurering

Det er utrolig enkelt å komme i gang med Pine Script. Alle koder vi skriver, kjøres på TradingView-servere, så vi kan få tilgang til redigeringsverktøyet og utvikle skriptene våre fra en nettleser – uten noe nedlasting eller konfigurasjon.

I denne opplæringen skal vi bruke et diagram av valutaparet Bitcoin/Binance USD (BTCBUSD). Hvis du ikke allerede har en konto, kan du opprette en gratis (det finnes også et pro-abonnement, men det er ikke nødvendig i denne veiledningen). 

Følg denne lenken, og du får se et diagram som ligner på dette:


BTCBUSD-diagram på tradingview

Det du ser, er sannsynligvis mer oppdatert.


Hvis vi vil ha diagrammet med alle funksjoner her, klikk på knappen for å få tilgang til det. Det gir oss en mye mer detaljert visning, et tegneverktøy og alternativer for å plotte inn trendlinjer, blant annet.


Diagram med alle funksjoner på tradingview for BTCBUSD

Diagram med alle funksjoner. Du kan justere tidsrammen ved å klikke på visningene over de uthevede fanene.


Vi skal ikke snakke om hvordan du bruker de forskjellige verktøyene, men hvis du er seriøs når det gjelder teknisk analyse, anbefaler vi på det sterkeste at du blir kjent med dem. Nederst til venstre (vist på bildet) ser du noen forskjellige faner – klikk på Pine Editor.


Pine Editor


skjermbilde av pine editor


Det er i dette redigeringsverktøyet magien skjer. Vi forteller det hva vi vil gjøre, og klikker deretter på Add to Chart (Legg til i diagram) for at merknadene skal vises over. Vær oppmerksom på at det kan bli rotete hvis vi tar med flere merknader samtidig, så vi fjerner dem mellom eksemplene (høyreklikk i diagrammet > Remove Indicators (Fjern indikatorer)).

Du ser at vi allerede har et par linjer med kode der. Vi kan klikke på Add to Chart (Legg til i diagram) for å se hva som skjer.


Legge til det første skriptet i tradingview-diagrammet


Et diagram nummer to legges til under originalen. Det nye diagrammet representerer tilfeldigvis de samme dataene. Hold musepekeren over My Script (Mitt skript), og klikk på krysset for å fjerne det. La oss nå grave litt i koden.

study("My Script")

Denne første linjen er bare for å konfigurere markeringen. Den krever bare et navn på indikatoren (My Script i dette tilfellet), men det er også noen valgfrie parametere vi kan legge til. En av disse er overlegg, som ber TradingView plassere indikatoren på det eksisterende diagrammet (istedenfor i et nytt segment). Som du ser av det første eksemplet, er den som standard false (usann). Selv om vi ikke får se det i aksjon nå, legger overlay=true indikatoren til i det eksisterende diagrammet.

plot(close)

Denne linjen er instruksjonen for å plotte sluttkursen på Bitcoin. plot gir oss bare et linjediagram, men vi kan også vise candlestick-mønstre og stolper, som vi snart skal se. 

La oss nå prøve dette:

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

Når du legger til dette, skal du få se et diagram nummer to (som ser ut som originalen flyttet til høyre). Det eneste vi har gjort, er å plotte inn åpningskursen isteden, og ettersom dagens åpningskurs er forrige dags sluttkurs, er det ikke så rart at de ser like ut.

Greit! Nå kan vi kvitte oss med de nåværende merknadene (husk at vi gjør det ved å høyreklikke og trykke på Remove Indicators). Hold musepekeren over Bitcoin/BUSD, og klikk på Hide (Skjul) for å tømme gjeldende diagram også.

Mange handlere foretrekker candlestick-diagrammer, for de gir mer informasjon enn et enkelt plott som det vi nettopp lagde. Vi kan legge til det nå. 

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

Det er en god start, men mangelen på farger gjør det litt kjedelig. Ideelt sett bør vi ha røde lysestaker når åpningskursen er høyere enn sluttkursen for den gitte tidsrammen, og grønne hvis sluttkursen er høyere enn åpningskursen. Vi legger til en linje over funksjonen plotcandle():

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

Denne ser på hver lysestake og sjekker om åpningskursen er høyere eller lik sluttkursen. Hvis den er det, betyr det at prisene har falt i løpet av perioden, så da farges lysestaken rød. Ellers farges den grønn. Endre plotcandle()-funksjonen for å bruke dette fargeoppsettet:

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

Fjern gjeldende indikatorer hvis du ikke allerede har gjort det, og legg til denne i diagrammet. Nå bør vi ha fått noe som ligner på et vanlig candlestick-diagram.


Candlestick-diagram på tradingview

Vakkert!


Plotting av glidende gjennomsnitt (MA)

Nå har vi allerede noe av det grunnleggende. Vi kan gå videre til den første tilpassede indikatoren – eksponentielt glidende gjennomsnitt, eller EMA. Dette er et verdifullt verktøy fordi det lar oss filtrere ut markedsstøy og jevne ut prishandlinger. 

EMA skiller seg litt fra enkelt glidende gjennomsnitt (SMA), ved at det legger mer vekt på de nyeste dataene. Det har en tendens til å reagere bedre på plutselige bevegelser og brukes ofte til kortsiktige oppsett (for eksempel i daghandel).


Enkelt glidende gjennomsnitt (SMA)

Vi kan like gjerne plotte SMA, bare så vi kan sammenligne de to etterpå. Legg til denne linjen i skriptet ditt:

plot(sma(close, 10))

Dette plotter gjennomsnittet av de siste ti dagene. Juster tallet innenfor parentesen for å se hvordan kurven endres når du benytter ulike lengder.


Enkelt glidende gjennomsnitt basert på de 10 siste dagene

SMA, basert på de ti siste dagene.


Eksponentielt glidende gjennomsnitt (EMA)

EMA er litt vanskeligere å forstå, men ta det med ro. Vi kan begynne med å analysere formelen:

EMA = (sluttkurs - forrige dags EMA) * multiplikator - forrige dags EMA

Så hva forteller dette oss? At for hver dag beregner vi et nytt glidende gjennomsnitt basert på forrige dags. Multiplikatoren er det som «veier» den nyeste perioden, og den beregnes med følgende formel:

Multiplikator = 2 / (lengde på EMA + 1)

I likhet med enkelt glidende gjennomsnitt må vi spesifisere hvor lang EMA skal være. Syntaktisk ligner funksjonen for å plotte EMA på SMA. Plott den sammen med SMA, slik at du kan sammenligne de to:

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


EMA og SMA på et tradingview-diagram

Du ser en liten forskjell på de to typene glidende gjennomsnitt.


➠ Ønsker du å komme i gang med kryptovaluta? Kjøp Bitcoin på Binance!


Innebygde skript

Frem til nå har vi skrevet koden manuelt, slik at du kan få en følelse av den. Men nå skal vi introdusere noe som kan spare oss en del tid, spesielt hvis vi skriver mer komplekse skript og ikke ønsker å gjøre det fra bunnen av.

Klikk på Ny øverst til høyre i redigeringsverktøyet. Du får opp en rullegardinmeny med alle slags forskjellige tekniske indikatorer. Klikk på Moving Average Exponential (glidende gjennomsnitt eksponentiell) for å se kildekoden for en EMA-indikator.



Glidende gjennomsnitt eksponentiell i pine script

Du kan legge den til i diagrammet.


Denne er annerledes enn vår – du legger sikkert merke til input()-funksjonene. Disse er fine med tanke på brukervennligheten, for du kan klikke på denne boksen …


Endre et diagram i tradingview-grensesnittet


… og enkelt endre noen av verdiene i et popup-vindu ved å klikke på innstillingshjulet.


endre inndata på EMA


Vi legger til et par input()-funksjoner i neste skript for å demonstrere dette.


Plotting av indikatoren relativ styrkeindeks (RSI / Relative Strength Index)

Relativ styrkeindeks (RSI) er en annen viktig indikator i teknisk analyse. Den er kjent som en momentum-indikator, noe som betyr at den måler frekvensen som aktiva kjøpes og selges med. RSI presenteres på en skala fra 0 til 100 og prøver å informere investorene om i hvilken grad aktiva er overkjøpt eller oversolgt. Vanligvis kan et aktivum betraktes som oversolgt hvis det har en poengsum på 30 eller lavere, og som overkjøpt med en poengsum på 70 eller høyere.

Hvis du går til New > RSI Strategy (Ny > RSI-strategi), kan du se dette selv. RSI måles vanligvis over perioder på 14 (dvs. 14 timer eller 14 dager), men du kan justere denne innstillingen slik at den passer med din egen strategi.

Legg til i diagrammet. Du skal nå se noen piler (definert av strategy.entry() i koden). RsiLE indikerer en potensiell mulighet til å gå long på aktivumet, ettersom det kan være oversolgt. RsiSE fremhever mulige punkter for shorting av aktivumet når det er overkjøpt. I likhet med alle andre indikatorer bør du ikke nødvendigvis stole på disse som idiotsikre bevis på at prisene vil synke/øke.


Etterprøving

Det finnes en måte vi kan teste de tilpassede indikatorene på. Selv om tidligere ytelse ikke er en garanti for fremtidige resultater, kan etterprøving av skriptene gi oss en idé om hvor effektivt de kan fange opp signaler. 

Vi har et eksempel på et enkelt skript under. Vi skal lage en enkel strategi der vi går inn i en long-posisjon når BTC-prisen faller under USD 11 000, og så går ut av posisjonen når prisen går over USD 11 300. Vi kan da se hvor lønnsom denne strategien ville ha vært historisk sett.

//@version=4 strategy("ToDaMoon", overlay=true) enter = input(11000) exit = input(11300) price = close if (price = exit)     strategy.close_all(comment="SellTheNews")Her har vi definert inn og ut som variabler – begge er inndata, noe som betyr at vi kan endre dem på diagrammet senere. Vi angir også pris-variabelen, som tar sluttkursen for hver periode. Så har vi litt logikk i form av if-setninger. Hvis delen i parentes er sann, så kjøres den innrykkede blokken under. Ellers hoppes den over.Så hvis prisen er mindre enn eller lik ønsket inngang, blir det første uttrykket evaluert som sant, og vi åpner en long-posisjon. Når prisen er lik eller overstiger ønsket utgang, utløses den andre blokken, slik at alle åpne posisjoner lukkes. Vi merker diagrammet med piler som viser hvor vi har gått inn/ut, så vi har spesifisert med hva disse punktene skal merkes, med kommentar-parameteren (i dette eksemplet «BuyTheDip» og «SellTheNews»). Kopier koden, og legg den til i diagrammet.
Du kan nå se indikatorene i diagrammet. Kanskje du må zoome ut.
TradingView bruker automatisk reglene dine på eldre data. Du ser også at den bytter fra Pine Editor til fanen Strategy Tester (strategitester). Der får du se en oversikt over potensiell fortjeneste, en liste over handelsaktivitet og de individuelle resultatene fra handel.
Posisjoner vi har gått inn i og ut av.
Knytte det sammenDet er på tide å skrive vårt eget manus ved å bruke noen av konseptene vi har sett på så langt. Vi skal kombinere EMA og RSI og bruke disse verdiene til å fargelegge lysestakene, noe som gir oss innsikt som vi enkelt kan visualisere. Dette bør ikke tolkes som økonomiske råd – det finnes ingen objektivt korrekt måte å bruke denne indikatoren på. Som med alle andre indikatorer bør den brukes sammen med andre verktøy for å utvikle en egen strategi.Nå kan vi jobbe litt med det nye manuskriptet. Fjern alle indikatorene fra diagrammet, og skjul Bitcoin/BUSD-diagrammet også, slik at vi får et rent lerret å jobbe på.Vi begynner med å definere studien. Gi den et hvilket som helst navn, så lenge du angir overlay=true.study(title="Binance Academy Script", overlay=true)Husk EMA-formelen fra tidligere. Vi må gi multiplikatoren lengden på EMA. Vi gjør den til en inndata som krever et heltall (altså ingen desimaler). Vi angir også et minimum som kan være (minval), og en standardverdi (defval).study(title="Binance Academy Script", overlay=true) emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0)
Ved å bruke denne nye variabelen kan vi beregne EMA-verdien for hver lysestake i diagrammet:study(title="Binance Academy Script", overlay=true) emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0) emaVal = ema(close, emaLength)
Supert. Videre til RSI. Vi gir den en lengde på lignende måte: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)Og nå kan vi beregne den: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)På dette stadiet bør vi lage logikken som farger lysestakene, avhengig av EMA- og RSI-verdiene. La oss ta en situasjon der (a) sluttkursen på lysestaken overstiger EMA, og (b) der RSI er over 50.Hvorfor? Fordi du kan bestemme deg for at disse indikatorene kan brukes sammen for å fortelle deg når du skal gå long eller short på Bitcoin. For eksempel tenker du kanskje at når begge disse betingelsene er oppfylt, er det et godt tidspunkt å gå inn i en long-posisjon. Eller motsatt, at du kan bruke den til å informere deg om når du ikke skal shorte, selv om andre indikatorer sier noe annet.Så neste linje ser slik ut: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.redHvis vi oversetter dette til vanlig språk, sier vi egentlig at hvis EMA-verdien overstiger sluttkursen og RSI-poengsummen overstiger 50, skal lysestaken farges grønn. Ellers farges den rød. Deretter plotter du 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")Til slutt plottes lysestakene, og husk å inkludere parameteren farge: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)Og det er skriptet! Legg det til i diagrammet for å se hvordan det fungerer.
Et BTC/BUSD-diagram med EMA/RSI-indikatoren.
Avsluttende tankerI denne artikkelen har vi gått gjennom noen grunnleggende eksempler på hva du kan bruke TradingViews Pine Editor til. Nå bør du kunne føle deg trygg på å lage enkle merknader i prisdiagrammer for å få ytterligere innsikt fra dine egne indikatorer.Vi har bare sett på noen av indikatorene her, men det er enkelt å konstruere mer komplekse – enten ved å velge de innebygde skriptene fra New (Ny) eller ved å skrive dem selv.Mangler du inspirasjon? Disse artiklene kan gi deg noen ideer til det neste prosjektet ditt:Kort guide til parabolsk SAR-indikatorEn guide til å mestre Fibonacci retracement (Fibonacci-tilbakesporing)Leder- og etterslepsindikatorer forklartMACD-indikator forklart