مراحل ساخت اندیکاتور در تریدینگ ویو
ساخت اندیکاتور در تریدینگ ویو یک مسیر مشخص دارد. ابتدا باید وارد حساب کاربری خود شوید، چارت موردنظر را باز کنید، به Pine Editor بروید، ساختار اولیه کد را بنویسید، ورودیها را تعریف کنید، خروجی را روی نمودار نمایش دهید و سپس اندیکاتور را تست و اصلاح کنید.
راهنمای Pine Script در TradingView:
«Pine Script® is TradingView’s programming language.»
Pine Script زبان برنامهنویسی تریدینگ ویو است.
اگر هنوز آماده نوشتن کد با Pine Script نیستید، میتوانید ابتدا از ابزارهای آماده استفاده کنید و همزمان ساختار اندیکاتورها را بهتر بشناسید. برای شروع، صفحه دانلود اندیکاتور فارکس میتواند گزینههای آمادهای برای بررسی و استفاده در اختیار شما قرار دهد.
مرحله اول: ورود به TradingView و باز کردن چارت
اولین مرحله، ورود به حساب کاربری در TradingView است. بعد از ورود، باید نماد معاملاتی موردنظر خود را جستجو کنید و چارت آن را باز کنید. اگر هنوز با محیط نمودار، ابزارها و تنظیمات پایه این پلتفرم آشنا نیستید، بهتر است پیش از شروع کدنویسی، مقاله آموزش تریدینگ ویو را مطالعه کنید.
مرحله دوم: رفتن به Pine Editor
بعد از باز کردن چارت، در پایین صفحه بخشی با عنوان Pine Editor وجود دارد. این بخش محیط اصلی کدنویسی در تریدینگ ویو است. با کلیک روی آن، میتوانید کد اندیکاتور خود را بنویسید، ذخیره کنید و روی چارت اجرا کنید.
مرحله سوم: نوشتن ساختار اولیه کد با ()indicator
برای شروع ساخت اندیکاتور در Pine Script، ابتدا نسخه زبان را مشخص کنید و سپس با تابع ()indicator اسکریپت را بهعنوان اندیکاتور تعریف کنید:
//@version=6
indicator(title=”My Custom Indicator”, overlay=true)
در این ساختار:
- //@version=6 نسخه Pine Script را مشخص میکند.
- indicator() نشان میدهد اسکریپت شما یک اندیکاتور است.
- title نام اندیکاتور را تعیین میکند.
- overlay=true باعث میشود اندیکاتور روی نمودار قیمت نمایش داده شود. اگر مقدار آن false باشد، اندیکاتور در پنجرهای جداگانه زیر چارت قرار میگیرد.

مرحله چهارم: تعیین overlay برای نمایش اندیکاتور روی چارت
پارامتر overlay یکی از مهمترین تنظیمات اولیه در ساخت اندیکاتور است:
| مقدار overlay | محل نمایش | مناسب برای |
|---|---|---|
| overlay=true | روی نمودار قیمت | میانگین متحرک، باند بولینگر، خطوط حمایت و مقاومت |
| overlay=false | پنجره جداگانه زیر چارت | RSI، MACD، Stochastic و نوسانگرها |
1. اگر مقدار آن true باشد، خروجی اندیکاتور روی نمودار قیمت نمایش داده میشود.
2. اگر مقدار آن false باشد، اندیکاتور در یک پنجره جداگانه زیر چارت قرار میگیرد.

مرحله پنجم: استفاده از input برای تنظیمات اندیکاتور
یکی از مزایای ساخت اندیکاتور در تریدینگ ویو این است که میتوانید تنظیمات قابل تغییر برای کاربر تعریف کنید. این کار با توابع input انجام میشود.
1. برای مثال، اگر بخواهید طول میانگین متحرک توسط کاربر قابل تغییر باشد، میتوانید از input.int استفاده کنید:
length = input.int(20, title=”MA Length”, minval=1)
در این مثال، مقدار پیشفرض ۲۰ است و کاربر نمیتواند عددی کمتر از ۱ انتخاب کند.
2. برای عدد اعشاری هم میتوان از input.float استفاده کرد:
input.float(0.20, title=”Threshold”, minval=0.10, maxval=1, step=0.10)

