← Alla inlägg
AI & Trading

Pine Script med Claude. Bygg och modda egna indikatorer utan att koda.

Ett Pine Script v6-script för en EMA-trend i en kodeditor
Claude skriver Pine Script. Du är arkitekten och testaren.

Du behöver inte lära dig programmera för att få exakt den indikator du vill ha. Du behöver lära dig två saker: att beskriva tydligt, och att testa det du får.

Claude skriver Pine Script. Du är arkitekten och testaren.

Det är inte ett kodproblem. Det är ett specifikationsproblem.

De flesta tror att egna indikatorer kräver att man kan programmera. Det gör de inte längre. Claude tar hand om syntaxen. Ditt jobb är två saker, om och om igen: beskriv vad du vill, testa vad du fick.

Den som blir bra på det här blir inte en bättre kodare. Den blir en tydligare beställare. Resten av guiden är byggd runt det. Två konkreta fall, hur du ber så det blir rätt version, och hur du kvalitetssäkrar så du inte tradear på trasig kod.

Det du behöver

  • Ett TradingView-konto. Gratisversionen funkar för det här.
  • Claude (eller ChatGPT). Det är här du beskriver och får koden.
  • Att du är specifik. Det är hela skillnaden mellan rätt version och fem felaktiga.
Om TradingView MCPVill du ha det smidigare finns TradingView MCP. Då kan Claude skriva, kompilera och testa scriptet direkt på din graf i realtid, istället för att du klistrar fram och tillbaka. Det är en rekommendation, inte ett krav. Den här guiden förutsätter inte att du har det. Läs Bygg din egen indikator med Claude om du vill köra med kopplingen.

30 sekunder Pine Script

Pine Script är TradingViews eget språk för indikatorer och strategier. Du behöver inte kunna skriva det. Men du tjänar på att veta tre saker innan du ber.

Indikator eller strategi

  • Indikator ritar saker på grafen: linjer, signaler, labels, band, bakgrundsfärg.
  • Strategi kan dessutom backtesta. Den lägger entries och exits och visar resultat i Strategy Tester. Vill du se win-rate eller edge måste det vara en strategi, inte en indikator.

Säg alltid "v6"

Pine Script v6 är den aktuella versionen. Säger du inte vilken version du vill ha kan Claude slänga ur sig gammal v4- eller v5-syntax som inte kompilerar rent. Skriv "Pine Script v6" i varje beställning.

Var koden bor

Längst ner i TradingView finns fliken Pine Editor. Där klistrar du in koden, trycker "Add to chart", och indikatorn dyker upp. Får du ett rött felmeddelande, kopiera hela felet och klistra tillbaka det till Claude.

Kom ihågIndikator ritar. Strategi backtestar. Säg alltid v6.

Fem steg. Samma loop varje gång.

Det gäller oavsett om du moddar något befintligt eller bygger nytt. Loopen är poängen. Hoppa inte över testet.

  1. Specificera. Beskriv i klartext vad du vill ha. Marknad, timeframe, vad den ska signalera, vilka inputs du vill kunna ändra.
  2. Be Claude planera innan kod. Få den att återge din spec med egna ord och flagga repainting-risker, innan en enda rad kod. Då fångar ni missförstånd tidigt.
  3. Generera. Claude skriver scriptet i v6. Be om kommentarer i koden så du förstår vad varje del gör.
  4. Testa i TradingView. Klistra in, kompilera, fixa fel, lägg på grafen. Kolla att värdena är rimliga. Är det en strategi, kör Strategy Tester.
  5. Iterera. Tuna inputs, förfina logiken, lägg på ett lager i taget. Tillbaka till steg fyra och testa igen.

Fall 1: du har en indikator du vill ändra lite

Det vanligaste fallet. Du kör en indikator du gillar men vill justera något. Lägga till en nivå, byta en tröskel till en input, ändra en färg, kombinera den med något.

Först: har du källkoden?

  • Open source-script går att kopiera. Öppnar du indikatorns källa i Pine Editor ser du koden. Den klistrar du in i Claude.
  • Stängda eller invite-only-script kan du inte kopiera koden från. Då beskriver du istället vad indikatorn gör, så bygger Claude en egen version som gör samma sak plus din ändring.
Tre saker Claude måste få vetaVad indikatorn gör nu. Exakt vad du vill ändra. Och att den ska ändra inget annat. Utelämnar du det sista skriver den ofta om mer än du bad om.
Modda ett script, du har koden
Jag har en TradingView-indikator i Pine Script som jag vill ändra lite.
Här är koden:

[klistra in källkoden]

Vad den gör nu: [beskriv kort]
Vad jag vill ändra: [exakt vad, t.ex. "lägg till en EMA-200 som linje"
  eller "gör RSI-tröskeln till en justerbar input"]

