icon icon Home
icon icon Accounts
icon icon Quick start
icon icon Symbols

آموزش اندیکاتور Williams %R (اندیکاتور ویلیامز)

نویسنده
Dr.Rahman
Dr.Rahman

رحمان، دانش آموخته آی تی از دانشگاه امیرکبیر است که از سال 1388 در این حوزه فعالیت خود را آغاز کرده است. اما علاقه او به بازارهای مالی منجر به شروع فعالیت جدی او و پژوهش در این حوزه نیز شده است و در این زمینه دو کتاب نیز تالیف کرده که به بررسی و تحلیل عمیق مباحث مالی و اقتصادی می‌پردازند. در حال حاضر مسیر فعالیت خود در بازارهای مالی را به به عنوان کارشناس محتوا در بروکر آرون گروپس ادامه می‌دهد. با رحمان از طریق زیر می‌توانید در ارتباط باشید: rahmani_content@aron-groups.com

Author
بازبینی کننده
کارشناس اقتصادی
Author
کارشناس اقتصادی

کارشناس اقتصادی در آرون گروپس.

calendar آخرین بروزرسانی: 2 روز پیش
watch زمان مطالعه 1 دقیقه

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

آنچه در این مقاله می خوانید ...

اندیکاتور ویلیامز %R چیست؟

اندیکاتور ویلیامز %R یا محدوده درصد ویلیامز (Williams %R) یک شاخص نوسانی است که توسط لری ویلیامز، معامله‌گر و تحلیل‌گر مشهور بازارهای مالی، توسعه یافته است. این اندیکاتور برای سنجش وضعیت اشباع خرید یا اشباع فروش در بازار طراحی شده و یکی از ابزارهای محبوب در تحلیل تکنیکال به شمار می‌رود.

Williams %R بین محدوده‌های 0 تا 100- نوسان می‌کند و هنگامی که این مقدار نزدیک به صفر باشد، نشان‌دهنده اشباع خرید و وقتی نزدیک به 100- باشد، نشان‌دهنده اشباع فروش است. معامله‌گران از این اندیکاتور برای شناسایی نقاط برگشت احتمالی در حرکت قیمت استفاده می‌کنند، به‌طوری‌که قیمت‌ها پس از رسیدن به سطح‌های اشباع، ممکن است به سمت عکس حرکت کنند.

اندیکاتور ویلیامز

فرمول اندیکاتور Williams

فرمول اندیکاتور ویلیامز R%

در این فرمول:

  • بالاترین قیمت (n دوره): بالاترین قیمت ثبت شده در n دوره اخیر است؛
  • پایین‌ترین قیمت (n دوره): پایین‌ترین قیمت ثبت شده در n دوره اخیر است؛
  • قیمت پایانی: قیمت پایانی در دوره جاری.

ضرب نهایی در 100- به‌منظور تبدیل مقیاس درصدی به کار می‌رود.

نحوه محاسبه اندیکاتور ویلیامز (Williams %R)

محاسبه اندیکاتور ویلیامز %R فرایندی نسبتاً ساده است که به شناسایی شرایط اشباع خرید و فروش در بازارهای مالی کمک می‌کند. برای شروع، معامله‌گران باید تعداد دوره‌های زمانی که برای محاسبه استفاده می‌شود را تعیین کنند. به‌طور معمول، تنظیم پیش‌فرض اندیکاتور Williams %R بر اساس 14 دوره است، اما این مقدار می‌تواند بنا به نیاز تغییر کند. منظور از دوره‌ها، بازه‌های زمانی مشخص مانند 14 روز، 14 ساعت یا 14 کندل در یک نمودار قیمتی است که معامله‌گر انتخاب می‌کند.

