Tekniska indikatorer / RSI-divergens
Ett divergensverktyg ser enkelt ut: priset når en ny extrempunkt och RSI gör det inte. De användbara frågorna är vilka svängningar som räknas, vilken RSI du läser och hur många staplar som måste stänga innan verktyget kan veta. Den här sidan besvarar dem med exakta regler, verkliga timdiagram och kod som du kan kontrollera.

Vad RSI mäter
Relativt styrkeindex jämför den genomsnittliga storleken på de senaste uppgångarna med den genomsnittliga storleken på de senaste nedgångarna och skalar resultatet mellan 0 och 100. Enligt hjälpen för MT5 rekommenderade Wilder 14 perioder när han introducerade indexet, och versioner med 9 perioder respektive 25 perioder har sedan blivit populära. Samma hjälp anger att RSI vanligtvis når toppar över 70 och bottnar under 30. MT5-hjälp: RSI
I den här nedladdningen ritas linjerna vid 30 och 70 enbart som orientering. Ingen divergens filtreras med dem. Kod
Vad en divergens jämför
En divergens jämför två prissvängningar med RSI-värdena på samma två staplar. Hjälpen för MT5 beskriver den som en ny pristopp eller prisbotten som RSI inte bekräftar med en egen ny topp eller botten. Den här nedladdningen omvandlar beskrivningen till exakta mönster: MT5-hjälp: RSI
- Vanlig negativ: en högre svängtopp i priset, med lägre RSI vid den andra toppen.
- Vanlig positiv: en lägre svängbotten i priset, med högre RSI vid den andra bottnen.
- Dold negativ (avstängd som standard): en lägre svängtopp, med högre RSI vid den andra toppen.
- Dold positiv (avstängd som standard): en högre svängbotten, med lägre RSI vid den andra bottnen.
Den här sidan testar inte om priset vänder efter en divergens. Den visar vad reglerna markerar, när de kan markera det och verkliga fall där priset ändå gick förbi den andra svängningen. Diagramdata
Så beräknar den här nedladdningen RSI
Indikatorn använder stängningskurser och utjämning enligt Wilder. Varje stapels prisförändring delas upp i en uppgång och en nedgång, varav den ena alltid är noll, och båda jämnas ut. Staplarna räknas från den äldsta inlästa stapeln, med början på noll:
change[t] = Close[t] − Close[t−1] gain[t] = max(change[t], 0) loss[t] = max(−change[t], 0) Startvärde vid stapel N: AvgGain[N] = (gain[1] + … + gain[N]) / N AvgLoss[N] = (loss[1] + … + loss[N]) / N Senare staplar: AvgGain[t] = (AvgGain[t−1] × (N − 1) + gain[t]) / N AvgLoss[t] = (AvgLoss[t−1] × (N − 1) + loss[t]) / N RSI[t] = 100 − 100 / (1 + AvgGain[t] / AvgLoss[t])
N är perioden, 14 som standard. Utjämningssteget är det utjämnade glidande medelvärdet från hjälpen för MT5: föregående medelvärde gånger N − 1, plus det nya värdet, dividerat med N. RSI-hjälpen för MT5 anger den slutliga formeln men inte vilket medelvärde som ska användas, så den här sidan anger det som koden använder. MT5-hjälp: utjämnat glidande medelvärde MT5-hjälp: RSI Kod
Startvärde och uppstartsperiod
Den första genomsnittliga uppgången och nedgången är de enkla medelvärdena av de första 14 förändringarna, så det första RSI-värdet kräver 15 stängningskurser. I den här exporten infaller det på stapeln 2025-12-04 22:00 och är 42.78. Tidigare staplar förblir tomma, och med 14 eller färre staplar ritar indikatorn ingenting alls. Kod Värden som används på denna sida
Startvärdets inverkan avtar men försvinner aldrig helt. Varje steg behåller (N − 1) / N av föregående medelvärde, så 100 staplar senare har startvärdet fortfarande en vikt på ungefär 0.06% i varje medelvärde. En RSI som börjar på en annan första stapel eller får ett annat startvärde visar därför andra värden i början. Med samma stängningskurser och samma utjämning minskar skillnaden mellan medelvärdena med den faktorn på varje stapel. Värden som används på denna sida
När ingenting rör sig
Om den genomsnittliga nedgången är noll skulle formeln dividera med noll. Koden returnerar 100 när den genomsnittliga uppgången är positiv och 50 när båda medelvärdena är noll, vilket betyder att priset inte har rört sig alls. Med en genomsnittlig uppgång på noll och en positiv genomsnittlig nedgång ger själva formeln 0. Kod
De verkliga uppgifterna nådde aldrig dessa fall: inget av de 4,986 RSI-värdena är exakt 0, 50 eller 100. Syntetiska oförändrade och enkelriktade prisserier i testet täcker dem i stället. Jämförelsekontroll
Jämför likvärdiga förutsättningar. Två RSI-linjer stämmer bara överens när stängningskurserna, perioden, utjämningen, startvärdet och den första stapeln stämmer överens. Två divergenslistor behöver också samma regler för svängpunkter och parbildning.
Så hittar indikatorn en divergens
Svängpunkter
En stapel är en svängtopp när dess högsta kurs är strikt högre än de högsta kurserna på de 5 föregående staplarna och inte överträffas av de högsta kurserna på de 5 efterföljande staplarna. En svängbotten speglar regeln för de lägsta kurserna:
Svängtopp vid stapel p: High[p] > High[j] för j = p − L … p − 1
High[p] ≥ High[j] för j = p + 1 … p + R
Svängbotten vid stapel p: Low[p] < Low[j] för j = p − L … p − 1
Low[p] ≤ Low[j] för j = p + 1 … p + R
L är PivotLeftBars och R är PivotRightBars. Asymmetrin avgör vid lika värden: en lika hög kurs till höger upphäver inte en svängpunkt, men en lika hög kurs till vänster gör det. Av två lika höga kurser inom räckhåll för varandra blir därför den tidigare stapeln svängpunkten. Lika värden förekommer i verkliga data. I den här exporten hade 10 svängtoppar och 4 svängbottnar en lika extrem kurs till höger, och 14 toppar och 4 bottnar föll bort enbart för att en lika extrem kurs fanns till vänster. Totalt innehåller exporten 313 svängtoppar och 311 svängbottnar. Kod Antal
Par och divergenstestet
När en ny svängpunkt bekräftas jämför koden den med föregående svängpunkt av samma slag, och endast den. Paret testas när avståndet mellan de två svängpunkterna är mellan 5 och 60 staplar och RSI redan finns vid den första svängpunkten. En närmare svängpunkt blockerar alltid jämförelsen med en äldre. Kod
Vanlig negativ: High[p2] > High[p1] och RSI[p2] < RSI[p1] Vanlig positiv: Low[p2] < Low[p1] och RSI[p2] > RSI[p1] Dold negativ: High[p2] < High[p1] och RSI[p2] > RSI[p1] Dold positiv: Low[p2] > Low[p1] och RSI[p2] < RSI[p1] Rapporteras på stapel: c = p2 + R
Alla jämförelser är strikta, så lika priser eller lika RSI-värden ger aldrig en divergens. Med 5 staplar till vänster och 5 till höger ligger två svängpunkter av samma slag alltid minst 6 staplar från varandra, så minimiavståndet begränsar inte vid standardinställningarna. Regler
Inställningar
Det här är nedladdningens indataparametrar. Alla figurer på sidan använder standardvärdena, som är illustrativa utgångspunkter snarare än optimerade värden.
| Indataparameter | Standardvärde | Vad den styr |
|---|---|---|
RsiPeriod |
14 | RSI-period för stängningskurser med utjämning enligt Wilder. |
PivotLeftBars |
5 | Staplar före en svängpunkt som den strikt måste överträffa. |
PivotRightBars |
5 | Stängda staplar efter en svängpunkt som inte får överträffa den. Detta är också bekräftelsefördröjningen. |
MinPivotDistance |
5 | Minsta tillåtna antal staplar mellan de två svängpunkterna i ett par. |
MaxPivotDistance |
60 | Största tillåtna antal staplar mellan de två svängpunkterna. Sökningen efter föregående svängpunkt stannar där. |
ShowHidden |
false | Lägger till dolda divergenser som punktlinjer med egna pilar. |
Perioden avgör hur mycket varje ny förändring väger. Utjämning enligt Wilder ger den vikten 1/14 som standard och 1/9 eller 1/25 vid de alternativa perioder som hjälpen för MT5 nämner, så en kortare period reagerar mer på varje stapel. PivotRightBars byter snabbhet mot bekräftelse: ett större värde lägger aldrig till svängpunkter och fördröjer varje detektion med de extra staplarna. MT5-hjälp: RSI Värden som används på denna sida
Tolka de verkliga exemplen
Figurerna 2 till 4 kommer från exporten genom fasta urvalsregler. Reglerna för figurerna 2 och 3 rangordnar detektioner efter RSI-skillnaden mellan svängpunkterna och bortser från vad priset gjorde efteråt. Figur 4 väljer avsiktligt ett misslyckat fall. Urvalsregler

