Bli medlem idag
ProBacktest/probacktest · proorder

SHORTONMARKET

SHORTONMARKET i ProBacktest och ProOrder är sant så länge en short-position är öppen. Använd det för att skydda short-entries och exits, med genomgångna exempel.

Syntax

probuilder
ShortOnMarket

Så fungerar det

SHORTONMARKET returnerar true så länge strategin håller en öppen short-position och false när den inte gör det. Den läses som ett vanligt booleskt värde, så den passar direkt in i ett IF villkor, oftast negerat med NOT för att tillåta en ny short bara när ingen är öppen.

Den rapporterar endast om short-positioner. För long-positioner, använd LONGONMARKET, och för att testa om någon position på någon sida är öppen, använd ONMARKET. Att kombinera SHORTONMARKET med ett signalvillkor är standardsättet att styra när en short-entry eller en short-exit är tillåten.

Exempel

Exempel 1, Skydda en short-entry (ProBacktest)

probuilder
// Sell short when MACD crosses below zero, but only if no short is open
myMACD = MACD[12,26,9](close)
short = myMACD CROSSES UNDER 0
IF NOT ShortOnMarket AND short THEN
    SELLSHORT 1 CONTRACT AT MARKET
ENDIF

Det här är mönstret från den officiella referensen. NOT ShortOnMarket hindrar strategin från att stapla en andra short medan en redan är aktiv.

Exempel 2, Hantera en öppen short (ProOrder)

probuilder
DEFPARAM CumulateOrders = false
// Close the short when price reclaims the 20-period average
IF ShortOnMarket AND close CROSSES OVER Average[20](close) THEN
    EXITSHORT AT MARKET
ENDIF

Exitblocket körs endast när en short är öppen, så CROSSES OVER villkoret kontrolleras bara när det är relevant.

Exempel 3, En sida i taget (ProOrder)

probuilder
DEFPARAM CumulateOrders = false
// Allow a long only when neither side is open
IF NOT ShortOnMarket AND NOT LongOnMarket AND close CROSSES OVER Average[50](close) THEN
    BUY 1 CONTRACT AT MARKET
ENDIF

Att testa båda SHORTONMARKET och LONGONMARKET håller strategin flat före ett nytt entry. NOT OnMarket uttrycker samma skydd mer kompakt.

Vanliga fel och fallgropar

  • Endast short. SHORTONMARKET ignorerar long-positioner. En strategi som handlar båda sidor behöver LONGONMARKET också, eller ONMARKET för det kombinerade tillståndet.
  • Tillstånd, inte ett antal. Den rapporterar bara om en short är öppen, inte dess storlek. För antal aktier eller kontrakt använd COUNTOFSHORTSHARES eller COUNTOFPOSITION.
  • Timing inom samma bar. En short som öppnas och stängs inom en och samma bar lämnar kanske inte SHORTONMARKET sant som en position över flera barer skulle göra. För att upptäcka en fill på aktuell bar, använd ShortTriggered.
  • Att glömma skyddet. Att utesluta NOT ShortOnMarket på ett entry låter en ihållande signal lägga på upprepade shorts, särskilt med CumulateOrders aktiverad.