Strategie-Eigenschaften

Jede Pine-Strategie hat eine Reihe von Eigenschaften, die ihr Verhalten bestimmt: 

  1. Startkapital
  2. Basiswährung
  3. Order Größe
  4. Pyramidisieren
  5. Kommission
  6. Preis für Limit Orders überprüfen
  7. Slippage
  8. Margin
  9. Neuberechnung 

Sie sind in den Strategieeinstellungen im Tab "Eigenschaften" verfügbar:

Jeder der in den Eigenschaften der Strategie angegebenen Parameter kann durch Bearbeiten der Argumente des Aufrufs der Funktion strategy() im entsprechenden Pine Skript geändert werden:

strategy(title, initial_capital, currency, default_qty_value, default_qty_type, pyramiding, commission_type, commission_value, backtest_fill_limits_assumption, slippage, process_orders_on_close, margin_long, margin_short, calc_on_order_fills, calc_on_every_tick)

Schauen wir uns jeden Eingabeparameter im Menü Eigenschaften und den entsprechenden Parameter in der Sprache Pine an:

1 - Startkapital (Parameter: initial_capital) stellt den Betrag der Barmittel dar, die anfangs für die Strategie zum Traden zur Verfügung stehen, in der unter Basiswährung definierten Währung. Standardmäßig ist dieser Wert gleich 100.000. Möglicherweise müssen Sie diesen Wert erhöhen, damit Trades mit bestimmten Symbolen stattfinden können.

2 - Basiswährung (Parameter: currency) gibt die Währung an, die für Berechnungen verwendet wird. Die im Tab "Strategietester" angezeigten Ergebnisse (Gewinn, Verlust, Drawdown usw.) werden in dieser Währung ausgedrückt. Verfügbare Auswahlmöglichkeiten sind:

Standard, USD, EUR, AUD, GBP, NZD, CAD, CHF, HKD, JPY, NOK, SEK, SGD, TRY, ZAR. Wenn die Option Standard ausgewählt ist, verwendet die Strategie die Standardwährung für dieses Symbol und es findet keine Währungsumrechnung statt. 

3 - Order Größe (Parameter: default_qty_value, default_qty_type). Dazu sind ein Wert und ein Berechnungsmodus erforderlich. Beachten Sie, dass die berechneten Werte aufgrund der handelbaren Mindestmengen für das Symbol Beschränkungen unterliegen können:

  • Kontrakte (Argument: strategy.fixed) - die Strategie wird mit der angegebenen Anzahl von Kontrakten/Aktien/Lots einsteigen.
  • Menge in Währung (Argument: strategy.cash) - die Strategie wird den Wert in der Basiswährung verwenden.
  • Prozentualer Anteil am Eigenkapital (Argument: strategy.percent_of_equity) - Positionsgrößen werden als Prozentsatz des vorhanden Eigenkapitals berechnet, wenn ein Trade eingegangen wird.

4 - Pyramidisieren (Parameter: pyramiding) gibt die maximale Anzahl der zulässigen aufeinanderfolgenden Einstiege in dieselbe Richtung an. Wenn Pyramidisieren deaktiviert ist, kann die Strategie nur eine Long- oder Short-Position eröffnen, auch wenn die Eingabebedingungen erfüllt sind. Pyramidisieren wirkt sich nur auf Einstiege aus, die mit der Funktion strategy.entry() gemacht wurden. Es hat keine Auswirkung auf Orders, die mit strategy.order() erstellt wurden.

5 - Kommission (Parameter: commission_type, commission_value). Es ist der Betrag, der für jeden Trade an Handelsgebühren kostenpflichtig ist. Es müssen ein Wert und ein Berechnungsmodus angegeben werden. Beachten Sie, dass die Provision sowohl auf Einstiege als auch auf Ausstiege angewendet wird, und dass bei Verwendung eines Prozentsatzes die berechnete Provision mit der Höhe der Transaktion variiert:

  • Prozentsatz des gehandelten Wertes (Argument: strategy.commission.percent) - erhebt auf jede Order eine Provision in Höhe des angegebenen Prozentsatzes.
  • Währung pro Kontrakt (Argument: strategy.commission.cash_per_contract) - erhebt eine Provision auf jeden Kontrakt.
  • Währung pro Order (Argument: strategy.commission.cash_per_order) - erhebt für jeden Auftrag eine Provision.

6 - Preis für Limit Orders verifizieren (Parameter: backtest_fill_limits_assumption) verschärft die Bedingungen für das Eingehen einer Position mit Limit-Orders. Standardmäßig ist dieser Wert 0, d. h. Limit-Orders werden aufgrund historischer Daten gefüllt, sobald der in der Order angegebene Preis erreicht wird. Wenn der Parameter nicht Null ist, dann können Limit-Orders nur dann eine Position innerhalb des Balkens eingehen, wenn der Marktpreis das Niveau der Limit-Order um die angegebene Anzahl von Ticks überschritten hat.

7 - Slippage (Parameter: slippage) gibt den Wert in Ticks an, der zum Ausführungspreis von Market- oder Stop-Orders addiert wird. Er kann verwendet werden, um den Spread zu berücksichtigen.

