شاید برات پیش اومده باشه که وسط تحلیل بخوای یه ایده خاص رو روی چارت پیاده کنی، اما هیچ اندیکاتور آمادهای دقیقاً اون چیزی که توی ذهنت داری رو نشون نده. یا برعکس، کدی رو توی اینترنت پیدا کردی و میخوای روی چارت خودت بندازیش، ولی نمیدونی چطور و کجا باید واردش کنی. دقیقاً همینجاست که پاین ادیتور وارد بازی میشه.
پاین ادیتور (Pine Editor) محیط کدنویسی داخلی تریدینگ ویوئه. بدون نیاز به نصب نرمافزار اضافی، کامپایلر سنگین یا تنظیمات پیچیده، فقط با باز کردن یه تب توی همون مرورگرت میتونی با زبان اختصاصی پاین اسکریپت اندیکاتور و استراتژی بسازی. توی این راهنما، از صفر باز کردن ادیتور تا نوشتن اولین میانگین متحرک ساده و انداختنش روی چارت رو با هم جلو میریم.
باز کردن و آشنایی با محیط پاین ادیتور
برای دسترسی به این بخش، توی نوار پایین صفحه چارت تریدینگ ویو روی دکمه Pine Editor کلیک کن تا پنل ادیتور باز بشه. با کلیک روی آیکون فلش گوشه بالای پنل میتونی اندازهاش رو بزرگتر کنی تا فضای کافی برای خوندن و نوشتن کد داشته باشی.
وقتی برای اولین بار یه اسکریپت جدید باز میکنی، چند خط کد پیشفرض روبهروت قرار میگیره. این تصویر ساختار همون اسکریپت اولیه رو نشون میده:
این پنج خط کد ساده، ساختار اصلی هر اسکریپتی توی پاین ادیتور هستن و هر کدومشون یه وظیفه مشخص دارن:
- خطهای کامنت (توضیحات): خطهایی که با دو تا اسلش یعنی
//شروع میشن، کامنت هستن. پاین ادیتور این خطها رو اجرا نمیکنه و فقط برای نوشتن توضیح، حق نشر یا یادداشت برای خودت یا بقیه برنامهنویسها کاربرد دارن. - خط تعیین ورژن: خط
//@version=6به کامپایلر تریدینگ ویو اعلام میکنه که کد با قوانین نسخه ۶ پاین اسکریپت نوشته شده. برای اینکه بدونی چرا این خط حیاتیه، پیشنهاد میکنم نگاهی به تفاوت ورژنهای پاین اسکریپت بندازی. - تعریف اندیکاتور: دستور
indicator("My script")به پلتفرم میگه که این برنامه یک اندیکاتوره و اسمی که توی پرانتز نوشتی، بالای چارت نمایش داده میشه. - دستور رسم نمودار: تابع
plot(close)سادهترین شکل رسم خطه. این دستور قیمت بسته شدن هر کندل رو میگیره و یه خط پیوسته روی چارت میکشه؛ همون چیزی که توی مفهوم سورس اندیکاتورها مفصل در موردش حرف زدیم. - دکمه اضافه کردن به چارت: بعد از نوشتن کد، دکمه Add to chart بالای پنل رو میزنی تا اسکریپت ذخیره بشه و خط روی چارت قیمت ظاهر بشه.
اگر با منوهای عمومی پلتفرم هم آشنا نیستی، میتونی آموزش اضافه کردن اندیکاتور در تریدینگ ویو رو ببینی تا تفاوت اسکریپتهای پیشفرض و کدهای شخصی رو بهتر درک کنی.
دکمههای مهم نوار ابزار پاین ادیتور
بالای پنجره کدنویسی چند دکمه اصلی وجود داره که توی کار روزمره مدام باهاشون سر و کار داری:
- Open: برای باز کردن اسکریپتهای ذخیرهشده قبلی، باز کردن سورس کدهای آماده یا ساخت یک فایل جدید خالی.
- Save: ذخیره کردن تغییرات کد؛ اگه کد رو هنوز ذخیره نکرده باشی، یه علامت ستاره کنار اسمش میبینی.
- Add to chart: کامپایل کردن کد و فرستادن مستقیم اون به چارت فعلی.
- Publish Script: وقتی اندیکاتورت کامل شد و خواستی اون رو با جامعه تریدرها به اشتراک بذاری، از این دکمه استفاده میکنی.
- Console (کنسول خطا): اگه جایی از کدت غلط املایی یا منطقی داشته باشه، این تب پایین ادیتور باز میشه و دقیقاً شماره خط و نوع خطا رو نشون میده.
ساخت اولین اندیکاتور: میانگین متحرک ساده (SMA)
حالا که محیط رو شناختی، بیا با هم یه اندیکاتور واقعی بسازیم. میخوایم یه میانگین متحرک ساده ۲۰ دورهای با خط نارنجی بسازیم. تصویر زیر کد و نتیجه اجرای اون رو روی چارت نشون میده:
کد کامل این اندیکاتور رو میتونی ببینی و توی ادیتور خودت کپی کنی:
//@version=6
indicator("My First SMA", overlay = true)
// ورودی طول دوره
len = input.int(20, "SMA Length", minval = 1)
// محاسبه میانگین متحرک
mySma = ta.sma(close, len)
// رسم خط روی چارت
plot(mySma, color = color.orange, linewidth = 2, title = "SMA Line")
بیایم خط به خط این کد رو با هم بررسی کنیم تا ببینی چقدر منطقش سرراسته:
- گزینه overlay = true: این عبارت توی خط دوم مشخص میکنه که خط میانگین متحرک باید مستقیماً روی خود کندلهای قیمت رسم بشه. اگه این عبارت رو ننویسی، اندیکاتور توی یه پنل جداگونه زیر چارت باز میشه که برای اسیلاتورها مناسبه نه برای ابزارهای روندی مثل میانگین متحرک ساده SMA.
- دستور input.int: به جای اینکه عدد ۲۰ رو ثابت توی کد قفل کنیم، یه ورودی عددی ساختیم. این کار باعث میشه بعداً از پنجره تنظیمات چارت بتونی بدون دست زدن به کد، دوره رو تغییر بدی.
- تابع ta.sma: این تابع داخلی دو تا ورودی میگیره؛ سورس قیمت (که اینجا قیمت بسته شدن کندله) و طول دوره (که همون متغیر len هست). خروجی این محاسبه داخل متغیر mySma ذخیره میشه.
- تنظیمات رنگ و ضخامت: توی تابع plot گفتیم مقدار mySma رو با رنگ نارنجی و ضخامت ۲ پیکسل رسم کن تا روی چارت کاملاً واضح و چشمنواز باشه.
وقتی کد خطا میده چیکار کنیم؟
نگران ارورها نباش؛ حتی برنامهنویسهای حرفهای هم با خطا روبهرو میشن. پاین ادیتور به حروف بزرگ و کوچک حساسه؛ یعنی نوشتن Plot به جای plot خطا ایجاد میکنه. علاوه بر این، فاصلهها و تورفتگیها (Indentation) توی پاین اسکریپت اهمیت دارن و داخل بلوکهای شرطی باید از تب یا ۴ فاصله استفاده کنی. اگر هم اسکریپتی از اینترنت کپی کردی و دیدی خطاهایی مثل حذف توابع قدیمی میده، میتونی آموزش آپدیت کدهای قدیمی پاین اسکریپت رو بخونی تا با چند کلیک به ورژن جدید تبدیلش کنی.
تمرین عملی روی چارت
چکلیست شروع کار با پاین ادیتور
موقع شروع برنامهنویسی و ادیت کدهات، همیشه این چکلیست رو گوشه ذهنت داشته باش:
- [ ] آیا همیشه از نسخه آخر پاین اسکریپت (//@version=5 یا 6) استفاده میکنی؟
- [ ] آیا بعد از تغییر کدهای یک اندیکاتور، ابتدا دکمه Save و سپس Add to Chart را کلیک میکنی؟
- [ ] آیا خطاهای کنسول پایین پاین ادیتور را برای رفع ارورها چک میکنی؟
- [ ] آیا کدهای آماده اندیکاتورهای استاندارد را برای تمرین و یادگیری بررسی کردهای؟
برای یادگیری کدنویسی، بهترین راه اینه که خودت دستبهکار بشی. همین کد چند خطی بالا رو میتونی توی پاین ادیتور چارت تریدرفا هم بنویسی و با دکمهی «افزودن به چارت» نتیجهاش رو ببینی (از هر دو نسخهی ۵ و ۶ هم پشتیبانی میکنه). بعد سعی کن رنگ خط رو تغییر بدی یا عدد دوره رو عوض کنی؛ این اولین قدم محکم تو برای ساخت ابزارهای معاملاتی اختصاصی خودته.
برای بیان دیدگاه وارد شوید
با حساب تریدرفا میتوانید امتیاز بدهید، دیدگاه بنویسید و به پرسشهای دیگران پاسخ دهید. ثبتنام چند ثانیه بیشتر طول نمیکشد.
هنوز نظری ثبت نشده
اولین نفری باشید که دیدگاهش را مینویسد.