ArrayMin
ArrayMin returnerer den minste verdien som er lagret i et ProBuilder-array. Bruk den til å hente ut minimum fra innsamlede datapunkter i indikatorer og strategier.
Syntaks
result = ArrayMin($MyArray)Parametere
| Navn | Type | Standard | Beskrivelse |
|---|---|---|---|
$MyArray | array | påkrevd | Array-variabelen som skal skannes. Array-navn starter alltid med $. |
Slik fungerer det
ArrayMin undersøker de tilordnede elementene i en array og returnerer den ene minste verdien. Den er motstykket til ArrayMax og sparer deg for standardkoden med å gå gjennom indekser mens du holder styr på et løpende minimum.
Resultatet gjenspeiler hele innholdet i arrayet på tidspunktet for kallet. Fordi ProBuilder-arrayer består mellom barer, fortsetter et array som får et element på hver bar å vokse, og ArrayMin dekker da hele den akkumulerte historikken heller enn et nylig vindu. For å vurdere bare nye data kan du overskrive et fast område av indekser hver bar eller tømme arrayet med Unset før den fylles igjen.
ArrayMin virker bare med numeriske data. Når tabellen er tom, returnerer funksjonen en udefinert verdi, så kall bør sikres med IsSet eller en LastSet sjekk når utfyllingen av arrayen er betinget.
For innebygde serier finnes det enklere alternativer: Lowest[n](series) returnerer minimum av en serie over de siste n barer, og MIN(a, b) sammenligner to skalarer. ArrayMin er det riktige verktøyet når verdiene er samlet manuelt i et array, for eksempel filtrerte målinger som ikke svarer til påfølgende barer.
Eksempler
Eksempel 1, Laveste av fem lagrede priser (Indikator)
// Store five closing prices in an array
$myPrices[1] = 130
$myPrices[2] = 135
$myPrices[3] = 128
$myPrices[4] = 140
$myPrices[5] = 132
// Extract the smallest stored value
lowestPrice = ArrayMin($myPrices)
RETURN lowestPriceArrayet inneholder fem verdier, og ArrayMin returnerer 128, den minste av dem.
Eksempel 2, Beskyttende stopp fra registrerte pullback-bunner (ProOrder)
DEFPARAM CumulateOrders = false
// Record the low of each bar where RSI dipped below 40
IF RSI[14](close) < 40 THEN
$pullbackLows[LastSet($pullbackLows) + 1] = low
ENDIF
// Long entry on a moving average cross, stop below the weakest recorded low
IF Average[20](close) CROSSES OVER Average[50](close) AND IsSet($pullbackLows[1]) THEN
supportLevel = ArrayMin($pullbackLows)
BUY 1 CONTRACT AT MARKET
SET STOP PRICE supportLevel
ENDIFStrategien akkumulerer pullback-bunner i et array og bruker ArrayMin til å plassere stoppen under den dypeste registrerte bunnen.
Eksempel 3, Ny bunn mot et lagret vindu (ProScreener)
// Collect the lows of the previous 20 bars into an array
FOR i = 1 TO 20 DO
$lows[i] = low[i]
NEXT
// Flag instruments printing a low beneath every stored value
windowMin = ArrayMin($lows)
SCREENER[low < windowMin] (close AS "Last price")Screeneren lagrer de 20 siste bunnene og beholder bare instrumenter der gjeldende bunn er lavere enn ArrayMin for det vinduet.
Vanlige feil og fallgruver
- Argumentet må være en array. Å gi ArrayMin en vanlig variabel eller en prisserie lar seg ikke kompilere. Bare
$-prefiksede arrayvariabler med klammeindeks godtas. - En tom array returnerer undefined. Før noe element er tilordnet, gir ArrayMin en udefinert verdi som stille kan ødelegge etterfølgende regneoperasjoner. Test med
IsSetellerLastSetfør du stoler på resultatet. - Ikke-numerisk innhold fører til feil. Funksjonen er bare definert for numeriske data. Boolske flagg lagret som 0 og 1 er greit, men arrayet må inneholde tall.
- Historikken fortsetter å akkumulere. En array som det legges til i på hver bar, gjør ArrayMin til et minimum over hele levetiden, ikke et rullerende. Gjenbruk faste indekser eller tøm med
Unsetfor å få et vindusbasert resultat.
Relaterte instruksjoner
ArrayMax, returnerer den største verdien lagret i en array.ArraySort, sorterer array-elementer i stigende eller synkende rekkefølge.IsSet, tester om et gitt array-element er tilordnet.LastSet, returnerer den høyeste indeksen som er tilordnet i en array.Unset, tømmer en array eller et enkelt element.Lowest, laveste verdi i en serie over et fast antall barer.MIN, den minste av to skalarverdier.BarIndex, posisjonen til gjeldende bar i de innlastede dataene.