به نظر می رسد امروزه تقریباً یک شکاف رخ داده است ، با توجه به دنیای سرمایه گذاری.
از یک طرف ، ما دنیای قدیمی را داریم. تصویر سنتی از سرمایه داران در لباس های تیز ، صحبت کردن با لهجه های posh ، معاملات کارگزاری در زمین های گلف و رستوران های فانتزی.
از سوی دیگر ، ما Quants داریم. اگرچه من اصطلاح جالب تر "دانشمندان موشک" را ترجیح می دهم. upstarts Brainy که از زمینه های ریاضیات ، فیزیک و علوم کامپیوتر در میان دیگران آمده اند ، که در بین بسیاری از معادلات و نمادهای پیچیده احساس می کنند در خانه احساس می کنند.
استدلال های زیادی به نفع هر دو طرف مطرح شده است. به نظر می رسد دنیای قدیم ، دانشمندان موشک درگیر نوعی قمار هستند و سعی می کنند شماره ای را بر روی آنچه فقط یک بازی تصادفی از شانس است قرار دهند. در حالی که دانشمندان موشک از الگوهای و فرضیاتی که در مورد ادعاهای دنیای مالی در برابر آزمایش زمان مقاومت کرده اند ، از مدل ها و فرضیات بسیار ساده گرایانه تمسخر می کنند.
آیا راهی برای آشتی دادن این دو جهان بسیار متفاوت وجود دارد؟فقط ممکن است
این روزها ، تعداد فزاینده ای از افراد هر دو اردوگاه محدودیت های ذاتی تکیه بر یک رویکرد واحد را مشاهده می کنند. و این راه حل های مشکلات آنها ، در آن طرف حصار یافت می شود.
سرمایه گذاری کوانتومی را وارد کنید.
یک رویکرد ترکیبی که به دنبال ایجاد شکاف بین رویکرد اساسی و رویداد محور برای سرمایه گذاری و دنیای ریاضی است که توسط دانشمندان موشک ساکن است.
سرمایه گذاری کوانتومی: یک اصطلاح فازی که آینده ای اجتناب ناپذیر را توصیف می کند
سرمایه گذاری کوانتومی ، ادغام روشهای سرمایه گذاری کمی و اساسی (فکر می کنید انسان + دستگاه) ، یک…
امروز ، ما روشی را کشف خواهیم کرد که با این دو رویکرد ازدواج کند. وسیله کوانتانی که می تواند برای سهام تجاری مورد استفاده قرار گیرد.
در حالی که ادبیات زیادی در مورد استفاده از اصول منتشر شده است ، به نظر می رسد فقدان مستندات قابل توجهی در مورد رویکرد علمی وجود دارد. از این رو ما در این مقاله به بررسی چنین رویکردی خواهیم پرداخت.
تبدیل فوریه
Transform Fourier یکی از همه گیر ترین ابزارها در تمام علوم مدرن است.
با این حال ، درک کامل و جامع از عملکرد درونی تبدیل فوریه ، نیاز به درک کار از ریاضیات gnarly مانند تجزیه و تحلیل پیچیده و عملکرد Delta Kronecker دارد.
ما امروز در چنین سرزمینی قرار نمی گیریم ، زیرا هدف در اینجا این است که شکاف در درک را برطرف کنیم. در این تعقیب ، گنجاندن نمادها و معادلات مبهم ، ما را به هیچ وجه طرفداری نمی کند.
مهمترین چیز اصلی از اینجا ، این است که تبدیل فوریه ما را قادر می سازد مجموعه ای از سیگنال ها را به اجزای تشکیل دهنده آنها تقسیم کنیم.
اکنون ممکن است تعجب کنید که چگونه این امر به دنیای تجارت سهام متناسب است.
پاسخ ساده در اینجا ، این است که شبیه به بسیاری از امواج سینوسی ، مانند صدا ، تصاویر و حتی سیگنال های Wi-Fi ، بازارهای مالی با روشی چرخه ای رفتار می کنند.
با استفاده از استفاده قاطع از تبدیل فوریه ، از نظر تئوری می توانیم الگوهای پنهان در چرخه بازار را کشف کنیم.
تغییر فوریه در محل کار
نمونه های کد و تجسم در بخش زیر از طریق مرجع دو منبع تهیه شده است که هر دو برای من کمک فوق العاده ای داشتند.
یکی از نویسندگان ، استیون برونتون ، استادیار دانشگاه واشنگتن است و او یک کانال یوتیوب را اداره می کند که مفاهیم موجود در این کتاب را در بیت های به اندازه نیش توضیح می دهد.
استیو برانتون
این دوره مروری سریع از کنترل بهینه (کنترل ، مشاهده ، LQR ، فیلتر کالمن و غیره) را ارائه می دهد. آی تی…
نمونه کد و خروجی زیر از کتاب بازتولید می شود و برخی از اصلاحات برای افزایش سهولت خوانایی.
ایجاد یک موج نمونه
وارد کردن numpy به عنوان npوارد کردن matplotlib. pyplot به عنوان pltplt. rcparams ['figure. figsize'] = [10 ، 6]plt. rcparams. update ()#سیگنال نمونه را با 2 فرکانس ایجاد کنیدDT = 0. 001t = np. arange (0،1 ، dt)f = np. sin (2*np. pi*50*t)+np. sin (2*np. pi*120*t) #sum از 2 فرکانسf_clean = ff = f+2. 5*np. random. randn (len (t)) #add برخی از سر و صداplt. plot (t ، f ، color = 'pink' ، linewidth = 1. 5 ، label = 'noisy')plt. plot (t ، f_clean ، color = 'blue' ، linewidth = 2 ، label = 'clean')plt. xlim (t [0] ، t [-1])plt. xlabel ('Radians')plt. ylabel ("دامنه")plt. legend ()نمونه کد فوق ، یکپارچه سازی دو موج ایجاد می کند که سر و صدای آن اضافه می شود.
همانطور که می بینید ، موج مصنوعی ایجاد شده از طریق شکل موج آبی نشان داده شده است. در حالی که یک لکه دار تصادفی از سر و صدا پرتاب می شود و از طریق امواج صورتی نشان می دهد. در یک سناریوی زندگی واقعی ، موج واقعی با سر و صدا مبهم خواهد شد.
تجزیه موج با استفاده از تبدیل فوریه
در قلمرو محاسباتی ، کاربرد دقیق ریاضیات ممکن است از نظر محاسباتی گران باشد و مدت زمان طولانی را برای محاسبه انجام می دهد. به منظور کاهش زمان اجرا ، اقدامات خاصی برای آسانتر کردن کارها انجام می شود.
یکی از این مرحله استفاده از تبدیل سریع فوریه (FFT) است
به عبارت ساده تر ، FFT از یک رویکرد تکراری برای تجزیه موج به اجزای تشکیل دهنده استفاده می کند ، تا ما بتوانیم تجسم کنیم که کدام یک قابل توجه است.
#fft algon = len (t)fhat = np. fft. fft (f ، n) #compute the fftpsd = fhat * np. conj (fhat)/طیف #Powerfreq = (1/(dt * n)) * np. arange (n) #محور x فرکانس هاl = np. arange (1 ، np. floor (n/2) ، dtype = 'int')plt. plot (freq [l] ، psd [l] ، color = 'red' ، linewidth = 2 ، label = 'noisy')plt. xlim (freq [l [0]] ، freq [l [-1]])plt. xlabel ('فرکانس (هرتز)')plt. ylabel ("تراکم طیفی قدرت")plt. legend ()plt. show ()تجسم در اینجا آن را به وضوح نشان می دهد که به ترتیب دو موج از دامنه تقریبی 400 و 275 واحد وجود دارد. آنها فرکانس حدود 50 هرتز و 120 هرتز دارند.
این دو موج تشکیل دهنده مؤلفه های موج زیرین هستند.
#از PSD برای فیلتر کردن سر و صدا استفاده کنیدindices = PSD>100 # همه freqs را با قدرت بزرگ پیدا کنیدpsdclean = psd * شاخص های # صفر همه دیگران را از طریق Delta Kroneckerfhat = شاخص ها*fhat # Zero Out Out coffef کوچک فوریه. در yffilt = np. fft. ifft (fhat) # ffft معکوس برای سیگنال زمان فیلتر شده#طرحشکل ، AXS = plt. subplots (2،1)plt. sca (AXS [0])plt. plot (t ، f ، color = 'pink' ، linewidth = 1. 5 ، label = 'noisy')plt. plot (t ، f_clean ، color = 'blue' ، linewidth = 2 ، label = 'clean')plt. xlim (t [0] ، t [-1])plt. xlabel ('Radians')plt. ylabel ("دامنه")plt. legend ()plt. sca (AXS [1])plt. plot (t ، ffilt ، color = 'blue' ، linewidth = 2 ، label = 'filtered')plt. xlim (t [0] ، t [-1])plt. xlabel ('Radians')plt. ylabel ("دامنه")plt. legend ()plt. tight_layout ()plt. show ()از طریق یک ترفند ریاضی ، امواج با دامنه زیر 100 ، به سادگی به عنوان صفر محاسبه می شوند.
از طریق تبدیل فوریه فوریه معکوس ، ما می توانیم موج زیرین را که توسط 2 امواج مؤلفه تشکیل شده است از طریق انجام معکوس بازیابی کنیم.
یک نمونه در دنیای واقعی
اکنون که FFT را در "نمونه آزمایشگاهی" امتحان کرده ایم ، بیایید یکی را در یک نمونه در دنیای واقعی امتحان کنیم.
در اینجا ، من از یک پست قبلی از کاربر متوسط Syed Sadat Nasrul استفاده می کنم.
باز هم ، با ترفندهایی برای سادگی و سهولت توضیح.
پردازش سیگنال دیجیتال برای پیش بینی قیمت سهام
برای مقاله امروز ، من سعی خواهم کرد که دو پرنده را با یک سنگ بکشم. از یک طرف ، من الکتریکی گرانبهای خود را دارم ...
ما رفتار سهام تسلا را تحلیل خواهیم کرد.
yfinance را به عنوان yf وارد کنیدواردات پاندا به عنوان PDTicker = yf. ticker ('tsla')tsla_df = ticker. history (دوره = "حداکثر")tsla_df ['Close']. طرح (عنوان = 'TSLA قیمت سهام ($)')همانطور که نمودار نشان می دهد ، قرار بود سال 2020 سال آینده تسلا باشد ، با سود چشم چشم 300 ٪ !! یک حمله رعد و برق از 200 دلار تا بالاتر از 800 دلار.
با این حال ، به دلیل نوسانات بی سابقه از گسترش جهانی کروناویروس ، قبل از اینکه دوباره جمع شود ، شیرجه عظیم را به حدود 300 دلار کاهش داد (داده های سهام بازیابی شده از 29/05/2020)
چنین رویدادهایی به نام قوهای سیاه نامیده می شود ، که به طور ناشناس از حضور قوهای پر از سیاه نامگذاری شده است ، در میان مواردی که معمولاً پر از رنگ سفید است.
کتاب فوق العاده ای که به زیبایی وقایع قو سیاه را توصیف می کند ، Black Swan است: تأثیر آن بسیار غیرممکن است که توسط یک دانشمند موشک مشهور ، ناسیم نیکلاس طالب نوشته شده است.
برای سادگی ، ما باید تجزیه و تحلیل خود را از سهام تسلا از سال 2014 تا 2019 محدود کنیم ، زیرا در یک نگاه ، به نظر می رسد تا حدودی قابل پیش بینی است.
ما از قیمت بسته بندی تعدیل شده برای ترسیم رفتار آن استفاده می کنیم.
tsla_df = yf. download ('tsla' ،شروع = '2014-01-01' ،پایان = '2019-12-31' ،پیشرفت = نادرست)plt. figure (figsize = (15،5))df ['adj Close']. طرح (شبکه = درست)plt. ylabel ('قیمت ($)')plt. title ('قیمت تسلا')باز هم ، ما FFT را محاسبه می کنیم و با امواج مؤلفه های مختلف روبرو می شویم و دامنه و فرکانس های آنها را به DataFrame خود می پردازیم.
sp = np. fft. fft (df ['دلتا']. مقادیر)df ['theta'] = np. arctan (sp. imag/sp. real)numvalues = len (df)numvalueshalf = numvalues/2df ['Amplitude'] = np. sqrt (sp. real ** 2 + sp. imag ** 2)/numvalueshalfdf ['freq'] = np. fft. fftfreq (sp. size ، d = 1)df. head ()plt. figure (figsize = (15،5))plt. plot (df ['freq'] ، df ['دامنه']. مقادیر ، '.')plt. axvline (x = 0 ، ymin = 0 ، ymax = 1 ، linewidth = 1 ، color = 'r')plt. ylabel ('دامنه [$]' ، فونت اندازه = 12)plt. xlabel ('فرکانس [روز]' ، فونت اندازه = 12)plt. title ("دامنه فرکانس" ، فونت اندازه = 18)plt. grid ()ما دامنه این امواج مؤلفه را در برابر فرکانس های آنها تجسم می کنیم.
فرکانس ها در اطراف و منشأ متقارن هستند ، همانطور که در هنگام انجام تبدیل های فوریه وجود دارد. از این رو ما فقط باید تجزیه و تحلیل خود را در فرکانس های مثبت محدود کنیم.
این امر به این ترتیب است ، زیرا یک اتفاق در دنیای "واقعی" فقط می تواند فرکانس مثبت و واقعی داشته باشد.(مگر اینکه بخواهید از سوراخ خرگوش ، به دنیای عجیب و غریب مکانیک کوانتومی بروید.)
همانطور که می بینیم ، بر خلاف سیگنال مصنوعی ایجاد شده ، داده های دنیای واقعی به طور قابل توجهی پیچیده تر هستند و تمایز داده های معنی دار از سر و صدا بسیار سخت تر است.
در مقاله ای که ما از آن استفاده کردیم ، نویسنده تصمیم گرفته است سیگنال معنی دار را به عنوان نمونه ای که بیش از 3 انحراف استاندارد از میانگین است ، تعیین کند و سیگنال های دیگر را به عنوان سر و صدا معرفی کرده است.
برای کوتاه بودن ، ما همین کار را خواهیم کرد.
meanamp = df ['دامنه']. میانگین ()stdamp = df ['دامنه']. std ()dominantAmpCheck = df['amplitude']>(3*stdamp + meanamp)positiveFreqCheck = df['freq']> 0CONTINNAMP = DF [CominantAmpCheck & PositivefreqCheck] ['دامنه']ContinantFreq = df [CominantAmpCheck & PositionfreqCheck] ['freq']ContinitTheta = df [CominantAmpCheck & PositivefreqCheck] ['Theta']plt. figure (figsize = (15،5))plt. plot (ContinantFreq ، ContinantAmp ، 'o')plt. ylabel ('دامنه [$]' ، فونت اندازه = 12)plt. xlabel ('فرکانس [روز]' ، فونت اندازه = 12)plt. title ('دامنه فرکانس n (غالب و مثبت)' ، FontSize = 18)plt. grid ()از طریق فیلتر کردن نویز ، می بینیم که 3 سیگنال قابل توجه وجود دارد.
تفسیر در اینجا این است که ، به طور بالقوه سه رویداد جداگانه وجود دارد که بر قیمت سهام تأثیر می گذارد و در فرکانس های تقریبا 0. 03 ، 0. 17 و 0. 36 روز رخ می دهد.
در رویکرد کوانتومی ، این می تواند نوعی کمک به تحلیلگران نمونه کارها ارائه دهد و به آنها در محدود کردن جستجوی آنها به وقایعی که در محله فرکانس های مذکور رخ می دهد ، کمک کند.
نتیجه
آنچه امروز در اینجا نشان داده شد ، نمایانگر یک توضیح بیش از حد ناخالص است.
عقل سلیم به ما می گوید که طی یک دوره پنج ساله ، عوامل مؤثر بر قیمت سهام قطعاً با گذشت زمان تغییر خواهند کرد. حتی هنگام تجزیه و تحلیل بازار در بازه های زمانی بسیار کوتاه تر ، مثلاً یک هفته ، عواملی که بر قیمت سهام تأثیر می گذارد ، باز هم تغییر می کند.
جای تعجب ندارد که در دنیای واقعی ، الگوریتم هایی که برای تجزیه و تحلیل بازار مورد استفاده قرار می گیرند ، تقریباً روزانه در حال تغییر هستند. حتی نرم افزار هوش مصنوعی که پارامترهای معاملاتی را تغییر می دهد ، به خودی خود به طور مکرر در حال تغییر هستند تا تعداد زیادی از اطلاعات جدید را که هر روز معاملاتی جدید در دسترس است ، قرار دهد.
و در حال حاضر این همه خواهد بود.
بازار رمزارزها...
ما را در سایت بازار رمزارزها دنبال می کنید
برچسب :
نویسنده : محمود کیانوش
بازدید : 19
تاريخ : سه
شنبه
17 مرداد
1402 ساعت: 16:43