CumulateOrders
CumulateOrders er en DEFPARAM-parameter som styrer om en ProOrder-strategi kan stable flere innganger i samme retning. Syntaks og eksempler.
Syntaks
DEFPARAM CumulateOrders = trueDEFPARAM CumulateOrders = falseParametere
| Navn | Type | Standard | Beskrivelse |
|---|---|---|---|
CumulateOrders | boolsk | true | Når true, legger inngangsordrer i retning av en åpen posisjon til den. Når false, ignoreres slike ordrer til posisjonen er lukket. |
Slik fungerer det
CumulateOrders er ikke en kjørbar instruksjon, men en parameter på strateginivå deklarert med DEFPARAM. Som alle DEFPARAM linjer, må den stå øverst i koden, før all tradinglogikk, og den evalueres én gang når strategien starter.
Med CumulateOrders = false, holder strategien høyst én posisjonsdel per retning. Hvis en BUY betingelsen utløses mens en long allerede er åpen, forkastes den ekstra ordren. Dette holder position size fast og er det vanlige valget for strategier der hvert signal representerer én hel handel.
Med CumulateOrders = true, sendes det en ny ordre i samme retning hver gang en inngangsbetingelse er oppfylt, så posisjonen vokser. Dette gjør pyramidering og innsnitting mulig, men det betyr også at en betingelse som holder seg sann bar etter bar vil fortsette å kjøpe til margin- eller plattformgrenser griper inn. Kumulative strategier kombinerer derfor nesten alltid parameteren med en størrelsesvakt bygget på COUNTOFPOSITION, COUNTOFLONGSHARES eller COUNTOFSHORTSHARES.
Parameteren påvirker ikke utganger. SELL, EXITSHORT og stop- eller målinstruksjoner oppfører seg likt i begge moduser.
Eksempler
Eksempel 1, Begrense strategien til én inngang per retning (ProOrder)
DEFPARAM CumulateOrders = false
// One position slice at a time. While a long is open,
// further BUY orders in the same direction are ignored.Deklarasjonen er bevart fra den offisielle referansen. Plassert øverst i programmet hindrer den strategien fra å øke en eksisterende posisjon.
Eksempel 2, Pyramidering med en eksplisitt størrelsesgrense (ProBacktest)
DEFPARAM CumulateOrders = true
fastMA = Average[20](close)
slowMA = Average[50](close)
// Add one contract on each new bullish crossover,
// but never hold more than 4 contracts in total
IF fastMA crosses over slowMA AND abs(COUNTOFPOSITION) < 4 THEN
BUY 1 CONTRACT AT MARKET
ENDIF
// Flatten everything on a bearish crossover
IF LongOnMarket AND fastMA crosses under slowMA THEN
SELL AT MARKET
ENDIFÅ aktivere CumulateOrders lar hver kryssing legge til en kontrakt, mens COUNTOFPOSITION vakten begrenser total eksponering til fire kontrakter.
Eksempel 3, Snitte inn i en short på oppganger (ProOrder)
DEFPARAM CumulateOrders = true
rsiVal = RSI[14](close)
// Open or add to the short each time RSI pushes above 70,
// capped at three lots
IF rsiVal crosses over 70 AND COUNTOFSHORTSHARES < 3 THEN
SELLSHORT 1 LOT AT MARKET
ENDIF
SET STOP %TRAILING 1Hver overkjøpt-impuls legger til en lot i short-posisjonen. Fordi inngangen bruker crosses over, utløses ordren én gang per RSI-utsving i stedet for på hver bar nivået holder.
Vanlige feil og fallgruver
- DEFPARAM placed too late. Alle
DEFPARAMdeklarasjoner, inkludertCumulateOrders, må komme før alle andre instruksjoner. En deklarasjon etter handelslogikken gir en kompileringsfeil. - Stille feil i pyramideringen. Når tilleggsinnganger aldri utføres selv om betingelsene er oppfylt, er den vanlige årsaken at parameteren står på
falseeller utelatt i kode kopiert fra en strategi med én inngang. Ordrene forkastes uten noen advarsel. - Ukontrollert akkumulering. Med
CumulateOrders = true, en betingelse skrevet som en tilstand (rsiVal > 70) i stedet for en hendelse (rsiVal crosses over 70) sender en ordre på hver bar betingelsen holder seg sann. Kombiner hendelsesbaserte betingelser med enCOUNTOFPOSITIONgrense. - Forventer at den slår sammen motsatte ordrer. Parameteren styrer bare stabling i samme retning. En ordre mot en åpen posisjon reduserer eller reverserer den fortsatt i henhold til normal ordrehåndtering, uavhengig av denne innstillingen.
Relaterte instruksjoner
DEFPARAM, deklarerer strategiparametere øverst i koden.COUNTOFPOSITION, fortegnsbestemt størrelse på den åpne posisjonen, brukt til å begrense pyramidering.COUNTOFLONGSHARES, antall aksjer holdt long, uten fortegn.COUNTOFSHORTSHARES, antall aksjer holdt short, uten fortegn.BUY, åpner eller øker en long-posisjon.SELLSHORT, åpner eller øker en short-posisjon.ONMARKET, sann så lenge en posisjon er åpen.FLATAFTER, DEFPARAM-parameter som tvinger strategien flat etter et fastsatt klokkeslett.FLATBEFORE, DEFPARAM-parameter som holder strategien flat før et fastsatt klokkeslett.