راهنمای Pine Script v5: اولین اندیکاتور اختصاصی فارکس خود را کدنویسی کنید

با ساخت ابزارهایی متناسب با استراتژی خود، از «زنجیره غذایی فارکس» فراتر روید. این راهنما به شما می‌آموزد چگونه برای ساخت اندیکاتورهای حرفه‌ای در Pine Script v5 مسلط شوید.

Fatima Al-Rashidi

Fatima Al-Rashidi

تحلیلگر سازمانی

ترجمه توسط
Dariush MohammadiDariush Mohammadi
26 فوریه 2026
9 دقیقه مطالعه
راهنمای Pine Script v5: اولین اندیکاتور اختصاصی فارکس خود را کدنویسی کنید
FXNX Podcast
0:00-0:00

تصور کنید ساعت‌ها در کتابخانه عمومی TradingView جستجو می‌کنید، فقط برای اینکه بفهمید هر اندیکاتور «جام مقدس» (Holy Grail) دچار تاخیر است، ری‌پینت (Repaint) می‌شود یا نمودار شما را با نویزهای بی‌پایان شلوغ می‌کند. برای یک معامله‌گر سطح متوسط، زنجیره غذایی فارکس طوری طراحی شده است که کسانی را که به ابزارهای آماده و عمومی متکی هستند، ببلعد. رمز اجرای معاملات در سطح حرفه‌ای، یافتن یک اندیکاتور بهتر نیست؛ بلکه ساختن ابزاری است که به زبان استراتژی خاص شما صحبت کند. با تسلط بر Pine Script v5، شما دیگر مصرف‌کننده داده‌های تاخیری نخواهید بود و به معمار آلفا تبدیل می‌شوید. این راهنما شما را از یک اسکریپت خالی به یک ابزار کاربردی و سفارشی می‌رساند که نویز بازار را فیلتر کرده و کاملاً با پروفایل ریسک شما همسو است. آیا آماده‌اید که «خرید اندیکاتور» را متوقف کرده و کدنویسی مزیت معاملاتی خود را شروع کنید؟

موتور Pine Script v5: تفکر کندل‌به‌کندل

چرا نسخه ۵ استاندارد مدرن است؟

اگر قبلاً در TradingView کدنویسی کرده باشید، ممکن است اسکریپت‌هایی را دیده باشید که با //@version=4 یا حتی قدیمی‌تر شروع می‌شوند. در حالی که آن‌ها هنوز کار می‌کنند، Pine Script v5 به دلایلی استاندارد فعلی صنعت است. این نسخه فضاهای نام (Namespaces) را برای گروه‌بندی منطقی توابع، کتابخانه‌های بهتر و اجرای پایدارتر معرفی کرد. برای یک معامله‌گر، این به معنای باگ‌های کمتر در هنگام محاسبه یک سیگنال ورود پیچیده در جفت‌ارز GBP/USD در زمان بازگشایی پرنوسان لندن است. نسخه ۵ طوری طراحی شده که تمیزتر و خواناتر باشد، که این موضوع زمانی که در حال تبدیل شدن به یک معمار سیستم هستید، بسیار حیاتی است.

مدل اجرا: Pine در مقابل برنامه‌نویسی سنتی

نمودار مفهومی که مدل اجرای 'کندل به کندل' را نشان می‌دهد: یک فلش که در طول مجموعه‌ای از کندل‌ها حرکت می‌کند و بالای هر یک کادر 'محاسبه' قرار دارد.
To visually explain the fundamental way Pine Script processes data.

اکثر زبان‌های برنامه‌نویسی مانند Python یا C++ یک بار از بالا به پایین اجرا می‌شوند. Pine Script متفاوت است؛ این یک موتور «کندل‌به‌کندل» (Bar-by-bar) است. آن را مانند یک پروژکتور فیلم تصور کنید. اگر نمودار شما دارای ۵۰۰ کندل باشد، اسکریپت شما ۵۰۰ بار اجرا می‌شود، یعنی یک بار برای هر کندل از چپ به راست. در آخرین کندل (کندل لایو)، اسکریپت با هر تیک قیمت (Tick) مجدداً اجرا می‌شود.

درک این موضوع، لحظه درخشش شماست. شما اسکریپتی نمی‌نویسید که کل نمودار را یک‌باره ببیند؛ شما منطقی را برای یک کندل واحد می‌نویسید و Pine تکرار آن را برای شما مدیریت می‌کند. به همین دلیل است که محاسبات حتی زمانی که از ریاضیات سنگین در نمودار ۱ دقیقه‌ای استفاده می‌کنید، سبک و سریع باقی می‌مانند.

