قم بتصحيح كود Pine Script® الخاص بك باستخدام سجلات Pine

Aug 29, 2023

ارتقِ بتصحيح أخطاء Pine Script® إلى مستوى آخر من خلال دوال log.*()الجديدة خاصتنا، والتي تعرض النص في لوحة Pine Logs الجديدة أثناء تنفيذ النصوص البرمجية. دوال التسجيل الثلاث الجديدة هي:

  • log.error () ينشئ رسائل من نوع “خطأ” معروضة باللون الأحمر.
  • log.info () ينشئ رسائل من نوع “معلومات” معروضة باللون الرمادي.
  • يقومlog.warning () بإنشاء رسائل من نوع “تحذير” معروضة باللون البرتقالي.

يمكنك عرض سجلات Pine عن طريق تحديد “Pine Logs…” من قائمة “المزيد” الخاصة بالمحرر، أو من قائمة “المزيد” الخاصة بالنصوص البرمجية الذي تم تحميله على الرسم الخاص بك إذا كان يستخدم  دوال log.*().

تعمل Pine Logs في كل مكان: على الأعمدة التاريخية وفي الوقت الفعلي وفي وضع إعادة التشغيل. يمكن استدعاء دوال التسجيل من أي نوع من النصوص البرمجية (مؤشر أو إستراتيجية أو مكتبة) ومن أي مكان في النصوص البرمجية، بما في ذلك الكتل المحلية والحلقات ومن داخل request.security () والدوال المماثلة. يمكنك استدعاء دوال التسجيل بطريقتين: باستخدام وسيطة سلسلة فقط، أو استخدام سلسلة تنسيق وقائمة قيم بأسلوب  str.format ().

يجب أن تكون النصوص البرمجية التي تستخدم السجلات عبارة عن نصوص برمجية شخصية؛ لا يمكن للبرامج النصية المنشورة بشكل خاص أو عام إنشاء سجلات، حتى إذا كانت تحتوي على استدعاءات  لدوالlog.*().

يستخدم مثال التعليمة البرمجية التالي جميع دوال التسجيل الثلاث:

//@version=5
indicator("Session change highlighter", overlay = true)

// Inputs
sessionInput = input.session("0800-1700", "Session")
timezone     = input.string("America/New_York", "Timezone")
length       = input.int(10, "Sessions to compare")

//@variable A map of `int` closing time keys and `float` price change values.
var data = map.new<int, float>()
//@variable A map of `string` keys and `color` values for calculating the `highlightColor`.
var colors = map.new<string, color>()

var float sessionOpen    = na
float     relativeChange = na
int       closeTime      = time_close("D", sessionInput, timezone)

// Put (`string`, `color`) pairs into the `colors` map on the first bar.
if barstate.isfirst
    colors.put("Purple", color.new(color.purple, 50))
    colors.put("Orange", color.new(color.orange, 50))
    colors.put("Yellow", color.new(color.yellow, 50))

if not na(closeTime)
    // Update the session's opening price.
    if na(closeTime[1])
        sessionOpen := open

    // Assign a new value to the `closeTime` key in the `data` map.
    data.put(closeTime, math.abs(close - sessionOpen) / sessionOpen)

    //@variable An `array` of price changes from each session in the `data` map.
    sessionHistory = data.values()
    //@variable The number of sessions included in the `data` map.
    dataSize = data.size()

    if dataSize >= length
        //@variable The average price change over `length` sessions.
        avgSessionChange = sessionHistory.slice(dataSize - length, dataSize).avg()
        relativeChange := data.get(closeTime) / avgSessionChange

//@variable Returns a color gradient based on the `relativeChange` using the values in the `colors` map.
highlightColor = switch
    relativeChange <= 1 => color.from_gradient(relativeChange, 0, 1, colors.get("Purple"), colors.get("Orange"))
    =>                     color.from_gradient(relativeChange, 1, 2, colors.get("Orange"), colors.get("Yellow"))

bgcolor(highlightColor, title = "Background highlight")
plot(relativeChange, "Relative Change Ratio", highlightColor, display = display.data_window)

 

يعرض المثال فهرس العمود على كل مائة عمود تاريخي باستخدام رسالة تحذير برتقالية. في الوقت الفعلي، تعرض رسالة خطأ باللون الأحمر لكل عمود جديد، ولكل تحديث في الوقت الفعلي، تقوم بإنشاء رسالة معلومات باللون الرمادي تعرض رقم التحديث  وسعرالإغلاقوالوقت المنقضي منذ آخر تحديث للرسم.

لمشاهدة سجلات Pine قيد التشغيل:

  1. احفظ مثال الكود أعلاه في نص برمجي شخصي وأضفه إلى رسم بسوق نشط.
  2. افتح لوحة “Pine Logs” باستخدام قائمة “المزيد” الخاصة بالمحرر أو قائمة “المزيد” الخاصة بالمؤشر على الرسم البياني.

يوجد طابع زمني يسبق كل إدخال للسجل. إنه وقت فتح العمود للأعمدة التاريخية والوقت الحالي للرسائل في الوقت الفعلي. تظهر الرسائل الأحدث في الجزء السفلي من اللوحة. سيتم عرض آخر 10,000 رسالة فقط للأعمدة التاريخية؛ يتم إلحاق الرسائل في الوقت الفعلي بتلك الرسائل.

يحتوي الجزء العلوي من اللوحة على رموز تسمح لك ببدء/إيقاف التسجيل، وتحديد تاريخ البدء، وتصفية السجلات حسب نوع الرسالة، والبحث في السجلات. يحتوي حقل البحث على قائمة فرعية تسمح لك بمطابقة الحالات والكلمات الكاملة واستخدام regex.

عند تمرير مؤشر الماوس فوق رسالة سجل، تظهر الرموز التي تسمح لك بعرض شفرة المصدر التي أنشأت الرسالة أو الانتقال إلى عمود الرسم المقابل:

 

عندما تستخدم نصوص برمجية متعددة في رسمك السجلات، تحتفظ كل واحدة بمجموعة الرسائل الخاصة بها. يمكنك التبديل بين سجلات كل نص برمجي باستخدام القائمة المنسدلة أعلى جزء Pine Logs:

للبقاء على اطلاع دائم بميزات Pine Script® الجديدة، تابع ملاحظات إصدار دليل المستخدم . يبث حساب  أيضًا تحديثات من Squawk Box تيليغرام، حساب على موقع تويتر، ومن الدردشة العامة  Pine Script® Q&A على TradingView.

نأمل أن تجد هذه الميزة المطلوبة بشدة مفيدة لك، كما يرجى الاستمرار في إرسال ملاحظاتك واقتراحاتك إلينا حتى نتمكن من جعل منصتنا أفضل. صممنا TradingView لتفيدك، ونحن حريصون دائمًا على الاستماع إليك.

فريق TradingView

 

Look first Then leap

تم إنشاء TradingView خصيصًا لك، لذا تأكد من حصولك على أقصى استفادة من خدماتنا الرائعة
فتح الرسم البياني