เอกสาร / เริ่มต้นใช้งาน

เริ่มต้นใช้งาน

ตั้งค่า PineBag หนึ่งครั้ง จากนั้นเตรียมการทดสอบครั้งแรกภายในไม่กี่นาที

รายงานพอร์ตโฟลิโอ PineBag ถัดจากแผงด้านข้างส่วนขยาย
พื้นที่ทำงาน PineBag ที่แท้จริง: ส่วนขยายเตรียมการรันในขณะที่รายงานฉบับเต็มยังคงเปิดอยู่ข้างๆ

คุณต้องการสามสิ่ง

การทดลองใช้งาน 5 วันจะเริ่มต้นโดยอัตโนมัติ มันไม่จำเป็นต้องมีการ์ด ความพร้อมใช้งานของการรันถูกจำกัดโดยแผน TradingView ของคุณ

ติดตั้งและเปิด PineBag

  1. ติดตั้งส่วนขยาย
    ใช้ปุ่มติดตั้ง PineBag ปักหมุดส่วนขยายหากคุณต้องการเข้าถึงอย่างรวดเร็ว
  2. เปิดแผนภูมิ TradingView
    ลงชื่อเข้าใช้ก่อน จากนั้นเปิดตลาดและกรอบเวลาที่รองรับ
  3. โหลดแท็บแผนภูมิอีกครั้ง
    ทำสิ่งนี้หลังจากติดตั้งหรืออัปเดต PineBag เพื่อให้แผนภูมิสามารถเชื่อมต่อได้
  4. เปิด PineBag
    เลือกไอคอน PineBag ตัวบ่งชี้การเชื่อมต่อจะเปลี่ยนเป็นสีเขียวเมื่อแผนภูมิพร้อม

แผงด้านข้างควบคุมด้วยคอนโทรล

ตัวเลขบนอินเทอร์เฟซจริงตรงกับคำอธิบาย ไม่มีสิ่งใดในภาพนี้ที่เป็นการล้อเลียน

1 2 3 4 5 6 7 8 9 10 11
  1. 1
    กลยุทธ์

    กลยุทธ์ที่โหลดไว้ คลิกการ์ดเพื่อเปิดในเอดิเตอร์ ไอคอนถังขยะที่หัวข้อส่วนจะนำกลยุทธ์ออก

  2. 2
    สรุปการรัน

    กรอบเวลา เงินทุน ขนาดคำสั่งซื้อขาย และค่าคอมมิชชันที่จะใช้

  3. 3
    ค้นหา

    เปิดการค้นหาสัญลักษณ์ TradingView เพื่อให้คุณสามารถเพิ่มทิกเกอร์ที่ผ่านการรับรองการแลกเปลี่ยนได้

  4. 4
    กระเป๋าก๊อปปี้

    คัดลอกทุกทิกเกอร์ หนึ่งตัว EXCHANGE:SYMBOL ต่อบรรทัด

  5. 5
    ถุงแปะ

    ยอมรับบรรทัด จุลภาค อัฒภาค หรือช่องว่าง และละเว้นรายการที่ซ้ำกัน

  6. 6
    เคลียร์

    ต้องคลิกซ้ำอีกครั้ง คัดลอกสัญลักษณ์ แล้วล้างรายการ กด วางสัญลักษณ์ เพื่อนำกลับมา

  7. 7
    แท็กทิกเกอร์

    แสดงถุงปัจจุบัน ใช้ × เพื่อลบหนึ่งสัญลักษณ์ เพิ่มเป็น 500

  8. 8
    เริ่ม backtest

    ตรวจสอบการตั้งค่าและเริ่มการรันพอร์ตโฟลิโอตามลำดับ

  9. 9
    รายงาน

    บันทึกรายงานล่าสุด 50 รายงานในเครื่องและส่งออก JSON หรือ CSV

  10. 10
    วันที่เหลือ

    Active days: 05 — วันที่เหลือ.

  11. 11
    ฝ่ายสนับสนุน

    มีการสนับสนุนสำหรับคำขอทางเทคนิค การเรียกเก็บเงิน ใบอนุญาต และความเป็นส่วนตัว

โหลดกลยุทธ์

โปรแกรมแก้ไข PineBag จริงพร้อมกลยุทธ์ Pine Script
ตัวแก้ไขในตัวใช้หมายเลขบรรทัดและการเน้นไวยากรณ์และบันทึกแหล่งที่มาการทำงานโดยอัตโนมัติ
  1. เลือกแหล่งที่มา
    ดร็อปก .pine ไฟล์ลงใน Strategy หรือเปิด Editor แล้ววางโค้ด
  2. แก้ไขข้อความตรวจสอบความถูกต้อง
    สคริปต์ต้องมี strategy(). PineBag จะแสดงข้อผิดพลาดที่ชัดเจนหากไม่สามารถใช้งานได้
  3. ตรวจสอบสรุป.
    ยืนยันชื่อสคริปต์ กรอบเวลา เงินทุน และขนาดคำสั่งซื้อขายที่แสดงด้านบน Run
