شاخص قدرت نسبی (RSI) یک شاخص فنی برای تجزیه و تحلیل بازار مالی است. با اندازه گیری میزان تغییرات قیمت اخیر ، شرایط بیش از حد یا فروش بیش از حد سهام یا سایر ابزارهای مالی را ارزیابی می کند.
RSI به عنوان یک نوسان ساز حرکت ، جایی که در آن طبقه بندی می شود.
- حرکت به نرخ افزایش یا کاهش قیمت اشاره دارد
- نوسان ساز بدان معنی است که مقدار آن همیشه بین دو افراط حرکت می کند (یعنی 0 تا 100 برای RSI)
شاخص قدرت نسبی در ابتدا توسط J. Welles Wilder ساخته شده و در کتابی در سال 1978 با عنوان "مفاهیم جدید در سیستم های تجارت فنی" منتشر شده است. امروزه ، به یکی از محبوب ترین شاخص های نوسان ساز در تجزیه و تحلیل فنی تبدیل شده است.
محاسبه
اول ، ما 2 سری T را تعریف کردیم>و t>نمایندگی قیمت رو به بالا و رو به پایین به ترتیب تغییر می کند. برای t = 1،2،3.
نسبت این میانگین ها قدرت نسبی است:
rs = avg (u ، n) / avg (d ، n)
شاخص قدرت نسبی سپس به این صورت محاسبه می شود:
RSI = 100 - 100/(1 + RS)
تفسیر
خواندن RSI از 70 یا بالاتر معمولاً به عنوان یک ابزار مالی در حال افزایش بیش از حد یا بیش از حد ارزیابی می شود ، که ممکن است نشانگر بازگشت روند یا بازپرداخت اصلاحی در قیمت در آینده نزدیک باشد. خواندن RSI از 30 یا پایین تر می تواند به عنوان یک شرایط فراگیر یا کم ارزش تعبیر شود.
همانطور که از فرمول فوق مشاهده می شود ، اگر سهام در حال افزایش باشد ، ما یک دنباله صفر از t دریافت خواهیم کرد>بشراز این رو AVG (D ، N) صفر خواهد بود و مقدار RS به بی نهایت نزدیک می شود ، به طوری که RSI حاصل به 100 نزدیک می شود. در نتیجه ، گفته می شود که این سهام بیش از حد است.
اجرای RSI
یک تحلیل فنی Python "TA-Lib" وجود دارد که محاسبه RSI را فراهم می کند.
1 2 3
وارد كردن کول_که در= [.] _out=کول.RSI (_in ، _n)
از طرف دیگر ، از آنجا که محاسبه RSI خیلی پیچیده نیست ، اجرای کد به تنهایی نیز یک تمرین خوب است.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
دنباله RSI(داده ها ، n ، isema=درست است، واقعی): م= لن(داده ها)-1k= 1/شناور(ن) RSI= [هیچ یک]*m # رسیدگی به خطا برای داده های ناکافی if mn: برگشتRSI# محاسبه تفاوت قیمت 1 مرحلهدلتا=[داده ها [من+1]-داده ها [i]برایمنin دامنه(0، م)]# سری سودهای مثبت (بالا) و سود منفی (پایین) را ایجاد کنیدکسب کردن= [غضب(من)if i>0 دیگر 0 برایمنinدلتا] ضرر= [غضب(من)if i دیگر 0 برایمنinدلتا] AVG_GAIN= جمع(کسب کردن[0: n])/شناور(ن) avg_loss= جمع(ضرر - زیان[0: n])/شناور(N)برایمنin دامنه(n ، m):# میانگین متحرک نمایی ifisema: avg_gain=به دست آوردن [i]*k +avg_gain*(1-k) avg_loss=ضرر [من]*k +avg_loss*(1-k) # میانگین حرکت ساده دیگر: avg_gain=(avg_gain*n -سود[i-n] +سود[i])*k avg_loss=(میانگین_از دست دادن*n -ضرر[i-n] +ضرر[i])*k # مقدار RSI را محاسبه کنید ifavg_loss==0: RSI[i]= 100. 0 دیگر: RSI[i]= 100. 0 - (100. 0 / (1.0 +avg_gain/میانگین_از دست دادن))برگشتRSI
مثال
فرض کنید 100 مشاهده از قیمت های بسته شدن روزانه داریم و علاقه مند به محاسبه RSI 14 روزه هستیم.
10، 10. 1، 9. 92، 9. 89، 9. 19، 8. 5، 8. 96، 8. 04، 7. 67، 8. 6، 8. 72، 9. 14، 10. 03، 10. 79، 11. 39، 11. 71، 11. 71، 11. 71، 11. 71 12، 12. 53، 12. 59، 13. 53، 12. 87،13. 27، 13. 72، 13. 3، 13. 88، 14. 17، 14. 77، 14. 15، 13. 75، 14. 51، 13. 57، 12. 57، 13. 02، 13. 21، 112. 42، 112. 41، 112. 41، 112. 41، . 81، 10. 07، 9. 9، 9. 77، 10. 48، 11. 38، 10. 46،10. 28، 10. 3، 10. 78، 11. 49، 12. 27، 12. 59، 12. 74، 12. 08، 11. 19، 12. 07، 13، 13. 87، 13. 15، 12. 91، 12. 91، 13. 15، 12. 91، 12. 91، 13. 13. 12. 43، 12. 75، 11. 97، 12. 93، 13. 73، 13. 33، 13. 74،13. 54، 14. 23، 13. 41، 12. 52، 13. 34، 14. 06، 14، 13. 83، 14. 32، 15. 18، 15. 08، 14. 86، 13. 99، 13. 41، 13. 48، 13. 41، 13. 48، 13. 41، 14. 06 13. 27، 13. 62، 13. 69، 13. 4، 12. 74، 13. 09، 13. 96
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 37 4 3 4 4 45 46 47 48 49 5051 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
%matplotlib درون خطیوارد كردن ناتوان as np از جانب matplotlib وارد كردنپای طرحaspltوارد كردن کولدوره زمانی= 14obs= [10, 10. 1, 9. 92, 9. 89, 9. 19, 8.5, 8. 96, 8. 04, 7. 67, 8.6, 8. 72, 9. 14, 10. 03, 10. 79, 11. 39, 11. 71, 11. 1, 12. 05, 11. 21, 11. 5, 12, 12. 53, 12. 59, 13. 53, 12. 87, 13. 27, 13. 72, 13. 3, 13. 88, 14. 17, 14. 77, 14. 15, 13. 75, 14. 51, 13. 57, 12. 57, 13. 02, 13. 21, 12. 41, 12. 28, 11. 41, 12, 11, 10. 81, 10. 07, 9.9, 9. 77, 10. 48, 11. 38, 10. 46, 10. 28, 10. 3, 10. 78, 11. 49, 12. 27, 12. 59, 12. 74, 12. 08, 11. 19, 12. 07, 13, 13. 87, 13. 15, 12. 91, 13. 19, 13. 17, 12. 24, 12. 35, 12. 43, 12. 75, 11. 97, 12. 93, 13. 73, 13. 33, 13. 74, 13. 54, 14. 23, 13. 41, 12. 52, 13. 34, 14. 06, 14, 13. 83, 14. 32, 15. 18, 15. 08, 14. 86, 13. 99, 13. 48, 12. 89, 13. 17, 14. 16, 13. 5, 13. 27, 13. 62, 13. 69, 13. 4, 12. 74, 13. 09, 13. 96] دنباله RSI(داده ها ، n ، isema=درست است، واقعی): م= لن(داده ها)-1k= 1/شناور(ن) RSI= [هیچ یک]*m # رسیدگی به خطا برای داده های ناکافی if mn: برگشتRSI# محاسبه تفاوت قیمت 1 مرحلهدلتا=[داده ها [من+1]-داده ها [i]برایمنin دامنه(0، م)]# سری سودهای مثبت (بالا) و سود منفی (پایین) را ایجاد کنیدکسب کردن= [غضب(من)if i>0 دیگر 0 برایمنinدلتا] ضرر= [غضب(من)if i دیگر 0 برایمنinدلتا] AVG_GAIN= جمع(کسب کردن[0: n])/شناور(ن) avg_loss= جمع(ضرر - زیان[0: n])/شناور(N)برایمنin دامنه(n ، m):# میانگین متحرک نمایی ifisema: avg_gain=به دست آوردن [i]*k +avg_gain*(1-k) avg_loss=ضرر [من]*k +avg_loss*(1-k) # میانگین حرکت ساده دیگر: avg_gain=(avg_gain*n -سود[i-n] +سود[i])*k avg_loss=(میانگین_از دست دادن*n -ضرر[i-n] +ضرر[i])*k # مقدار RSI را محاسبه کنید ifavg_loss==0: RSI[i]= 100. 0 دیگر: RSI[i]= 100. 0 - (100. 0 / (1.0 +avg_gain/میانگین_از دست دادن))برگشتRSI# سری RSI را محاسبه کنیدRSI1=کول.RSI (NP.آرایه (OBS) ، دوره) RSI2=RSI (OBS ، دوره)چاپ("RSI1 ="، RSI1)چاپ("rsi2 ="، RSI2)# طرحایکس=NP.آرایه ([منبرایمنin دامنه(لن(مشاهده))]) y=NP.آرایه ([منبرایمنinمشاهده]) y2=RSI1 PLT.شکل () plt.سبک.استفاده کنید(['Dark_background']) انجیر ، محورها=PLT.زیرزمین ها (2) تبر [0].set_title ("قیمت بسته شدن") تبر [0].طرح (x ، y ، linestyle='-'، رنگ="ب") تبر [1].set_title ('RSI') تبر [1].طرح (x ، y2 ، linestyle='-'، رنگ='g') PLT.نمایش ()نتیجه

اکنون ، ما درک بهتری در مورد RSI داریم! در پست آینده ، بیایید یک استراتژی RSI ایجاد کنیم و ببینیم چقدر مفید است.
آموزش استراتژی معاملاتی...
ما را در سایت آموزش استراتژی معاملاتی دنبال می کنید
برچسب :
نویسنده : ملیحه نصیری
بازدید : <-PostHit->
تاريخ : يکشنبه
22 مرداد
1402 ساعت: 21:11