آواتار محمدرضا فلاحتی توسط: تاریخ انتشار: 5 بهمن 1403 0 دیدگاه

نسخه جدید زبان برنامه‌نویسی Pine Script v4 را ملاقات کنید! این نسخه شامل بسیاری از ویژگی‌های جدید است. ما ساختار زبان را بهبود بخشیدیم و تعدادی از مشکلات را رفع کردیم. اما ویژگی مهم و انتظار رفته، پشتیبانی از اشیاء ترسیمی است.

در این پست وبلاگی به‌طور مختصر به ویژگی‌های جدید اشاره خواهیم کرد. برای یادگیری جزئیات بیشتر، لطفاً مستندات و راهنمای مرجع را مطالعه کنید (قابل توجه است که می‌توانید به‌طور مستقیم به بخش توصیف اشیاء ترسیمی بروید).

شیء ترسیمی برچسب

تابع label.new به شما امکان می‌دهد تا برچسب‌هایی را بر روی نمودار ترسیم کنید که شامل متن دلخواه است. در اینجا مثالی از یک اسکریپت که برچسبی حاوی قیمت بسته شدن آخرین میله را ترسیم می‌کند، مشاهده می‌کنید:  

//@version=4
study("قیمت آخرین میله", overlay=true)

l = label.new(bar_index, na, 'قیمت آخرین: '+tostring(close), 
  color=close >= open ? color.green : color.red, 
  textcolor=color.white,
  style=label.style_labeldown, yloc=yloc.abovebar)

label.delete(l[1])

آتو تی کریپتو
شما می‌توانید شیء برچسب را بعد از ایجاد آن با استفاده از خانواده توابع label.* ویرایش و حذف کنید. در اینجا مثال دیگری از یک اسکریپت پیچیده‌تر با استفاده از برچسب — نقاط پیوت بالا/پایین را مشاهده می‌کنید.

شیء ترسیمی خط

تابع line.new به شما اجازه می‌دهد خطوطی را بر روی نمودار ترسیم کنید. در اینجا مثالی از یک اسکریپت ساده که خطی را که بالای میله فعلی و پایین بیستم تاریخی را متصل می‌کند ترسیم می‌کند، مشاهده می‌کنید:   

//@version=4
study("خط", overlay=true)
l = line.new(bar_index, high, bar_index[10], low[10], width = 4)
line.delete(l[1])

برای استفاده رایگان از تریدینگ ویو پرمیوم از چارت آتو تی کریپتو استفاده کنید.آتو تی کریپتو
شیء های خطی را با استفاده از توابع مناسب از خانواده line.* می‌توان ویرایش و حذف کرد. اینجا یک مثال از یک اسکریپت پیچیده‌تر که از اشیای خطی استفاده می‌کند، وجود دارد — Zig Zag.

آموزش استفاده از Bar Replay در قراردادهای جاری در تریدینگ ویو

لطفاً توجه داشته باشید که در حال حاضر می‌توانیم در هر اسکریپت تقریباً 50 تا 55 رسم از یک نوع (برچسب یا خط) را در چارت نمایش دهیم. این یک محدودیت طراحی شده است که برای جلوگیری از استفاده بیش از حد از سرور ایجاد شده است.

انواع داده‌های جدید خط و برچسب به طور قابل توجهی قابلیت‌های Pine Script را افزایش می‌دهند و به شما این امکان را می‌دهند که منطق پیچیده‌ای را در پشت شاخص‌های محبوب در اسکریپت‌های کاربر پیاده‌سازی کنید. مثال‌ها را می‌توانید در مستندات پیدا کنید.

رشته‌های سری

ما اکنون از متغیرهای نوع داده رشته سری پشتیبانی می‌کنیم. در اینجا یک مثال از استفاده از رشته‌های سری در برچسب‌ها آورده شده است:

//@version=4
study("رشته سری", overlay = true)
draw_label(title) =>
    label.new(bar_index, high, text=title)
t = close >= open ? "سبز" : "قرمز"
draw_label(t)

 

کلیدواژه Var

یک متغیر که به طور معمول اعلام می‌شود، در هر محاسبه اسکریپت دوباره اولیه‌سازی می‌شود. این باعث می‌شود که اسکریپت‌ها نیاز به انتشار مقدار قبلی متغیر به‌صورت صریح داشته باشند. کلیدواژه var یک متغیر را اعلام کرده و تنها یک بار آن را اولیه‌سازی می‌کند. این کار باعث می‌شود که مقدار متغیر به‌طور خودکار بین میله‌ها از لحظه اولیه‌سازی یا آخرین انتساب ذخیره شود. در اینجا یک مثال از اسکریپتی که تعداد میله‌های سبز را در چارت می‌شمارد، آورده شده است:

//@version=4
study("اسکریپت من")
var s = 0.0
if close >= open
    s := s + 1
plot(s)

هر بار که شرط close >= open برآورده می‌شود، مقدار متغیر s به یک افزایش می‌یابد. مقدار اولیه می‌تواند هر عبارت ریاضی باشد.

