شاخص حرکت جهت دار Welles Wilder: - ADX (HLC ، n = 14 ، matype ،.)
- bbands (HLC ، n = 20 ، matype ، sd = 2 ،.): باند بولینگر
- ROC (x ، n = 1 ، نوع = c ("مداوم" ، "گسسته") ، na. pad = true): نرخ تغییر
- حرکت (x ، n = 1 ، na. pad = true): momentum
- SMA (x ، n = 10 ،.): میانگین حرکت ساده
- EMA (x ، n = 10 ، وحشی = نادرست ، نسبت = تهی ،.): میانگین متحرک نمایی
- DEMA (x ، n = 10 ، v = 1 ، WILDER = FALSE ، RATIO = NULL): میانگین متحرک دوتایی
- WMA (x ، n = 10 ، wts = 1: n ،.): میانگین متحرک وزنی
- EVWMA (قیمت ، حجم ، n = 10 ،.): میانگین متحرک الاستیک ، حجم با وزن
- Zlema (x ، n = 10 ، نسبت = null ،.): صفر تاخیر در حال حرکت میانگین حرکت
- VWAP (قیمت ، حجم ، n = 10 ،.): قیمت متوسط متحرک با وزن
- VMA (X ، W ، نسبت = 1 ،.): میانگین متحرک با طول متغیر
- HMA (x ، n = 20 ،.): میانگین حرکت هال
- آلما (x ، n = 9 ، افست = 0. 85 ، سیگما = 6 ،.): میانگین متحرک Aaud
- MACD (x ، nfast = 12 ، nslow = 26 ، nsig = 9 ، matype ، درصد = true ،.)
- RSI (قیمت ، n = 14 ، matype ،.)
- runsum (x ، n = 10 ، تجمعی = false): مبالغ را از یک پنجره متحرک N- دوره باز می گرداند.
- runmin (x ، n = 10 ، تجمعی = false): حداقل ها را از طریق یک پنجره در حال حرکت N- دوره باز می گرداند.
- runmax (x ، n = 10 ، تجمعی = false): حداکثر را بر روی یک پنجره متحرک N- دوره باز می گرداند.
- runmean (x ، n = 10 ، تجمعی = false): بازگشت به معنای بیش از یک پنجره متحرک N- دوره است.
- runMedian (x ، n = 10 ، non. unique = "میانگین" ، تجمعی = نادرست): میانه را بر روی یک پنجره در حال حرکت N- دوره باز می گرداند.
- runcov (x ، y ، n = 10 ، استفاده = "all. obs" ، نمونه = درست ، تجمعی = نادرست): کوارارها را بر روی یک پنجره در حال حرکت N- بازگرداند.
- runcor (x ، y ، n = 10 ، استفاده = "all. obs" ، نمونه = درست ، تجمعی = نادرست): همبستگی ها را از طریق یک پنجره در حال حرکت n-period باز می گرداند.
- runvar (x ، y = null ، n = 10 ، sample = true ، تجمعی = false): واریانس ها را بر روی یک پنجره در حال حرکت N- دوره باز می گرداند.
- runsd (x ، n = 10 ، sample = true ، تجمعی = false): انحرافات استاندارد را از طریق یک پنجره در حال حرکت N- دوره باز می گرداند.
- runmad (x ، n = 10 ، center = null ، stat = "median" ، ثابت = 1. 4826 ، non. unique = "میانگین" ، تجمعی = نادرست): بازگشت میانه/میانگین انحراف مطلق را بر روی یک پنجره متحرک n- دوره.
- Wildersum (x ، n = 10): مبلغ وزنی سبک Welles Wilder را بیش از یک پنجره متحرک N- دوره ای باز می کند.
- STOCH (HLC ، NFASTK = 14 ، NFASTD = 3 ، NSLOWD = 3 ، MATYPE ، BOINDED = TRUE ، SMOMET = 1 ،.)
- SMI (HLC ، n = 13 ، nfast = 2 ، nslow = 25 ، nsig = 9 ، matype ، bounded = true ،.): شاخص حرکت تصادفی
عملکرد عملکرد
توابع جهش عملکرد عملکرد همه با بازده ها سروکار دارد:
- Retu. annualized و Retu. annualized. excess: بازده دوره را می گیرد و به بازده سالانه ادغام می شود
- Retu. Clean: دور از بازده ها را حذف می کند
- Retu. excess: نرخ بدون ریسک را از بازده برای بازده بیش از نرخ بدون ریسک حذف می کند
- Zerofill: برای جایگزینی مقادیر NA با صفرها استفاده می شود.
2. 0 قدرت کمی در عمل
ما چند نمونه را طی خواهیم کرد ، اما ابتدا داده هایی را دریافت می کنیم. از مجموعه داده های نیش استفاده می شود که از قیمت سهام FB ، AMZN ، NFLX و GOOG از ابتدای سال 2013 تا پایان سال 2016 تشکیل شده است.
مثال 1: از Quantmod Periretu برای تبدیل قیمت به بازده استفاده کنید
عملکرد Quantmod :: Priorretu () بازده بر اساس تناوب را ایجاد می کند. ما یک مورد استفاده از زوج را طی خواهیم کرد.
مثال 1A: دریافت و ترسیم بازده سالانه
ما می خواهیم از ستون قیمت بسته بندی تعدیل شده استفاده کنیم (تنظیم شده برای تقسیم سهام ، که می تواند به نظر برسد که اگر یک تقسیم گنجانده شود ، یک سهام ضعیف عمل می کند). ما SELECT = تنظیم را تنظیم کردیم. ما در مورد عملکرد دوره دوره ای تحقیق می کنیم و دریافتیم که نوع = "حسابی" و دوره = "سالانه" را می پذیرد ، که بازده سالانه را برمی گرداند.
نمودار بازده سالانه فقط استفاده سریع از بسته GGPLOT2 است.
مثال 1B: دریافت ورود به سیستم روزانه
بازده ورود به سیستم روزانه از یک رویکرد مشابه پیروی می کند. به طور معمول من با یک تابع transmute ، tq_transmute می روم ، زیرا عملکرد دوره ای گزینه های مختلف تناوبی را می پذیرد و هر چیز دیگری غیر از روزانه باعث ایجاد جهش می شود. اما ، در شرایط ما ، دوره بازده تناوب همان است که قیمت سهام (هر دو روزانه) قیمت سهام (هر دو روزانه) ، بنابراین می توانیم از آن استفاده کنیم. ما می خواهیم از ستون قیمت بسته بندی تنظیم شده استفاده کنیم (تنظیم شده برای تقسیم سهام ، که می تواند به نظر برسد که اگر یک تقسیم گنجانده شود ، یک سهام ضعیف عمل می کند) ، بنابراین ما SELECT = تنظیم را تنظیم می کنیم. ما در مورد عملکرد Predretu تحقیق کردیم و دریافتیم که نوع = "log" و دوره = "روزانه" را می پذیرد ، که بازده های ورود به سیستم روزانه را برمی گرداند.
مثال 2: برای تغییر تناوب از روزانه به ماهانه از XTS به . Period استفاده کنید
XTS :: to. Period برای تجمع تناوبی استفاده می شود (تبدیل از یک تناوب سطح پایین تر به سطح بالاتر مانند دقیقه تا ساعت یا ماه تا سال). از آنجا که ما به دنبال یک ساختار برگشتی هستیم که در مقیاس زمانی متفاوت از ورودی باشد (روزانه در مقابل هفتگی) ، باید از یک تابع انتقال استفاده کنیم. ما tq_transmute () را انتخاب می کنیم و ستون های باز ، بالا ، پایین ، نزدیک و حجم را از طریق Select = Open: Volume عبور می دهیم. با نگاهی به مستندات برای . period ، می بینیم که این یک استدلال دوره ای را می پذیرد که می توانیم به "هفته ها" تنظیم کنیم. نتیجه این است که داده های OHLCV با تاریخ تغییر شده به یک روز در هفته بازگردانده می شود.
یک مورد استفاده متداول کاهش تعداد نقاط برای صاف کردن توطئه های سری زمانی است. بیایید تفاوت بین توطئه های روزانه و ماهانه را بررسی کنیم.
بدون تجمع تناوبی
با تجمع تناوبی ماهانه
مثال 3: برای تجسم همبستگی نورد بازده از TTR RunCor استفاده کنید
همبستگی های بازگشت یک روش مشترک برای تجزیه و تحلیل چگونگی تقلید از دارایی یا نمونه کارها از یک شاخص یا صندوق پایه است. ما به مجموعه ای از بازده ها برای سهام و پایه نیاز داریم. سهام مجموعه داده های FANG خواهد بود و پایه آن بخش فناوری SPDR XLK خواهد بود. ما قیمت سهام "نیش" را داریم ، بنابراین از TQ_GET برای بازیابی قیمت های "XLK" استفاده می کنیم. بازده را می توان از قیمت های "تنظیم شده" با استفاده از فرآیند در مثال 1 محاسبه کرد.
در مرحله بعد ، با بازده پایه تا تاریخ ، به بازده دارایی بپیوندید.
از عملکرد TTR :: RunCor می توان برای ارزیابی همبستگی نورد با استفاده از الگوی XY استفاده کرد. با نگاهی به مستندات (؟ runcor) ، می بینیم که این استدلال شامل X و Y به همراه چند استدلال اضافی از جمله N برای عرض همبستگی نورد است. از آنجا که مقیاس ماهانه است ، ما با N = 6 برای یک همبستگی 6 ماهه می رویم. آرگومان col_rename تغییر نام آسان ستون (های) خروجی را امکان پذیر می کند.
و ، ما می توانیم همبستگی های نورد را برای سهام نیش ترسیم کنیم.
مثال 4: از TTR MACD برای تجسم میانگین واگرایی همگرایی در حال حرکت استفاده کنید
در بررسی گزینه های موجود در بسته TTR ، می بینیم که MACD میانگین واگرایی همگرایی متحرک (MACD) را به ما می دهد. در تحقیق در مورد مستندات ، بازده در همان تناوبی ورودی است و توابع با توابع OHLC کار می کنند ، بنابراین می توانیم از TQ_MUTATE () استفاده کنیم. MACD به قیمت نیاز دارد ، بنابراین ما نزدیک را انتخاب می کنیم.
و ، ما می توانیم داده ها را مانند آن تجسم کنیم.
مثال 5: از XTS Apply. quarterly برای دریافت حداکثر و حداقل قیمت برای هر سه ماه استفاده کنید
عملکرد XTS :: Apply. quarterly () که بخشی از گروه Apply Pruction است می تواند برای اعمال توابع توسط بخش های زمانی سه ماهه استفاده شود. از آنجا که ما به دنبال یک ساختار برگشتی هستیم که در مقیاس زمانی متفاوت از ورودی باشد (سه ماهه در مقابل روزانه) ، ما باید از یک تابع انتقال استفاده کنیم. ما tq_transmute را انتخاب می کنیم و قیمت نزدیک را با استفاده از SELECT منتقل می کنیم و این زیر مجموعه از داده ها را به عملکرد Apply. quarterly از طریق آرگومان metate_fun ارسال می کنیم. با نگاهی به اسناد مربوط به Apply. quartermer ، می بینیم که می توانیم یک عملکرد را به استدلال ، سرگرم کننده منتقل کنیم. ما حداکثر مقادیر را می خواهیم ، بنابراین سرگرمی = حداکثر را تنظیم می کنیم. نتیجه این است که محله ها به عنوان تاریخ بازگردانده می شوند و حداکثر قیمت بسته شدن در سه ماهه به صورت دو برابر باز می گردد.
حداقل هر سه ماهه می تواند به همان روش بازیابی شود. فریم های داده را می توان با استفاده از Left_Join به حداکثر و دقیقه به دست آورد.
و ، ما می توانیم داده ها را مانند آن تجسم کنیم.
مثال 6: برای تجسم رگرسیون نورد از Zoo Rollapply استفاده کنید
یک روش خوب برای تجزیه و تحلیل روابط به مرور زمان استفاده از محاسبات نورد است که دو دارایی را با هم مقایسه می کند. معاملات جفت مکانیسم مشترک برای دارایی های مشابه است. در حالی که ما به تجزیه و تحلیل تجارت جفت نخواهیم رسید ، ما رابطه بین دو دارایی مشابه را به عنوان پیشرو در تجارت جفت تجزیه و تحلیل خواهیم کرد. در این مثال ما دو دارایی مشابه ، Mastercard (MA) و ویزا (V) را تجزیه و تحلیل خواهیم کرد تا رابطه را از طریق رگرسیون نشان دهیم.
قبل از تجزیه و تحلیل رگرسیون نورد ، مشاهده روند کلی در بازده مفید است. برای انجام این کار ، ما از tq_get () برای دریافت قیمت سهام برای دارایی ها و tq_transmute () استفاده می کنیم تا قیمت های روزانه را به بازده روزانه تبدیل کنیم. ما داده ها را جمع آوری کرده و از طریق یک طرح پراکندگی تجسم می کنیم.
ما می توانیم رابطه بین بازده جفت سهام مانند SO را تجسم کنیم.
ما می توانیم از عملکرد LM در رابطه با رابطه استفاده کنیم. این مدل با مقدار p از صفر ضروری بسیار مرتبط است. برآورد ضریب برای V (ضریب 1) 0. 8134 است که نشان دهنده یک رابطه مثبت است ، به این معنی که V افزایش می یابد MA نیز افزایش می یابد.
در حالی که این رابطه کلی را مشخص می کند ، جنبه زمان را از دست نمی دهد. خوشبختانه ، ما می توانیم از عملکرد Rollapply از بسته باغ وحش برای ترسیم رگرسیون نورد استفاده کنیم ، نشان می دهد که چگونه ضریب مدل با گذشت زمان متفاوت است. ما رگرسیون نورد را با tq_mutate () در دو مرحله اضافی محاسبه می کنیم:
- یک تابع سفارشی ایجاد کنید
- تابع را با tq_mutate اعمال کنید (mutate_fun = rollapply)
ابتدا یک عملکرد رگرسیون سفارشی ایجاد کنید. نکته مهم این است که "داده" به عنوان یک شی XTS به عملکرد رگرسیون منتقل می شود. عملکرد Timetk :: TK_TBL از تبدیل به یک قاب داده مراقبت می کند.
اکنون می توانیم از TQ_MUTATE () استفاده کنیم تا عملکرد رگرسیون سفارشی را روی یک پنجره نورد با استفاده از RollApply از بسته باغ وحش اعمال کنیم. در داخل ، قاب داده Retu_combined به طور خودکار به آرگومان داده عملکرد Rollapply منتقل می شود. تمام آنچه شما باید مشخص کنید این است که mutate_fun = rollapply و هرگونه آرگومان اضافی لازم برای اعمال عملکرد RollApply است. ما یک پنجره 90 روزه را از طریق عرض = 90 مشخص خواهیم کرد. استدلال سرگرم کننده عملکرد رگرسیون سفارشی ما ، refr_fun است. مشخص کردن توسط. column = false بسیار مهم است ، که به RollApply می گوید محاسبه را با استفاده از داده ها به عنوان یک کل انجام دهید نه اینکه عملکرد را به طور مستقل در هر ستون اعمال کنید. از آرگومان col_rename برای تغییر نام ستون های اضافه شده استفاده می شود.
سرانجام ، ما می توانیم ضریب اول را مانند آن تجسم کنیم. یک خط افقی با استفاده از مدل مجموعه داده کامل اضافه می شود. این به ما بینش می دهد در مورد نقاط زمانی که رابطه از روند طولانی مدت که می تواند برای فرصت های تجاری احتمالی جفت شود ، به طور قابل توجهی منحرف می شود.
بازده سهام در این دوره زمانی.
مثال 7: برای تمیز کردن و محاسبه بازده اضافی از Retu. Clean و Retu. excess استفاده کنید
در این مثال ما از چندین عملکرد عملکردی برای تمیز کردن و قالب بندی استفاده می کنیم. در این مثال از سه برنامه مترقی TQ_Transmute برای اعمال توابع مختلف کمی در قیمت سهام گروهی از مجموعه داده های FANG استفاده می کند. ابتدا بازده روزانه را با استفاده از Quantmod :: PerioRetu محاسبه می کنیم. در مرحله بعد ، ما از Retu. Clean برای تمیز کردن دور از داده های برگشتی استفاده می کنیم. پارامتر آلفا درصد Oultiers برای تمیز کردن است. سرانجام ، بازده اضافی با استفاده از نرخ بدون ریسک 3 ٪ (تقسیم شده توسط 252 برای 252 روز تجارت در یک سال) محاسبه می شود.