מסמכים / תחילת העבודה

תחילת העבודה

הגדר את 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
    הרצת בקטסט

    מאמת את ההגדרה ומתחיל את הפעלת הפורטפוליו הרציפה.

  9. 9
    דוחות

    שמור את 50 הדוחות האחרונים באופן מקומי וייצא JSON או CSV.

  10. 10
    ימים נותרו

    Active days: 05 — ימים נותרו.

  11. 11
    תמיכה

    תמיכה זמינה עבור בקשות טכניות, חיוב, רישוי ופרטיות.

טען אסטרטגיה

עורך PineBag אמיתי עם אסטרטגיית Pine Script
העורך המובנה משתמש במספרי שורות ובהדגשת תחביר ושומר את מקור העבודה באופן אוטומטי.
  1. בחר את המקור.
    זרוק א .pine לתוך Strategy, או פתח את Editor והדבק את הקוד.
  2. תקן כל הודעת אימות.
    הסקריפט חייב להכיל strategy(). PineBag מציג שגיאה ברורה אם לא ניתן להשתמש בו.
  3. בדוק את הסיכום.
    אשר את שם הסקריפט, מסגרת הזמן, ההון וגודל ההזמנה המוצגים למעלה.
לא ניתן לבצע בדיקה חוזרת של סקריפטים של מחוון. אם המקור מתחיל עם 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

מינוף לונג ושורט

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 בלבד

אינטרוולים של טיקים.

"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