سینتکس اعلام متغیرها با استفاده از کلیدواژه var استفاده از کد زیر را حذف می‌کند: s := nz(s[1], s). اعلام متغیرها با اصلاح‌کننده var می‌تواند در هنگام کار با مفید باشد.

آموزش دریافت اطلاعات مربوط به تقسیم سهام، سود نقدی و درآمد در تریدینگ ویو

برای استفاده رایگان از تریدینگ ویو پرمیوم از چارت آتو تی کریپتو استفاده کنید.

تغییر نام ثوابت، متغیرها و توابع داخلی

در Pine Script v4 تغییرات نام زیر در ثوابت، متغیرها و توابع داخلی اعمال شده است:

  1. ثوابت رنگ (مانند قرمز) به فضای نام color.* منتقل شده‌اند (مثل color.red).
  2. تابع color به color.new تغییر نام داده شده است.
  3. ثوابت انواع ورودی (مثل عدد صحیح) به فضای نام input.* منتقل شده‌اند (مثل input.integer).
  4. ثوابت سبک‌های رسم (مانند هیستوگرام) به فضای نام plot.style_* منتقل شده‌اند (مانند plot.style_histogram).
  5. ثوابت سبک برای تابع hline (مثل استایل نقطه‌ای) به فضای نام hline.style_* منتقل شده‌اند (مانند hline.style_dotted).
  6. ثوابت روزهای هفته (مانند یکشنبه) به فضای نام dayofweek.* منتقل شده‌اند (مثل dayofweek.sunday).
  7. متغیرهای زمان‌بندی چارت فعلی (مانند دوره و درون‌روزی) به فضای نام timeframe.* منتقل شده‌اند (مثل timeframe.period).

برای استفاده رایگان از تریدینگ ویو پرمیوم از چارت آتو تی کریپتو استفاده کنید

“`html
timeframe.isintraday).

  • متغیر interval به timeframe.multiplier تغییر نام داده شده است.
  • متغیر ticker و tickerid به syminfo.ticker و syminfo.tickerid تغییر نام داده شده‌اند.
  • متغیر n که شامل مقدار شاخص نوار است به bar_index تغییر نام داده شده است.
  • دلیل تغییر نام موارد فوق، سازمان‌دهی ابزارهای زبان استاندارد و تسهیل کار با کد است. نام‌های جدید طبق انتساب‌ها تحت پیشوندهای مشترک گروه‌بندی شده‌اند. به عنوان مثال، اگر در ویرایشگر ’color’ را تایپ کنید و Ctrl + Space را فشار دهید، لیستی از همه ثوابت رنگ موجود را خواهید دید.

    اعلام نوع متغیر به‌طور صریح

    در Pine Script v4 دیگر امکان ایجاد متغیرهایی با نوع داده نامشخص در زمان اعلام آنها وجود ندارد (به مقدار na مراجعه کنید). این کار به منظور جلوگیری از مشکلات متعددی که زمانی که نوع متغیر پس از مقداردهی اولیه به na تغییر می‌کند، انجام شده است. از این پس، شما باید نوع آنها را به‌طور صریح با استفاده از کلیدواژه‌ها یا توابع نوع (به عنوان مثال، float) در زمان اعلام متغیرها با مقدار na مشخص کنید:

    //@version=4
    study("NA", overlay=true)
    float a = na
    a := if close >= open
        high
    else
        low
    plot(a)

    نسخه جدید Pine Script v4 را امتحان کنید! برخی از کاربران پیش از این ویژگی‌های جدید را آزمایش کرده و چندین اسکریپت قابل توجه با استفاده از اشکال نوشتند.

    آموزش تغییر اندازه فونت برای سطوح فیبوناچی در تریدینگ ویو

    به عنوان مثال، ریکاردو سانتوس یک سری از اسکریپت‌ها را نوشته است که می‌توانید در زیر ببینید:

    برای استفاده رایگان از تریدینگ ویو پرمیوم از چارت آتو تی کریپتو استفاده کنید
    “`آتو تی کریپتو

    آتو تی کریپتو

    آتو تی کریپتو

    آتو تی کریپتو

    جورج دویک اسکریپت خطوط روند را نوشته است که امکان کشیدن خطوط را نشان می‌دهد.

    آتو تی کریپتو

    امیدواریم این مثال‌ها الهام‌بخش شما باشند! می‌توانید سوالات، مباحث و بازخوردهایتان را در چت ما مطرح کنید. از تمامی اعضای جامعه پین‌اسکریپترها که در تست بتا شرکت کردند و به ما کمک کردند، تشکر می‌کنیم! همچنین می‌توانید سوالات مرتبط با کد را در صفحه استک اورفلو ما بپرسید.

    برای استفاده رایگان از تریدینگ ویو پرمیوم از چارت آتو تی کریپتو استفاده کنید

    دیدگاهتان را بنویسید