گام‌های محاسبه Williams %R

  1. تعیین دوره زمانی: اولین گام، انتخاب تعداد دوره‌هایی است که برای محاسبه اندیکاتور ویلیامز استفاده خواهد شد. بیشتر معامله‌گران از دوره 14 استفاده می‌کنند، اما می‌توان تعداد بیشتری از دوره‌ها را نیز انتخاب کرد تا تغییرات ملایم‌تری مشاهده شود.
  2. شناسایی بالاترین و پایین‌ترین قیمت: در مرحله دوم، باید بالاترین قیمت و پایین‌ترین قیمت در بازه انتخابی (برای مثال 14 دوره اخیر) شناسایی شود. این قیمت‌ها به عنوان مرجع محاسبه استفاده می‌شوند و مشخص می‌کنند که در این بازه زمانی، حداکثر و حداقل قیمت دارایی چه بوده است.
  3. محاسبه اختلاف قیمت: اکنون، باید اختلاف بین بالاترین قیمت و قیمت پایانی (آخرین قیمتی که در پایان دوره ثبت شده است) محاسبه شود. این اختلاف نشان می‌دهد که قیمت کنونی نسبت به بالاترین قیمت دوره چقدر فاصله دارد.
  4. محاسبه محدوده دوره: در این مرحله، اختلاف بین بالاترین قیمت و پایین‌ترین قیمت در دوره مورد نظر محاسبه می‌شود. این مقدار به عنوان مخرج فرمول عمل می‌کند و نشان می‌دهد که تفاوت کل بین بالاترین و پایین‌ترین قیمت چقدر است.
  5. جایگذاری در فرمول و ضرب در 100-:  در نهایت، اختلاف قیمت (از مرحله سوم) بر محدوده دوره (از مرحله چهارم) تقسیم شده و سپس در 100- ضرب می‌شود تا مقدار اندیکاتور Williams %R به دست آید.
فرمول نهایی به این شکل است:
فرمول اندیکاتور ویلیامز R%

تحلیل نتایج به دست آمده از اندیکاتور ویلیامز R%

نتیجه این محاسبه عددی خواهد بود که بین 0 تا 100- نوسان می‌کند. این محدوده نشان‌دهنده موقعیت نسبی قیمت جاری نسبت به بالاترین و پایین‌ترین قیمت‌های دوره انتخابی است و به معامله‌گر کمک می‌کند تا وضعیت بازار را ارزیابی کند:

  • 0 تا 20-  اگر مقدار Williams %R بین 0 تا 20- باشد، بازار در وضعیت اشباع خرید قرار دارد. این بدان معناست که قیمت‌ها احتمالاً به سقف خود نزدیک شده‌اند و ممکن است به زودی کاهش یابند. معامله‌گران اغلب در این مرحله به دنبال فرصت‌های فروش می‌گردند.
  • 20- تا 80-: اگر مقدار Williams %R در محدوده 20- تا 80-  باشد، این ناحیه به عنوان ناحیه خنثی شناخته می‌شود. در این محدوده، بازار در تعادلی نسبی قرار دارد و هیچ نشانه‌ای از اشباع خرید یا فروش وجود ندارد. معامله‌گران در این شرایط ممکن است منتظر بمانند تا بازار به یکی از سطوح اشباع نزدیک شود.

80- تا 100- : وقتی مقدار Williams %R به محدوده 80-  تا 100- می‌رسد، نشان‌دهنده اشباع فروش است. در این حالت، قیمت‌ها به پایین‌ترین سطح خود نزدیک شده‌اند و احتمال بازگشت به سمت بالا وجود دارد. معامله‌گران در این مرحله معمولاً به دنبال فرصت‌های خرید هستند.

مثال کاربردی از اندیکاتور ویلیامز R%

فرض کنید در یک نمودار 14 دوره‌ای، بالاترین قیمت ثبت شده 120 دلار، پایین‌ترین قیمت 100 دلار و قیمت پایانی 110 دلار است. محاسبات به این شکل خواهد بود:

فرمول ویلیامز

در این مثال، مقدار Williams %R برابر با 50- است که نشان‌دهنده وضعیت خنثی در بازار است؛ به این معنا که بازار در این لحظه نه در حالت اشباع خرید است و نه اشباع فروش.

نکات مهم در استفاده از Williams %R