Ändra inget annat. Behåll resten av logiken som den är.
Ge mig hela det uppdaterade scriptet i Pine Script v6, kommenterat,
och säg vad du ändrade.
Du har inte koden
Jag har en indikator på TradingView som jag inte har källkoden till.
Den gör så här: [beskriv vad du ser: linjer, signaler, vad den
verkar räkna på, hur den beter sig].

Bygg en egen version i Pine Script v6 som gör samma sak, plus
[din ändring]. Flagga om något i min beskrivning är tvetydigt
innan du skriver koden.

Fall 2: du vill bygga en helt ny

Du har en idé i huvudet. Nu ska den bli ett script. Skillnaden mellan en bra och en värdelös indikator ligger nästan alltid i hur väl du beskrev den. Ge Claude allt nedan, så slipper du fem varv av gissningar.

  • Kontext. Trading-stil (scalping, intraday, swing, position) och marknad eller instrument.
  • Funktion. Vad den ska göra: trend, momentum, volatilitet, nivåer, divergens. I klartext.
  • Timeframe. Vilken TF körs den på? Multi-timeframe? Till exempel trend från D1, signal från 15m.
  • Inputs. Perioder, trösklar, källa (close, hl2). Det du vill kunna ändra utan att röra koden.
  • Visuellt. Linjer, histogram, band, shapes, labels, bakgrund. Egen panel eller på priset?
  • Alerts. Ska den larma? På vad? Cross, tröskel, eget villkor.
Bygg en ny indikator
Du ska skriva en TradingView-indikator i Pine Script v6.

Innan du skriver kod: återge min spec med egna ord och lista
strukturen (inputs, beräkningar, plot, alerts). Flagga repainting-
och lookahead-risker. Skriv ingen kod förrän specen är bekräftad.

Spec:
- Trading-stil: [scalping / intraday / swing / position]
- Marknad/instrument: [t.ex. EURUSD, NQ, BTC]
- Vad den ska mäta/signalera: [klartext]
- Timeframe: [t.ex. 15m. Multi-TF: trend från D1, signal från 15m]
- Inputs jag vill kunna justera: [perioder, trösklar, källa]
- Visuell output: [linjer / histogram / band / labels / bakgrund]
- Alerts: [på vad, eller "inga"]
- Testas på: [symbol + timeframe]

Krav:
- Pine Script v6. Använd ta.*, math.*, request.* korrekt.
- Toggle-inputs så jag kan slå av/på visuella delar.
- Inga repainting-signaler. Använd bekräftade, stängda barvärden.
- request.security med lookahead_off om du hämtar högre timeframe.
- Alerts triggar bara på stängd bar (barstate.isconfirmed).
- Kommentera koden så jag förstår vad varje del gör.

Så ser ren v6-kod ut

Du behöver inte kunna skriva det här. Men det hjälper att känna igen hur ett rent, litet script ser ut, så du ser när Claude levererar något struligare än det behöver vara. Det här är ett EMA-kryss med en av/på-toggle och alerts.

Exempel: EMA-kryss i Pine Script v6
//@version=6
indicator("EMA-kryss demo", overlay=true)

fastLen     = input.int(20, "Snabb EMA")
slowLen     = input.int(50, "Långsam EMA")
showSignals = input.bool(true, "Visa signaler")

fast = ta.ema(close, fastLen)
slow = ta.ema(close, slowLen)

plot(fast, "Snabb EMA", color.aqua)
plot(slow, "Långsam EMA", color.orange)

bull = ta.crossover(fast, slow)
bear = ta.crossunder(fast, slow)

plotshape(showSignals and bull, "Köp",  shape.triangleup,   location.belowbar, color.green, size=size.small)
plotshape(showSignals and bear, "Sälj", shape.triangledown, location.abovebar, color.red,   size=size.small)

alertcondition(bull, "Köpsignal", "EMA-kryss upp")
alertcondition(bear, "Säljsignal", "EMA-kryss ner")
NoteraSignalen kan flimra under en pågående bar och låser sig först när baren stänger. Sätt därför alltid dina alerts till Once Per Bar Close när du skapar dem i TradingView.

Hur du ber om rätt sak

Det här avgör allt. Samma idé kan ge dig en perfekt indikator eller en hög skräp, beroende på hur du formulerade dig. Fem regler.

  • Var specifik. Inte "gör en MA-strategi". Vaghet in ger gissning ut.
  • En sak i taget. Bygg det enkla först, få det att funka, lägg sen på lager. Claude håller den befintliga logiken om du säger åt den.
  • Be om toggles. Av/på-inputs för varje visuell del. Då kan du stänga av det du inte vill se istället för att be om en ny version.
  • Ge versionen. "Pine Script v6", varje gång.
  • Be om kommentarer. Kommenterad kod gör att du själv kan läsa och förstå, och nästa ändring blir lättare att beskriva.