انواع رایج input در Pine Script عبارتاند از:
- input.int: دریافت عدد صحیح، مثل طول میانگین متحرک
- input.float: دریافت عدد اعشاری، مثل درصد یا آستانه سیگنال
- input.bool: گزینه روشن یا خاموش
- input.color: انتخاب رنگ
- input.source: انتخاب منبع داده، مثل close یا open
- input.string: انتخاب متن یا حالتهای مختلف
مرحله ششم: نمایش خروجی اندیکاتور روی نمودار با plot
بعد از تعریف منطق اندیکاتور، باید خروجی آن را روی نمودار نمایش دهید. تابع ()plot پرکاربردترین روش برای نمایش داده در Pine Script است.
1. ابتدا میانگین متحرک بر اساس قیمت بسته شدن محاسبه شده و سپس با plot() روی نمودار نمایش داده میشود.
maValue = ta.sma(close, length)
plot(maValue, title=”Moving Average”, color=color.blue, linewidth=2)
2. در تابع plot() میتوانید رنگ، ضخامت، عنوان و نوع نمایش خروجی را تنظیم کنید.
3. اگر اندیکاتور چند خروجی داشته باشد، میتوانید برای هر خروجی یک plot() جداگانه تعریف کنید.

نکته مهم این است که فقط دادههایی را روی چارت نمایش دهید که واقعاً به تحلیل کمک میکنند. نمایش بیش از حد خطوط و مقادیر میتواند نمودار را شلوغ کند و خوانایی اندیکاتور را کاهش دهد.
مرحله هفتم: ذخیره، اجرا و بررسی خروجی اندیکاتور
1. بعد از نوشتن کد، باید اسکریپت را ذخیره کنید.
2. سپس با گزینه Add to Chart آن را روی نمودار اجرا کنید. اگر کد خطا نداشته باشد، اندیکاتور روی چارت نمایش داده میشود.

در این مرحله باید خروجی را بررسی کنید و ببینید آیا اندیکاتور همان چیزی را نشان میدهد که انتظار داشتید یا خیر. اگر خروجی با منطق موردنظر هماهنگ نبود، باید کد، ورودیها یا نحوه نمایش را اصلاح کنید.
تست و بررسی خروجی اندیکاتور
بعد از ساخت اندیکاتور در تریدینگ ویو، نباید فقط با مشاهده خروجی روی یک نماد یا یک تایمفریم به آن اعتماد کرد. اندیکاتور باید در شرایط مختلف بازار تست شود تا رفتار آن قابل فهم و قابل اعتمادتر باشد.
- نمادهای مختلف مانند فارکس، طلا، سهام و کریپتو
- تایمفریمهای کوتاهمدت، میانمدت و بلندمدت
- بازارهای رونددار، رنج و پرنوسان
- دورههای تاریخی با حرکتهای شدید یا گپ قیمتی
- مقایسه با اندیکاتورهای مشابه و شناختهشده
هدف از تست این نیست که اندیکاتور همیشه سیگنال درست بدهد؛ چنین چیزی در بازار واقعی وجود ندارد. هدف این است که رفتار اندیکاتور با منطق طراحیشده هماهنگ باشد و خروجی آن در شرایط مختلف قابل تفسیر باشد.
بکتست منطق اندیکاتور با Strategy Tester
یک نکته مهم این است که اندیکاتور بهتنهایی بکتست معاملاتی نمیدهد. اگر بخواهید بررسی کنید که اجرای این منطق در گذشته چه نتیجهای از نظر سود، زیان، نرخ برد یا افت سرمایه داشته است، باید منطق اندیکاتور را به استراتژی تبدیل کنید:
1. ابتدا اندیکاتور ساخته و روی چارت بررسی شود.
2. خروجی اندیکاتور از نظر منطقی و بصری تست شود.
3. استراتژی با تابع ()strategy نوشته میشود.
4. نتیجه در Strategy Tester بررسی شود.
5. در صورت نیاز، پارامترها بهینهسازی شوند.

