Bli medlem idag
Instruktioner/probuilder · probacktest · proorder · proscreener

LowestBars

LowestBars i ProBuilder returnerar förskjutningen i barer till det lägsta värdet i en serie över en period, där 0 betyder att den aktuella baren har det lägsta värdet.

Syntax

probuilder
offset = LowestBars[Period](source)

Parametrar

NamnTypStandardBeskrivning
PeriodheltalobligatoriskAntal tidigare barer som ingår i sökningen, inklusive den aktuella baren.
sourceserieobligatoriskDataserien som ska skannas, till exempel close, low, high, eller någon beräknad serie.

Så fungerar det

LowestBars söker igenom de senaste Period barer av den angivna serien och rapporterar minimats position som en förskjutning från den aktuella baren. Räkningen är nollbaserad: 0 är den aktuella baren, 1 är en bar tillbaka. Den kompletterande funktionen Lowest returnerar själva minimivärdet, medan LowestBars returnerar var det minimivärdet ligger, vilket är vad timinglogik oftast behöver.

När flera barer delar samma minimivärde rapporterar funktionen den förekomst som ligger närmast aktuell bar, det vill säga den minsta förskjutningen. Om diagrammet innehåller färre barer än Period, omfattar sökningen helt enkelt de barer som finns.

Förskjutningen passar naturligt in i barindexerade uttryck. Till exempel, close[LowestBars[20](low)] läser stängningen på den bar där den lägsta lägsta över 20 barer sattes. Resultatet fungerar också som ett färskhetsmått: en liten förskjutning betyder att marknaden nyligen tryckte sin periodbotten, en stor förskjutning betyder att botten åldras och inte har utmanats under många barer.

Enligt källans beteende returnerar funktionen -1 när inget lägre värde kan fastställas inom det begärda intervallet, så kod som använder resultatet som ett index bör skydda sig mot negativa värden.

Exempel

Exempel 1, Lokalisera den lägsta lägstanivån över 20 barer (Indikator)

probuilder
// Offset in bars to the lowest low of the last 20 bars
a = LowestBars[20](low)
RETURN a

Det utritade värdet faller till 0 varje gång den aktuella baren sätter en ny 20-barsbotten, och stiger sedan med ett på varje bar som inte lyckas bryta den.

Exempel 2, Gå in bara när bottnen är gammal (ProOrder)

probuilder
// The 50-bar lowest low must be at least 20 bars old,
// meaning no fresh low has printed recently
lowAge = LowestBars[50](low)

IF lowAge >= 20 AND close crosses over average[20](close) THEN
  BUY 1 CONTRACT AT MARKET
ENDIF

SET STOP %LOSS 2

LowestBars fungerar som ett stabiliseringsfilter: strategin köper bara när den senaste periodbottnen sattes för minst 20 barer sedan.

Exempel 3, Skanning efter en ny periodbotten (ProScreener)

probuilder
// Flag instruments that printed their 100-bar low within the last 3 bars
recentLow = LowestBars[100](low)

SCREENER[recentLow <= 3 AND recentLow >= 0] (recentLow AS "Bars since low")

Screenern listar marknader som handlas på eller nära en ny 100-barsbotten och visar hur många barer tillbaka den bottnen inträffade.

Vanliga fel och fallgropar

  • Förskjutning förväxlad med värde. LowestBars returnerar ett barantal, inte ett pris. För att läsa själva minimum använd Lowest[Period](source), eller indexera serien med förskjutningen.
  • Nollbaserad räkning. Ett resultat på 0 syftar på den aktuella baren. Att behandla 0 som "ingen botten hittad" förkastar tyst det viktigaste fallet, en ny botten på den bar som utvärderas.
  • Negativt resultat använt som index. När funktionen inte kan hitta ett lägre värde returnerar den -1, och uttryck som low[LowestBars[20](low)] indexera sedan en negativ förskjutning. Kontrollera resultatet innan du använder det som index.
  • Lika värden löses till den närmaste baren. När två barer har exakt samma minimum vinner den mindre förskjutningen. Logik som förväntar sig den äldsta förekomsten läser platta serier eller serier med gap fel.
  • Lowest, returnerar det lägsta värdet i en serie över en period.
  • Highest, returnerar det högsta värdet i en serie över en period.
  • HighestBars, förskjutning i barer till det högsta värdet, spegelfunktionen.
  • BarsSince, räknar barer sedan ett villkor senast var sant.
  • BarIndex, nollbaserad position för den aktuella baren i den laddade historiken.
  • Summation, summerar en serie över en period.
  • DRAWTEXT, skriver ut värden i diagrammet, användbart för att verifiera förskjutningar.