جهت استفاده از اندیکاتور ویلیامز R% توجه به نکات زیر در استفاده موثر تر از آن می‌توند مفید باشد: 

  • انعطاف‌پذیری: معامله‌گران می‌توانند تعداد دوره‌ها را با توجه به استراتژی خود تغییر دهند. دوره‌های کوتاه‌تر سیگنال‌های سریع‌تری ارائه می‌دهند اما ممکن است پرنوسان باشند، در حالی که دوره‌های طولانی‌تر نوسانات را صاف‌تر کرده و سیگنال‌های مطمئن‌تری فراهم می‌کنند.
  • کاربرد در تایم‌فریم‌های مختلف: اندیکاتور Williams %R را می‌توان در تایم‌فریم‌های مختلف، از نمودارهای دقیقه‌ای تا ماهانه، استفاده کرد. این ویژگی باعث می‌شود این اندیکاتور برای معامله‌گران کوتاه‌مدت و بلندمدت مناسب باشد.

ترکیب با سایر اندیکاتورها: برای کاهش احتمال سیگنال‌های کاذب، بهتر است از Williams %R به همراه سایر اندیکاتورهای تکنیکال مانند میانگین متحرک، MACD یا RSI استفاده شود. این ترکیب می‌تواند تحلیل دقیق‌تری از روند بازار به معامله‌گران ارائه دهد.

آموزش اندیکاتور Williams %R (اندیکاتور ویلیامز)

روش‌های رایج استفاده از اندیکاتور ویلیامز %R

همانطور که در مقاله Babypips آمده است، Williams %R به معامله‌گر این امکان را می‌دهد تا تشخیص دهد که بازار تا چه حد از تعادل خود خارج شده است و آیا احتمال بازگشت قیمتی وجود دارد یا خیر، که در ادامه به توضیح این شرایط پرداخته می‌شود.

  1. اشباع خرید و فروش: معامله‌گران به طور گسترده‌ای از این اندیکاتور برای شناسایی نقاط اشباع خرید و فروش استفاده می‌کنند. به عنوان مثال، اگر Williams %R به زیر 80-  برسد، به معنی اشباع فروش است و می‌تواند فرصت مناسبی برای خرید باشد. بالعکس، اگر مقدار Williams %R به بالای 20-  برسد، نشان‌دهنده اشباع خرید است و می‌تواند فرصت خوبی برای فروش باشد.
  2. واگرایی (Divergence): واگرایی یکی از سیگنال‌های مهم در استفاده از Williams %R است. واگرایی زمانی رخ می‌دهد که روند قیمت دارایی با جهت حرکت Williams %R همخوانی ندارد. برای مثال، اگر قیمت در حال افزایش باشد اما مقدار Williams %R به سمت پایین حرکت کند، این می‌تواند نشان‌دهنده ضعف در روند فعلی و احتمال بازگشت قیمتی باشد.
  3. تأیید شکست (Breakout Confirmation): معامله‌گران می‌توانند از Williams %R برای تأیید شکست‌های قیمتی نیز استفاده کنند. اگر قیمت از یک سطح مقاومتی یا حمایتی عبور کند، Williams %R می‌تواند به تأیید این شکست کمک کند. مثلاً وقتی قیمت بالاتر از یک سطح مقاومتی کلیدی حرکت می‌کند و Williams %R در ناحیه اشباع خرید قرار دارد، این نشان‌دهنده احتمال تداوم حرکت صعودی است.

مزایا و معایب اندیکاتور ویلیامز R%