6. قبل از استفاده واقعی، خروجی در حساب دمو یا پیپر تریدینگ بررسی شود.
دیباگ و خطاگیری در Pine Script
دیباگ کردن بخشی جدانشدنی از ساخت اندیکاتور در تریدینگ ویو است. گاهی کد اصلاً اجرا نمیشود، گاهی اجرا میشود اما خروجی اشتباه است و گاهی در شرایط خاص بازار دچار مشکل میشود.
خطاهای سینتکس
خطاهای سینتکس مربوط به ساختار کد هستند. برای مثال، اشتباه در نام تابع، جا افتادن پرانتز، استفاده نادرست از علامتها یا تایپ اشتباه نام متغیر در این دسته قرار میگیرد.
Pine Editor این خطاها را هنگام نوشتن کد مشخص میکند. رفع این خطاها نسبتا ساده است، چون محل خطا در همان محیط کدنویسی نمایش داده میشود.
خطاهای زمان اجرا
خطاهای زمان اجرا زمانی ظاهر میشوند که کد از نظر نگارشی درست است، اما هنگام اجرا با مشکل روبهرو میشود. برای مثال، استفاده بیش از حد از درخواستهای داده، محاسبات سنگین یا دسترسی به دادهای که در کندل موردنظر وجود ندارد، میتواند باعث خطای زمان اجرا شود.
برای کاهش این خطاها، بهتر است کد را مرحلهبهمرحله توسعه دهید و هر بخش را جداگانه تست کنید.
خطاهای منطقی
خطاهای منطقی سختترین نوع خطا هستند. در این حالت کد بدون پیام خطا اجرا میشود، اما خروجی درست نیست. برای مثال، ممکن است سیگنالها در نقطه اشتباه نمایش داده شوند یا مقدار اندیکاتور با چیزی که انتظار داشتید تفاوت داشته باشد.

تفاوت اندیکاتور و استراتژی در تریدینگ ویو
در Pine Script دو نوع اسکریپت اصلی وجود دارد: اندیکاتور و استراتژی. انتخاب درست بین این دو از همان ابتدای کار مهم است.
| معیار | اندیکاتور | استراتژی |
|---|---|---|
| تابع اصلی | indicator() | strategy() |
| هدف | نمایش داده و سیگنال تحلیلی | شبیهسازی معامله و بررسی عملکرد |
| اجرای معامله فرضی | ندارد | دارد |
| نمایش در Strategy Tester | ندارد | دارد |
| مناسب برای | تحلیل، نمایش سیگنال، هشدار | بکتست، بررسی سود و زیان، ارزیابی قوانین ورود و خروج |
| خروجی اصلی | خط، علامت، رنگ، هشدار | معاملات فرضی، گزارش عملکرد، نتایج آماری |
برای معاملهگرانی که نمیخواهند از ابتدا وارد کدنویسی شوند یا ترجیح میدهند از ابزارهای هوشمندتر برای تحلیل استفاده کنند، بررسی صفحه اندیکاتور هوش مصنوعی تریدینگ ویو میتواند مسیر سادهتری برای شروع باشد.
اتصال اندیکاتور به هشدارها در تریدینگ ویو
یکی از کاربردهای مهم ساخت اندیکاتور در تریدینگ ویو، اتصال آن به سیستم هشدار یا Alert است. هشدارها زمانی مفید هستند که نمیخواهید دائماً چارت را بررسی کنید، اما میخواهید هنگام وقوع یک شرط خاص مطلع شوید.
1. در Pine Script میتوان با استفاده از شرطهای منطقی و تابع ()alertcondition هشدار تعریف کرد.
2. زمانی که قیمت از پایین به بالای میانگین متحرک عبور کند، شرط buySignal فعال میشود و میتوان برای آن Alert ساخت.