I figur 2 ligger den andra toppen 0.00039 över den första, medan RSI ligger 18.99 punkter lägre. De två serierna bygger på olika priser: svängpunkter använder högsta och lägsta kurser, RSI använder stängningskurser. Stapeln som skapade den andra toppen stängde på 1.16168, 0.00420 under sin egen högsta kurs och 0.00212 under föregående stängning, så RSI registrerade en nedgång på just den stapel som satte den nya toppen. Värden som används på denna sida

Den andra bottnen i figur 3 ligger bara 0.00009 under den första, vilket är 9 punkter med symbolens prissteg på 0.00001, medan RSI ligger 26.22 punkter högre. Regeln har ingen minimistorlek, så en så liten skillnad räknas som vilken annan som helst. Även här stängde svängpunktsstapeln långt från sin extremkurs: på 1.16176, 0.00355 över sin lägsta kurs och 0.00272 över föregående stängning. Värden som används på denna sida
Inget av exemplen valdes utifrån sitt utfall. Efter bekräftelsen i figur 2 gick ingen högsta kurs under de följande 24 staplarna över svängpunkt 2. Efter bekräftelsen i figur 3 gick priset under svängpunkt 2 vid 2026-05-21 16:00 med en lägsta kurs på 1.15757, 18 staplar efter bekräftelsestapeln. Diagramregister