بنا به این مقاله در Investopedia، استفاده از اندیکاتور ویلیامز با مزایا و محدودیت‌هایی همراه است.
از جمله مزایای این اندیکاتور عبارتند از:

  • ساده و قابل فهم: یکی از مهم‌ترین ویژگی‌های اندیکاتور Williams %R، سادگی آن است. معامله‌گران مبتدی نیز به راحتی می‌توانند از آن استفاده کنند و سیگنال‌های خرید و فروش را شناسایی کنند.
  • پیش‌بینی معکوس روند: این اندیکاتور به‌طور موثری می‌تواند نقاط بازگشت احتمالی روند را پیش‌بینی کند و به معامله‌گران کمک کند تا در شرایط اشباع خرید یا فروش تصمیم‌گیری کنند.
  • قابلیت استفاده در بازه‌های زمانی مختلف: Williams %R را می‌توان در تمامی تایم‌فریم‌ها از جمله نمودارهای روزانه، هفتگی و حتی ماهانه استفاده کرد. این انعطاف‌پذیری آن را به ابزاری مناسب برای معامله‌گران کوتاه‌مدت و بلندمدت تبدیل کرده است.

اندیکاتور ویلیامز R% با وجود مفید بودن، دارای محدودیت‌هایی است که باید در نظر گرفته شود. این محدودیت‌ها عبارتند از:

  • سیگنال‌های کاذب: یکی از معایب Williams %R ارائه سیگنال‌های کاذب است. برای مثال، ممکن است در شرایط اشباع خرید، قیمت همچنان به رشد خود ادامه دهد یا در شرایط اشباع فروش، قیمت همچنان کاهش یابد.
  • نیاز به تأیید توسط ابزارهای دیگر: برای اطمینان بیشتر از سیگنال‌های Williams %R، بهتر است با ابزارهای دیگر مانند خطوط روند، میانگین متحرک و اندیکاتورهای مکمل ترکیب شود.
  • عدم ارائه جهت حرکت: اندیکاتور ویلیامز تنها نشان می‌دهد که بازار در حالت اشباع خرید یا فروش است، اما جهت دقیق حرکت قیمت را مشخص نمی‌کند. به همین دلیل معامله‌گران باید از سایر ابزارها برای تأیید جهت استفاده کنند.
اندیکاتور ویلیامز R%

تفاوت بین Williams %R و اندیکاتور Stochastic

اگرچه هر دو اندیکاتور Williams %R و Stochastic برای شناسایی شرایط اشباع خرید و فروش استفاده می‌شوند، تفاوت‌هایی بین آن‌ها وجود دارد:

  • مقیاس: اندیکاتور ویلیامز %R در محدوده 0 تا 100- نوسان می‌کند، در حالی که Stochastic در مقیاس 0 تا 100 محاسبه می‌شود.
  • فرمول محاسبه: با وجود اینکه نتایج این دو اندیکاتور مشابه هستند، اما فرمول محاسبه آن‌ها متفاوت است. Williams %R از فرمولی ساده‌تر استفاده می‌کند و نتیجه را در مقیاس منفی ارائه می‌دهد.
  • واکنش به تغییرات قیمت: Stochastic معمولاً نوسانات کمتری نسبت به Williams %R دارد و در شرایط مختلف بازاری نتایج متفاوتی را نشان می‌دهد. Williams %R به‌طور معمول سریع‌تر به تغییرات قیمت واکنش نشان می‌دهد و این باعث می‌شود برای معامله‌گران کوتاه‌مدت مناسب‌تر باشد.

نتیجه‌گیری

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

calendar آبان 14, 1403
به این مقاله امتیاز بدهید

Leave a Reply

Your email address will not be published. Required fields are marked *

