
ساخت اندیکاتور با هوش مصنوعی یعنی ایدهٔ معاملاتیتان را به زبان ساده برای ChatGPT بنویسید، کد Pine Script نسخهٔ ۶ بگیرید، آن را در Pine Editor تریدینگویو روی چارت بگذارید، خطاهایش را رفع کنید و با گزارش استراتژی بسنجید. بدون برنامهنویسی شدنی است، ولی خروجی فقط وقتی قابل استفاده است که خودتان آن را تست کنید.
ما در ارزینجا این راهنما را برای تریدری نوشتهایم که با تریدینگویو کار کرده ولی کدنویس نیست. اینجا تحلیل بازار یا سیگنالگیری از هوش مصنوعی را آموزش نمیدهیم؛ موضوع ما فقط نوشتن خود کد اندیکاتور است، از اولین پرامپت تا آخرین تست.
آنچه در این راهنما میخوانید:
- پیشنیازها و وضعیت دسترسی به ChatGPT از ایران
- قالب پرامپت و چهار پرامپت آماده برای Pine Script v6
- یک نمونهکد کوتاه و درست، خطبهخط
- بردن کد به Pine Editor، ذخیره و Add to chart
- رفع خطاهای کامپایل و تفاوتهای نسخهٔ ۵ و ۶
- تست با گزارش استراتژی و سه تلهٔ بکتست
- محدودیتها و حدود پلن رایگان تریدینگویو
ساخت اندیکاتور با هوش مصنوعی دقیقاً یعنی چه؟
در عمل، هوش مصنوعی نقش «مترجم» را بازی میکند: قاعدهای را که شما در ذهن دارید، مثل «وقتی میانگین ۹ روزه از بالای میانگین ۲۱ روزه رد شد، یک فلش سبز بکش»، به کد Pine Script تبدیل میکند. Pine Script زبان اختصاصی تریدینگویو برای ساخت اندیکاتور و استراتژی است و کد آن فقط داخل همین پلتفرم اجرا میشود.
این با کارهایی که قبلاً پوشش دادهایم فرق دارد. اگر میخواهید از ChatGPT برای خواندن نمودار و جمعبندی داده کمک بگیرید، آموزش قدمبهقدم تحلیل ارز دیجیتال با ChatGPT را بخوانید. اگر دنبال اندیکاتورهای آمادهای هستید که خودشان برچسب «هوش مصنوعی» دارند، فهرست بهترین اندیکاتورهای هوش مصنوعی برای ترید به کارتان میآید.
نکتهٔ مهم این است که اندیکاتوری که هوش مصنوعی مینویسد، از اندیکاتوری که خودتان با دست مینویسید باهوشتر نیست. فقط همان منطقی را اجرا میکند که شما توصیف کردهاید. اگر قاعده مبهم باشد، کد هم مبهم و احتمالاً غلط خواهد بود.
پیش از شروع چه چیزهایی لازم است؟
سه چیز لازم دارید: یک حساب تریدینگویو، یک ایدهٔ دقیق و قابلاندازهگیری، و یک دستیار هوش مصنوعی که اجازهٔ استفاده از آن را دارید. اگر هنوز با محیط تریدینگویو آشنا نیستید، اول معرفی تریدینگ ویو و کاربردهایش را ببینید.
برای ساختن و ذخیره کردن اندیکاتور شخصی به پلن پولی نیاز ندارید. ولی پلن رایگان سقف دارد: طبق صفحهٔ رسمی قیمتگذاری تریدینگویو (خواندهشده در ۱۷ آبان ۱۴۰۵)، پلن Basic روی هر چارت ۲ اندیکاتور، ۳ هشدار قیمتی فعال و ۵ هزار کندل تاریخی میدهد. در همان جدول، ردیف «هشدار فنی فعال» برای Basic عددی ندارد، در حالی که پلن Essential ۲۰ هشدار فنی و ۵ اندیکاتور روی هر چارت دارد.
ChatGPT در ایران رسماً ارائه نمیشود
صادقانه بگوییم: ایران در فهرست رسمی کشورهای پشتیبانیشدهٔ ChatGPT نیست. OpenAI در همان صفحه میگوید استفاده از بیرون این فهرست ممکن است به مسدود یا تعلیق شدن حساب برسد. شرایط استفادهٔ OpenAI (اجرا از ۱ ژانویهٔ ۲۰۲۶) هم رعایت قوانین تحریم را الزامی میداند و استفاده در کشورهای تحت تحریم آمریکا را مجاز نمیداند.
ما راه دور زدن این محدودیت را آموزش نمیدهیم. اگر به ChatGPT دسترسی مجاز ندارید، دو راه قانونی پیش روی شماست. اول، همین قالب پرامپتها برای هر دستیار هوش مصنوعی که شرایط استفادهاش اجازه میدهد کار میکند؛ مقایسهٔ این ابزارها را در راهنمای انتخاب بین ChatGPT، Claude و Gemini آوردهایم. دوم، خود تریدینگویو از منوی Create new گزینهٔ Built-in را دارد که یک کپی ویرایشپذیر از اندیکاتورهای داخلی میسازد و میتوانید با همان کد شروع کنید.
چطور برای ChatGPT پرامپت بنویسیم تا Pine Script v6 بسازد؟
پرامپت خوب برای Pine Script پنج جزء دارد: نسخهٔ زبان، نوع اسکریپت، ورودیهای قابلتنظیم، خروجی نمایشی و رفتار هشدار. اگر نسخه را نگویید، مدل ممکن است کد نسخههای قدیمیتر را بدهد که در ویرایشگر امروز خطا میگیرد. این قالب را نگه دارید و فقط بخش منطق را عوض کنید:
- نسخه: «کد را با خط اول
//@version=6بنویس و از توابع منسوخ نسخههای قبل استفاده نکن.» - نوع: «این یک indicator است، نه strategy، و روی خود نمودار قیمت (overlay) رسم شود.»
- ورودیها: «طول میانگینها را با input.int قابلتنظیم کن.»
- خروجی: «دو خط و یک مثلث سبز زیر کندل در تقاطع رو به بالا.»
- هشدار و توضیح: «برای هر سیگنال alertcondition بگذار و هر خط کد را کوتاه توضیح بده.»
چهار پرامپت آماده که میتوانید کپی کنید
- تقاطع دو میانگین با هشدار: «یک indicator در Pine Script نسخهٔ ۶ بنویس که SMA با طول ۹ و ۲۱ را روی چارت رسم کند. در تقاطع رو به بالا مثلث سبز زیر کندل و در تقاطع رو به پایین مثلث قرمز بالای کندل بگذارد و برای هر دو alertcondition داشته باشد. طولها با input.int قابلتغییر باشند.»
- RSI با ناحیهٔ رنگی: «یک indicator نسخهٔ ۶ در پنل جدا بنویس که RSI با طول ۱۴ را رسم کند، خطوط ۳۰ و ۷۰ را با hline بکشد، بین آنها را با fill کمرنگ کند و برای شفافیت فقط از color.new استفاده کند، نه پارامتر transp.»
- فیلتر روند: «به همان کد تقاطع، شرطی اضافه کن که سیگنال خرید فقط وقتی نمایش داده شود که قیمت بستهشدن بالای EMA 200 باشد. شرطها را صریحاً bool تعریف کن.»
- تبدیل به استراتژی برای تست: «همین منطق را به strategy() نسخهٔ ۶ تبدیل کن، با strategy.entry برای ورود. از پارامتر when استفاده نکن و ورود را داخل بلوک if بنویس.»

