من در Quantroom در مورد سری های زمانی مالی تحقیق می کنم. ما روی مشکلات استراتژی های الگوریتمی در بازارهای سهام و کریپتو کار می کنیم. امروز، من قصد دارم یک تحقیق در مورد چگونگی کاهش نویز در سری های زمانی مالی با استفاده از نمودار رنکو را مرور کنم. هدف مقاله پاسخ به این سوال است که "آیا رویکردی بهتر از روش های شناخته شده برای تعیین اندازه بهینه آجر وجود دارد؟".
نمودار رنکو چیست؟
نمودار رنکو از نوع نموداری است که فقط به حرکت قیمت مربوط می شود، زمان و حجم را شامل نمی شود. نمودار رنکو هر حرکت قیمت را نشان نمی دهد. شما باید این پارامترها را قبل از ساخت نمودار رنکو تنظیم کنید:
- چه اندازه آجری از نمودار را انتخاب کنیم که نشان دهنده بزرگی حرکت قیمت باشد؟اگر اندازه آجر کوچک باشد، نمودار حرکات بیشتری دارد، اما این نمودار نویزتر است.
- چه نوع قیمتی برای ساخت نمودار استفاده می شود (به عنوان مثال باز کردن، بسته شدن و غیره)؟همچنین باید یک بازه زمانی انتخاب کرد که می تواند روز، ساعت، دقیقه و تیک باشد. داده های تیک دقیق تر هستند زیرا حرکات از دست نمی روند.
اصول اولیه ساخت نمودار رنکو:
- آجر جدید تنها در صورتی ساخته می شود که حرکت قیمت از سطح آستانه مشخص شده فراتر رفته باشد.
- اندازه آجر همیشه یکسان است. به عنوان مثال، اگر اندازه 10 امتیاز باشد و قیمت 20 افزایش یافته باشد، 2 آجر کشیده می شود. اگر قیمت افزایش یابد، آجر سبز (روشن) خواهد بود، اگر قیمت کاهش یابد - قرمز (تاریک).
- مقدار بعدی نوع انتخابی قیمت با حداکثر و حداقل آجر قبلی مقایسه می شود. مستطیل جدید همیشه در سمت راست مستطیل قبلی نمایش داده می شود.
- اگر اندازه آجر یا بیشتر از بالای آجر قبلی بیشتر شد، تعداد مربوط به مستطیل سبز (روشن) را بکشید که حاشیه پایینی آجر جدید با مرز بالایی آجر قبلی مطابقت دارد.
- اگر قیمت به اندازه آجر یا بیشتر از کف آجر قبلی پایین آمد، تعداد متناظر مستطیل قرمز (تیره) را بکشید که مرز بالایی آجر جدید با مرز پایینی قبلی مطابقت دارد.
این مقاله در Medium توسط Chartist Ranga حاوی مقدمه ای بر نمودارهای رنکو است.
در قسمت های بعدی این مقاله، تجزیه و تحلیل با استفاده از ماژول pyrenko که من پیاده سازی کردم، انجام خواهد شد.
رویکردهای موجود برای تعیین اندازه آجر
- سنتی . این رویکرد از یک مقدار مطلق از پیش تعریف شده برای اندازه آجر استفاده می کند.
- ATR . این رویکرد از مقادیر تولید شده توسط شاخص میانگین محدوده واقعی (ATR) استفاده می کند. ATR برای فیلتر کردن نویز معمولی یا نوسانات یک ابزار مالی استفاده می شود. روش ATR "به طور خودکار" اندازه آجر خوب را تعیین می کند. مقدار ATR را در نمودار شمعی معمولی محاسبه می کند و سپس این مقدار را به اندازه آجر می کند.
اولین مقدار ATR با استفاده از فرمول میانگین حسابی محاسبه می شود:
تخمین کیفیت و تابع امتیاز
خوب است که کیفیت نمودار رنکو را اندازه گیری کنیم. بیایید یک استراتژی ساده را فرض کنیم که از این قوانین زیر استفاده می کند: موقعیت شما باید "طولانی" باشد در حالی که آجر فعلی سبز (روشن) است. اگر رنگ آجر تغییر کرده است، به موقعیت "کوتاه" تغییر دهید. با استفاده از این منطق، پارامترهای زیر را داریم:
- تعادل مجموعه ای از معاملات مثبت و منفی است. اگر آجر فعلی همان جهت قبلی را داشته باشد، مقدار تعادل باید 1+ افزایش یابد. اگر جهت تغییر کرده باشد، مقدار تعادل بای د-2 کاهش یابد. ارزش مثبت خوب است. ارزش بیشتر بهتر است.
- sign_changes تعداد دفعاتی است که یک روند تغییر کرده است. ارزش کمتر بهتر است.
- قیمت_نسبت نسبتی از تعدادی میله قیمت اصلی به تعدادی آجر رنکو است. مقدار بزرگتر از 1 خوب است. ارزش بیشتر بهتر است.
تابع امتیاز سعی می کند این پارامترها را در یک مقدار واحد ادغام کند. ارزش مثبت خوب است. ارزش بیشتر بهتر است.
اگر sign_changes برابر با 0 باشد، باید قبل از محاسبه روی 1 تنظیم شود.
بیایید سعی کنیم این تابع امتیاز را در فضای سه بعدی شبیه سازی و تجسم کنیم. اندازه کره با یک مقدار امتیاز مطابقت دارد. کروی های قرمز امتیازی برابر ب ا-1 دارند.
ماژول ها و بسته ها را وارد کنید:
نتیجه تابع امتیاز را تولید، محاسبه و تجسم کنید:
مقادیر امتیاز در ثابت ضرب می شوند تا اندازه گوی های بیان شده تری به دست آید.
ایده کلیدی این تحقیق آزمایش این فرضیه است که می توانیم اندازه آجر را بهتر از رویکردهای فعلی (رویکرد ATR) با استفاده از بهینه سازی تابع امتیاز بدست آوریم. نتایج به دست آمده از نظر معنی داری با روش های آماری آزمایش خواهد شد.
آزمایش کنید
آزمایش از سه بخش تشکیل شده است.
آماده سازی داده ها
- دریافت لیست سهام (شاخص S& P 500) از ویکی پدیا.
- دریافت قیمت (بالا، کم، بسته) هر روز برای 3 سال گذشته.
- حذف سهامی که دارای مقادیر گمشده در داده ها هستند.
بلوک کد این قسمت:
در نتیجه این بخش مجموعه داده شامل 470 سهام است.
بهینه سازی اندازه آجر و ارزیابی نمودار رنکو
این بخش مسئول ارزیابی نمودار Renko است. اندازه آجری بهینه در حال تعیین در مجموعه قطار است که شامل 70 ٪ روز است. ارزیابی نمودار Renko با استفاده از عملکرد نمره ، 30 ٪ از روزها را در حال انجام است.
این هر دو عمل (بهینه سازی و ارزیابی) برای دو رویکرد (ATR و بهینه سازی عملکرد نمره) انجام می شوند. در مورد ATR ، آخرین مقدار ATR دنباله اندازه آجری بهینه در نظر گرفته می شود.
در مورد بهینه سازی عملکرد نمره ، اندازه آجری بهینه است که حداکثر مقدار عملکرد نمره را نشان می دهد.
این روش از به حداقل رساندن عملکرد یک بعدی بر اساس روش برنت استفاده می کند. از عملکرد نمره با علامت منفی استفاده می شود زیرا این مشکل معکوس است.
این کد شامل عملکردی است که باید بهینه سازی شود و فرایند امتیاز دهی / بهینه سازی:
روش برنت یک الگوریتم ریشه دار است که روش استفاده از روش بی نظری ، روش Secant و درون یابی درجه دوم را با هم ترکیب می کند. این قابلیت اطمینان از بی نظیر است اما می تواند به همان اندازه برخی از روشهای کمتر قابل اعتماد باشد. این الگوریتم سعی می کند از روش Secant بالقوه تبدیل کننده سریع یا درون یابی درجه دوم معکوس در صورت امکان استفاده کند ، اما در صورت لزوم به روش قوی تر بی نظری باز می گردد. نقاط مرزی را می توان به عنوان کمترین و بالاترین مقادیر ATR در مجموعه قطار ارائه داد ، به عنوان یک تقریب اولیه خوب خواهد بود. اطلاعات بیشتر در مورد روش برنت در اینجا.
بیایید لیست سهام سفارش را با مقادیر نمره برای دو رویکرد دریافت کنیم. مقادیر نمره در مجموعه آزمون محاسبه می شود.
نمودارهای سهام Renko را که دارای بهترین امتیاز هستند (سهام AVY برای ATR ، سهام AFL برای بهینه سازی عملکرد نمره) بکشید.
بلوک کد تجسم نتیجه:
تجزیه و تحلیل نتیجه
این طرح پراکندگی نشان می دهد که چگونه Price_Ratio با تعادل مطابقت دارد:
ما می توانیم نتیجه بگیریم که رویکرد بهینه سازی عملکرد نمره داده ها را بهتر می کند زیرا Price_Ratio تمایل به بیشتر بودن دارد.
Draw a histogram that shows how many positive / neutral / negative results of stocks on test set: positive: score >0 ؛خنثی: نمره = 0 ؛منفی: نمره< 0.
کدی که نتیجه را شمارش و تجسم می کند:
فرکانس ها تفاوت هایی دارند ، اما شکل توزیع ها مشابه هستند. بیایید یک هیستوگرام نمره از دو رویکرد و توزیع تفاوت آنها را نشان دهیم:
برای برآورد فاصله اطمینان از اختلاف امتیاز خوب خواهد بود. این امر روشن می کند که به طور متوسط کدام رویکرد نمره بهتری می دهد.
فرضیه تهی را آزمایش کنید که یک نمونه از توزیع عادی ناشی می شود. مقدار p 1. 085E-11 است ، بسیار کم است ، به این معنی است که نمونه از توزیع غیر عادی ناشی می شود:
محاسبه فاصله اطمینان در توزیع غیر نرمال غیرقابل قبول است.
برای بدست آوردن فاصله اطمینان می توانیم از bootstrapping استفاده کنیم. بوت استرپینگ یک روش کامپیوتری کاربردی برای مطالعه توزیع آمار بر اساس چندین نسل از نمونه ها به روش مونت کارلو بر اساس نمونه موجود است. به شما امکان می دهد تا به سرعت و به راحتی انواع آمار (فاصله های اطمینان، واریانس، همبستگی و غیره) را برای مدل های پیچیده ارزیابی کنید.
نمونه بوت استرپ در زیر نشان داده شده است. این نمونه بر اساس توزیع نرمال توزیع شده است، مقدار p 0. 9816 است.
بلوک کد نمونه گیری مجدد:
تقریبا تمام مقادیر میانگین بزرگتر از 0 هستند. مقدار p آزمون t 0. 0 است (فرضیه صفر: score_diff = 0. 0)، ما فرضیه صفر را رد می کنیم. این محاسبات تأیید می کند که تفاوت میانگین امتیاز بین بهینه سازی تابع امتیاز و رویکردهای ATR برای روش پیشنهادی بیشتر است.
این مثال خاصی از تفاوت در رویکردها (ذخایر UNH) است.
نتیجه گیری
- تابع امتیازی که کیفیت نمودار رنکو ساخته شده را تخمین می زند، رسمی شد.
- فرآیند بهینه سازی امتیاز را تشریح کرد.
- رویکرد پیشنهادی کیفیت بهتری نسبت به ATR کلاسیک داشت. این مزیت از نظر آماری قابل توجه است. ماژولی است که در این تحلیل نشان داده شده است و هر محققی می تواند از آن استفاده کند.
- یک چرخه کامل از فرآیند کاهش نویز را با استفاده از Renko نشان داد. کد گنجانده شده است.
- از نظر تئوری، پارامتر تعادل ضرب در brick_size را می توان به عنوان سود در مجموعه آزمایشی تفسیر کرد. این استراتژی ساده پیروی از روند، مبنای خوبی برای تحقیقات بیشتر است. هزینه های تراکنش باید برای برآورد دقیق سود (کارمزد کارگزار، اسپرد، لغزش و غیره) لحاظ شود.
- رویکرد توسعهیافته را میتوان در استراتژیهایی مانند تجارت جفتی، دنبال کردن روند، حمایت و مقاومت و غیره استفاده کرد. نمودار بیصدا پردازش شده قابل درک است و خطوط روند واضحتر هستند.
اگر نمودار رنکو را در تجزیه و تحلیل سهام استفاده می کنید یا قصد استفاده از آن را دارید به من اطلاع دهید. همچنین، جالب است که از چه روشی برای تعیین اندازه آجر استفاده می کنید؟