`; // Select the inner section where the comment should be placed const contentWrapper = cardTemplate.querySelector('.gradient-card-content'); // Move the comment into the template contentWrapper.appendChild(comment); // Add the template to the wrapper wrapper.appendChild(cardTemplate); // Add the constructed wrapper to the comment list commentListWrapper.appendChild(wrapper); }); comments.forEach((comment) => { // Select the comment-body element const commentBody = comment.querySelector('.comment-body'); const meta = comment.querySelector('.comment-meta.commentmetadata'); const reply = comment.querySelector('.reply'); if (commentBody) { // Create a new
with a specific class const newDiv = document.createElement('div'); newDiv.classList.add('custom-wrapper'); // Add the desired class // Append the new
to the comment-body commentBody.appendChild(newDiv); newDiv.appendChild(meta) newDiv.appendChild(reply) } }); -->
نه ممنون
Table of contents
`; const initializeAccordion = () => { const accordionHeaders = document.querySelectorAll(".accordion__header"); accordionHeaders.forEach((item) => { item.addEventListener("mouseup", () => { item.classList.toggle("open"); }); }); }; if (newSingleBlogPost != null || newSingleBlogPost != undefined) { // add table of content after first child in base content const firstChild = baseContent.firstElementChild.firstElementChild.firstElementChild; // Convert the table of content HTML string to a DOM element const tempDiv = document.createElement("div"); tempDiv.innerHTML = tableOfContentHTML; const tableOfContentElement = tempDiv.firstElementChild; if (firstChild) { baseContent.firstElementChild.firstElementChild.insertBefore(tableOfContentElement, firstChild.nextElementSibling); } // Set accordion click after table of content add to DOM initializeAccordion(); // Select all h2 and h3 elements const headings = document.querySelectorAll(".base_content h2, .base_content h3"); // Add data-id attribute to each heading headings.forEach((heading) => { const text = heading.textContent.trim(); const id = text .replace(/\s+/g, "_") .replace(/[^\w\u0600-\u06FF_]/g, "") .toLowerCase(); heading.setAttribute("data-id", id); }); // Create dynamic table of contents const tocWrapper = document.querySelector(".tocWrapper"); tocWrapper.innerHTML = ""; // Clear any existing content let currentH2 = null; // Variable to store the current h2 being processed headings.forEach((heading,index) => { if (heading.tagName === "H2") { // Create a link for h2 headings const link = document.createElement("a"); link.href = `#${heading.getAttribute("data-id")}`; link.textContent = heading.textContent; link.classList.add("h2"); link.classList.add("scroll-tag"); // Create a list item for h2 const listItem = document.createElement("div"); listItem.classList.add("item"); listItem.appendChild(link); // Append the list item for the h2 tocWrapper.appendChild(listItem); // Set the current h2 to this heading currentH2 = listItem; } else if (heading.tagName === "H3" && currentH2) { // Create a link for h3 headings as a subitem of the current h2 const link = document.createElement("a"); link.href = `#${heading.getAttribute("data-id")}`; link.textContent = heading.textContent; link.classList.add("h3"); link.classList.add("scroll-tag"); // Create a subitem for h3 and append it to the current h2 item const subItem = document.createElement("div"); subItem.classList.add("sub-item"); subItem.appendChild(link); // Append the subitem to the current h2's list item currentH2.appendChild(subItem); } }); // Scroll to the section when a TOC item is clicked tocWrapper.addEventListener("click", (e) => { e.preventDefault() if (e.target.tagName === "A") { const targetId = e.target.getAttribute("href").substring(1); const targetElement = document.querySelector(`[data-id="${targetId}"]`); if (targetElement) { // Scroll to the element, but adjust for the header height const targetOffset = targetElement.getBoundingClientRect().top + window.scrollY - 84; window.scrollTo({ top: targetOffset, behavior: "smooth" }); e.preventDefault(); } } }); const tableOfcontent = document.querySelector('.table_of_contents'); const tagleOfContentTitle = tableOfcontent.querySelector('.title span') const translateTableOfContent = () => { const language = getLanguageKey(); if (language === "fa") { tagleOfContentTitle.textContent = "فهرست مطالب"; } else if (language === "ar") { tagleOfContentTitle.textContent = "جدول المحتويات"; } else { tagleOfContentTitle.textContent = "Table of Content"; } }; // فراخوانی تابع ترجمه translateTableOfContent(); // Copy logic // Localized messages for different languages const messages = { en: { initial: "Copy link", copied: "Copied!", }, fa: { initial: "کپی لینک", copied: "کپی شد!", }, ar: { initial: "نسخ الرابط", copied: "تم النسخ!", }, }; // Function to detect language and match messages function getLanguageKey () { const lang = document.documentElement.lang.toLowerCase(); if (lang.includes("fa")) return "fa"; if (lang.includes("ar")) return "ar"; return "en"; }; // Function to update button text based on language const updateButtonText = (button, state = "initial") => { const langKey = getLanguageKey(); button.textContent = messages[langKey]?.[state] || messages.en[state]; }; // Function to change button background color const updateButtonBackgroundColor = (button, color) => { button.style.backgroundColor = color; }; // Initialize button text and background color on page load window.addEventListener("load", () => { const copyButton = document.querySelector(".copy_btn"); updateButtonText(copyButton); updateButtonBackgroundColor(copyButton, "#f9c43e"); // Initial color }); // Add click event listener to copy URL and update button text and color document.querySelector(".copy_btn").addEventListener("click", function () { const copyButton = this; const currentUrl = window.location.href; navigator.clipboard .writeText(currentUrl) .then(() => { updateButtonText(copyButton, "copied"); updateButtonBackgroundColor(copyButton, "#cacaca"); // Change color on click setTimeout(() => { updateButtonBackgroundColor(copyButton, "#f9c43e"); // Reset color after 3 seconds updateButtonText(copyButton); // Reset text after 3 seconds }, 3000); // 3-second timeout }) .catch((err) => { console.error("Failed to copy:", err); }); }); // rate popup click function /** * Initialize popup functionality for rate popups. * @param {HTMLElement} trigger - Element that triggers the popup. * @param {HTMLElement} popup - Popup element to display. * @param {HTMLElement} overlay - The overlay element. * @param {HTMLElement} closeButton - Button to close the popup. */ function initRatePopup(trigger, popup, overlay, closeButton) { // Show the popup when the trigger is clicked if (trigger) { trigger.addEventListener("click", () => { setTimeout(()=>{ openModal(popup, overlay); },1000) }); } // Add event listener to the overlay for closing the modal overlay.addEventListener("click", () => closeModal(popup, overlay)); // Hide the popup when the close button is clicked if (closeButton) { closeButton.addEventListener("click", () => { closeModal(popup, overlay); }); } } // Initialize the rate popup const rateStarsWrapper = document.querySelectorAll(".rate_stars_wrapper"); const ratePopup = document.querySelector(".rate_popup"); const closeRatePopupBtn = document.querySelector(".no_thanks"); rateStarsWrapper.forEach((element)=>{ initRatePopup(element, ratePopup, overlay, closeRatePopupBtn); }) window.addEventListener("load", () => { // Bonus popup functions const popup = document.querySelector(".bonus_popup"); if (!popup) return; // Exit if popup doesn't exist let isPopupShown = false; let hasScrolled = false; // Listener for scroll event const handleScroll = () => { if (isPopupShown || hasScrolled) return; // Prevent multiple triggers hasScrolled = true; setTimeout(() => { popup.classList.add("show"); isPopupShown = true; // Remove the event listener after showing the popup window.removeEventListener("scroll", handleScroll); }, 0); }; window.addEventListener("scroll", handleScroll); // Close popup functionality const closeIcon = popup.querySelector(".close_icon"); if (closeIcon) { closeIcon.addEventListener("click", () => { popup.classList.remove("show"); popup.classList.add("hide"); // Remove the hide class after animation completes popup.addEventListener( "transitionend", () => { popup.classList.remove("hide"); }, { once: true } ); }); } // Suggested Article Popup Logic const suggestedPopup = document.querySelector(".suggested_article_popup"); if (suggestedPopup) { const timeout = parseInt(suggestedPopup.getAttribute("data-timeout"), 10) || 0; setTimeout(() => { suggestedPopup.classList.add("show"); const closeSuggestedIcon = suggestedPopup.querySelector(".close_btn_wrapper"); if (closeSuggestedIcon) { closeSuggestedIcon.addEventListener("click", () => { suggestedPopup.classList.remove("show"); suggestedPopup.classList.add("hide"); suggestedPopup.addEventListener( "transitionend", () => { suggestedPopup.classList.remove("hide"); }, { once: true } ); }); } }, timeout); } }); } -->