دو جملهٔ آخر پرامپتهای دوم و چهارم عمدیاند. همانطور که پایینتر میبینید، transp و when در نسخهٔ ۶ حذف شدهاند و از رایجترین دلیلهای خطای کدهای تولیدیاند. اگر میخواهید بدانید منطق RSI یا میانگین متحرک خودش چه میگوید، آموزش کامل اندیکاتور RSI و فرق EMA و SMA در میانگین متحرک پیشزمینهٔ خوبی میدهند.
یک نمونهکد درست Pine Script v6 چه شکلی است؟
کد زیر جواب درستی است که از پرامپت اول انتظار دارید. نحو آن را با مستندات رسمی Pine Script نسخهٔ ۶ (صفحههای First indicator، Inputs، Text and shapes و Alerts) تطبیق دادهایم. اگر خروجی ChatGPT شما خیلی با این فرق داشت، همین را مبنا بگیرید:
//@version=6indicator("MA Cross + Alert", overlay = true)fastLen = input.int(9, "Fast MA", minval = 1)slowLen = input.int(21, "Slow MA", minval = 1)fastMA = ta.sma(close, fastLen)slowMA = ta.sma(close, slowLen)plot(fastMA, "Fast", color = color.teal)plot(slowMA, "Slow", color = color.orange)bullCross = ta.crossover(fastMA, slowMA)bearCross = ta.crossunder(fastMA, slowMA)plotshape(bullCross, "Bull", shape.triangleup, location.belowbar, color.green, size = size.small)plotshape(bearCross, "Bear", shape.triangledown, location.abovebar, color.red, size = size.small)alertcondition(bullCross, "Bull cross", "Fast MA crossed above Slow MA")alertcondition(bearCross, "Bear cross", "Fast MA crossed below Slow MA")
خط اول نسخه را اعلام میکند و خط دوم میگوید این یک اندیکاتور روی نمودار قیمت است. دو input.int طول میانگینها را به پنجرهٔ تنظیمات میبرند تا بدون دست زدن به کد عوضشان کنید. ta.sma میانگین ساده را حساب میکند و ta.crossover و ta.crossunder لحظهٔ تقاطع را برمیگردانند. plotshape مثلث را میکشد و alertcondition فقط «رویداد هشدار» تعریف میکند.
همین نکتهٔ آخر را خیلیها نمیدانند. طبق مستندات هشدار تریدینگویو، هیچ کد Pine خودش هشدار فعال نمیسازد؛ باید از پنجرهٔ Create Alert روی چارت، اندیکاتور و شرط را انتخاب کنید. alertcondition هم فقط در indicator کار میکند و در strategy هشداری از آن ساخته نمیشود.
کد را چطور به Pine Editor ببریم و روی چارت بگذاریم؟
کد را در Pine Editor، که زبانهاش پایین چارت تریدینگویو است، جایگزین متن پیشفرض کنید، ذخیره کنید و Add to chart را بزنید. مراحل دقیق طبق صفحهٔ First indicator مستندات رسمی این است:
- یک چارت باز کنید، مثلاً جفت بیت کوین به تتر، و زبانهٔ Pine Editor را در پایین صفحه بزنید.
- از منوی کشویی ویرایشگر، Create new و بعد Indicator را انتخاب کنید.
- همهٔ متن پیشفرض را انتخاب کنید و کد ChatGPT را جایش بچسبانید.
- با کلیک روی نام اسکریپت یا کلید Ctrl+S ذخیره کنید و یک نام روشن بگذارید، مثلاً «MA Cross v1».
- در نوار منوی ویرایشگر Add to chart را بزنید. اگر خطایی نباشد، خطوط و مثلثها روی نمودار میآیند.
نسخهها را با نام جدا ذخیره کنید (v1، v2، v3). وقتی ChatGPT کد را «بهتر» میکند، گاهی چیزی را خراب میکند که قبلاً درست کار میکرد، و برگشتن به نسخهٔ سالم قبلی وقتتان را نجات میدهد. اگر میخواهید بدانید ChatGPT جدا از کدنویسی در تحلیل بازار چه کاری میکند و کجا کم میآورد، آموزش ترید با ChatGPT مزایا و محدودیتهایش را مرور کرده است.
خطاهای رایج کامپایل را چطور رفع کنیم؟
سادهترین راه این است که متن کامل خطا، همراه شمارهٔ خطی که کنسول ویرایشگر نشان میدهد، را عیناً برای ChatGPT بفرستید و بنویسید: «این خطا را در Pine Script نسخهٔ ۶ درست کن و فقط خطهای تغییرکرده را توضیح بده.» خلاصهنویسی خطا جواب را بدتر میکند؛ متن انگلیسی خطا را کامل کپی کنید.
بیشتر خطاها از اینجا میآیند که مدل، کد نسخهٔ ۵ را با سرصفحهٔ نسخهٔ ۶ نوشته است. راهنمای رسمی مهاجرت به Pine Script نسخهٔ ۶ این تغییرات شکننده را فهرست کرده و جدول زیر مهمترینهایشان را با علامت و راه اصلاح نشان میدهد:
اگر کد قدیمی نسخهٔ ۵ دارید و کامپایل میشود، لازم نیست دستی بازنویسیاش کنید. ویرایشگر در منوی Manage script گزینهٔ Convert code to v6 را دارد. طبق همان راهنما، این مبدل فقط وقتی کار میکند که کد نسخهٔ ۵ بدون خطا کامپایل شود و خطاهای باقیمانده را باید دستی درست کرد.
دو هشدار دیگر هم در فهرست رسمی خطاها میبینید. CW10003 میگوید تابعی را داخل یک شرط گذاشتهاید که باید در هر کندل اجرا شود؛ راهش این است که محاسبه را بیرون if ببرید. CE10117 یعنی کد بیش از حد بزرگ شده است؛ از ChatGPT بخواهید منطق تکراری را در یک تابع جمع کند.
چطور اندیکاتور را با Strategy Tester تست کنیم؟

