Word nu lid
ProBacktest/probacktest · proorder

LongTriggered

LongTriggered in ProBacktest en ProOrder geeft true wanneer een long instap op een bepaalde bar is uitgevoerd. Gebruik het om fills van openstaande orders bar per bar te detecteren.

Syntaxis

probuilder
LongTriggered
probuilder
LongTriggered[N]

Parameters

NaamTypeStandaardBeschrijving
Ngeheel getal0Baroffset ten opzichte van de huidige bar. 0 is de huidige bar, 1 is de vorige bar, enzovoort.

Hoe het werkt

Elke keer dat een strategie een long positie opent, leggen ProBacktest en ProOrder de uitvoering vast op de bar waar die plaatsvond. LongTriggered leest dat register: het geeft true op een bar waar een long instap is uitgevoerd en false overal elders. De optionele index verschuift de opzoeking naar het verleden, dus LongTriggered[1] vraagt of een long-instap op de vorige bar is uitgevoerd.

Het verschil met LongOnMarket is het belangrijkst bij pending orders. Een stop- of limietinstap kan intrabar worden uitgevoerd en de beschermende stop of target kan binnen dezelfde bar triggeren. In dat geval LongOnMarket is alweer false op het moment dat de code op barslot wordt uitgevoerd, en de trade zou onzichtbaar zijn voor controles van de positiestatus. LongTriggered geeft voor die bar nog steeds true terug, dus de strategie kan op de uitvoering reageren ook als de positie niet meer bestaat.

De vlag is alleen aan instappen gekoppeld. Uitstappen, geraakte stops en geraakte targets zetten hem niet. Voor short instappen is de tegenhanger ShortTriggered.

Voorbeelden

Voorbeeld 1, Long instappen tellen (ProOrder)

probuilder
// increment a counter each time a long entry fills
if LongTriggered then
  buycount = buycount + 1
endif

Elke bar waarop een long-instap is uitgevoerd verhoogt buycount met één. De teller kan dan verdere logica afschermen, bijvoorbeeld om het aantal instappen per sessie te beperken.

Voorbeeld 2, Pauze na een verse fill (ProBacktest)

probuilder
// entry signal: close crosses above the 50-bar average
signal = close crosses over Average[50](close)

// skip new entries on the bar right after a fill
IF signal AND NOT LongTriggered[1] AND NOT LongOnMarket THEN
  BUY 1 CONTRACT AT MARKET
ENDIF

LongTriggered[1] controleert of een long instap op de vorige bar is uitgevoerd. De voorwaarde blokkeert instappen direct na elkaar op aansluitende bars, een eenvoudig cooldownfilter.

Voorbeeld 3, Een instap en uitstap op dezelfde bar detecteren (ProOrder)

probuilder
// pending entry above the prior high, protective stop attached
IF NOT OnMarket THEN
  BUY 1 CONTRACT AT high[1] STOP
  SET STOP PLOSS 20
ENDIF

// a fill happened this bar but no position remains:
// the stop was hit within the same bar
IF LongTriggered AND NOT LongOnMarket THEN
  stoppedSameBar = 1
ENDIF

Wanneer LongTriggered is waar zolang LongOnMarket onwaar is op dezelfde bar, zijn de instap en de stop beide binnen die bar uitgevoerd. De vlag stoppedSameBar kan dan gebruikt worden om aan de zijlijn te blijven of de volgende instap aan te passen.

Veelvoorkomende fouten en valkuilen

  • De standaardindex is de huidige bar. LongTriggered zonder blokhaken betekent LongTriggered[0]. Code die de vorige bar wil controleren moet schrijven LongTriggered[1] expliciet. Aannemen dat de kale vorm één bar terugkijkt is een veelgemaakte misvatting.
  • Verwarring met LongOnMarket. LongOnMarket rapporteert de status van de open positie, LongTriggered rapporteert de fill van de instap. Een trade die binnen één bar opent en sluit, toont LongTriggered = TRUE en LongOnMarket = FALSE op die bar.
  • Alleen instappen. De vlag reageert zelf nooit op uitstappen of geraakte stops. Het detecteren van een stop-out op dezelfde bar vereist combinatie met een controle van de positiestatus, zoals in Voorbeeld 3.
  • Negatieve of niet-gehele index. N moet een niet-negatief geheel getal zijn. Een negatieve offset of een gebroken waarde doorgeven is ongeldig, er is geen vooruitblik naar toekomstige bars.
  • ShortTriggered, de equivalente vlag voor short instappen.
  • LONGONMARKET, waar zolang er een long positie open is.
  • SHORTONMARKET, waar zolang er een short positie open is.
  • ONMARKET, waar zolang er een positie open is.
  • BUY, opent een long positie.
  • MARKET, onmiddellijke uitvoering tegen de huidige marktprijs.
  • TRADEPRICE, de instapprijs van de huidige positie.
  • TRADEINDEX, de barindex van de instap van de huidige positie.