نکته حرفه‌ای: از آنجایی که اسکریپت در هر تیکِ کندل زنده مجدداً اجرا می‌شود، باید بین محاسبات «گذرا» (که در هر تیک بازنشانی می‌شوند) و متغیرهای «پایدار» (که مقدار خود را از کندل قبلی به یاد می‌آورند) تمایز قائل شوید. اگر می‌خواهید یک متغیر مقدار خود را در طول کندل‌ها حفظ کند، از کلمه کلیدی var استفاده کنید.

آناتومی یک اسکریپت و قدرت داده‌های «سری»

تجزیه و تحلیل اعلان و منطق

هر Pine Script حرفه‌ای از یک ساختار چهار بخشی خاص پیروی می‌کند. اول اعلان (Declaration) است، جایی که به TradingView می‌گویید «این نسخه ۵ است» و «این یک اندیکاتور است، نه یک استراتژی». دوم ورودی‌ها (Inputs) هستند که منوی تنظیمات را برای کاربران شما ایجاد می‌کنند. سوم منطق محاسباتی (Calculation Logic) است که در آن ریاضیات انجام می‌شود. در نهایت، خروجی (Output) که در آن از توابعی مانند plot() برای ترسیم روی نمودار استفاده می‌کنید.

تسلط بر آرایه‌های OHLC بدون حلقه‌های پیچیده

در اکثر زبان‌ها، اگر بخواهید میانگین ۱۴ قیمت پایانی اخیر را پیدا کنید، باید یک حلقه «for» بنویسید تا در یک آرایه پیمایش کند. Pine Script این کار را از طریق داده‌های سری (Series) بسیار آسان کرده است.

در Pine، کلمه close فقط یک عدد نیست؛ بلکه یک سری (لیستی) از تمام قیمت‌های پایانی در تاریخچه است. برای نگاه به گذشته، از عملگر ارجاع به تاریخچه [] استفاده می‌کنید.

مثال: close[0] قیمت فعلی است. close[1] قیمت پایانی کندل قبلی است. اگر در حال معامله شکست (Breakout) در EUR/USD هستید، بررسی اینکه آیا high[0] > high[1] است، یک کار تک‌خطی است، نه یک حلقه ۱۰ خطی.

این مدیریت داخلی تاریخچه قیمت، چیزی است که Pine Script را به کارآمدترین زبان برای تحلیل تکنیکال تبدیل می‌کند. می‌توانید جزئیات بیشتر درباره این انواع داده را در مستندات رسمی TradingView بیابید.

مقایسه صفحه نمایش دو تکه: یک طرف حرکت خام قیمت را نشان می‌دهد، طرف دیگر همان نمودار را با یک اندیکاتور مومنتوم سفارشی با کد رنگی نشان می‌دهد.
To demonstrate the power of visual logic and conditional coloring.

ساخت رابط کاربری: ایجاد ورودی‌های داینامیک کاربر

قابل تنظیم کردن اندیکاتور

کدنویسی اعداد به صورت ثابت (Hard-coding) سریع‌ترین راه برای خراب کردن یک استراتژی است. اگر یک میانگین متحرک ۲۰ دوره‌ای را به صورت ثابت کدنویسی کنید، هر بار که بازار از یک محیط رونددار به رنج تغییر می‌کند، باید کد را بازنویسی کنید. در عوض، ما از کتابخانه input استفاده می‌کنیم. این به شما اجازه می‌دهد پارامترها را در آیکون چرخ‌دنده «Settings» تغییر دهید بدون اینکه دیگر به کد نگاه کنید.

انواع ورودی: int، float و source

برای ساخت یک رابط کاربری حرفه‌ای، باید از انواع ورودی صحیح استفاده کنید:

  1. input.int: برای اعداد صحیح مانند طول دوره‌ها (مثلاً RSI با دوره ۱۴) استفاده می‌شود.
  2. input.float: برای اعداد اعشاری (مثلاً ضریب ATR برابر با ۱.۵) استفاده می‌شود.
  3. input.source: این یک ورودی قدرتمند است. به کاربر اجازه می‌دهد انتخاب کند از کدام داده‌های قیمت استفاده شود؛ close ،hl2 (میانه) یا حتی خروجی یک اندیکاتور دیگر.