สคริปต์ตัวบ่งชี้ไม่สามารถทดสอบย้อนหลังได้ ถ้าต้นทางขึ้นต้นด้วย indicator()แปลงเป็นกลยุทธ์ก่อนที่จะรัน PineBag
พร้อม: การเชื่อมต่อเป็นสีเขียว สรุปกลยุทธ์สามารถมองเห็นได้ และกระเป๋าเงินของคุณไม่ว่างเปล่า

เทมเพลตกลยุทธ์

ทุกช่องในแท็บ Properties ของ TradingView ตรงกับอาร์กิวเมนต์ของ strategy() เก็บค่าไว้เป็นค่าคงที่แบบมีชื่อที่ส่วนบนของสคริปต์: เมื่อใช้ลำดับความสำคัญของสคริปต์ ทิกเกอร์ทุกตัวจะทดสอบด้วยสมมติฐานเดียวกัน

TIMEFRAME

ไทม์เฟรม

INITIAL_CAPITAL · CURRENCY

เงินทุนเริ่มต้น

ORDER_SIZE · ORDER_SIZE_TYPE

ขนาดคำสั่งเริ่มต้น

PYRAMIDING

พีระมิดดิ้ง

BAR_MAGNIFIER

รายละเอียดแท่งเทียน

CALC_EVERY_TICK · CALC_ON_FILLS

การรันสคริปต์

COMMISSION · COMMISSION_TYPE

ค่าคอมมิชชั่น

MARGIN_LONG · MARGIN_SHORT

เลเวอเรจฝั่ง long และ short

SLIPPAGE

สลิปเพจ

LIMIT_FILL_TICKS

การจับคู่คำสั่งลิมิต

FILL_ON_BAR_CLOSE

ความหน่วงในการจับคู่คำสั่ง

runtime.error()

หยุดสคริปต์เมื่อใช้ไทม์เฟรมอื่น

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

ใส่ช่วงเวลามาตรฐานของ TradingView หนึ่งค่าในเครื่องหมายคำพูด ช่วงเวลาที่โหลดได้ขึ้นอยู่กับแพ็กเกจ TradingView ของคุณ ตามที่ระบุใน tradingview.com/pricing

Basic ขึ้นไป

วัน สัปดาห์ และเดือน

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

Essential ขึ้นไป

นาที ชั่วโมง และแท่งช่วงราคา นาทีไม่มีตัวอักษรต่อท้าย หนึ่งชั่วโมงคือ 60

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

Premium ขึ้นไป

ช่วงเวลาระดับวินาที

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

Ultimate เท่านั้น

ช่วงเวลาแบบ 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
หนึ่งสัปดาห์คือ "1W" ไม่ใช่ "7D" PineBag อ่าน "7D" เป็น "1W" และปฏิเสธช่วงเวลาแบบกำหนดเองอื่น ๆ เช่น "2M" หรือ "2D"

ขนาดคำสั่ง: เปอร์เซ็นต์ จำนวนเงิน หรือจำนวนหน่วย

ORDER_SIZE เก็บตัวเลข และ ORDER_SIZE_TYPE บอกว่าตัวเลขนั้นหมายถึงอะไร ทั้งสองค่าจะใส่ลงในช่อง Order size ของแท็บ Properties ใน TradingView

strategy.percent_of_equity

เปอร์เซ็นต์ของเงินทุนปัจจุบัน 10 หมายถึง 10% ของเงินทุนต่อการเทรด

strategy.cash

จำนวนเงินในสกุลเงินของกลยุทธ์ 1000 หมายถึง 1,000 USD ต่อการเทรด

strategy.fixed

จำนวนสัญญา หุ้น หรือเหรียญ 0.5 หมายถึง 0.5 BTC ต่อการเทรด

qty = …

ขนาดเริ่มต้นใช้กับคำสั่งที่ไม่มี qty ของตัวเองเท่านั้น การเข้าออเดอร์ที่มี qty = … จะใช้ค่านั้นแทน

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

ตัวแปรของคุณเอง

เก็บการตั้งค่าตรรกะกลยุทธ์ของคุณเองไว้ในบล็อก INPUT SETTINGS แยกต่างหาก การเรียก input.int(), input.float() หรือ input.bool() แต่ละครั้งจะกลายเป็นช่องในแท็บ Inputs ของ TradingView จึงปรับได้โดยไม่ต้องแก้โค้ด

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)
↓ดาวน์โหลดเทมเพลต .pine ที่แก้ไขได้4 KB · Pine Script v6