Dokumen / Bermula

Bermula

Sediakan PineBag sekali, kemudian sediakan ujian pertama anda dalam beberapa minit.

Laporan portfolio PineBag di sebelah panel sisi sambungan
Ruang kerja PineBag sebenar: sambungan menyediakan larian sementara laporan penuh tetap terbuka di sebelahnya.

Anda memerlukan tiga perkara

Percubaan 5 hari bermula secara automatik. Ia tidak memerlukan kad. Ketersediaan jalankan adalah terhad oleh pelan TradingView anda.

Pasang dan buka PineBag

  1. Pasang sambungan.
    Gunakan butang pemasangan PineBag. Sematkan sambungan jika anda mahukan akses pantas.
  2. Buka carta TradingView.
    Log masuk dahulu, kemudian buka mana-mana pasaran dan jangka masa yang disokong.
  3. Muat semula tab carta.
    Lakukan ini selepas memasang atau mengemas kini PineBag supaya carta boleh bersambung.
  4. Buka PineBag.
    Pilih ikon PineBag. Penunjuk sambungan bertukar hijau apabila carta sudah sedia.

Panel sisi, kawalan dengan kawalan

Nombor pada antara muka sebenar sepadan dengan penjelasan. Tiada apa-apa dalam imej ini adalah mock-up.

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

    Strategi yang dimuatkan. Klik kad untuk membukanya dalam editor; ikon tong sampah di tajuk bahagian membuangnya.

  2. 2
    Ringkasan jalankan

    Jangka masa, modal, saiz tempahan dan komisen yang akan digunakan.

  3. 3
    Cari

    Membuka carian simbol TradingView supaya anda boleh menambah ticker yang layak untuk bursa.

  4. 4
    Beg salin

    Menyalin setiap ticker, satu EXCHANGE:SYMBOL setiap baris.

  5. 5
    Tampal beg

    Menerima baris, koma, koma bertitik atau ruang dan mengabaikan pendua.

  6. 6
    Jelas

    Meminta klik kedua, menyalin ticker, kemudian mengosongkan senarai; «Tampal ticker» akan mengembalikannya.

  7. 7
    Tag ticker

    Menunjukkan beg semasa. Gunakan × untuk mengalih keluar satu simbol; tambah sehingga 500.

  8. 8
    Jalankan backtest

    Mengesahkan persediaan dan memulakan larian portfolio berjujukan.

  9. 9
    Laporan

    Simpan 50 laporan terkini secara tempatan dan eksport JSON atau CSV.

  10. 10
    Hari lagi

    Active days: 05 — Hari lagi.

  11. 11
    Sokongan

    Sokongan tersedia untuk permintaan teknikal, pengebilan, pelesenan dan privasi.

Muatkan strategi

Editor PineBag sebenar dengan strategi Pine Script
Editor terbina dalam menggunakan nombor baris dan penyerlahan sintaks dan menyimpan sumber kerja secara automatik.
  1. Pilih sumber.
    Gugurkan a .pine fail ke dalam Strategi, atau buka Editor dan tampal kod.
  2. Betulkan sebarang mesej pengesahan.
    Skrip mesti mengandungi strategy(). PineBag menunjukkan ralat yang jelas jika ia tidak boleh digunakan.
  3. Semak ringkasan.
    Sahkan nama skrip, jangka masa, modal dan saiz pesanan yang ditunjukkan di atas Jalankan.
Skrip penunjuk tidak boleh diuji belakang. Jika sumber bermula dengan indicator(), tukarkannya kepada strategi sebelum menjalankan PineBag.
Sedia: sambungan berwarna hijau, ringkasan strategi kelihatan dan beg ticker anda tidak kosong.

Templat strategi

Setiap medan dalam tab Properties TradingView sepadan dengan satu argumen strategy(). Simpan nilai sebagai pemalar bernama di bahagian atas skrip: dengan keutamaan skrip, setiap ticker diuji dengan andaian yang sama.

TIMEFRAME

Jangka masa

INITIAL_CAPITAL · CURRENCY

Modal permulaan

ORDER_SIZE · ORDER_SIZE_TYPE

Saiz pesanan lalai

PYRAMIDING

Piramid

BAR_MAGNIFIER

Perincian bar

CALC_EVERY_TICK · CALC_ON_FILLS

Pelaksanaan skrip

COMMISSION · COMMISSION_TYPE

Komisen

MARGIN_LONG · MARGIN_SHORT

Leveraj long dan short

SLIPPAGE

Slippage

LIMIT_FILL_TICKS

Pelaksanaan pesanan had

FILL_ON_BAR_CLOSE

Kelewatan pelaksanaan pesanan

runtime.error()

Menghentikan skrip pada mana-mana rangka masa lain.

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))

Nilai TIMEFRAME

Tulis salah satu selang standard TradingView dalam tanda petik. Selang yang dimuatkan bergantung pada pelan TradingView anda, seperti yang disenaraikan di tradingview.com/pricing.

Basic dan lebih tinggi

Hari, minggu dan bulan.

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

Essential dan lebih tinggi

Minit, jam dan bar julat. Minit tiada huruf; satu jam ialah 60.

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

Premium dan lebih tinggi

Selang berasaskan saat.

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

Ultimate sahaja

Selang berasaskan tick.

"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
Seminggu ialah "1W", bukan "7D". PineBag membaca "7D" sebagai "1W" dan menolak selang tersuai lain, seperti "2M" atau "2D".

Saiz pesanan: peratus, amaun atau kuantiti

ORDER_SIZE memegang nombor dan ORDER_SIZE_TYPE menyatakan maksudnya. Bersama-sama ia mengisi medan Order size pada tab Properties TradingView.

strategy.percent_of_equity

Peratus daripada ekuiti semasa. 10 bermaksud 10% ekuiti bagi setiap dagangan.

strategy.cash

Amaun dalam mata wang strategi. 1000 bermaksud 1,000 USD bagi setiap dagangan.

strategy.fixed

Bilangan kontrak, saham atau syiling. 0.5 bermaksud 0.5 BTC bagi setiap dagangan.

qty = …

Saiz lalai hanya digunakan untuk pesanan tanpa qty sendiri. Kemasukan dengan qty = … menggunakan nilai itu.

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

Pemboleh ubah anda sendiri

Simpan tetapan logik strategi anda sendiri dalam blok INPUT SETTINGS yang berasingan. Setiap panggilan input.int(), input.float() atau input.bool() menjadi medan dalam tab Inputs TradingView, jadi anda boleh melarasnya tanpa mengedit kod.

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)
↓Muat turun templat .pine boleh diedit4 KB · Pine Script v6