Dokumente / Erste Schritte

Erste Schritte

Richten Sie PineBag einmal ein und bereiten Sie dann in wenigen Minuten Ihren ersten Test vor.

PineBag-Portfoliobericht neben der Erweiterungsseitenwand
Ein echter PineBag-Arbeitsbereich: Die Erweiterung bereitet den Lauf vor, während der vollständige Bericht daneben geöffnet bleibt.

Sie brauchen drei Dinge

Die 5-tägige Testversion startet automatisch. Es ist keine Karte erforderlich. Die Laufverfügbarkeit ist durch Ihren TradingView-Plan begrenzt.

Installieren und öffnen Sie PineBag

  1. Installieren Sie die Erweiterung.
    Verwenden Sie die PineBag-Installationsschaltfläche. Wenn Sie schnellen Zugriff wünschen, pinnen Sie die Erweiterung an.
  2. Öffnen Sie ein TradingView-Diagramm.
    Melden Sie sich zuerst an und öffnen Sie dann einen beliebigen unterstützten Markt und Zeitrahmen.
  3. Laden Sie die Registerkarte „Diagramm“ neu.
    Tun Sie dies nach der Installation oder Aktualisierung von PineBag, damit die Karte eine Verbindung herstellen kann.
  4. Öffne PineBag.
    Wählen Sie das PineBag-Symbol. Die Verbindungsanzeige wird grün, wenn die Karte bereit ist.

Das Seitenteil, Steuerung für Steuerung

Die Zahlen auf der realen Schnittstelle stimmen mit den Erklärungen überein. Nichts auf diesem Bild ist eine Attrappe.

1 2 3 4 5 6 7 8 9 10 11
  1. 1
    Strategie

    Die geladene Strategie. Ein Klick auf die Karte öffnet sie im Editor; der Papierkorb in der Abschnittsüberschrift entfernt sie.

  2. 2
    Zusammenfassung ausführen

    Zeitrahmen, Kapital, Auftragsgröße und Provision, die verwendet werden.

  3. 3
    Suche

    Öffnet die TradingView-Symbolsuche, sodass Sie einen börsenqualifizierten Ticker hinzufügen können.

  4. 4
    Kopiertasche

    Kopiert jeden Ticker, einen EXCHANGE:SYMBOL pro Zeile.

  5. 5
    Klebebeutel

    Akzeptiert Zeilen, Kommas, Semikolons oder Leerzeichen und ignoriert Duplikate.

  6. 6
    Klar

    Fragt nach einem zweiten Klick, kopiert die Ticker und leert dann die Liste – „Ticker einfügen“ holt sie zurück.

  7. 7
    Ticker-Tags

    Zeigt die aktuelle Tasche an. Verwenden Sie ×, um ein Symbol zu entfernen. addiere bis 500.

  8. 8
    Backtest starten

    Validiert das Setup und startet den sequentiellen Portfolio-Lauf.

  9. 9
    Berichte

    Speichern Sie die letzten 50 Berichte lokal und exportieren Sie JSON oder CSV.

  10. 10
    Verbleibende Tage

    Active days: 05 — Verbleibende Tage.

  11. 11
    Hilfe

    Support steht für technische, Abrechnungs-, Lizenzierungs- und Datenschutzanfragen zur Verfügung.

Laden Sie eine Strategie

Echter PineBag-Editor mit einer Pine Script-Strategie
Der integrierte Editor verwendet Zeilennummern und Syntaxhervorhebung und speichert die Arbeitsquelle automatisch.
  1. Wählen Sie die Quelle.
    Legen Sie eine .pine -Datei in Strategy, oder öffnen Sie den Editor und fügen Sie den Code ein.
  2. Korrigieren Sie alle Validierungsmeldungen.
    Das Skript muss enthalten strategy(). PineBag zeigt einen eindeutigen Fehler an, wenn es nicht verwendet werden kann.
  3. Überprüfen Sie die Zusammenfassung.
    Bestätigen Sie den oben angezeigten Skriptnamen, den Zeitrahmen, das Kapital und die Auftragsgröße.
Indikatorskripte können nicht rückgetestet werden. Wenn die Quelle mit beginnt indicator(), konvertieren Sie es in eine Strategie, bevor Sie PineBag ausführen.
Bereit: Die Verbindung ist grün, die Strategiezusammenfassung ist sichtbar und Ihr Tickerbeutel ist nicht leer.

Strategievorlage

Jedes Feld im Properties-Tab von TradingView entspricht einem Argument von strategy(). Halten Sie die Werte als benannte Konstanten am Anfang des Skripts: Mit Skriptpriorität läuft jeder Ticker mit denselben Annahmen.

