از زمان شروع قیمت بیت کوین ، اعتیاد به مواد مخدره در اطراف بازار Crytocurrency وجود داشته است. سکه های جایگزین روزمره ظاهر می شوند- برخی از آنها کلاهبرداری هستند ، برخی آن را در ماه ها به لیست سکه های برتر تبدیل می کنند. این موضوع در همه جا مطرح می شود ، خواه در رادیو ، توییتر ، فیس بوک یا در جدول شام شکرگذاری با پدربزرگ خود. افراد درگیر معمولاً با گمانه زنی ها ، به امید اینکه از بازار رو به افزایش در حال افزایش باشند ، دامن می زنند. من کنجکاو بودم که ببینم آیا علم داده می تواند برخی از چراغ ها را ریخته باشد. این پروژه برای پیش بینی قیمت آینده سکه از قیمت تاریخی ، ادغام و متغیرهای کلان اقتصادی استفاده می کند. پیش بینی خارج از نمونه برای اولین بار قابل قبول بود~100 ساعتبیایید در آن حفر کنیم.
وقتی در مورد تجزیه و تحلیل سری زمانی کلاسیک صحبت می کنیم ، ما معتقدیم که یک سری زمانی مشاهده شده ترکیبی از یک الگوی و برخی از تغییرات تصادفی است. با استفاده از این رویکرد ، مقادیر آینده بر اساس داده های تاریخی آن پیش بینی می شود. این روش در بیشتر موارد به خوبی کار می کند ، اما اگر به دنبال یک سری زمانی باشیم که تصادفی تر از الگوی باشد؟چه می شود اگر یک سری زمانی کاملاً سوداگرانه باشد و به شدت مبتنی بر وقایع جاری باشد نه برخی از مؤلفه های ریتمیک؟شما می دانید ... چیزی شبیه به ... قیمت crypocurrency.
بنابراین اگر نه فقط برخی از الگوی ساده ، چه چیزی باعث کاهش قیمت های رمزنگاری می شود؟حدس و گمان؟نوآوری؟مسائل حقوقی؟افکار عمومی؟عرضه/تقاضا؟محبوبیت بیت کوین؟برخی از مردهای ثروتمند (Wo) تصمیم گرفتند شب گذشته یک میلیون سکه بخرند؟خوب ، حدس و گمان کافی. من صحبت را متوقف می کنم و اکنون داده ها را به شما نشان می دهم.
بنابراین چه چیزی بر قیمت رمزنگاری تأثیر می گذارد؟
1 بیشتر مردم می گویند بیت کوین جواب است. فناوری blockchain یک سیستم پایگاه داده غیرمتمرکز است که برای اولین بار توسط بیت کوین اجرا شد. هرچه بیت کوین کشش بیشتری کسب می کند ، مردم با سکه های متناوب که مبتنی بر فناوری blockchain نیز هستند ، می آیند. خیلی زیاد بیت کوین مادر همه ارزهای رمزنگاری شده است زیرا آنها ابتدا با فناوری جالب روبرو شدند. به همین دلیل من فکر می کنم این معنی است که وقتی بیت کوین سنبله می کند ، هر سکه دیگر سنبله می کند. وقتی قطره می شود ، هر سکه دیگر افت می کند. طرح زیر میانگین نورد مقیاس شده بیت کوین (سبز) و اتریوم (آبی) را نشان می دهد.
همانطور که مشاهده می کنید ، این ادعا بسیار دقیق به نظر می رسد. اما ما نمی خواهیم بدون روش آماری به نتیجه برسیم. بعداً ، ما می خواهیم در مورد شناسایی یک "جفت همخوانی" با استفاده از تست علیت Granger بیشتر صحبت کنیم.
2 همچنین کاملاً واضح است که رویدادهای جاری مانند مسائل حقوقی یا تغییر دهنده بازی های فناوری نیز نقش دارند. به یاد دارید وقتی چین در ماه سپتامبر رمزنگاری را ممنوع اعلام کرد؟قیمت به سرعت کاهش یافت و همه چیز در هرج و مرج بود. در تلاش برای ضبط رویدادهای مهم مانند این ، داده های فرکانس جستجوی Google News از API Pytrends بدست می آید. طرح زیر سنبله ها را در فرکانس جستجو کلمه "cryptocurrency" (قرمز) نشان می دهد که قیمت های Cryto کاهش می یابد.
جالب است؟اصطلاحات جستجوی مورد استفاده در این پروژه با استفاده از ابزار کلید واژه Google انتخاب می شوند. این ابزار نه تنها به شما اطلاع می دهد که یک اصطلاح جستجو چقدر محبوب است ، بلکه لیستی از کلمات کلیدی مرتبط را نیز پیشنهاد می کند. با استفاده از لیست ارائه شده و API Pytrend ، داده های فرکانس جستجو از هفت کلمه کلیدی مختلف به دست می آید. من در بخش بعدی درباره این شرایط بیشتر توضیح خواهم داد.
3 عامل دیگر که برای من برجسته است ، درک عمومی است. هرچه خرید بیشتر باشد ، تقاضا بیشتر و در نتیجه قیمت بیشتر می شود. گرفتن این داده ها کمی دردناک است. API پرداخت شده توییتر همه چیزهایی است که من نیاز دارم ، اما من دانشجوی هستم ، بنابراین ترجیح می دهم پول را برای مواد غذایی صرفه جویی کنم. در عوض ، سایت redditmetrics.com داده های رشد اشتراک تاریخی را تقریباً در مورد هر Subreddit در جهان ترسیم می کند. بنابراین خراش وب است. طرح زیر رشد اشتراک NEM Subreddit (نارنجی) را با قیمت تاریخی NEM (آبی) مقایسه می کند.
همانطور که انتظار می رود ، رشد اشتراک و قیمت از طریق اوج و پایین به هم می چسبد.
امیدوارم این تصاویر برای شما جالب باشد. این فقط برای شروع کار با برخی از دانش دامنه و آشنایی شما با مشکلی است که ما سعی در حل آن داریم. اگر مقدمه خارش شما را خراشیده نیست ، لطفاً EDA کامل موجود در GitHub من را در اینجا ببینید. در مرحله بعد ، من می خواهم به روشهای آماری استفاده شده برای ساختن مدلی که قیمت آینده سکه را پیش بینی می کند ، پرش کنم.
چگونه مدل را ساختم؟
در این بخش ، ما می خواهیم به روش شناسی حفر کنیم. این فقط خلاصه ای از هر مرحله خواهد بود. اگر می خواهید عمیق تر در کد حفر کنید ، لطفاً به مخزن GitHub من در اینجا مراجعه کنید. این فنی خواهد بود و من تمام تلاش خود را می کنم تا آن را سرگرم کننده و آسان هضم کنم. اما اگر به موارد فنی علاقه ای ندارید ، احساس راحتی کنید که به سمت بخش TLDR بروید.
1. شناسایی جفت همخوانی
در مجموع 12 قیمت تاریخی سکه برتر طی یک دوره سه ماهه از طریق API CryptoCompare بدست می آید. اما قبل از اینکه بتوانیم با سری زمانی هر کاری انجام دهیم ، باید اطمینان حاصل کنیم که سری زمانی ثابت است. برای برآورده کردن نیازهای ثابت ، یک سری زمانی باید میانگین ثابت ، واریانس ثابت و همبستگی ثابت داشته باشد. به نظر می رسد چیزهای زیادی برای درخواست کردن ، درست است؟در واقعیت ، هیچ سریال زمانی کاملاً ثابت نیست. اما نگران نباشید دوستان من ، دیکی و فولر پشت شما را دارند!
تست دیکی فولر تقویت شده ثابت. این یک آزمایش آماری است که به شما امکان می دهد بررسی کنید که آیا انتظارات ثابت بودن برآورده شده است یا خیر. این یک آزمایش ریشه واحد است که تعیین می کند که چگونه یک سری زمانی با یک روند تعریف می شود. این آزمایش از یک مدل خودکار استفاده می کند و یک معیار اطلاعات را در مقادیر تاخیر مختلف بهینه می کند. فرضیه تهی این است که سری زمانی را می توان با یک ریشه واحد نشان داد (یعنی ثابت نیست). برخی از آماری ها با آستانه جادویی 0. 05 روبرو شدند و بسیاری از افراد با این شماره موافقت کردند. بنابراین اگر مقدار p شما کمتر از 0. 05 باشد ، می توانید فرضیه تهی را رد کنید. اما پس از آن دوباره ، نتیجه را باید تفسیر کرد تا یک مشکل معین معنی دار باشد. معلوم شد که با فرض آستانه 0. 05 ، قیمت های تاریخی از هر 12 سکه از آزمایش ثابت عبور نمی کنند (تعجب!). در این حالت ، ما باید سریال های زمانی را مستقر کنیم و آنها را مجدداً آزمایش کنیم.
تفاوتاین یک روش محبوب است که برای راه اندازی سری زمانی استفاده می شود. می توان از آن برای از بین بردن روند و فصلی استفاده کرد. با استفاده از تفاوت مشاهدات متوالی (تاخیر 1) برای این پروژه استفاده می شود. اگر یک سریال زمانی یک جزء فصلی داشته باشد ، مقدار تاخیر باید دوره فصلی باشد. در مورد ما ، هیچ مؤلفه فصلی آشکار وجود ندارد. طرح جعبه زیر نشان می دهد که چگونه میانگین ساعتی اتریوم در طول 24 ساعت روز نسبتاً ثابت است. واریانس متفاوت است ، اما هیچ الگوی واضحی وجود ندارد.
بعد از اینکه اختلاف LAG-1 را در سریال های زمانی انجام دادیم ، همه سریال های دوازده زمان از تست ثابت دیکی-مولفر عبور کردند! فت
آزمون علیت گرنجر. این یک آزمون فرضیه آماری برای تعیین اینکه آیا یک سری زمانی در پیش بینی سری دیگر مفید است یا خیر است. سری زمانی A "Granger-cause" سری زمانی B اگر مقادیر تاخیر A اطلاعات آماری قابل توجهی را در مورد مقادیر آینده B ارائه می دهد. در این پروژه، ما از این تست برای شناسایی یک جفت هم انباشته استفاده می کنیم - یک جفت ارز رمزنگاری شده که در آن یکیاز مقادیر تاخیر سکه می توان برای پیش بینی ارزش های آینده سکه های دیگر استفاده کرد.
اکنون که داده های قیمت تاریخی هر دوازده سکه ثابت است، ما در مجموع 132 فریم داده ساختیم که هر کدام یک جفت جایگشت (با جفت ترکیبی اشتباه نشود) از قیمت های تاریخی دوازده سکه هستند. بله، این واقعا گیج کننده است. بنابراین، برای مثال، فرض کنید من داده های قیمت تاریخی ETH، BTC و LTC را داشتم. سپس باید شش فریم داده ایجاد کنم: قیمت های تاریخی ETH و BTC، قیمت های تاریخی ETH و LTC، قیمت های تاریخی BTC و ETH، قیمت های تاریخی BTC & LTC، قیمت های تاریخی LTC و ETH، و قیمت های تاریخی LTC & ETH. توجه داشته باشید که ETH و BTC و BTC و ETH یکسان نیستند! این فقط برای آماده سازی داده های ما برای آزمون علیت گرنجر StatsModels است. فرضیه صفر آزمون این است که سری زمانی در ستون 2 باعث ایجاد سری زمانی در ستون 1 نمی شود. ما باید آزمایش کنیم که آیا ETC باعث BTH می شود یا BTH باعث ETC می شود. به همین دلیل است که ما به جفت جایگشت نیاز داریم و نه جفت ترکیبی! پس از انجام 132 آزمون، جفت DASH و BCH به دلیل قوی ترین همبستگی، قبلاً به عنوان جفت هم انباشته انتخاب شدند. با این حال، با تحقیقات بیشتر، مشخص شد که همبستگی قوی به دلیل افزایش معاملات کره است. از آنجایی که این یک شرایط عادی نیست، ما در عوض XEM و IOT (Nem و Iota) را به عنوان جفت هم انباشته خود انتخاب می کنیم زیرا قوی ترین همبستگی را در شرایط عادی دارد. برای هدف این پروژه، قیمت تاریخی IOT به عنوان یکی از پیش بینی کننده های قیمت آینده XEM استفاده خواهد شد.
2. انتخاب ویژگی
استعلام داده هاداده های به دست آمده و منابع آن در زیر آمده است:
- Cryptocompare API: قیمت های تاریخی XEM و IOT در فرکانس ساعت
- Pytrends API: فرکانس جستجوی Google News عبارت "ارز رمزنگاری شده"
- Scraping redditmetrics.com: Subreddit "CryptoCurrency"، "Nem" و "Iota" رشد اشتراک
- Pytrends API: فرکانس جستجوی گوگل برای عبارات «دانلود کیف پول نم»، «دانلود کیف پول آیوتا»، «قیمت نم»، «قیمت آیوتا»، «قیمت بیت کوین»، «GPU برای استخراج» - این کلمات کلیدی با استفاده از ابزار کلمه کلیدی گوگل انتخاب می شوند.
- Yahoo Financials API: قیمت سهام AMD و NVIDIA- این دو شرکت برتر نیمه هادی هستند که برای استخراج سکه استفاده می شوند
منظم سازی Elasticnet. همانطور که ممکن است قبلاً متوجه شده باشید ، داده های پرس و جو تا حدودی مرتبط هستند. به عنوان مثال ، فرکانس جستجوی گوگل عبارات "قیمت بیت کوین" و "cryptocurrency" ممکن است حاوی اطلاعات بسیار مشابه باشد. ساختن یک مدل با استفاده از ویژگی های مرتبط مانند اینها باعث افزونگی می شود و این بد است! دقیقاً مانند اینکه انسان از نظر عاطفی ناپایدار می شود (a. k. a تحریک شده) از افزونگی ، ماشین ها به دلیل چند قطبی بودن نیز ناپایدار می شوند! این زمانی است که منظم سازی ElasticNet وارد می شود. الگوریتم به صورت خطی مجازات های L1 و L2 روش های Lasso و Ridge را ترکیب می کند. این ضرایب پیش بینی کننده های زائد را به صفر می رساند و بنابراین به یک روش استاندارد صنعت برای انتخاب ویژگی تبدیل می شود. با استفاده از نتیجه الاستیک ، ویژگی هایی که دارای ضرایب غیر صفر هستند ، انتخاب می شوند.
در این پروژه ، ElasticNet بر روی 13 متغیر پیش بینی کننده به دست آمده در بالا انجام می شود که قیمت تاریخی XEM متغیر وابسته است. پس از اجرای الگوریتم ، ما با سه پیش بینی کننده که دارای ضرایب غیر صفر هستند ، باقی مانده است. از این ویژگی ها برای ساخت مدل نهایی استفاده می شود. صرف نظر از نتیجه ElasticNet ، من همچنین سعی کردم یک مدل را با استفاده از هر 13 پیش بینی کننده بسازم و نتیجه را با مدل ساخته شده با استفاده از سه ویژگی انتخاب شده مقایسه کنم. به نظر می رسد که تفاوت در عملکرد معنی دار نیست (MSE = 0. 107 برای هر 15 ویژگی و MSE = 0. 105 برای 3 ویژگی). با این حال ، من هنوز با مدل سه ویژگی می روم زیرا فکر می کنم لاغر بهتر باشد.
3. ساخت مدل
برای این پروژه ، ما قصد داریم از مدل ARIMAX برای پیش بینی قیمت آینده XEM استفاده کنیم. درست مانند مدل Arima ، Arimax پیش بینی هایی را بر اساس شرایط خودجوش (AR) و میانگین متحرک (MA) تولید می کند. با این حال ، Arimax شامل متغیرهای اگزوژن در مدل نیز هست. در این حالت ، سه متغیر پیش بینی کننده که قبلاً انتخاب شده بودند در اینجا استفاده می شوند.
پیش پردازش داده ها. از آنجا که ما قبلاً در مورد تست های ثابت و دیکی فولر در بخش قبلی صحبت کرده ایم ، جزئیات را در اینجا حذف خواهم کرد. داده های به دست آمده از قبل قبل از ElasticNet استاندارد شده است ، بنابراین تنها کاری که باید انجام دهیم این است که متفاوت انجام شود و سپس مطمئن شوید که از آزمون Dickey-Fuller عبور می کند. پس از آن ، داده ها تمیز می شوند و به مجموعه های آزمایش و قطار تقسیم می شوند.
ACF و PACF. اکنون که داده های ما آماده است ، ما باید (1) تعیین کنیم که آیا سری زمانی فرآیند AR یا MA است و (2) تعیین می کنیم که چه مرتبه ای از فرآیند AR یا MA را باید در مدل استفاده کنیم. سوال اول را می توان با استفاده از ACF پاسخ داد. برای سری AR ، این همبستگی به تدریج بدون مقدار برش پایین می رود. ACF همچنین می تواند برای تعیین ترتیب تاخیر سری MA استفاده شود- این مقدار برش است. با این حال ، اگر ما یک سری AR داشتیم ، از مقدار قطع PACF برای تعیین ترتیب تاخیر استفاده می شود. توطئه های زیر ACF و PACF از قیمت تاریخی XEM است.
همانطور که می بینیم ، این یک فرآیند AR است زیرا ACF ارزش برش ندارد. سپس با نگاهی به PACF ، آن را در LAG 1 قطع می کند ، که پارامتر ما برای مدل Arimax ما استفاده می کنیم.
arimaxبا استفاده از متغیرهای اگزوژن AR 1 و 3 ، طرح زیر مقدار مناسب در مقایسه با مقدار واقعی است.
با استفاده از مدل نصب شده ، پیش بینی قیمت XEM بدست می آید. طرح زیر پیش بینی خارج از نمونه از XEM 600 قدم جلوتر از زمان است.
همانطور که انتظار می رفت ، مدل در ابتدا عملکرد بهتری دارد. این امر به این دلیل است که خطاهای پیش بینی با گذشت زمان طولانی تر ترکیب می شوند. بعد از حدود 100 مرحله ، مدل نیز عملکردی ندارد. میانگین خطای مربع برای مراحل 1-100 0. 039 است در حالی که خطای میانگین مربع برای مراحل 101-600 0. 119 است.
قیمت تاریخی IOTA همراه با سایر متغیرهای کلان اقتصادی مانند فرکانس جستجوی Google کلمه "قیمت NEM" و "NEM" از داده های رشد اشتراک Subreddit برای ساخت مدل Arimax برای پیش بینی قیمت NEM استفاده شد. عملکرد پیش بینی خارج از نمونه برای اولین بار قابل قبول بود~100 ساعتهر چیزی فراتر از آن بسیار آشغال است.
این پروژه اولین پروژه علوم داده من است و فضای زیادی برای پیشرفت وجود دارد. دریافت داده های توییتر پرداخت شده یا استفاده از یک مدل یادگیری ماشین متفاوت ممکن است عملکرد را به میزان قابل توجهی بهبود بخشد. در آن مرحله ، من ممکن است یک الگوریتم سیگنال معاملاتی نیز داشته باشم و از آن برای خودکارسازی تجارت استفاده کنم. اما در حال حاضر ، این پروژه به عنوان یک قطعه نمونه کارها ادامه خواهد یافت. و بله ، من ناامید شده ام که تا پایان این پروژه از تجارت رمزنگاری ثروتمند نشده ام: P
من امیدوارم که شما از این مقاله لذت ببرید به همان اندازه که من از کار روی آن لذت بردم! نظرات خود را بگذارید و به من اطلاع دهید که چه فکر می کنید.
توجه داشته باشید از ویرایشگران Data Science: در حالی که ما به نویسندگان مستقل اجازه می دهیم مقالات را مطابق با قوانین و دستورالعمل های خود منتشر کنند ، ما سهم هر نویسنده را تأیید نمی کنیم. شما نباید بدون اینکه به دنبال مشاوره حرفه ای باشید ، به آثار نویسنده اعتماد کنید. برای جزئیات بیشتر به شرایط خواننده ما مراجعه کنید.
استراتژی ترید...
ما را در سایت استراتژی ترید دنبال می کنید
برچسب :
نویسنده : مرجان شیرمحمدی
بازدید : 76
تاريخ : شنبه
26 فروردين
1402 ساعت: 17:46