Dokumen / Memulai

Memulai

Siapkan PineBag satu kali, lalu siapkan tes pertama Anda dalam beberapa menit.

Laporan portofolio PineBag di sebelah panel samping ekstensi
Ruang kerja PineBag yang sebenarnya: ekstensi mempersiapkan proses sementara laporan lengkap tetap terbuka di sampingnya.

Anda memerlukan tiga hal

Uji coba 5 hari dimulai secara otomatis. Itu tidak memerlukan kartu. Ketersediaan proses dibatasi oleh paket TradingView Anda.

Instal dan buka PineBag

  1. Instal ekstensinya.
    Gunakan tombol instal PineBag. Sematkan ekstensi jika Anda ingin akses cepat.
  2. Buka grafik TradingView.
    Masuk terlebih dahulu, lalu buka pasar dan jangka waktu apa pun yang didukung.
  3. Muat ulang tab grafik.
    Lakukan ini setelah menginstal atau memperbarui PineBag agar grafik dapat terhubung.
  4. Buka PineBag.
    Pilih ikon PineBag. Indikator koneksi berubah menjadi hijau ketika grafik sudah siap.

Panel samping, kontrol demi kontrol

Angka pada antarmuka sebenarnya sesuai dengan penjelasan. Tidak ada apa pun dalam gambar ini yang merupakan tiruan.

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

    Strategi yang dimuat. Klik kartu untuk membukanya di editor; ikon tempat sampah di judul bagian menghapusnya.

  2. 2
    Jalankan ringkasan

    Jangka waktu, modal, ukuran pesanan dan komisi yang akan digunakan.

  3. 3
    Cari

    Membuka pencarian simbol TradingView sehingga Anda dapat menambahkan ticker yang memenuhi syarat bursa.

  4. 4
    Tas fotokopi

    Menyalin setiap ticker, satu EXCHANGE:SYMBOL per baris.

  5. 5
    Kantong tempel

    Menerima baris, koma, titik koma, atau spasi dan mengabaikan duplikat.

  6. 6
    Jelas

    Meminta klik kedua, menyalin ticker, lalu mengosongkan daftar; «Tempel ticker» akan mengembalikannya.

  7. 7
    Tag ticker

    Menampilkan tas saat ini. Gunakan × untuk menghapus satu simbol; tambahkan hingga 500.

  8. 8
    Jalankan backtest

    Memvalidasi pengaturan dan memulai proses portofolio berurutan.

  9. 9
    Laporan

    Simpan 50 laporan terbaru secara lokal dan ekspor JSON atau CSV.

  10. 10
    Hari tersisa

    Active days: 05 — Hari tersisa.

  11. 11
    Dukungan

    Dukungan tersedia untuk permintaan teknis, penagihan, perizinan, dan privasi.

Muat strategi

Editor PineBag asli dengan strategi Pine Script
Editor bawaan menggunakan nomor baris dan penyorotan sintaksis serta menyimpan sumber kerja secara otomatis.
  1. Pilih sumbernya.
    Jatuhkan a .pine file ke dalam Strategi, atau buka Editor dan tempel kodenya.
  2. Perbaiki pesan validasi apa pun.
    Script harus berisi strategy(). PineBag menunjukkan kesalahan yang jelas jika tidak dapat digunakan.
  3. Periksa ringkasannya.
    Konfirmasikan nama skrip, jangka waktu, modal dan ukuran pesanan yang ditunjukkan di atas Jalankan.
Skrip indikator tidak dapat di-backtest. Jika sumber dimulai dengan indicator(), ubah menjadi strategi sebelum menjalankan PineBag.
Siap: koneksi berwarna hijau, ringkasan strategi terlihat dan ticker bag Anda tidak kosong.

Templat strategi

Setiap kolom di tab Properties TradingView sesuai dengan satu argumen strategy(). Simpan nilainya sebagai konstanta bernama di awal skrip: dengan prioritas skrip, setiap ticker diuji dengan asumsi yang sama.

TIMEFRAME

Timeframe

INITIAL_CAPITAL · CURRENCY

Modal awal

ORDER_SIZE · ORDER_SIZE_TYPE

Ukuran order default

PYRAMIDING

Piramida

BAR_MAGNIFIER

Detail bar

CALC_EVERY_TICK · CALC_ON_FILLS

Eksekusi skrip

COMMISSION · COMMISSION_TYPE

Komisi

MARGIN_LONG · MARGIN_SHORT

Leverage long dan short

SLIPPAGE

Slippage

LIMIT_FILL_TICKS

Eksekusi order limit

FILL_ON_BAR_CLOSE

Penundaan eksekusi order

runtime.error()

Menghentikan skrip pada kerangka waktu 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 interval standar TradingView dalam tanda kutip. Interval yang dapat dimuat bergantung pada paket TradingView Anda, sesuai tradingview.com/pricing.

Basic dan lebih tinggi

Hari, minggu, dan bulan.

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

Essential dan lebih tinggi

Menit, jam, dan bar rentang. Menit tidak memakai huruf; satu jam ditulis 60.

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

Premium dan lebih tinggi

Interval berbasis detik.

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

Hanya Ultimate

Interval berbasis 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
Satu minggu ditulis "1W", bukan "7D". PineBag membaca "7D" sebagai "1W" dan menolak interval kustom lainnya, seperti "2M" atau "2D".

Ukuran order: persen, nominal, atau jumlah

ORDER_SIZE berisi angkanya dan ORDER_SIZE_TYPE menentukan artinya. Keduanya mengisi kolom Order size pada tab Properties TradingView.

strategy.percent_of_equity

Persentase dari ekuitas saat ini. 10 berarti 10% ekuitas per trade.

strategy.cash

Nominal dalam mata uang strategi. 1000 berarti 1.000 USD per trade.

strategy.fixed

Jumlah kontrak, saham, atau koin. 0.5 berarti 0,5 BTC per trade.

qty = …

Ukuran default hanya berlaku untuk order tanpa qty sendiri. Entry dengan qty = … memakai nilai tersebut.

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

Variabel Anda sendiri

Simpan pengaturan logika strategi Anda sendiri di blok INPUT SETTINGS terpisah. Setiap panggilan input.int(), input.float() atau input.bool() menjadi kolom di tab Inputs TradingView, sehingga Anda bisa mengubahnya tanpa mengedit kode.

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)
↓Unduh templat .pine yang dapat diedit4 KB · Pine Script v6