TIMEFRAME

Zeitrahmen

INITIAL_CAPITAL · CURRENCY

Anfangskapital

ORDER_SIZE · ORDER_SIZE_TYPE

Standard-Ordergröße

PYRAMIDING

Pyramiding

BAR_MAGNIFIER

Balkendetaillierung

CALC_EVERY_TICK · CALC_ON_FILLS

Skriptausführung

COMMISSION · COMMISSION_TYPE

Provision

MARGIN_LONG · MARGIN_SHORT

Hebel für Long und Short

SLIPPAGE

Slippage

LIMIT_FILL_TICKS

Ausführung von Limit-Orders

FILL_ON_BAR_CLOSE

Verzögerung der Orderausführung

runtime.error()

Stoppt das Skript auf jedem anderen Zeitrahmen.

Pine Script® v6trend-breakout-atr-risk.pine
//@version=6
// ============================================================================
// Trend breakout · ATR risk — PineBag strategy template
// ============================================================================

// ----------------------------------------------------------------------------
// STRATEGY PROPERTIES (TradingView: Settings → Properties)
// ----------------------------------------------------------------------------
// TIMEFRAME takes a standard TradingView interval. Paste one of these, by the
// lowest TradingView plan that has it (tradingview.com/pricing, Charts):
//   Basic      days      "1D" "1W" "1M" "3M" "6M" "12M"
//   Essential  minutes   "1" "3" "5" "15" "30" "45"
//              hours     "60" "120" "180" "240"
//              ranges    "1R" "10R" "100R" "1000R"
//   Premium    seconds   "1S" "5S" "10S" "15S" "30S" "45S"
//   Ultimate   ticks     "1T" "10T" "100T" "1000T"
// Other intervals are custom and not used: a week is "1W", not "7D".
const string TIMEFRAME         = "1D"                         // Chart timeframe
const float  INITIAL_CAPITAL   = 100000                       // Initial capital
const string CURRENCY          = currency.USD                 // Initial capital currency
const float  ORDER_SIZE        = 100                          // Default order size
const string ORDER_SIZE_TYPE   = strategy.percent_of_equity   // Order size: % of equity
const int    PYRAMIDING        = 1                            // Pyramiding
const bool   BAR_MAGNIFIER     = false                        // Bar detalization: Default (4 ticks per bar)
const bool   CALC_EVERY_TICK   = false                        // Script execution: On bar close
const bool   CALC_ON_FILLS     = false                        // Script execution: no recalculation after fills
const float  COMMISSION        = 0                            // Commission
const string COMMISSION_TYPE   = strategy.commission.percent  // Commission: Percent
const float  MARGIN_LONG       = 100                          // Long leverage 1x (leverage = 100 / margin)
const float  MARGIN_SHORT      = 100                          // Short leverage 1x
const int    SLIPPAGE          = 0                            // Slippage, ticks
const int    LIMIT_FILL_TICKS  = 0                            // Limit order execution: Requested price
const bool   FILL_ON_BAR_CLOSE = false                        // Order execution delay: One tick

strategy("Trend breakout · ATR risk", overlay = true,
     initial_capital = INITIAL_CAPITAL,
     currency = CURRENCY,
     default_qty_type = ORDER_SIZE_TYPE,
     default_qty_value = ORDER_SIZE,
     pyramiding = PYRAMIDING,
     use_bar_magnifier = BAR_MAGNIFIER,
     calc_on_every_tick = CALC_EVERY_TICK,
     calc_on_order_fills = CALC_ON_FILLS,
     commission_type = COMMISSION_TYPE,
     commission_value = COMMISSION,
     margin_long = MARGIN_LONG,
     margin_short = MARGIN_SHORT,
     slippage = SLIPPAGE,
     backtest_fill_limits_assumption = LIMIT_FILL_TICKS,
     process_orders_on_close = FILL_ON_BAR_CLOSE)

// Stops with a clear message on any other timeframe; PineBag reads TIMEFRAME
// and selects it for the run.
if timeframe.period != TIMEFRAME
    runtime.error("Switch the chart to the " + TIMEFRAME + " timeframe.")

// ----------------------------------------------------------------------------
// INPUT SETTINGS (TradingView: Settings → Inputs)
// ----------------------------------------------------------------------------
fastLength     = input.int(20, "Fast EMA", minval = 1)
slowLength     = input.int(50, "Slow EMA", minval = 2)
breakoutLength = input.int(20, "Breakout lookback", minval = 2)
atrLength      = input.int(14, "ATR length", minval = 1)
atrStop        = input.float(2.0, "ATR stop multiplier", minval = 0.1, step = 0.1)

