تقریباً هر اسکریپت معاملاتی پیچیده روی کره زمین از ارزش نشانگر ATR استفاده می کند تا محاسبات خود را به نوعی یا دیگری انجام دهد.
در درس اسکریپت کاج امروز می خواهیم یک شاخص توقف دنباله دار ATR ایجاد کنیم تا نحوه استفاده از آن را در اسکریپت های سفارشی خود نشان دهیم:
با استفاده از تابع نشانگر ATR داخلی ، می توانیم مقدار ATR فعلی را بدست آوریم و از آن برای اطلاع رسانی به اسکریپت خود استفاده کنیم - خواه از طریق محاسبه از دست دادن توقف و اهداف ، تنظیم به نوسانات یا هر چیز دیگری که معمولاً با یک شاخص ATR در خود انجام می دهیداستراتژی ها.
هر یک از این درس ها بر روی درسهای قبلی ساخته شده است ، بنابراین اگر در این درس مفاهیم یا خط کد وجود دارد که نمی فهمید ، لطفاً از طریق درسهای قبلی مربوطه (مانند نحوه ترسیم داده ها به نمودار خود و نحوه استفاده ، برگردیدورودی اصلی کاربر را دریافت کنید).
اگر با ATR یا روشهای زیادی که می توان از آن برای تقویت استراتژی های خود استفاده کرد ، ناآشنا هستید ، این مقاله را بسیار مفید خواهید دید.
و مثل همیشه ، کد منبع کامل این درس در پایان موجود است.
درس ویدئویی
اگر ترجیح می دهید به صورت بصری/صوتی یاد بگیرید ، در اینجا یک نسخه ویدیویی از این درس وجود دارد:
مرحله 1: دریافت مقدار شاخص ATR
اولین قدم برای کار با ATR در اسکریپت کاج ، بازیابی مقدار ATR فعلی است.
با اسکریپت کاج که زبان کد نویسی شگفت انگیز است ، می توانیم با استفاده از یک خط کد بسیار ساده به این هدف برسیم:
طول بازگشت به پیش فرض ATR نشانگر 14 میله است ، بنابراین می توانیم طول ATRL را به طور پیش فرض به 14 اختصاص دهیم.
مثل همیشه ، بهترین کار این است که به کاربران اسکریپت خود اجازه دهید این تنظیمات را با اولویت خود تنظیم کنند ، بنابراین ما قصد داریم از عملکرد ورودی برای اختصاص متغیر پیش فرض استفاده کنیم:
از آنجا که ما از یک عدد کامل به عنوان طول ATR استفاده می کنیم ، باید نوع ورودی را روی "عدد صحیح" تنظیم کنیم.
و فراموش نکنید - زیرا ما این داده ها را مستقیماً به جای اینکه وارد جعبه نشانگر خود می شویم ، به طور مستقیم در نمودار قرار می دهیم ، همانطور که در درس های قبلی ذکر کردم ، باید "پوشش" را به درستی تنظیم کنیم.
و برای جلوگیری از خطاها هنگام تهیه اسکریپت ، باید حداقل یک عملکرد () عملکرد () در فیلمنامه داشته باشیم. در حال حاضر ، ما فقط این را به عنوان طرح (نزدیک) ترک خواهیم کرد تا قیمت بسته شدن را به نمودار خود بکشیم و بعداً آن را تغییر خواهیم داد.
بنابراین اسکریپت اولیه شما باید چیزی شبیه به این باشد:
مرحله 2: تشخیص پایین و بالا
به منظور ایجاد یک توقف دنباله دار ، دو گزینه داریم.
ما می توانیم ATR را در بالا یا پایین تر از قیمت بسته شدن فعلی ردیابی کنیم ، یا می توانیم آن را در بالا یا زیر ساختار دنبال کنیم.
پیگیری آن در بالا یا پایین تر از قیمت بسته شدن آسان است - ما به سادگی مقدار ATR فعلی را از قیمت بسته شدن فعلی اضافه یا تفریق می کنیم. اما اگر می خواهیم از ساختار استفاده کنیم ، نیاز داریم که جدیدترین اوج و پایین نوسان را تشخیص دهیم.
من نشان دادم که چگونه می توانم در درس 2 به این هدف برسیم ، و پیدا کردن نزدیکترین یا پایین در یک دوره برگشت به نظر می رسد بسیار ساده است. ابتدا باید تعریف کنیم که چند میله را می خواهیم دوباره جستجو کنیم ، و سپس باید در طی آن دوره بالاترین و کمترین پایین را بدست آوریم.
بنابراین برای شروع ، ما باید دو ورودی دیگر ایجاد کنیم - یک ورودی بولی برای تعیین گزینه ای که می خواهیم از آن استفاده کنیم (قیمت بسته شدن یا ساختار - به طور پیش فرض بر روی درست تنظیم شده است) و دوره بازگشت برای تشخیص ساختار:
اکنون که ارزش جستجو را داریم (7 میله به طور پیش فرض) ، می توانیم از آن استفاده کنیم تا مشخص کنیم که تا چه اندازه می توان از عملکرد قیمت تاریخی برای بالا رفتن و پایین حرکت کرد.
ما با استفاده از بالاترین () و پایین ترین () توابع داخلی به این هدف می رسیم:
پس از افزودن این چند خط کد، اکنون اسکریپت شما باید چیزی شبیه به این باشد:
ما اکنون تمام اطلاعات مورد نیاز خود را برای ایجاد یک توقف در اختیار داریم - به جز آخرین مورد: ضرب کننده ATR.
مرحله 3: افزودن یک ضریب ATR
اکثر استراتژیها و اسکریپتها در محاسبات خود به یک ضربکننده ATR نیاز دارند، زیرا همه از یک مقدار پیشفرض 1 ATR در توقف ضرر یا قرار دادن هدف خود استفاده نمیکنند.
اما قبل از اینکه بتوانیم یک ضریب به کد خود اضافه کنیم، باید یک ورودی ضریب ATR ایجاد کنیم که یک عدد اعشاری ممیز شناور را از کاربر دریافت کند، مانند:
نوع ورودی "input. float" به این معنی است که کاربران ما می توانند هر عددی را با اعشار وارد کنند. به عنوان مثال، اگر بخواهند از یک ضریب ATR نصف برای ترسیم نیمی از فاصله استاندارد ATR استفاده کنند، می توانند 0. 5 را تایپ کنند.
بهطور پیشفرض آن را روی 1 میگذاریم (defval=1. 0) و حداقل مقدار 0. 1 (minval=0. 1) را تعیین میکنیم. این مقدار حداقل اختیاری است، اما فرصت خوبی برای نشان دادن پارامتر minval است.
اکنون همه چیزهایی را که برای شروع محاسبه توقف واقعی نیاز داریم در اختیار داریم و اسکریپت شما باید چیزی شبیه به این باشد:
و اکنون میتوانیم این تنظیمات را به هر چیزی که میخواهیم در منوی گزینهها تنظیم کنیم، که باید به شکل زیر باشد:
مرحله 4: محاسبه Trailing Stop Price
مرحله نهایی محاسبه توقف پایانی ATR ما ترکیب همه این متغیرهایی است که ایجاد کردهایم تا قیمت توقف انتهایی را تعیین کنیم.
ما می توانیم این را در دو خط کد با استفاده از "اپراتور شرطی" مناسب به دست آوریم:
عملگر شرطی با علامت سوال (؟) و علامت دو نقطه (:) نشان داده می شود.? نشان دهنده "اگر"، : نشان دهنده "دیگر" یا "در غیر این صورت" است.
اگر مبتدی هستید ممکن است گیج کننده به نظر برسد، اما نگران نباشید، درک آن چندان سخت نیست و برای آشنایی با مفهوم فقط به تمرین نیاز دارد.
? نماد در Pine Script بیانگر یک عبارت فشرده if / else است. اگر بولی قبل از ? درست است، سپس از مقدار اول استفاده می شود. در غیر این صورت از مقدار دوم استفاده می شود. در این مورد، "در غیر این صورت" (یا "دیگر") با علامت دو نقطه (:) نشان داده می شود.
بنابراین در شرایط جبری، خط کد longStop بالا می گوید:
مقدار longStop را به X اختصاص دهید، در صورتی که useStructure درست باشد، X روی lowestLow تنظیم شود یا اگر useStructure نادرست باشد، روی قیمت بسته شدن تنظیم شود.
در هر صورت، نتیجه یک ارزش قیمتی است. ما کمترین قیمت پایین یا قیمت بسته شدن را دریافت می کنیم.
اگر گیج کننده است، راه دیگری برای ارائه این خط کد به این صورت است:
در هر صورت – هنگامی که آن کمترین ارزش قیمت پایین یا بسته شدن را داشتیم، به سادگی به آن اضافه می کنیم یا آن را در ATR فعلی ضرب در مقدار ضریب ATR کم می کنیم.
برای توقف طولانی مدت آن را زیر قیمت میخواهیم، بنابراین آن را کم میکنیم – برای توقف کوتاه مدت آن را بالاتر از قیمت میخواهیم، بنابراین به آن اضافه میکنیم.
پس از اضافه کردن این دو خط کد، اسکریپت شما باید به شکل زیر باشد:
مرحله 5: ترسیم ایستگاه انتهایی به نمودار شما
اسکریپت تقریباً کامل است، اما مرحله نهایی این است که این مقادیر را به نمودار واقعی خود بکشیم.
این بخش آسان است - تنها کاری که باید انجام دهیم این است که طرح (بستن) را با 2 قطعه جدید جایگزین کنیم، مانند:
اگر آن دو خط کد را به نمودار خود اضافه کنید، اسکریپت اکنون قیمت توقف پایانی شما را برای هر دو موقعیت Long و Short در نمودار ترسیم می کند.
اما اگر بخواهیم مقدار فعلی ATR را بدون داشتن 2 نشانگر در نمودار خود بدانیم (این اندیکاتور و اندیکاتور ATR) چه باید کرد؟
ما قبلاً مقدار ATR را داریم، بنابراین میتوانیم آن را نیز در نمودار خود رسم کنیم. و اگر بخواهید رنگ Long Trailing stop (زیر قیمت) را به سبز و Short trailing stop (بالای قیمت) را به قرمز تغییر دهید، چه؟
اول از همه، اگر ATR را در نمودار خود رسم کنید سپس روی برخی ابزارها با محدوده قیمتی مشابه مقدار ATR، در واقع در نمودار عمل قیمت شما به صورت یک خط سیاه تصادفی نشان داده می شود.
بنابراین اگر میخواهیم مقدار را به نمودار رسم کنیم، باید آن را شفاف کنیم:
و در نهایت، برای تغییر رنگ توقف های انتهایی خود، فقط باید توابع plot() خود را به شکل زیر تنظیم کنیم:
توجه داشته باشید که من طرح ها را با استفاده از پارامتر "title" عنوان کرده ام. اگر این کار را انجام دهید، به شما این امکان را می دهد که این مقادیر را در منوی تنظیمات تنظیم کنید، که وقتی گزینه های نشانگر خود را باز می کنید به این شکل به نظر می رسد:
تبریک می گویم!اکنون اسکریپت ما بالاخره کامل شده است و شما اولین اسکریپت نشانگر توقف انتهایی خود را دارید.
اگر آن را به نمودار خود اضافه کنید، باید چیزی شبیه به این باشد:
چگونه مقیاس نمودار را رفع کنیم
اگر این اسکریپت را به نمودار خود اضافه میکنید و دادههای قیمت شما کاملاً فشرده و عجیب به نظر میرسد، مطمئن شوید که محور قیمت خود را روی «Scale Price Chart Only» تنظیم کردهاید، مانند این:
دوره پیشرفته
اگر می خواهید کدنویسی Pine Script خود را به سطح بعدی ببرید، فکر می کنم به دوره تسلط Pine Script من علاقه مند شوید.
اگر این محتوای رایگان را دوست داشتید، قول میدهم که محتوای ممتاز من را دوست داشته باشید، جایی که میتوانم به جزئیات بسیار بیشتری وارد شوم و به سؤالات دانشآموزان پاسخ دهم!