هشدار: همیشه برای ورودی‌های خود عناوین واضح و «tooltips» (راهنما) قرار دهید. یک سال دیگر، به یاد نخواهید آورد که "Var1" چه کاری انجام می‌دهد، اما "Trend Filter Sensitivity" را درک خواهید کرد. حرفه‌ای بودن در رابط کاربری منجر به خطاهای اجرای کمتر در معاملات زنده می‌شود.

هنگام انتخاب ورودی‌های خود، استفاده از اندیکاتورهای تطبیقی را در نظر بگیرید که بر اساس کانتکست بازار تغییر می‌کنند، نه اعداد ایستا.

منطق بصری: کدنویسی مومنتوم و رنگ‌های شرطی

یک اسکرین‌شات از منوی 'تنظیمات' تریدینگ‌ویو که ورودی‌های سفارشی (اسلایدرهای عدد صحیح، منوهای کشویی و انتخابگرهای رنگ) ایجاد شده از طریق کد را نشان می‌دهد.
To show the reader what the end-user interface looks like.

پیاده‌سازی دستورات 'If' برای شرایط بازار

اکنون به قلب اسکریپت می‌رسیم: منطق. فرض کنید می‌خواهید یک موقعیت خرید (Long) با احتمال بالا را شناسایی کنید. ممکن است بخواهید قیمت بالای EMA ۲۰۰ روزه باشد، در حالی که RSI زیر ۳۰ (اشباع فروش) است. در Pine، این شبیه به یک بررسی منطقی ساده است:

isLong = price > ema200 and rsiValue < 30

این متغیر بولین (true/false) سپس می‌تواند برای ایجاد تغییرات بصری در نمودار شما استفاده شود. اینگونه است که شما بر نوسانات مسلط می‌شوید؛ با ایجاد فیلترهایی که فقط زمانی سیگنال‌ها را نشان می‌دهند که شرایط خاصی برقرار باشد.

جلوه‌های بصری داینامیک با color.new و plot()

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

plotColor = isLong ? color.green : color.red
plot(ema20, color=plotColor, linewidth=2)

این یک حلقه بازخورد بصری فوری ایجاد می‌کند. به جای خیره شدن به اعداد، مغز شما تغییر رنگ را فوراً پردازش می‌کند و بار شناختی را در طول جلسات معاملاتی سریع مانند همپوشانی لندن/نیویورک کاهش می‌دهد.

ابزارهای حرفه‌ای: عیب‌یابی و تله ری‌پینت

استفاده از Data Window به عنوان کنسول عیب‌یابی

یکی از بزرگترین ناامیدی‌ها برای کدنویس‌های تازه کار این است که اندیکاتور به درستی محاسبه نمی‌شود. تابع plot() در اینجا بهترین دوست شماست. حتی اگر نمی‌خواهید مقداری را روی نمودار ببینید، می‌توانید آن را ترسیم کرده و در Data Window (نوار کناری در TradingView) بررسی کنید. اگر محاسبات شما می‌گوید ATR باید ۰.۰۰۱۵ باشد اما Data Window عدد ۱۵۰.۰ را نشان می‌دهد، متوجه می‌شوید که قبل از ریسک کردن حتی یک دلار، خطای جایگذاری اعشار دارید.

یک اینفوگرافیک که ۴ بخش یک اسکریپت را خلاصه می‌کند: اعلان، ورودی‌ها، منطق و خروجی.
To provide a quick-reference summary of the article's core technical lesson.

چرا اندیکاتورها در گذشته عالی به نظر می‌رسند (و چگونه آن را اصلاح کنیم)

این همان «تله ری‌پینت» (Repainting Trap) است. برخی توابع، به ویژه request.security (که برای تحلیل چند‌تایم‌فریمه استفاده می‌شود)، می‌توانند به طور تصادفی در طول بک‌تست به آینده نگاه کنند.

اسکریپتی را تصور کنید که قیمت پایانی روزانه را در حالی که شما در نمودار ۵ دقیقه‌ای معامله می‌کنید، بررسی می‌کند. اگر به درستی کدنویسی نشود، اسکریپت قیمت پایانی روزانه را قبل از اینکه روز واقعاً تمام شود، «می‌داند». این منجر به بک‌تست‌هایی می‌شود که شبیه یک خط مستقیم رو به بالا هستند، اما در زمان واقعی به شدت شکست می‌خورند.

