آموزش ساخت اندیکاتور در تریدینگ ویو به صورت تصویری
استفاده از ابزارهای معاملاتی، مخصوصاً اندیکاتور (Indicator)، کمک میکند در تحلیل بازار موفق عمل کنید و به سود برسید. شناسایی عوامل موثر بر معاملات ارز دیجیتال و تعیین یک استراتژی منسجم میتواند به موفقیت شما در دنیای کریپتوکارنسی کمک کند. اما پرسش اصلی اینجاست که آیا میتوان آنها را با توجه به اهداف شخصی خود ساخت و یا اصطلاحا سفارشیسازی کرد؟ در این مقاله از والکس میخواهیم به سراغ ساخت اندیکاتورهای تحلیل تکنیکال در پلتفرم تریدینگ ویو (Tradingview) برویم. برای شروع لازم است که با آموزش تریدینگ ویو، مفهوم اندیکاتور و تحلیل آشنا باشید.
زبان برنامهنویسی پاین اسکریپت (Pinescript)، زبان اختصاصی پلتفرم تریدینگ ویو است. از این زبان برنامهنویسی برای ایجاد استراتژیها، شاخصها، هشدارها و نمودارهای تحلیلی در پلتفرمهای معاملاتی استفاده میشود. نکته جالب اینجاست که هر کاربری میتواند با تکیه بر Pinescript، برای ساخت اندیکاتورهای تحلیل تکنیکال گام بردارد. اما چطور و با چه راهکارهایی؟ با ما در این مقاله همراه شوید.
چرا کاربران باید نحوه ساخت اندیکاتورهای تحلیل تکنیکال را بدانند؟
اندیکاتورها، نوعی شاخص هستند که کاربران از آنها برای تعیین استراتژی استفاده میکنند. عمده کاربرد آنها شناسایی نقاط ورود و خروج در معاملات تجاری از جمله ارزهای دیجیتال است. صدها Indicator در دنیای گسترده پلتفرمهای معاملاتی وجود دارند و عدم آشنایی با آنها باعث ناکارآمدی در معاملات میشود. کاربران یا معاملهگران باید با ساخت اندیکاتورهای تحلیل تکنیکال آشنا باشند تا با توجه به شاخصهای مدنظر خودشان به سود برسد.
این ابزارها معمولاً بهعنوان بخشی اساسی از تحلیل فنی محسوب میشوند و برای شناسایی خط روند و پیشبینی معاملاتی مورد استفاده قرار میگیرند. آنها اغلب روی دادههای نمودار قیمت قرار میگیرند تا قیمت آتی آن را پیشبینی کنند. کاربر میتواند با همین ابزارهای معاملاتی، دریابد که ارز دیجیتال مورد نظر به کدام سمت حرکت میکند و اینکه قیمت در چه شرایطی در حال حرکت است: اشباع فروش (Oversold) و یا اشباع خرید (Overbought)؟ کاربران و معاملهگران از اندیکاتورهای تحلیل تکنیکال در موارد مختلفی استفاده میکنند که مهمترینشان عبارتند از:
- تولید سیگنال یا اصطلاحاً سیگنالگیری با استفاده از Indicator، نوسانگر و انواع الگوهای نموداری
- برخورداری از ویژگیهای فنی توسعهیافته برای کسب نتایج بهتر در معاملات
- پیشبینی تحرکات قیمتی و رویدادهای آتی با استفاده از دادههای تاریخی قیمت
- پیشبینی سطوح قیمت آتی
- تعیین بهترین و مناسبترین استراتژی برای انجام معاملات روزانه (Intraday Trading)
زبان برنامهنویسی Pinescript و ساخت یک اندیکاتور جدید
Indicatorها پس از ساخته شدن در محیط پلتفرم معاملاتی تریدینگ ویو، مثل یک افزونه به نمودارهای تحلیل تکنیکال اضافه میشوند. کاربران هم میتوانند اندیکاتورهای مورد نظرشان را با استفاده از یک کد با عنوان Pinescript که زبان برنامهنویسی مخصوص Tradingview است، خلق کنند.
زبان برنامهنویسی Pinescript از این لحاظ منحصربهفرد است که میتواند بارها و بارها روی هر کندل در نمودار تکرار شود و نقاط مورد نظر را در بازههای زمانی مختلف نشان دهد. بنابراین، ممکن است که یک نمودار قیمتی حدود ۳۰۰ کندل داشته باشد و این بدان معناست که میتوان از کد Pinescrip برای ایجاد ۳۰۰ اندیکاتور در آن استفاده کرد. برای درک بهتر سازوکار این کد اختصاصی، به مثالی که در بخش بعدی بررسی میکنیم، توجه کنید.
نحوه ساخت اندیکاتور پایه با Pinescript
کد اختصاصی زبان Pinescript برای ساختن پایه یا Basic Indicator عبارت است از:
//@version=5 indicator("My Script", overlay=true) plot(ta.sma(close,21))
در نمودار بالا، خط اول نشان میدهد که ما در حال استفاده از آخرین نسخه کد یعنی Pinescript 5 هستیم. خط دوم به کد Pinescript یک عنوان داده و نشان میدهد که اندیکاتور باید بالای نمودار قرار داشته باشد. نهایتاً خط SMA 3 یا همان میانگین متحرک ساده، ۲۱ نقطه از تحرکات قیمتی آتی را ترسیم میکند.
برای اجرای این کد در تریدینگ ویو، روی گزینه Pine Editor در پایین صفحه کاربری خود کلیک کنید و سپس کدی را که در ابتدا به آن اشاره کردیم، در آن قرار دهید.
حالا روی گزینه Add to chart که در سمت راست و بالای بخش Editor است، کلیک کنید. توجه داشته باشید که در صورت تغییر وضعیت دنیای کریپتوکارنسی و یا بازههای زمانی، اندیکاتور هم تغییر میکند. بنابراین، در نمودار بالا ما به میانگین متحرک ساده ۲۱ روزه نگاه میکنیم.
چرا استفاده از نسخه ۵ کد Pinescript بهتر است؟
آخرین نسخه کد Pinescript (نسخه پنجم)، در سال ۲۰۲۱ منتشر شد و در اصل، نسخه بهبود یافته ورژن قبلی یعنی Pinescript 4 بود. یکی از تغییرات مهم آن، قابلیت اضافه کردن فاصله نام یا Namespacing است که باعث سازماندهی توابع داخلی (Internal Functions) و دستهبندی انواع مدارک (Document) میشود.
اگر کد Pinescript نسخه ۴ را دارید، میتوانید آن را آپدیت کنید. برای این کار روی گزینه Pine Editor و سپس روی منوی ۳ نقطهای آن کلیک کنید. حالا وارد بخش Publish Script شوید و نسخه قدیمی را با کلیک روی Convert to v5، بهروزرسانی کنید.
یکی دیگر از قابلیتهای مهم نسخه ۵، امکان اضافه کردن کتابخانههای مختلف برای زبانهای برنامهنویسی است. این قابلیت به کاربران اجازه میدهد تا از کدهای متنوع برای خلق Indicator و استراتژیها استفاده کنند. جالب است بدانید که یک لیست از کتابخانههای رایگان برای ساخت اندیکاتورهای تحلیل تکنیکال در این آدرس وجود دارد.
راهنمای گامبهگام ساخت اندیکاتور در تریدینگ ویو
در ادامه به بحث اصلیمان پرداخته و به شما کمک میکنیم تا به سادگی Indicator تحلیل تکنیکال را در تریدینگ ویو ایجاد کنید.
گام اول: حساب کاربری
قدم اول برای ساخت اندیکاتورهای تحلیلی در تریدینگ ویو، ساختن یک حساب کاربری در سایت tradingview.com است. پس از ورود به حساب کاربری، روی گزینه Charts کلیک کنید تا با یک نمودار کاملاً جدید مواجه شوید. در گوشه سمت چپ و بالای صفحه، بخشی با عنوان دارایی فعلی یا Current Assets را خواهید دید که معمولاً برای بیت کوین (BTC) استفاده میشود؛ چرا که بیت کوین نسبت به سایر ارزهای دیجیتال دارای نوسانات بیشتر است.
در پایین صفحه، گزینهای با عنوان Pine Editor وجود دارد که با کلیک روی آن، وارد Pine Script میشوید؛ جایی که قرار است اندیکاتور تحلیل تکنیکال خود را بسازید.
گام دوم: نامگذاری و ذخیرهسازی
گام دوم، Naming and Saving نام دارد و میتوان عنوان اندیکاتور خود را با تغییر متن کدها، تغییر داد. مثل همین تصویر:
ما در این مقاله از والکس، یک مورد جدید میسازیم که قدرت روند فعلی یا Current Trend را نشان میدهد. پس از تغییر عنوان اندیکاتور، ctrl + S را فشار دهید تا نامگذاری، ذخیره شود. در ادامه از شما خواسته میشود که Indicator را مجدداً نامگذاری کنید. این، عنوانی است که بالاتر از همهچیز نشان داده میشود. عنوان اول، فقط در پنجره نمودار نمایش داده میشود و دومی، یک نامگذاری کلی برای اندیکاتور تحلیل تکنیکال است.
گام سوم: ساختن ورودی یا Input
ورودیها شامل اعداد و یا گزینههایی هستند که روی خروجی نمودار تاثیر میگذارند. برای ایجاد این بخش از اندیکاتور جدیدمان، در ابتدا یک متغیر میسازیم و سپس با وارد کردن این کد، آن را برابر با یک ورودی قرار میدهیم:
length = input(14, title=”Di Length”)
فاکتور Length، متغیری است که در ادامه به آن نیاز خواهیم داشت. برای تکمیل Indicator جدیدمان، به دو ورودی دیگر هم نیاز داریم که عبارتند از:
ورودی Smoothing: کد این ورودی برابر با:
smoothing = input(14, title=”Smoothing”)
و یک ضریب برای هموارسازی اندیکاتور ADX محسوب میشود.
ورودی lag: کد این ورود زیر است و در ادامه معنی پیدا میکند.
lag = input(1, title=”Lag”)
هماکنون، ساختار کدهای شما باید مطابق این تصویر باشد:
گام چهارم: اضافه کردن متغیرها (Adding Variables)
متغیرها از مهمترین بخشهای ساختن اندیکاتور تحلیل تکنیکال هستند. با استفاده از متغیرها میتوان مقادیر مربوط به قیمت فعلی، قیمتهای گذشته و با ترکیبی از آنها را بهدست آورد. این شما هستید که متغیرها را انتخاب میکنید و تصمیم میگیرید که چگونه باید آنها را محاسبه کرد. با همه این اوصاف، کد اختصاصی ۳ متغیر بالا (Up)، پایین (Low) و محدوده واقعی یا True Range عبارتند از:
lag = input(1, title=”Lag”)
down = -change (low)
down = -change (low)
گام پنجم: اضافه کردن و محاسبه متغیرهای دیگر
پروسه ساخت اندیکاتورهای تحلیل تکنیکال در تریدینگ ویو، تقریباً تمام شده است و فقط نیاز است که چند متغیر دیگر هم اضافه شوند. اضافه شدن این متغیرها باعث میشود که بتوانیم Indicator خود را با دقت روی نمودار رسم کنیم. این کدها را روی فضای اسکریپت خود کپی کنید تا این گام هم با موفقیت به پایان برسد:
plus = fixnan(100 * rma(up > down and up > 0 ? up : 0, length) / trueRange)
minus = fixnan(100 * rma(down > up and down > 0 ? down : 0, len) / trueRange)
متغیرهای جمع (plus) و تفریق (minus)، روی معاملاتی تنظیم میشوند که به ایجاد اندیکاتور ADX کمک میکنند. برای درک کامل این متغیرها نیاز به وقت بیشتری است، اما این کدها شبیه فرمولهایی هستند که در دبیرستان برای محاسبه سرعت در فیزیک استفاده میشدند. کد اسکریپت دو متغیر نهایی که مورد نیاز هستند، عبارتند از:
sum = plus + minus
adx = 100 * rma(abs(plus — minus) / (sum == 0 ? 1 : sum), smoothing)
گام ششم: اضافه شدن تابع Plot ()
پس از اتمام این مرحله، میتوان اندیکاتور جدید را روی نمودار رسم کرد. برای این کار، باید از تابع plot () استفاده کنیم که یکی از سادهترین قسمتهای ساخت Indicator تحلیل تکنیکال محسوب میشود. با کپی کردن کدهای متغیرهای تابع plot()، اندیکاتور ADX روی نمودار رسم میشود. کدهای اسکریپت تابع plot () عبارتند از:
plot(adx, title=”ADX”, style=line, color=blue)
plot(adx[lag], title=”ADX”, style=line, color=blue)
تمامی کدها (Full Code) در یک نگاه
برای اینکه دسترسی راحتتری به همه کدهای مورد نیاز داشته باشید، لیست کامل کدها را در ادامه برایتان قرار دادهایم:
//@version=3
study(“ADX Cross Indicator”)length = input(14, title=”DI Length”)
smoothing = input(14, title=”ADX Smoothing”)
lag = input(1, title=”Lag”)up = change(high)
down = -change(low)
trueRange = rma(tr, length)plus = fixnan(100 * rma(up >
down and up > 0 ? up : 0, length) / trueRange)
minus = fixnan(100 * rma(down > up and down > 0 ? down : 0, length) / trueRange)sum = plus + minus
adx = 100 * rma(abs(plus — minus) / (sum == 0 ? 1 : sum), smoothing)plot(adx, color=blue, title=”ADX”, style=line)
plot(adx[lag], color=red, title=”ADX”, style=line)
اضافه شدن به نمودار (Add to Chart)
پس از اتمام مراحل بالا لازم است که مطابقت کدهایی که معرفی شدند را بررسی کنید. برای این کار روی گزینه Add to Chart، در سمت راست پایین صفحه کلیک کنید. توجه کنید که شما باید تصویری مثل این نمونه داشته باشید:
ساختن اندیکاتورهای بیشتر، بدون محدودیت
ساخت اندیکاتورهای تحلیل فنی با توجه به انواع شاخصها و نوع معاملاتی که میخواهید انجام دهید، کاری دشوار و پیچیدهای نیست. کافی است که با دنیای تریدینگ ویو آشنا باشید و یکبار دیگر این مقاله را در صرافی والکس مطالعه کنید.
نظرتان در مورد پلتفرمهایی مثل تریدینگ ویو و زبانهای اختصاصی برنامهنویسی چیست؟ دیدگاهتان را در مورد ساختن اندیکاتور برای تحلیل تکنیکال، همینجا برایمان بنویسید.
با سلام… ممنون از مطالب آموزشی شما… آیا شما میتوانید کمک کنید تا چند استراتژی را به صورت اندیکاتور طراحی و شخصی سازی نماییم…؟ هزینه هم پرداخت میشود..
سلام
متاسفانه این کار در فهرست خدمات والکس جا نمیگیرد.
سلام و سپاس بابت مطلب مفیدتان،
دوستان آیا میتوان کدهای اندیکاتورهای موجود در تریدینگ ویو را کپی کرد و به اندیکاتور خودمان اضافه کرد؟
سلام و درود، بسیار متن زیبا و مفیدی رو شاهدبودم،
موفق باشید،
سوال بنده، آیا میشه برای این اندیکاتورهای طراحی شده توسط خودمون، قفل گذاری کرد تا کسی نتونه به اطلاعات داخلش دسترسی داشته باشه، ممنون میشم سریع جواب بدید، درصورت امکان تماس بگیرید تا هماهنگ کنم برای انجام فعالیت و پرداخت هزینه، سپاسگزارم
سلام وقت شما بخیر
ممنون از لطفتون
اندیکاتورهای طراحی شده توسط شما، تا زمانی که پابلیش نشن برای دیگران قابل استفاده نیستن و فقط خودتون میتونید از اندیکاتورها استفاده کنید. کدها برای کسی نمایش داده نمیشه.