https://www.activestate.com/blog/top-10-python-packages-for-finance-and-financial-modeling/
منبع خط بالا
این متن فقط یک کپی پیس هست ... و مسئولیت لینک ها سایت اصلی به عهده سایت منبع هست . و هیچ ارتباطی بین سایت منبع و این سایت نمی باشد ...
خود شما مسئول امنیت سیستم خود هستید .
nment
nment
مفیدترین بسته های پایتون برای امور مالی
حوزه فناوری های مالی گسترده است و همه چیز از بیمه، وام و تجارت گرفته تا بانکداری الکترونیک و سایر خدمات پرداخت را در بر می گیرد. این مقاله بر روی برنامههای ویژه مالی کمی تمرکز دارد که به وظایف برنامهنویسی مانند واردات و تبدیل دادهها، سریهای زمانی و تجزیه و تحلیل ریسک، تجارت و آزمونهای برگشتی، ادغام اکسل و تجسم دادهها نیاز دارند. من تعدادی از بهترین بسته ها را برای انجام هر کار نمونه می کنم.
شماره 1 NumPy
در پایه، همه مدلهای مالی بر اعداد و ارقام متکی هستند. چند بسته اولی که من در لیست دارم چارچوبی را برای انجام این کار ارائه می دهد. اولین مورد NumPy است. NumPy ضروری ترین بسته برای محاسبات علمی و ریاضی در پایتون است. نه تنها آرایهها و ماتریسهای n بعدی را به پایتون معرفی میکند، بلکه شامل برخی از توابع ریاضی پایه برای دستکاری این ساختارهای داده است. بیشتر بستههای سطح بالاتر پایتون برای امور مالی که بعداً در این لیست ذکر شد به NumPy بستگی دارد.
به عنوان مثال، برای ایجاد دو ماتریس پیچیده 2×2 و چاپ مجموع:
numpy را به عنوان np وارد کنید
a = np.array([[1+2j، 2+1j]، [3، 4]])
b = np.array([[5، 6+6j]، [7، 8+4j]])
چاپ (a+b)
خروجی:
[[6.+2.j 8.+7.j]
[10.+0.j 12.+4.j]]
و برای گرفتن مزدوج پیچیده یکی از آنها:
np.conj(a)
اطلاعات بیشتر در مورد نحوه استفاده از NumPy را می توانید در اینجا بیابید.
شماره 2 SciPy
بسته NumPy ساختارهای ریاضی پایه را برای دستکاری و ذخیره داده ها فراهم می کند. اما برای ساخت مدلهای پیچیده بر اساس این دادهها، به یک مخزن از ابزارها و عملیات آماری پیشرفتهتر نیاز است. SciPy را وارد کنید. این بسته توابع و الگوریتم های حیاتی برای محاسبات علمی پیشرفته مورد نیاز برای ساخت هر مدل آماری را ارائه می دهد. اینها شامل الگوریتم های درون یابی، بهینه سازی، خوشه بندی، تبدیل و ادغام داده ها می شود. این عملیات هنگام انجام هر نوع تحلیل داده یا ساخت هر نوع مدل پیش بینی ضروری هستند.
برای نشان دادن درون یابی، ابتدا از NumPy برای ایجاد برخی نقاط داده با یک تابع دلخواه استفاده می کنم، سپس روش های مختلف درون یابی را با هم مقایسه می کنم:
از scipy.interpolate import interp1d
پیلاب واردات
x = np.linspace(0، 5، 10)
y = np.exp(x) / np.cos(np.pi * x)
f_nearest = interp1d (x, y, kind='nearest')
f_linear = interp1d (x, y)
f_cubic = interp1d(x, y, kind='cubic')
x2 = np.linspace(0، 5، 100)
pylab.plot(x, y, 'o', label='data points')
pylab.plot(x2، f_nearest(x2)، label='nearest')
pylab.plot(x2، f_linear(x2)، label='linear')
pylab.plot(x2، f_cubic(x2)، label='cubic')
pylab.legend()
pylab.show()
نمودار درون یابی - مدل پواسون - 10 بسته مالی برتر - scipy
پاندا شماره 3
NumPy و SciPy پایه های ریاضی را ایجاد می کنند. از سوی دیگر، بسته پاندا یک ساختار داده بصری و با استفاده آسان ایجاد می کند، یک DataFrame، که به طور خاص برای تجزیه و تحلیل و ساخت مدل طراحی شده است. این بر اساس آرایه هایی است که NumPy معرفی می کند و برای داده های جدولی، چند بعدی و ناهمگن بهینه شده است. رایجترین دستکاریها، مانند groupby، پیوستن، ادغام، یا پر کردن، جایگزین کردن و وارد کردن مقادیر تهی را میتوان در یک خط اجرا کرد. علاوه بر این، این بسته توابعی را برای وارد کردن داده ها از انواع فرمت های استاندارد، و توابع دیگری برای رسم سریع، بازیابی آمار اولیه یا خروجی داده ها ارائه می دهد.
برای ایجاد یک DataFrame:
پانداها را به صورت PD وارد کنید
df_1 = pd.DataFrame({'col1': [1,2], 'col2': [3,4]})
و برای الحاق دو دیتافریم به هم:
df_2 = pd.DataFrame({'col3': [5,6], 'col4': [7,8]})
df = pd.concat([df_1,df_2]، محور = 1)
خروجی:
col1 col2 col3 col4
0 1 3 5 7
1 2 4 6 8
برای انجام یک عملیات فیلترینگ ساده، ردیفی را که شرایط منطقی را برآورده می کند استخراج کنید:
df[df.col3 == 5]
نمونه های بیشتر را می توان در اسناد اینجا یافت.
مدل های آماری شماره 4
SciPy کتابخانه ای از ابزارهای آماری را فراهم می کند که به کاربران امکان می دهد یک مدل بسازند و پانداها اجرای آن را آسان می کنند. بسته statsmodels با اجرای آزمایش های پیشرفته تر مدل های آماری مختلف بر روی این بسته ها ساخته می شود. فهرست گستردهای از آمار نتایج و تشخیصها برای هر برآوردگر برای هر مدل مشخصی در دسترس است، با هدف ارائه تصویر کاملی از عملکرد مدل به کاربر. نتایج در برابر بسته های آماری موجود آزمایش می شوند تا از صحت آنها اطمینان حاصل شود.
به عنوان مثال، من یک مجموعه داده داخلی را وارد می کنم:
numpy را به عنوان np وارد کنید
واردات statsmodels.api به عنوان sm
rand_data = sm.datasets.randhie.load(as_pandas=False)
rand_exog = rand_data.exog.view(float).reshape(len(rand_data.exog)، -1)
rand_exog = sm.add_constant(rand_exog، prepend=False)
و برای برازش مجموعه داده با یک مدل پواسون:
poisson_mod = sm.Poisson(rand_data.endog، rand_exog)
poisson_res = poisson_mod.fit(method = "نیوتن")
print(poisson_res.summary())
خروجی باید چیزی شبیه به این باشد:
مدل پواسون - بسته های پایتون برای امور مالی - statmodel
اطلاعات بیشتر را می توان در اینجا یافت.
شماره 5 کوندل
تا به حال، بسته هایی که من فهرست کرده ام نسبت به نوع داده های در نظر گرفته شده بی طرف هستند. البته، هنگام در نظر گرفتن مدل های مالی، به داده های مالی نیاز داریم. اینجاست که کواندل به کمک می آید. ماژول Quandl Python به کاربران امکان دسترسی به مجموعه وسیعی از داده های اقتصادی، مالی و بازار را می دهد که از بانک های مرکزی، دولت ها، سازمان های چند ملیتی و بسیاری از منابع دیگر جمع آوری شده است. دسترسی به اکثر مجموعه داده های خام پس از ثبت نام رایگان است (شما به یک کلید API نیاز دارید)، با مجموعه داده های پیشرفته تر و عمیق تر با هزینه.
اسناد بسته را می توان در اینجا یافت.
شماره 6 زیپ لاین
Zipline بستهای است که آمار، ساختار دادهها و منابع داده را با هم مرتبط میکند. این یک کتابخانه معاملاتی الگوریتمی قدرتمند برای پایتون است، که با این واقعیت آشکار می شود که Quantopian، یک پلت فرم رایگان برای ساخت و اجرای استراتژی های معاملاتی را تقویت می کند. داده های Quandl به راحتی وارد می شوند و الگوریتم های سفارشی به راحتی طراحی، آزمایش و پیاده سازی می شوند. این شامل بک تست الگوریتم ها و معاملات زنده است. یک الگوریتم پایه به شکل زیر است:
از zipline.api سفارش واردات، رکورد، نماد
def initialize(context):
عبور
def handle_data (زمینه، داده):
سفارش (نماد ('AAPL')، 10)
رکورد(AAPL=data.current(symbol('AAPL')، 'price'))
ما توابع سفارش، رکورد و نماد را از zipline وارد می کنیم تا الگوریتمی بسازیم که قیمت سهام اپل را ثبت کند. برای مثال های بیشتر از الگوریتم ها، مستندات را ببینید.
شماره 7 پیفولیو
پس از طراحی و آزمایش یک الگوریتم در zipline، بسته pyfolio یک راه آسان برای تولید یک صفحه اشک حاوی آمار عملکرد ارائه می دهد. این آمارها شامل بازده سالانه/ماهانه، چندک بازده، نسبتهای بتا/شارپ رولینگ، گردش سهام و چند مورد دیگر است. برای تولید یک برگه اشک نمونه بر روی یک استوک:
وارد کردن pyfolio به عنوان pf
stock_rets = pf.utils.get_symbol_rets('FB')
pf.create_returns_tear_sheet(stock_rets, live_start_date='2015-12-1')
خروجی مجموعه ای از جداول و نمودارهای حاوی معیارهای عملکرد خواهد بود.
معیارهای عملکرد
بسته های پایتون برای امور مالی - Pyfolio
بسته های پایتون برای امور مالی
Rolling Values - بسته های پایتون برای امور مالی
با گذشت زمان - بسته های پایتون برای امور مالی
مقادیر برگشتی
مستندات چند نمونه دیگر دارد که به جزئیات بیشتر میپردازد.
#8 TA-Lib
دو بسته بعدی جایگزینی برای استفاده از zipline و pyfolio هستند. اولین مورد کتابخانه تحلیل تکنیکال یا به اختصار TA-Lib است. این پروژه به زبان C++ نوشته شده است، اما یک پوشش برای پایتون وجود دارد. مانند zipline، TA-Lib ابزارهای مالی رایجی مانند مطالعات همپوشانی، شاخصهای حرکت، شاخصهای حجم، شاخصهای نوسانات، تغییرات قیمت، شاخصهای چرخه، تشخیص الگو و توابع آماری خالص را فراهم میکند.
لیست کاملی از قابلیت ها را می توانید در اینجا بیابید.
شماره 9 QuantLib
دومین جایگزین برای zipline و pyfolio QuantLib است. مشابه TA-Lib، QuantLib در C++ نوشته شده و سپس به پایتون صادر می شود. هدف پروژه QuantLib ایجاد یک کتابخانه رایگان و منبع باز برای مدل سازی، تجارت و مدیریت ریسک است. این بسته شامل ابزارهایی برای طراحی و پیاده سازی الگوریتم های پیشرفته است که شامل ویژگی هایی مانند قراردادهای بازار، مدل های منحنی بازده، حل کننده ها، PDE ها، مونت کارلو و موارد دیگر می باشد.
این پروژه تقریباً 20 سال است که وجود دارد و مستندات گسترده ای وجود دارد.
شماره 10 Matplotlib
بستههای پایتون فوق برای امور مالی، منابع دادههای مالی، ساختارهای داده بهینه برای دادههای مالی، و همچنین مدلهای آماری و مکانیسمهای ارزیابی را ایجاد میکنند. اما هیچکدام یکی از مهمترین ابزارهای پایتون را برای مدلسازی مالی ارائه نمیکنند: تجسم دادهها (همه تجسمهای این مقاله توسط matplotlib ارائه میشوند).
نه تنها تجسم برای درک روندها در داده های مالی، بلکه برای انتقال بینش به پرسنل غیر فنی نیز مهم است. بیش از چند بسته تجسم داده در پایتون وجود دارد که هر کدام دارای نکات مثبت و منفی هستند (مقاله من را اینجا ببینید)، اما ساده ترین آنها برای مدل سازی مالی matplotlib است. این عمدتا به این دلیل است که بسیاری از بستههای موجود در این لیست قبلاً به matplotlib متکی هستند. علاوه بر این، مستندات فراوان است و نحو ساده و سرراست است.
نتیجه گیری
در این مقاله، من 10 بسته برتر پایتون را برای امور مالی انتخاب کرده ام. جالب است بدانید که از آخرین باری که ActiveState مجموعهای از بستههای پایتون را برای امور مالی انجام داد (2010)، بسیاری از بستههای برتر تغییر کردهاند، اما numpy، scipy و matplotlib کلیدی باقی ماندهاند.
برای شروع کار با بستههای موجود در این لیست، یک حساب رایگان ActiveState Platform ایجاد کنید و سپس ساخت «10 بسته مالی برتر» ما را دانلود کنید. این بیلد شامل نسخه ای از پایتون 3.8 و اکثر بسته های ذکر شده در این پست است تا بتوانید آنها را برای خودتان آزمایش کنید.
ساده ترین راه برای نصب محیط این است که ابتدا رابط خط فرمان ActiveState Platform (CLI)، ابزار State Tool را نصب کنید.
اگر از لینوکس استفاده می کنید، می توانید از curl برای نصب State Tool استفاده کنید:
sh <
(curl -q https://platform.activestate.com/dl/cli/install.sh)
پس از نصب State Tool، کافیست دستور زیر را برای دانلود بیلد اجرا کنید و به طور خودکار آن را در یک محیط مجازی نصب کنید:
State activate Pizza-Team/Top-10-Finance-Packages/
همه این بسته ها (به جز quantlib) در پلتفرم ActiveState برای گنجاندن در محیط زمان اجرا شما در دسترس هستند. یکی از مزیتهای کلیدی پلتفرم ActiveState قابلیتهای «محیط ساختن بر اساس تقاضا» است که به شما این امکان را میدهد تا بستههایی حاوی کد C از منبع بسازید بدون اینکه نیازی به تنظیم محیط خود یا منبع کامپایلر خود داشته باشید. اگر منشأ کد برای سازمان شما ارزش دارد، پلتفرم ActiveState می تواند به کاهش زمان و منابعی که برای منبع یابی و ساخت زمان اجرا صرف می کنید کمک کند.
مطالب پیشنهادی
رسم داده ها در پایتون: matplotlib در مقابل plotly
10 بسته برتر پایتون برای یادگیری ماشین
سوالات متداول
آیا پایتون در امور مالی استفاده می شود؟
آیا پایتون برای مدل سازی مالی خوب است؟
چگونه می توانم از کتابخانه های مالی پایتون استفاده کنم؟
کدام کتابخانه مالی پایتون بهتر است؟
صفحه اصلی » وبلاگ ActiveState در مورد بهترین بسته های پایتون » یادگیری ماشینی » 10 بسته برتر پایتون برای امور مالی و مدل سازی مالی
بهترین بستههای پایتون، matplotlib، numpy، pandas، pyfolio، بستههای پایتون، quandl، quantlib، scipy، statsmodel، ta-lib، بستههای مالی برتر، بستههای برتر پایتون، zipline
نویسنده وبلاگ
هدشات دانته اسبلندوریو
دانته اسبلندوریو
وبلاگ نویس مهمان: دانته فیزیکدانی است که در حال حاضر در حال تحصیل در رشته فیزیک در دانشکده پلی تکنیک فدرال لوزان است. او دارای مدرک کارشناسی ارشد در علوم داده است و به آزمایش و یافتن برنامه های کاربردی جدید برای الگوریتم های یادگیری ماشین ادامه می دهد. او در لوزان سوئیس زندگی می کند.
اطلاعات عملی در صندوق ورودی شما
آخرین وبلاگ ها، منابع و اطلاعات ما را دریافت کنید تا به شما کمک کند ارزش بیشتری با زبان های منبع باز ایجاد کنید