نکته حرفه‌ای: همیشه هنگام دریافت داده از تایم‌فریم‌های بالاتر از lookahead = barmerge.lookahead_off استفاده کنید. این اطمینان می‌دهد که اسکریپت شما فقط از داده‌هایی استفاده می‌کند که در آن لحظه خاص واقعاً در دسترس بوده‌اند. اجتناب از این تله‌ها برای حذف لغزش قیمت و خطاهای اجرا ضروری است.

نتیجه‌گیری

تسلط بر Pine Script مهم‌ترین قدم در تبدیل شدن از یک «خریدار اندیکاتور» خرد به یک معامله‌گر سیستماتیک است. ما مسیر درک موتور v5 تا ساخت یک ابزار بصری و داینامیک را که نویز زنجیره غذایی فارکس را فیلتر می‌کند، پوشش دادیم. با کدنویسی ابزارهای خود، اطمینان حاصل می‌کنید که تحلیل تکنیکال شما بازتاب مستقیمی از پروفایل ریسک منحصر‌به‌فرد شماست، نه یک قالب عمومی. همانطور که به اصلاح اسکریپت خود ادامه می‌دهید، به یاد داشته باشید که قدرتمندترین اندیکاتورها اغلب ساده‌ترین‌هایی هستند که شما عمیقاً آن‌ها را درک می‌کنید. در FXNX، ما به توانمندسازی معامله‌گران با داده‌ها و ابزارهای مورد نیاز برای دقت معتقدیم؛ اولین اسکریپت سفارشی شما، پایه و اساس آن دقت است.

قدم بعدی شما: همین حالا Pine Editor خود را در TradingView باز کنید و سعی کنید یک اندیکاتور ساده تقاطع EMA کدنویسی کنید که وقتی نوسانات (ATR) بالای میانگین ۱۴ روزه خود است، تغییر رنگ دهد. پس از ساخت آن، نتایج خود را با جامعه FXNX به اشتراک بگذارید!

سوالات متداول

کاربرد Pine Script v5 چیست؟

‏Pine Script v5 زبان برنامه‌نویسی اختصاصی TradingView است که برای ایجاد اندیکاتورهای تکنیکال سفارشی، استراتژی‌های بک‌تست و هشدارهای خودکار برای بازارهای مالی مانند فارکس و سهام استفاده می‌شود.

آیا می‌توانم از Pine Script برای خودکارسازی معاملات فارکس استفاده کنم؟

بله، در حالی که Pine Script در TradingView اجرا می‌شود، می‌توانید اسکریپت‌های خود را به کارگزاران متصل کنید یا از Webhookها برای ارسال سیگنال به پلتفرم‌های اجرای خودکار استفاده کنید که اجازه معامله کاملاً بدون دخالت دست را می‌دهد.

چگونه یک اندیکاتور ری‌پینت شونده را در Pine Script v5 اصلاح کنم؟

برای رفع ری‌پینت، مطمئن شوید که از داده‌های آینده در محاسبات خود استفاده نمی‌کنید. هنگام استفاده از توابع چند‌تایم‌فریمه مانند request.security ، همیشه پارامتر lookahead را روی barmerge.lookahead_off تنظیم کنید تا اسکریپت فقط از داده‌های تاریخی تایید شده استفاده کند.

همین حالا شروع کنید

با اسپرد ۰.۰ پیپ و بیش از ۵۰۰ ابزار معاملاتی، به هزاران تریدر حرفه‌ای بپیوندید.

Share

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

Fatima Al-Rashidi

Fatima Al-Rashidi

تحلیلگر سازمانی

Fatima Al-Rashidi is an Institutional Trading Analyst at FXNX with over 10 years of experience in sovereign wealth fund management. Raised in Kuwait City and educated at the University of Toronto (Finance & Economics), she has managed currency exposure for some of the Gulf's largest institutional portfolios. Fatima specializes in oil-correlated currencies, GCC markets, and institutional-grade analysis. Her writing provides rare insight into how major institutional players approach the forex market.

Dariush Mohammadi

ترجمه توسط

Dariush Mohammadiمترجم

