Jetzt beitreten
ProBacktest/probacktest · proorder

SHORTONMARKET

SHORTONMARKET in ProBacktest und ProOrder ist wahr, solange eine short Position offen ist. Nutzen Sie es, um Short-Einstiege und -Ausstiege abzusichern, mit ausgearbeiteten Beispielen.

Syntax

probuilder
ShortOnMarket

So funktioniert es

SHORTONMARKET gibt true zurück, solange die Strategie eine offene Short-Position hält, und false, wenn nicht. Es wird als einfacher Boolean gelesen und passt daher direkt in ein IF Bedingung, meist negiert mit NOT um einen neuen Short nur dann zuzulassen, wenn keiner offen ist.

Es berichtet nur über Short-Positionen. Für Long-Positionen verwenden Sie LONGONMARKET, und um zu prüfen, ob eine Position auf einer der beiden Seiten offen ist, verwenden Sie ONMARKET. Die Kombination von SHORTONMARKET mit einer Signalbedingung ist der Standardweg, um zu steuern, wann ein Short-Einstieg oder ein Short-Ausstieg erlaubt ist.

Beispiele

Beispiel 1, Einen Short-Einstieg absichern (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

Dies ist das Muster aus der offiziellen Referenz. NOT ShortOnMarket verhindert, dass die Strategie einen zweiten Short aufbaut, während bereits einer läuft.

Beispiel 2, Eine offene short Position verwalten (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

Der Exit-Block läuft nur, solange ein Short offen ist, daher CROSSES OVER Bedingung wird nur geprüft, wenn sie relevant ist.

Beispiel 3, Immer nur eine Seite (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

Beide zu testen SHORTONMARKET und LONGONMARKET hält die Strategie vor einem neuen Einstieg ohne Position. NOT OnMarket formuliert die gleiche Absicherung kompakter.

Häufige Fehler und Stolperfallen

  • Nur short. SHORTONMARKET ignoriert Long-Positionen. Eine Strategie, die beide Seiten handelt, benötigt LONGONMARKET ebenfalls, oder ONMARKET für den kombinierten Zustand.
  • Zustand, keine Anzahl. Es meldet nur, ob ein Short offen ist, nicht dessen Größe. Für Aktien- oder Kontraktmengen verwenden Sie COUNTOFSHORTSHARES oder COUNTOFPOSITION.
  • Timing auf demselben Bar. Ein Short, der innerhalb eines einzelnen Bars eröffnet und geschlossen wird, hinterlässt möglicherweise nicht SHORTONMARKET true, wie es eine Position über mehrere Bars täte. Um eine Ausführung auf dem aktuellen Bar zu erkennen, verwenden Sie ShortTriggered.
  • Die Absicherung vergessen. Auslassen NOT ShortOnMarket bei einem Einstieg lässt ein anhaltendes Signal wiederholte Shorts hinzufügen, besonders bei CumulateOrders aktiviert.
  • LONGONMARKET, wahr, solange eine Long-Position offen ist.
  • ONMARKET, wahr, solange eine Position offen ist.
  • ShortTriggered, wahr auf dem Bar, auf dem eine short Order ausgeführt wird.
  • NOT, negiert den Zustand, um Einstiege abzusichern.
  • SELLSHORT, eröffnet eine Short-Position.
  • EXITSHORT, schließt eine Short-Position.
  • COUNTOFSHORTSHARES, Größe der offenen short Position.