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
LongTriggeredLongTriggered[N]Parameters
| Naam | Type | Standaard | Beschrijving |
|---|---|---|---|
N | geheel getal | 0 | Baroffset 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)
// increment a counter each time a long entry fills
if LongTriggered then
buycount = buycount + 1
endifElke 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)
// 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
ENDIFLongTriggered[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)
// 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
ENDIFWanneer 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.
LongTriggeredzonder blokhaken betekentLongTriggered[0]. Code die de vorige bar wil controleren moet schrijvenLongTriggered[1]expliciet. Aannemen dat de kale vorm één bar terugkijkt is een veelgemaakte misvatting. - Verwarring met
LongOnMarket.LongOnMarketrapporteert de status van de open positie,LongTriggeredrapporteert de fill van de instap. Een trade die binnen één bar opent en sluit, toontLongTriggered = TRUEenLongOnMarket = FALSEop 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.
Nmoet een niet-negatief geheel getal zijn. Een negatieve offset of een gebroken waarde doorgeven is ongeldig, er is geen vooruitblik naar toekomstige bars.
Gerelateerde instructies
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.