Dokümanlar / Başlarken

Başlarken

PineBag'i bir kez kurun, ardından birkaç dakika içinde ilk testinizi hazırlayın.

PineBag portföy raporu, uzatma yan panelinin yanında
Gerçek bir PineBag çalışma alanı: Uzantı, raporun tamamı yanında açık kalırken çalışmayı hazırlar.

Üç şeye ihtiyacınız var

5 günlük deneme otomatik olarak başlar. Kart gerektirmez. Çalıştırma kullanılabilirliği TradingView planınız ile sınırlıdır.

PineBag'i kurun ve açın

  1. Uzantıyı yükleyin.
    PineBag yükleme düğmesini kullanın. Hızlı erişim istiyorsanız uzantıyı sabitleyin.
  2. Bir TradingView grafiği açın.
    Önce oturum açın, ardından desteklenen herhangi bir piyasayı ve zaman dilimini açın.
  3. Grafik sekmesini yeniden yükleyin.
    Grafiğin bağlanabilmesi için PineBag'i kurduktan veya güncelledikten sonra bunu yapın.
  4. PineBag'i açın.
    PineBag simgesini seçin. Grafik hazır olduğunda bağlantı göstergesi yeşile döner.

Yan panel, kontrol ile kontrol

Gerçek arayüzdeki rakamlar açıklamalarla örtüşmektedir. Bu görseldeki hiçbir şey maket değildir.

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

    Yüklenen strateji. Düzenleyicide açmak için karta tıklayın; bölüm başlığındaki çöp kutusu onu kaldırır.

  2. 2
    Çalıştırma özeti

    Kullanılacak zaman dilimi, sermaye, emir büyüklüğü ve komisyon.

  3. 3
    Ara

    TradingView sembol aramasını açar, böylece borsaya uygun bir hisse senedi ekleyebilirsiniz.

  4. 4
    Kopyalama çantası

    Her bir onay işaretini kopyalar, bir tane EXCHANGE:SYMBOL satır başına.

  5. 5
    Yapıştırma torbası

    Satırları, virgülleri, noktalı virgülleri veya boşlukları kabul eder ve kopyaları yok sayar.

  6. 6
    Temizle

    İkinci bir tıklama ister, sembolleri kopyalar ve ardından listeyi temizler; «Sembolleri yapıştır» listeyi geri getirir.

  7. 7
    Ticker etiketleri

    Mevcut çantayı gösterir. Bir sembolü kaldırmak için × tuşunu kullanın; 500'e kadar ekleyin.

  8. 8
    Backtest başlat

    Kurulumu doğrular ve sıralı portföy çalışmasını başlatır.

  9. 9
    Raporlar

    En son 50 raporu yerel olarak kaydedin ve JSON veya CSV'yi dışa aktarın.

  10. 10
    Kalan gün sayısı

    Active days: 05 — Kalan gün sayısı.

  11. 11
    Destek

    Teknik, faturalandırma, lisanslama ve gizlilik talepleri için destek mevcuttur.

Bir strateji yükleyin

Pine Script stratejisine sahip gerçek PineBag editörü
Yerleşik düzenleyici, satır numaralarını ve sözdizimi vurgulamayı kullanır ve çalışma kaynağını otomatik olarak kaydeder.
  1. Kaynağı seçin.
    Bir bırakın .pine dosyasını Strateji'ye ekleyin veya Editör'ü açıp kodu yapıştırın.
  2. Herhangi bir doğrulama mesajını düzeltin.
    Komut dosyası şunları içermelidir: strategy(). PineBag kullanılamıyorsa açık bir hata gösterir.
  3. Özeti kontrol edin.
    Çalıştır'ın üzerinde gösterilen komut dosyası adını, zaman dilimini, sermayeyi ve emir boyutunu onaylayın.
Gösterge komut dosyaları geriye dönük olarak test edilemez. Kaynak şununla başlıyorsa: indicator(), PineBag'i çalıştırmadan önce bunu bir stratejiye dönüştürün.
Hazır: bağlantı yeşil, strateji özeti görünüyor ve bilet çantanız boş değil.

Strateji şablonu

TradingView Properties sekmesindeki her alan bir strategy() argümanına karşılık gelir. Değerleri komut dosyasının başında adlandırılmış sabitler olarak tutun: komut dosyası önceliğiyle her hisse aynı varsayımlarla test edilir.

TIMEFRAME

Zaman dilimi

INITIAL_CAPITAL · CURRENCY

Başlangıç sermayesi

ORDER_SIZE · ORDER_SIZE_TYPE

Varsayılan emir büyüklüğü

PYRAMIDING

Piramitleme

BAR_MAGNIFIER

Bar detayı

CALC_EVERY_TICK · CALC_ON_FILLS

Komut dosyası yürütme

COMMISSION · COMMISSION_TYPE

Komisyon

MARGIN_LONG · MARGIN_SHORT

Long ve short kaldıraç

SLIPPAGE

Kayma

LIMIT_FILL_TICKS

Limit emir gerçekleşmesi

FILL_ON_BAR_CLOSE

Emir gerçekleşme gecikmesi

runtime.error()

Başka herhangi bir zaman diliminde komut dosyasını durdurur.

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 değerleri

TradingView'in standart aralıklarından birini tırnak içinde yazın. Hangilerinin yükleneceği, tradingview.com/pricing sayfasında belirtildiği gibi TradingView planınıza bağlıdır.

Basic ve üzeri

Günler, haftalar ve aylar.

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

Essential ve üzeri

Dakikalar, saatler ve aralık çubukları. Dakikaların harfi yoktur; bir saat 60'tır.

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

Premium ve üzeri

Saniye bazlı aralıklar.

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

Yalnızca Ultimate

Tik bazlı aralıklar.

"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
Bir hafta "7D" değil, "1W" olarak yazılır. PineBag "7D" değerini "1W" olarak okur ve "2M" ya da "2D" gibi diğer özel aralıkları reddeder.

Emir büyüklüğü: yüzde, tutar veya miktar

ORDER_SIZE sayıyı, ORDER_SIZE_TYPE ise bu sayının ne anlama geldiğini belirtir. İkisi birlikte TradingView Properties sekmesindeki Order size alanını doldurur.

strategy.percent_of_equity

Mevcut sermayenin yüzdesi. 10, işlem başına sermayenin %10'u demektir.

strategy.cash

Strateji para birimi cinsinden bir tutar. 1000, işlem başına 1.000 USD demektir.

strategy.fixed

Kontrat, hisse veya coin sayısı. 0.5, işlem başına 0,5 BTC demektir.

qty = …

Varsayılan büyüklük yalnızca kendi qty değeri olmayan emirlere uygulanır. qty = … içeren bir giriş bunun yerine o değeri kullanır.

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

Kendi değişkenleriniz

Kendi strateji mantığınızın ayarlarını ayrı bir INPUT SETTINGS bloğunda tutun. Her input.int(), input.float() veya input.bool() çağrısı TradingView Inputs sekmesinde bir alana dönüşür; böylece kodu düzenlemeden ayarlayabilirsiniz.

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)
↓Düzenlenebilir .pine şablonunu indirin4 KB · Pine Script v6