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
ShortOnMarketSå 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)
// 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
ENDIFDet 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)
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
ENDIFExitblocket 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)
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
ENDIFAtt 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.
SHORTONMARKETignorerar long-positioner. En strategi som handlar båda sidor behöverLONGONMARKETockså, ellerONMARKETfö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
COUNTOFSHORTSHARESellerCOUNTOFPOSITION. - Timing inom samma bar. En short som öppnas och stängs inom en och samma bar lämnar kanske inte
SHORTONMARKETsant som en position över flera barer skulle göra. För att upptäcka en fill på aktuell bar, användShortTriggered. - Att glömma skyddet. Att utesluta
NOT ShortOnMarketpå ett entry låter en ihållande signal lägga på upprepade shorts, särskilt medCumulateOrdersaktiverad.
Relaterade instruktioner
LONGONMARKET, sant så länge en long-position är öppen.ONMARKET, sant så länge någon position är öppen.ShortTriggered, sant på den bar där en short-order fylls.NOT, negerar tillståndet för att skydda entries.SELLSHORT, öppnar en short-position.EXITSHORT, stänger en short-position.COUNTOFSHORTSHARES, storleken på den öppna short-positionen.