هشدارها میتوانند بهصورت پاپآپ، صدا، ایمیل یا نوتیفیکیشن موبایل دریافت شوند. با این حال، هشدار فقط یک اعلان است و نباید بدون بررسی روند، شرایط بازار، مدیریت ریسک و تأییدهای دیگر بهعنوان دستور مستقیم معامله استفاده شود.
محدودیتهای ساخت اندیکاتور در تریدینگ ویو
Pine Script ابزار قدرتمندی برای ساخت اندیکاتور است، اما محدودیتهایی دارد که باید قبل از طراحی ابزارهای پیچیده به آنها توجه کنید. برخی محدودیتها به خود زبان و ساختار فنی مربوط میشوند و برخی دیگر به نوع پلن حساب کاربری در TradingView بستگی دارند.
محدودیتهای فنی
اگر اندیکاتور شما از چند نماد، چند تایمفریم، دادههای خارجی یا محاسبات سنگین استفاده کند، ممکن است با محدودیتهای فنی روبهرو شوید. این محدودیتها میتوانند روی سرعت اجرا، زمان کامپایل یا امکان نمایش خروجی اثر بگذارند. برای کاهش مشکلات فنی:
- فقط دادههایی را درخواست کنید که واقعاً لازم دارید.
- از محاسبات تکراری و غیرضروری پرهیز کنید.
- خروجیهای اضافه را روی چارت نمایش ندهید.
- کد را مرحلهبهمرحله تست کنید.
- ابتدا نسخه ساده اندیکاتور را بسازید و سپس آن را توسعه دهید.
- از پیچیده کردن بیش از حد منطق اندیکاتور خودداری کنید.
محدودیتهای پلن کاربری
امکانات TradingView در پلنهای مختلف متفاوت است. تعداد اندیکاتورهای قابل استفاده روی هر چارت، تعداد هشدارها، مقدار داده تاریخی و برخی قابلیتهای پیشرفته به نوع حساب کاربری بستگی دارد.
اگر با محدودیت تعداد اندیکاتور روی چارت مواجه هستید، میتوانید چند منطق تحلیلی را در یک اسکریپت ترکیب کنید. این کار کمک میکند بهجای استفاده از چند اندیکاتور جداگانه، یک اندیکاتور اختصاصی و منظم داشته باشید.

اگر محدودیتهای کدنویسی یا زمان توسعه برای شما چالشبرانگیز است، مطالعه مقاله ساخت اندیکاتور با هوش مصنوعی میتواند برای شروع مسیر سادهتری ایجاد کند.
جمع بندی؛ ساخت اندیکاتور در تریدینگ ویو
ساخت اندیکاتور در تریدینگ ویو با چند مفهوم پایه Pine Script شروع میشود؛ ورود به TradingView، باز کردن چارت، رفتن به Pine Editor، تعریف ساختار اولیه با ()indicator، تعیین محل نمایش با overlay، ساخت تنظیمات با input و نمایش خروجی با plot.
پس از ساخت، اندیکاتور باید روی نمادها، تایمفریمها و شرایط مختلف بازار تست و خطاگیری شود. اگر هدف بررسی عملکرد معاملاتی باشد، باید منطق آن به استراتژی تبدیل شده و در Strategy Tester بکتست گرفته شود.
اندیکاتور سفارشی جایگزین تحلیل، مدیریت ریسک و تجربه معاملاتی نیست؛ بلکه ابزاری برای اجرای دقیقتر و منظمتر منطق تحلیلی روی چارت است. اگر هنوز آماده کدنویسی نیستید، میتوانید از اندیکاتورهای آماده یا ابزارهای هوش مصنوعی برای شروع کمک بگیرید.