// ----------------------------------------------------------------------------
// CALCULATIONS
// ----------------------------------------------------------------------------
fast = ta.ema(close, fastLength)
slow = ta.ema(close, slowLength)
atr = ta.atr(atrLength)
highestBefore = ta.highest(high, breakoutLength)[1]

// ----------------------------------------------------------------------------
// ENTRIES AND EXITS
// ----------------------------------------------------------------------------
longSignal = fast > slow and close > highestBefore
if longSignal and strategy.position_size == 0
    strategy.entry("Long", strategy.long)

stopPrice = strategy.position_avg_price - atr * atrStop
strategy.exit("ATR stop", "Long", stop = stopPrice)

// ----------------------------------------------------------------------------
// PLOTS
// ----------------------------------------------------------------------------
plot(fast, "Fast EMA", color = color.rgb(0, 153, 255))
plot(slow, "Slow EMA", color = color.rgb(123, 97, 255))

TIMEFRAME-Werte

Gib einen der Standard-Intervalle von TradingView in Anführungszeichen an. Welche davon laden, hängt von deinem TradingView-Tarif ab, wie auf tradingview.com/pricing aufgeführt.

Basic und höher

Tage, Wochen und Monate.

"1D" "1W" "1M" "3M" "6M" "12M"

Essential und höher

Minuten, Stunden und Range-Bars. Minuten haben keinen Buchstaben; eine Stunde ist 60.

"1" "3" "5" "15" "30" "45"
"60" "120" "180" "240"
"1R" "10R" "100R" "1000R"

Premium und höher

Sekundenbasierte Intervalle.

"1S" "5S" "10S" "15S" "30S" "45S"

Nur Ultimate

Tickbasierte Intervalle.

"1T" "10T" "100T" "1000T"

Pine Script® v6TIMEFRAME
const string TIMEFRAME = "1D"     // 1 day
// const string TIMEFRAME = "1W"  // 1 week
// const string TIMEFRAME = "240" // 4 hours
// const string TIMEFRAME = "15"  // 15 minutes
// const string TIMEFRAME = "30S" // 30 seconds, Premium and higher
Eine Woche ist "1W", nicht "7D". PineBag liest "7D" als "1W" und lehnt andere benutzerdefinierte Intervalle wie "2M" oder "2D" ab.

Ordergröße: Prozent, Betrag oder Menge

ORDER_SIZE enthält die Zahl, ORDER_SIZE_TYPE legt fest, was sie bedeutet. Zusammen füllen sie das Feld Order size im Properties-Tab von TradingView.

strategy.percent_of_equity

Ein Prozentsatz des aktuellen Kapitals. 10 bedeutet 10 % des Kapitals pro Trade.

strategy.cash

Ein Betrag in der Währung der Strategie. 1000 bedeutet 1.000 USD pro Trade.

strategy.fixed

Eine Anzahl von Kontrakten, Aktien oder Coins. 0.5 bedeutet 0,5 BTC pro Trade.

qty = …

Die Standardgröße gilt nur für Orders ohne eigenes qty. Ein Einstieg mit qty = … verwendet stattdessen diesen Wert.

Pine Script® v6ORDER SIZE
// 10% of equity per trade
const float  ORDER_SIZE        = 10
const string ORDER_SIZE_TYPE   = strategy.percent_of_equity

// 1,000 USD per trade (CURRENCY = currency.USD)
// const float  ORDER_SIZE      = 1000
// const string ORDER_SIZE_TYPE = strategy.cash

// 0.5 contracts, shares or coins per trade
// const float  ORDER_SIZE      = 0.5
// const string ORDER_SIZE_TYPE = strategy.fixed

Eigene Variablen

Legen Sie die Einstellungen Ihrer eigenen Strategielogik in einen separaten INPUT SETTINGS-Block. Jeder Aufruf von input.int(), input.float() oder input.bool() wird zu einem Feld im Inputs-Tab von TradingView, sodass Sie ihn ohne Codeänderung anpassen können.

Pine Script® v6INPUT SETTINGS
// ----------------------------------------------------------------------------
// INPUT SETTINGS (TradingView: Settings → Inputs)
// ----------------------------------------------------------------------------
fastLength     = input.int(20, "Fast EMA", minval = 1)
slowLength     = input.int(50, "Slow EMA", minval = 2)
breakoutLength = input.int(20, "Breakout lookback", minval = 2)
atrLength      = input.int(14, "ATR length", minval = 1)
atrStop        = input.float(2.0, "ATR stop multiplier", minval = 0.1, step = 0.1)
↓Laden Sie die bearbeitbare .pine-Vorlage herunter4 KB · Pine Script v6