8 – Margin für Long-/Short-Positionen (Parameter: margin_long, margin_short) spezifiziert die Margin für ein Handelsgeschäft, d. h., den Prozentsatz der Position, den der Trader mit seinem Handelskonto decken muss. Zum Beispiel: Wenn die Margin für Long-Positionen auf 25 % eingestellt ist, dann muss das Handelskonto über ein ausreichendes Guthaben verfügen, um 25 % des offenen Handelsgeschäfts zu decken, und kann potenziell bis zu 400 % seines Anlagekapitals für jedes Handelsgeschäft ausgeben. Wenn ein Handelsgeschäft eröffnet wurde und es Geld in einem Ausmaß verliert, dass das Handelskonto nicht mehr in der Lage ist, seinen Anteil der offenen Position zu decken, dann wird ein Margin Call ausgeführt und ein Teil der Anfangsposition wird zwangsliquidiert. Sie können mehr über dieses Feature und die Berechnungsmethode in unserem Hilfe-Center erfahren.

9 - Neuberechnung Optionen geben an, wie oft die Strategie neu berechnet werden soll. Standardmäßig wird die Strategie zum Schluss eines jeden Balkens neu berechnet, aber mit den unten stehenden Optionen kann sie ebenfalls neu berechnet werden:

  • Nachdem eine Order gefüllt wurde (Parameter: calc_on_order_fills) - ermöglicht es der Strategie, eine zusätzliche Intra-Bar-Order-Berechnung unmittelbar nach dem Ausfüllen einer Order durchzuführen. Diese zusätzliche Berechnung erfolgt sowohl für historische als auch für Echtzeit-Balken. 
  • Für jeden Tick (Parameter: calc_on_every_tick). Standardmäßig werden Strategien nur beim Schließen von Echtzeit-Balken berechnet. Mit diesem Parameter kann die Strategie bei jeder Aktualisierung von Echtzeit-Balken berechnen, wie es eine Studie tun würde. Beachten Sie, dass die Tick-Daten verloren gehen, wenn der Chart aktualisiert wird, sodass Strategien, die diese Option verwenden, neu gezeichnet werden. Dieser Parameter hat keinen Einfluss auf das Verhalten von Strategien auf historischen Balken. Beachten Sie auch, dass Strategien, die diese Funktion verwenden, auf historischen Balken keine realistischen Ergebnisse anzeigen, da sie keine Tick-Daten enthalten.

10 – Order füllen:

  • Balkenlupe verwenden (Parameter: use_bar_magnifier) – dies weist den Broker Emulator an, für den Verlauf-Backtest präzisere Preise von niedrigeren Zeitrahmen zu verwenden, um auf diese Weise realistischere Ergebnisse erzielen zu können. Sie können in unserem Hilfe-Center mehr über dieses Feature erfahren.
  • Bei Balkenschließung (Parameter: process_orders_on_close). Wenn dies zutrifft, dann erstellt die Strategie einen zusätzlichen Order-Ausführungsversuch, nachdem ein Balken geschlossen und die Strategieberechnung abgeschlossen wurde. Wenn es sich hierbei um Marktorder handelt, dann führt sie der Broker Emulator aus, bevor der nächste Balken eröffnet wird. Wenn die Order preisabhängig sind, dann werden sie nur gefüllt, wenn die Preisbedingungen erfüllt sind. Diese Option ist nützlich, wenn Sie die Order gleich zu ihrer Erstellung ausführen lassen möchten. Die Standardeinstellung ist, dass Order bei der Schließung des aktuellen Balkens erstellt und bei der Eröffnung des nächsten Balkens ausgeführt werden. Wenn diese Einstellung aktiviert ist, dann werden sie zu derselben Schließung ausgeführt, in der sie auch erstellt wurden. Hinweis: Ein Positionseintritt zu demselben Tick, in dem die Order erstellt wurde, kann sich als irreführend erweisen, da dies in den realen Handelsabläufen nicht möglich ist.
  • Standard-OHLC verwenden (Parameter: fill_orders_on_standard_ohlc) zwingt Strategien, die auf Heikin Ashi Charts laufen, Order zu tatsächlichen OHLC-Preisen zu füllen, um auf diese Weise realistischere Ergebnisse erzielen zu können. In der Standardeinstellung verwenden Strategie-Scripts die Chart-Preise für die Order-Füllung, unabhängig von dem verwendeten Charttyp. Bei Heikin-Ashi-Charts vermeidet diese Einstellung die Nutzung von synthetischen Preisen, die nicht besonders realitätstreu sein können. Zum Beispiel: Die folgende Strategie wird auf den täglichen NASDAQ:AAPL Heikin-Ashi-Chart angewandt und füllt eine Order am 2023-09-25 zu einem synthetischen Preis von 175,61 USD. Nachdem wir jedoch die Option „Standard-OHLC verwenden“ aktiviert haben, wird dieselbe Order nun zu einem Standard-Chartpreis von 174,20 USD gefüllt.