نسخه جدید زبان برنامهنویسی 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.
لطفاً توجه داشته باشید که در حال حاضر میتوانیم در هر اسکریپت تقریباً 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 تغییرات نام زیر در ثوابت، متغیرها و توابع داخلی اعمال شده است:
- ثوابت رنگ (مانند قرمز) به فضای نام
color.*
منتقل شدهاند (مثل color.red). - تابع color به color.new تغییر نام داده شده است.
- ثوابت انواع ورودی (مثل عدد صحیح) به فضای نام
input.*
منتقل شدهاند (مثل input.integer). - ثوابت سبکهای رسم (مانند هیستوگرام) به فضای نام
plot.style_*
منتقل شدهاند (مانند plot.style_histogram). - ثوابت سبک برای تابع hline (مثل استایل نقطهای) به فضای نام
hline.style_*
منتقل شدهاند (مانند hline.style_dotted). - ثوابت روزهای هفته (مانند یکشنبه) به فضای نام
dayofweek.*
منتقل شدهاند (مثل dayofweek.sunday). - متغیرهای زمانبندی چارت فعلی (مانند دوره و درونروزی) به فضای نام
timeframe.*
منتقل شدهاند (مثل timeframe.period).
برای استفاده رایگان از تریدینگ ویو پرمیوم از چارت آتو تی کریپتو استفاده کنید
“`html
timeframe.isintraday).
دلیل تغییر نام موارد فوق، سازماندهی ابزارهای زبان استاندارد و تسهیل کار با کد است. نامهای جدید طبق انتسابها تحت پیشوندهای مشترک گروهبندی شدهاند. به عنوان مثال، اگر در ویرایشگر ’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 را امتحان کنید! برخی از کاربران پیش از این ویژگیهای جدید را آزمایش کرده و چندین اسکریپت قابل توجه با استفاده از اشکال نوشتند.
به عنوان مثال، ریکاردو سانتوس یک سری از اسکریپتها را نوشته است که میتوانید در زیر ببینید:
برای استفاده رایگان از تریدینگ ویو پرمیوم از چارت آتو تی کریپتو استفاده کنید
“`
جورج دویک اسکریپت خطوط روند را نوشته است که امکان کشیدن خطوط را نشان میدهد.
امیدواریم این مثالها الهامبخش شما باشند! میتوانید سوالات، مباحث و بازخوردهایتان را در چت ما مطرح کنید. از تمامی اعضای جامعه پیناسکریپترها که در تست بتا شرکت کردند و به ما کمک کردند، تشکر میکنیم! همچنین میتوانید سوالات مرتبط با کد را در صفحه استک اورفلو ما بپرسید.
برای استفاده رایگان از تریدینگ ویو پرمیوم از چارت آتو تی کریپتو استفاده کنید