اندیکاتور فقط نشان میدهد؛ برای اینکه بفهمید قاعدهتان در گذشته چه نتیجهای میداد، باید آن را به strategy() تبدیل کنید (پرامپت چهارم) و گزارش استراتژی را بخوانید. این گزارش زیر چارت باز میشود و زبانههای Metrics و Trades دارد. اصول بکتست را جدا در راهنمای بک تست گیری در ترید ارز دیجیتال توضیح دادهایم.
مستندات استراتژی تریدینگویو صریح است: این گزارش عملکرد «فرضی» یک استراتژی شبیهسازیشده را نشان میدهد. شبیهساز سفارشها را بهطور پیشفرض فقط با دادهٔ خود چارت پر میکند و روی چارتهای غیراستاندارد، قیمتها مصنوعیاند و با قیمت واقعی بازار یکی نیستند. کمیسیون و اسلیپیج را هم در زبانهٔ Properties تنظیم کنید؛ گزارش بدون هزینهٔ معامله همیشه خوشبینانهتر است.
ریپینت و request.security با lookahead
ریپینت یعنی اسکریپت روی کندلهای تاریخی و کندل زنده رفتار متفاوت دارد؛ سیگنالی که امروز روی گذشته میبینید، ممکن است در لحظهٔ واقعی ظاهر نشده یا بعداً جابهجا شده باشد. خطرناکترین شکلش وقتی است که کد دادهٔ تایمفریم بالاتر را با request.security و تنظیم barmerge.lookahead_on بدون آفست [1] میخواند.
صفحهٔ رسمی ریپینت در مستندات Pine Script میگوید این ترکیب روی کندلهای تاریخی دادهٔ آینده برمیگرداند و «بهشکل خطرناکی گمراهکننده» است. راه درست، آفست [1] همراه با lookahead_on است. استفاده از barstate.isconfirmed یا مقدار کندل قبلی هم جلوی ریپینت را میگیرد، به این قیمت که سیگنال کمی دیرتر میآید.
عملاً به ChatGPT بگویید: «این کد را برای ریپینت بررسی کن. اگر request.security دارد، فقط مقدار کندل بستهشده را بخواند.» بعد خودتان هم چک کنید که در کد، lookahead_on بدون [1] نیامده باشد.
overfitting؛ وقتی گذشته بیش از حد خوب به نظر میرسد
وسوسهٔ بزرگ این است که از ChatGPT بخواهید عددها را آنقدر عوض کند تا منحنی سود صاف شود. این همان overfitting است: قاعده با نویز همان بازهٔ گذشته جفت میشود و در دادهٔ تازه از کار میافتد. هرچه پارامتر و شرط بیشتر شود، این خطر بیشتر است.
- داده را دو بخش کنید: پارامترها را روی بخش اول بسازید و فقط یک بار روی بخش دوم بسنجید.
- تعداد معاملهها را ببینید؛ نتیجهای که از چند معاملهٔ انگشتشمار آمده، اتفاقی است.
- همان تنظیمات را روی چند رمزارز و تایمفریم دیگر امتحان کنید.
- قبل از پول واقعی، چند هفته روی حساب آزمایشی اجرا کنید.
برای قدم آخر، تریدینگویو معاملهٔ کاغذی دارد و نحوهٔ کار با آن را در آموزش حساب دمو تریدینگ ویو آوردهایم. این مرحله را جدی بگیرید؛ بکتست گذشته را نشان میدهد، دمو رفتار زندهٔ اسکریپت را.
محدودیتهای اندیکاتور ساختهشده با هوش مصنوعی چیست؟
بزرگترین محدودیت این است که خروجی هوش مصنوعی ممکن است غلط باشد و خود سازندهاش هم این را میگوید. شرایط استفادهٔ OpenAI صریحاً مینویسد خروجی «ممکن است همیشه دقیق نباشد» و نباید تنها منبع حقیقت یا جایگزین مشاورهٔ حرفهای باشد. کدی که کامپایل میشود، لزوماً همان کاری را نمیکند که خواستهاید.
- سیگنال قطعی وجود ندارد: هیچ اندیکاتوری، چه دستی چه با هوش مصنوعی، آینده را نمیداند؛ فقط قاعدهای را روی دادهٔ گذشته اجرا میکند.
- منطق اشتباه بیصدا: مثلاً جای crossover و crossunder عوض شود. همیشه چند سیگنال را با چشم روی چارت چک کنید.
- محدودیت پلن: با ۲ اندیکاتور روی هر چارت در پلن رایگان، اندیکاتور شخصی جای یکی از ابزارهای همیشگیتان را میگیرد.
- دادهٔ بازار: اندیکاتور روی دادهٔ همان نماد و صرافی چارت حساب میشود و ممکن است با قیمت بازار دیگری یکی نباشد.
گرفتن «سیگنال آماده» از چتبات موضوع دیگری است که در راهنمای سیگنال ترید از چت جیپیتی جدا به آن پرداختهایم. حرف ما ساده است: کد را هوش مصنوعی مینویسد، ولی تصمیم و مسئولیت معامله با خود شماست.
پیشنهاد ما
اول قاعده را روی کاغذ بنویسید، بعد سراغ چت بروید
ایدهای که نتوانید در دو جمله با عدد بنویسید، کد خوبی هم نمیشود. شرط ورود، شرط خروج و تایمفریم را یادداشت کنید و بعد پرامپت بدهید. وقتی اندیکاتور روی چند ماه داده و چند ارز رفتار ثابتی داشت، تازه ارزش دارد که وارد تصمیمهای واقعیتان شود.
جمعبندی: ساخت اندیکاتور با هوش مصنوعی از ایده تا اجرا
ساخت اندیکاتور با هوش مصنوعی برای تریدر غیربرنامهنویس یک میانبر واقعی است، به شرطی که مسیر را کامل بروید: قاعدهٔ دقیق، پرامپت با //@version=6، ذخیرهٔ نسخهدار در Pine Editor، رفع خطا با متن کامل آن، بررسی ریپینت و lookahead، و تست جدا روی دادهٔ تازه و حساب دمو. هر جا یکی از این قدمها را حذف کنید، کد فقط ظاهر حرفهای دارد.
وقتی اندیکاتورتان آماده شد، میتوانید نتیجهاش را کنار قیمت لحظهای ببینید. در ارزینجا بازار صدها رمزارز را یکجا دنبال میکنید و هر وقت تحلیلتان کامل شد، خرید و فروش بیت کوین را با چند کلیک ساده انجام میدهید. ما کنار شما هستیم تا از ایده تا معامله، مسیر را آگاهانه طی کنید.
سلب مسئولیت: این راهنمای ساخت اندیکاتور با هوش مصنوعی فقط آموزشی است و هیچ کد، اندیکاتور یا نتیجهٔ بکتستی در آن پیشنهاد خرید یا فروش نیست. نتیجهٔ گذشته تضمین آینده نیست، بازار رمزارز پرنوسان است و هر تصمیم مالی با مسئولیت خود شماست.
سوالات متداول
آیا بدون بلد بودن برنامهنویسی میشود اندیکاتور ساخت؟
بله، برای اندیکاتورهای ساده مثل تقاطع میانگین یا RSI با ناحیهٔ رنگی، توصیف دقیق قاعده کافی است و هوش مصنوعی کد Pine Script را مینویسد. ولی باید بتوانید خطای کنسول را کپی کنید، چند سیگنال را با چشم روی چارت چک کنید و تفاوت indicator و strategy را بدانید. برای منطق پیچیده، خواندن مستندات رسمی Pine Script همچنان لازم است.
چرا کدی که ChatGPT میدهد در تریدینگویو خطا میگیرد؟
رایجترین دلیل این است که مدل کد نسخههای قدیمیتر را با سرصفحهٔ نسخهٔ ۶ مینویسد. در نسخهٔ ۶ پارامترهای transp و when حذف شدهاند و عدد دیگر خودکار به bool تبدیل نمیشود (خطای CE10101). متن کامل خطا و شمارهٔ خط را برای ChatGPT بفرستید و صریحاً بخواهید کد را با قواعد نسخهٔ ۶ اصلاح کند.
اندیکاتوری که با هوش مصنوعی ساخته میشود چقدر قابل اعتماد است؟
به اندازهٔ قاعدهای که شما تعریف کردهاید و تستی که انجام دادهاید. هوش مصنوعی ممکن است منطق را بیصدا اشتباه پیاده کند و OpenAI هم میگوید خروجی همیشه دقیق نیست. گزارش استراتژی تریدینگویو عملکرد فرضی است، پس بدون تست روی دادهٔ جدا و حساب دمو، هیچ اندیکاتوری را سیگنال قطعی ندانید.
با حساب رایگان تریدینگویو میشود اندیکاتور شخصی ساخت و هشدار گذاشت؟
ساختن، ذخیره و اضافه کردن اندیکاتور شخصی به چارت در حساب رایگان ممکن است. طبق صفحهٔ قیمتگذاری تریدینگویو در ۱۷ آبان ۱۴۰۵، پلن Basic روی هر چارت ۲ اندیکاتور و ۳ هشدار قیمتی فعال میدهد و برای هشدار فنی فعال عددی درج نکرده است. اگر به چند هشدار اندیکاتوری نیاز دارید، جدول همان صفحه را پیش از برنامهریزی ببینید.