Detektionen i figur 4 var korrekt enligt reglerna: en högre topp med RSI 17.88 punkter lägre. Det som inte infriades var förväntningen på en vändning. Efter en nedgång till en lägsta kurs på 1.15237 vid 2026-04-07 05:00 fortsatte priset till den högre toppen. Diagramregister Värden som används på denna sida
Vad urvalet visar
Med standardinställningarna innehåller exporten 73 vanliga detektioner: 29 negativa och 44 positiva. Med ShowHidden aktiverat tillkommer 43 dolda negativa och 29 dolda positiva detektioner, totalt 145. Dessa antal beskriver urvalet enligt dessa regler. De är inte träffsäkerheter, och ingen handelsprestanda testades. Antal
En divergens beskriver två svängningar som redan har inträffat. Vad priset gör härnäst är en separat fråga.
När en divergens blir känd
Bekräftelsefördröjningen
En svängpunkt behöver 5 stängda staplar till höger, så detektorn kan inte känna till svängpunkt 2 förrän den sista av dessa staplar har stängt. Koden placerar pilen på bekräftelsestapeln, inte på svängpunkt 2, och linjen mellan de två RSI-värdena visas samtidigt. Den senaste stapeln i diagrammet behandlas som fortfarande under bildning, så den bekräftar aldrig en svängpunkt. Kod