Gör inte så här"Gör en moving average-strategi som funkar bra."
Gör så här"Pine Script v6: köp när priset stänger över 20 EMA, sälj när det stänger under. EMA-längden ska vara en input."
Följ upp, bygg inte omNär du vill ändra något, fortsätt i samma konversation. "Lägg till en trailing stop." "Gör RSI-tröskeln justerbar." Då bygger Claude vidare på samma script istället för att skriva ett nytt från noll.

Hur du vet att den faktiskt funkar

Det här är delen folk hoppar över. Gör inte det. AI ger dig fel kod med fullt självförtroende. Den kompilerar, den ser klok ut, och den räknar fel. Ditt jobb är att fånga det. Testa, lita inte.

  • Kompilerar rent. Inga fel, inga varningar. Får du ett fel, kopiera hela felmeddelandet och klistra tillbaka det. Varningar pekar ofta på riktiga problem.
  • Repainting. Den vanligaste fällan. Står signalen kvar där den var efter att baren stängt, eller flyttar den sig när du laddar om? En signal som flyttar sig i efterhand är värdelös att tradea på. Be Claude använda bekräftade, stängda barvärden, och sätt alerts till "Once Per Bar Close".
  • Ingen framtidsdata. Hämtar scriptet en högre timeframe ska det göra det utan lookahead, annars ser backtestet bättre ut än vad som var möjligt i realtid. I v6 är det säkert som standard, men be Claude bekräfta att den använder lookahead_off.
  • Backtesta innan du tror på den. Är det en strategi, kör Strategy Tester på riktig historik. Kod som ser perfekt ut på pappret kan falla i simulering. Billigare att upptäcka där än på kontot.
  • Sanity-checka siffrorna. Räkna ett par barer för hand och jämför. Hittar du en avvikelse har du hittat en bugg.
  • Demo eller replay innan riktiga pengar. Alltid. Replay-läget låter dig spela igenom historik bar för bar och se hur signalen faktiskt betedde sig.
Be Claude granska sin egen kod
Granska scriptet du nyss skrev. Gå igenom punkt för punkt och
svara konkret:

1. Repainting: kan någon signal flytta sig efter att baren
   stängt? Var, och hur fixar du det?
2. Lookahead/framtidsbias: använder du data som inte fanns när
   baren bildades?
3. v6-syntax: är allt v6 (ta.* osv)? Några deprecated funktioner?
4. Edge cases: NaN-värden, lookback-gränser, division med noll.
5. Alerts: triggar de bara på stängd bar?

Lista vad som behöver fixas och ge mig den rättade koden.
Den enda regeln som inte är förhandlingsbarTradea aldrig riktiga pengar på ett script du inte har testat. Inte för att du är oförsiktig. Utan för att AI-kod ser mest övertygande ut precis när den har fel.

Vanliga misstag

  • Repainting. Signaler som ser perfekta ut på historik för att de flyttade sig i efterhand. Testa på stängda barer och i replay.
  • Lookahead bias. Scriptet använder framtidsdata det inte kunde ha haft i realtid. Be om lookahead_off.
  • Blandad version. Claude blandar in gammal v4- eller v5-syntax. Säg "v6" och be den fixa om det smyger sig in.
  • Hallucinerade funktioner. Ibland hittar AI på en funktion som inte finns. Kompilerar det inte, klistra tillbaka felet, så rättar den sig.
  • Overfitting. Du tunar inputs tills backtestet ser magiskt ut. Bra på historik betyder inte bra framåt. Var skeptisk mot perfekta kurvor.
  • Alerts mitt i baren. Larm som triggar på en ofärdig bar ger falska signaler. Sätt dem till "Once Per Bar Close".

Snabb checklista innan du kör skarpt

  • Sa jag "Pine Script v6"?
  • Bad jag Claude planera strukturen innan den kodade?
  • Kompilerar det rent, utan fel och utan varningar?
  • Kollade jag repainting? Står signalen kvar efter att baren stängt?
  • Backtestade jag i Strategy Tester (om det är en strategi)?
  • Sanity-checkade jag värdena mot ett par barer för hand?
  • Testade jag på demo eller replay innan skarpt?

Du behöver inte bli kodare. Du behöver bli en tydligare beställare och en ärligare testare. Det är hela grejen. Börja litet. Bygg det rent. Lägg på ett lager i taget.

Vad är det första du vill bygga?

/ Robin

Bygg det här med mig i Tradingsnack Premium

AI-sprinten, ett steg i taget. Hela stacken, inklusive TradingView MCP. Byggd för dig som inte är teknisk.

Starta AI-sprinten →
← Tillbaka till bloggen