داریوش محمدی مترجم جوان فین‌تک در FXNX است. او فارغ‌التحصیل رشته مالی بین‌المللی از دانشگاه صنعتی شریف تهران بوده و در حال حاضر به عنوان کارآموز در FXNX مشغول ترجمه محتوای معاملاتی جهانی برای مخاطبان فارسی‌زبان است. اشتیاق او به پل زدن میان دانش مالی بین‌المللی و جهان فارسی‌زبان، رویکرد دقیق و حرفه‌ای او در ترجمه مالی را شکل داده است.

موضوعات:
  • راهنمای Pine Script v5
  • اندیکاتور سفارشی فارکس
  • برنامه‌نویسی تریدینگ ویو
  • معاملات الگوریتمیک فارکس
  • تحلیل تکنیکال فارکس

ادامه مطالعه

A sleek, modern image showing a forex trading dashboard open on a laptop, a tablet, and a smartphone, all displaying synchronized charts and data. The background is clean and slightly out of focus, emphasizing the multi-device accessibility. The theme should be professional and tech-forward.
پلتفرم و ابزارها
13 مه 202618 min

فارکس بدون MT5: راهنمای بروکرهای بدون نیاز به دانلود در سال ۲۰۲۶

آیا شما یک معامله‌گر سطح متوسط هستید که دچار «خستگی از MT5» شده‌اید؟ این راهنما آینده معاملات فارکس بدون نیاز به دانلود را بررسی می‌کند و بهترین پلتفرم‌های وب و موبایل، ویژگی‌های ضروری و نحوه انتقال روان از نرم‌افزارهای سنتی را پوشش می‌دهد.

Daniel AbramovichDaniel Abramovich
Read
A dynamic image showing two boxing gloves, one blue (representing FTMO) and one orange (representing The5ers), about to clash. The background is a futuristic, abstract representation of financial charts and data streams, with the year '2026' subtly integrated.
پلتفرم و ابزارها
13 مه 202618 min

مقایسه FTMO و The5ers در سال ۲۰۲۶: از ضررهای سنگین اجتناب کنید 🥊

انتخاب بین غول‌های پراپ فرم مانند FTMO و The5ers برای یک حرفه معاملاتی پایدار حیاتی است. این بررسی عمیق، قوانین، پتانسیل رشد و دوام بلندمدت آن‌ها را مقایسه می‌کند تا به شما کمک کند از مدل‌های ناپایدار ضرر نکنید.

Marcus ChenMarcus Chen
Read
An abstract image of a gleaming gold bar merging seamlessly with a digital trading chart's candlestick pattern, set against a dark, sophisticated background.
پلتفرم و ابزارها
13 مه 202616 min

پراپ فرم‌های معاملات طلا در سال ۲۰۲۶: موفقیت در XAU/USD

معامله طلا با پراپ فرم‌ها پتانسیل عظیمی دارد اما با ریسک‌های منحصربه‌فردی همراه است. این راهنما یک چارچوب آینده‌نگرانه برای معامله‌گران سطح متوسط ارائه می‌دهد تا بر XAU/USD مسلط شوند، بهترین شرکت‌ها را انتخاب کنند و تا سال ۲۰۲۶ به سودآوری پایدار دست یابند.

Raj KrishnamurthyRaj Krishnamurthy
Read
MT5 Gold: Uncover Zero-Spread's True Cost
پلتفرم و ابزارها
13 مه 202617 min

طلای MT5: هزینه واقعی اسپرد صفر را کشف کنید

بسیاری از معامله‌گران معتقدند 'اسپرد صفر' در XAUUSD به معنای هزینه صفر است. این راهنما هزینه واقعی معاملات طلا در MT5 را با تشریح کمیسیون‌ها، سوآپ‌ها و اسلیپیج رمزگشایی می‌کند تا دیگر هرگز غافلگیر نشوید.

Isabella TorresIsabella Torres
Read
An abstract, professional image showing a gleaming gold bar with a semi-transparent overlay of a digital trading chart and candlestick patterns. The mood should be sleek, modern, and data-driven.
پلتفرم و ابزارها
27 آوریل 202616 min

اسکالپ XAUUSD: ممیزی هزینه‌های پراپ فرم شما

برای اسکالپرهای طلا با فرکانس بالا، هر پیپ و کمیسیون اهمیت دارد. این راهنما یک طرح داده‌محور برای ممیزی هزینه‌های پراپ فرم ارائه می‌دهد تا اطمینان حاصل شود استراتژی اسکالپ XAUUSD شما در حساب واقعی‌تان سودآور است، نه فقط روی کاغذ.

Daniel AbramovichDaniel Abramovich
Read