Ritar den om i efterhand?
När en detektion har skrivits ligger den kvar så länge den stängda historiken inte ändras. Det nativa testet spelar upp alla 5,000 staplar en i taget, först med en ändrad mellanliggande tick på den senaste stapeln och sedan med dess slutliga värden, och kontrollerar vid varje steg att detektioner endast visas på sin bekräftelsestapel och aldrig ändras efteråt. RSI-värdet på den senaste stapeln rör sig fortfarande med varje tick, precis som all RSI. Om själva prishistoriken ändras, till exempel när längre historik laddas ned, skickar terminalen noll som prev_calculated och indikatorn räknar om allt från de nya uppgifterna. Nativt test MQL5-referens: OnCalculate
En svängning kan inte bekräftas innan staplarna som definierar den har stängt.
Kombinera med andra verktyg
Detektorn jämför två svängningar med två RSI-värden och ingenting annat. Allt utöver detta är en separat regel som du måste definiera och testa själv. Den här guiden testar inget av följande tillägg:
- Prisnivåer. Punktlinjen i figurerna 2 till 5 förlänger nivån för svängpunkt 2. Det syns i diagrammet om priset senare handlas bortom den, och i figurerna 3 till 5 gjorde det det.
- RSI-nivåer. Ett filter som exempelvis endast positiva detektioner under 30 skulle vara en ny indataparameter. Den här nedladdningen ritar linjerna 30 och 70 men filtrerar inte med dem.
- Andra RSI-avläsningar. Hjälpen för MT5 beskriver även toppar och bottnar, diagramformationer, misslyckade svängningar samt stöd eller motstånd på själva RSI-linjen. Detektorn letar inte efter dem.
- Trendfilter och högre tidsupplösningar. Ett trendfilter, till exempel ett glidande medelvärde, eller samma regler på en högre tidsupplösning skulle ändra vilka detektioner som återstår. Den här sidan mäter ingetdera.
Begränsningar
- Detektorn beskriver tidigare staplar. Den gör inga prognoser, och ingen träffsäkerhet eller något handelsresultat redovisas.
- Varje detektion kommer 5 stängda staplar efter svängpunkt 2, som en följd av konstruktionen.
- Mycket små skillnader räknas. Bland 621 utvärderade par var den minsta prisskillnaden 0.00001, symbolens minsta prissteg, och den minsta RSI-skillnaden 0.05 punkter. Exakt lika svängpunktspriser förekom i 1 par, vilket enligt reglerna inte var en divergens.
- Svängpunkter använder högsta och lägsta kurser, men RSI använder stängningskurser. En stapel med lång veke kan sätta en ny extremkurs och ändå stänga långt från den, som i figurerna 2 och 3.
- Endast intilliggande svängpunkter jämförs, med högst 60 staplars avstånd. En divergens mellan svängningar som inte är grannar rapporteras inte.
- Värden nära början av den inlästa historiken beror på startvärdet och kan skilja sig från andra RSI-implementationer.
- Tiderna följer handelsserverns klocka, UTC+3 vid hämtningen; historiska sommartidsändringar modelleras inte. Diagrammen komprimerar helger och andra luckor.
- MQL4-filen har inte kompilerats eller körts i MT4.
Använd indikatorn
Stegen nedan gäller MT5. Filen .mq4 är avsedd för MT4 och har inte testats där.
- Ladda ned källkoden .mq5 eller den kompilerade filen .ex5 nedan.
- Öppna datamappen (Arkiv › Öppna datamapp i MetaEditor) och kopiera filen till mappen MQL5\Indicators.
- Om du använder källkoden öppnar du den i MetaEditor och trycker på F7 för att kompilera. Då skapas filen .ex5.
- Dra indikatorn till ett diagram från fönstret Navigator i MT5. Den öppnas i ett separat indikatorfönster med en egen skala, fast från 0 till 100.
- Behåll standardvärdena för att matcha den här sidan, eller ändra parametrarna från inställningstabellen när du ansluter indikatorn.
Datamapp Indikatormapp och kompilering Ansluta indikatorer
MQL5-källkod
Redigerbar nativ MQL5-kod: RSI med divergenslinjer och pilar i ett separat fönster. Inga order, larm, DLL-importer eller webbförfrågningar.
Kompilerad MQL5
Byggd från denna källkod med MetaEditor: 0 fel, 0 varningar. Anslutning till ett live-diagram har inte testats.
MQL4-källkod
Samma beräkningsdel med buffertkonfiguration i MT4-stil. Endast statisk granskning: inte kompilerad eller körd i MT4.
Vad som kontrollerades
Beräkningsdelen av MQL5-filen kompilerades till ett testprogram, med endast ingångsfunktionen omdöpt, och kördes i matematiktestaren i MT5 på samma 5,000 staplar. En oberoende referensimplementation av samma regler bearbetade samma rader. Dess medelvärden enligt Wilder använder ett exponentiellt viktat medelvärde, en annan aritmetisk form av samma rekursion. Testprogrammets omfattning MQL5-referens: testning Exponentiellt viktat medelvärde
Alla 4,986 RSI-värden stämmer överens inom 4.97e-14 punkter, och 2,139 av dem är bitidentiska. Toleransen för godkänt var 1e-9 punkter: långt över det förväntade flyttalsbruset på ungefär 1e-13 punkter och betydligt finare än de 2 decimaler som indikatorn visar. Alla 145 detektioner, med ShowHidden på, matchar exakt i typ, bekräftelsestapel och båda svängpunktsstaplarna. Inget beslut låg nära toleransen: den minsta RSI-skillnaden bakom något utvärderat par var 0.05 punkter. Jämförelsekontroll Bygglogg
Det nativa programmet klarade 41 av 41 kontroller, som omfattade uppstartsperiod och startvärde, oförändrade och enkelriktade priser, lika toppar och bottnar, divergenser med kända svar, otillräcklig historik, en upprepad tick, en ändrad stapel under bildning, en tillagd stapel, uppspelningen stapel för stapel samt standardinställningen för ShowHidden. Skriptet för jämförelsekontrollen klarade 24 av 24 jämförelser. Nativt test Jämförelsekontroll
Dessa kontroller täcker aritmetik och uppdateringslogik. De täcker inte ritning på ett live-diagram, MT4 eller handelsresultat. Testprogrammets omfattning
Riskvarning. Handel innebär risk, och du kan förlora pengar. Den här indikatorn markerar bara tidigare pris- och RSI-mönster: den förutsäger inte priser, lägger eller skyddar inte order och hanterar inte risk. Exemplen illustrerar reglerna. De är inte handelssignaler, och ingenting på sidan utlovar ett resultat.
Vanliga frågor
Vad är en RSI-divergens?
Det är en avvikelse mellan två prissvängningar och RSI-värdena på samma två staplar. Vid en vanlig negativ divergens gör priset en högre svängtopp medan RSI är lägre vid den andra toppen. Vid en vanlig positiv divergens gör priset en lägre svängbotten medan RSI är högre vid den andra bottnen.
Hur beräknar den här nedladdningen RSI?
Den använder stängningskurser och utjämning enligt Wilder med perioden 14. Den första genomsnittliga uppgången och nedgången är enkla medelvärden av de första 14 prisförändringarna; därefter ingår varje ny förändring med vikten 1/14. En RSI med annan utjämning ger andra värden genom hela serien. Med samma utjämning men ett annat startvärde eller en annan första stapel är skillnaderna störst nära historikens början och avtar senare.
Varför visas en divergens 5 staplar efter svängningen?
En svängning blir en svängpunkt först när de 5 staplarna till höger har stängt utan att överträffa den. Indikatorn rapporterar divergensen på den sista av dessa staplar och flyttar inte tillbaka den till svängpunktsstapeln, så diagrammet visar vad indikatorn kunde veta i det ögonblicket.
Ritar indikatorn om i efterhand?
Inte efter bekräftelse, så länge den stängda historiken förblir densamma. En nativ uppspelning av alla 5,000 staplar, med en mellanliggande tick på varje ny stapel, hittade ingen detektion som visades tidigt, flyttades eller ändrades senare. RSI-värdet på stapeln under bildning ändras fortfarande med varje tick, och en ändring av den inlästa historiken, till exempel när längre historik laddas ned, får indikatorn att räkna om allt.
Vad är dolda divergenser?
En dold negativ divergens är en lägre svängtopp med högre RSI; en dold positiv divergens är en högre svängbotten med lägre RSI. De är avstängda som standard. Om ShowHidden sätts till true ritas de som punktlinjer med egna pilar. Jämförelsekontrollen jämförde dem med inställningen på, och det nativa testet bekräftade att standardinställningen inte ritar några dolda divergenser och lämnar de vanliga oförändrade.
Betyder en divergens att priset kommer att vända?
Den här sidan visar inte det. Den beskriver ett urval under fasta regler, och figurerna 3, 4 och 5 visar alla hur priset passerar den andra svängningen efter bekräftelse. Ingen träffsäkerhet eller något handelsresultat testades.
Kan jag använda MQL4-filen i MT4?
Filen .mq4 innehåller samma beräkningsdel som den testade MQL5-filen, med buffertkonfiguration i MT4-stil. Den har endast granskats statiskt: den kompilerades eller kördes inte i MT4. Kompilera den i den MetaEditor som följer med MT4 och kontrollera kompilatorloggen efter fel och varningar före användning.
Källor och reproducerbarhet
MT5-hjälp: relativt styrkeindex: intervall, perioden enligt Wilder och de populära alternativen, vanliga toppar och bottnar, divergenser, formel.
MT5-hjälp: glidande medelvärde: formeln för utjämnat glidande medelvärde.
MQL5-referens: OnCalculate: värdet prev_calculated och fullständig omberäkning efter ändringar i prisdata.
MQL5-referens: copy_rates_from_pos: stapelpositioner för exporten; position noll är den aktuella stapeln, som exporten hoppar över.
MQL5-referens: testning: läget för matematiska beräkningar som användes i det nativa testet.
Referensbibliotekets dokumentation: exponentiellt viktat medelvärde: rekursionen adjust=False som används av den oberoende kontrollen.
MetaEditor-hjälp: plattformsstruktur: datamappen och indikatormapparna.
MT5-hjälp: algoritmisk handel: mappen MQL5\Indicators och kompilering med F7.
MT5-hjälp: tekniska indikatorer: anslutning av en indikator från Navigator och separata indikatorfönster.
Värden som används på denna sida och i diagrammen · Exporterade staplar · Exportens ursprung · Referens-RSI och svängpunkter · Referensdetektioner · Nativa MQL5-buffertar · Nativa MQL5-detektioner · Jämförelsekontroll · Nativ testkörning · Bygglogg · Kompilatorlogg · Specifikation
Diagrammen komprimerar helger och andra luckor mellan staplarna. Tiderna följer terminalens handelsserverklocka som den exporterades. Exemplen är fasta för reproducerbarhet och är inte löpande marknadskommentarer.
Produkter med hävstång kan snabbt leda till förlust av pengar. För icke-professionella kunder i Sverige gäller hävstångsgränser för CFD-kontrakt.




