Python4Finance
9.35K subscribers
567 photos
41 videos
152 files
758 links
کانال Python4Finance
آموزش پایتون در اقتصاد و مدیریت مالی
هر روز چند نکته را در خصوص پایتون برای مالی بیاموزیم
***
ارتباط با من
b2n.ir/y72935
***
آپارت:
aparat.com/Python4Finance
کانال چالش ها:
t.iss.one/python4finance_challenge
Download Telegram
یادگیری ماشین (Machine learning ) و کاربرد آن در مالی و اقتصاد
ماشین لرنینگ یا همان یادگیری ماشین یکی از کاربردهای هوش مصنوعی (AI) است که سیستم ها را قادر می سازد به طور خودکار و از طریق تجربه و بدون برنامه ریزی، یاد بگیرند و خود را بهبود دهند. تمرکز این تکنولوژی بر توسعه برنامه های کامپیوتری می باشد که به داده ها دسترسی دارند و می توانند از این داده ها استفاده کرده تا خودشان یاد بگیرند.
یادگیری ماشین ارتباط نزدیکی با آمار محاسباتی دارد (و اغلب با آن هم پوشانی دارد)، تمرکز این شاخه نیز پیش بینی کردن توسط رایانه است و پیوند محمکی با بهینه سازی ریاضی دارد، که آن هم روش ها، تئوری ها و کاربردهایی را وارد میدان می کند. یادگیری ماشین گاهی اوقات با داده کاوی ادغام می شود. در واقع یکی از شروط یادگیری صحیح، داشتن اطلاعات و استفاده بهینه از آنهاست.
یادگیری ماشین دارای کاربردهای فزاینده‌ای در خودکارسازی تصمیم‌گیری‌های مالی بوده و هست، طوری که هم‌اکنون از ماشین‌ها و روبات‌ها برای ارزیابی اعتبارپذیری مشتریان بانک‌ها یا اعتمادپذیری بیمه‌گذاران در صنعت بیمه استفاده می‌شود. در حال حاضر هوش مصنوعی این امکان را برای مؤسسات و سازمان‌ها فراهم آورده است تا با پردازش حجم عظیمی از اطلاعات و داده‌ها در کوتاه‌ترین زمان و بالاترین دقت ممکن بهترین و دقیق‌ترین تصویر ممکن از وضعیت مشتریان و شرکای بالقوه را تهیه و قدرت تصمیم‌گیری فوق‌العاده‌ای را به صاحبان صنایع یا مدیران شرکت‌ها اعطا کنند و به طور مثال الگوهای غیرعادی معاملات مالی را با هدف احتمال‌سنجی اختلاس و کلاه‌برداری کنترل نمایند.
یکی از راهکارهای ایجاد معاملات الگورتیمی خوب، استفاده از یادگیری ماشین برای بهبود استراتژی های سرمایه گذاری است.
در پست های آتی به طور مفصل به مبحث یادگیری ماشین ، داده کاوی و معاملات الگوریتمی خواهیم پرداخت.
با ما همراه باشید.

#یادگیری_ماشین
#آموزش_پایتون


پایتون برای مالی در تلگرام https://t.iss.one/python4finance

پایتون برای مالی در بله https://ble.im/python4finance
1
یادگیری ماشین (Machine learning ) و کاربرد آن در مالی و اقتصاد


#یادگیری_ماشین
#آموزش_پایتون


پایتون برای مالی در تلگرام https://t.iss.one/python4finance

پایتون برای مالی در بله https://ble.im/python4finance
حلقه ها در پایتون
برای تکرار یک فرآیند در پایتون از حلقه ها استفاده می کنیم. فرض کنید می خواهیم از یک تا 10 را شمرده و به کاربر نشان دهیم.
ساختار چیزی شبیه زیر خواهد بود:

for in in range(1,10):
print(i)
به طور کلی، حلقه ها یا بر اساس شمارش ایجاد می شوند (دستور for) یا بر اساس شرط (while)، مثلا تا زمانی که یک شرط صحیح باشد. برای مثال بازنویسی مثال فوق با while به صورت زیر خواهد بود:

i=1
while i<10:
print(i)
i = i + 1



#مقدمات
پایتون برای مالی در تلگرام https://t.iss.one/python4finance
پایتون برای مالی در بله https://ble.im/python4finance
1
دریافت اطلاعات از کاربر
برای دریافت اطلاعات از کاربر از دستور input استفاده می کنیم. کافی است مقدار دریافتی را به یک متغیر اختصاص دهیم. فرض کنید می خواهیم نام کاربر را دریافت کنیم. برای این منظور می توانیم از دستور زیر استفاده کنیم:
user_name = input("Please enter your name: ")
یا فرض کنید می خواهیم سن کاربر را دریافت کنیم:
user_age = input("Please enter your age: ")
مثال: برنامه ای بنویسید که نام کاربر را دریافت کند و به وی پیام خوش آمد نشان دهد. این عمل تا جایی ادامه پیدا کند که کاربر عبارت end را برای پایان برنامه تایپ کند.

#دریافت_اطلاعات_از_کاربر
#پایتون_مالی
#پایتون_مقدمانی

#مقدمات

پایتون برای مالی در تلگرام https://t.iss.one/python4finance
پایتون برای مالی در بله https://ble.im/python4finance
Pythonic Programming، روشی برای کوتاه کردن و خوانا کردن کدها

#پایتون_مالی
#پایتونیک

پایتون برای مالی در تلگرام https://t.iss.one/python4finance
پایتون برای مالی در بله https://ble.im/python4finance
پایتونیک، روشی برای کوتاه کردن و خوانا کردن کدها
پایتون زبان بسیار قدرتمندی است و تقریبا هر برنامه ای می توان با آن نوشت. اما قدرت پایتون در ساده نویسی و کوتاه کردن دستورات برنامه است.
فرض کنید می خواهیم برنامه ای بنویسیم که اعداد زوج مابین 0 تا 100 را با یکدیگر جمع کند. ساختار برنامه نویسی چیزی شبیه زیر خواهد بود:
total=0
for i in range(1,100):
if i%2==0:
total+= i
print(total)
اگر بخواهیم کمی کد فوق را خلاصه کنیم از ساختار زیر هم می توانیم استفاده کنیم:
total=0
for i in range(1,100):
total+= i if i%2==0 else 0
print(total)

اما تمام کدهای فوق را می توانیم با یک خط زیر عوض کنیم:
print(sum(i if i%2==0 else 0 for i in range(1,100)))

کد فوق احتمالا خلاصه ترین و خوانا ترین کدی است که می توان برای این برنامه نوشت، به این شیوه کد نویسی پایتونیک گفته می شود.

#پایتون_مالی
#پایتونیک

#مقدمات
پایتون برای مالی در تلگرام https://t.iss.one/python4finance
پایتون برای مالی در بله https://ble.im/python4finance
6
تحلیل سری زمانی با پایتون


#پایتون_مالی
#سری_زمانی

پایتون برای مالی در تلگرام https://t.iss.one/python4finance
پایتون برای مالی در بله https://ble.im/python4finance
تحلیل سری زمانی با پایتون
خب، کم کم وارد قسمت جذاب بحث خودمان یعنی مدلسازی مالی با پایتون می شویم. به نظر من کلیدی ترین بحث در مدلسازی مالی و اقتصادی مواجهه با سری های زمانی است. سری زمان یعنی تقریبا همه چیز.
به یک توالی یا دنباله از متغیرهای تصادفی که در فاصله های زمانی ثابت نمونه برداری شده باشند، اصطلاحاً سری زمانی یا پیشامد تصادفی در مقطع زمان می‌گویند. به عبارت دیگر منظور از یک سری زمانی مجموعه‌ای از داده‌های آماری است که در فواصل زمانی مساوی و منظمی جمع‌آوری شده باشند.
هدف اصلی در تحلیل سری زمانی در مورد یک پدیده، ایجاد یک مدل آماری برای داده‌های وابسته به زمان براساس اطلاعات گذشته آن پدیده است. با این کار امکان پیش‌بینی در مورد آینده پدیده مورد بحث میسر می‌شود. به بیان دیگر تحلیل سری زمانی،‌ ایجاد مدلی گذشته‌نگر است تا امکان تصمیمات آینده‌نگر را فراهم سازد.
مثال‌ها
سری زمانی در اقتصاد،
مانند صادرات در ماه‌های متوالی، متوسط درآمد در ماه‌های متوالی، GDP طی سال های مختلف و …
سری زمانی در مالی مانند قیمت سهام در روزهای متوالی، شاخص بازار طی روز های مختلف و ...
سری زمانی بازاریابی، تجزیه و تحلیل ارقام فروش در هفته یا ماه‌ها متوالی و ...
سری زمانی در هواشناسی: میزان بارندگی طی فصول سال در سال های مختلف، درجه هوا طی روز های سال و ...
معمولا می‌توان الگوی رفتار یا مدل تغییرات یک سری زمانی را به چهار مولفه تفکیک کرد. «روند» (Trend)، «تناوب» (Cyclic)، «فصل» (Seasonal) و «تغییرات نامعمول» (Irregular). اگر نمودار مربوط به داده‌های سری زمانی را برحسب زمان ترسیم کنیم می‌توانیم این مولفه‌ها را تشخیص دهیم در نتیجه شناخت بهتری از داده‌های سری زمانی خواهیم داشت.
در پایتون برای استفاده و تحلیل سری های زمانی کتابخانه های مختلفی طراحی شده است. از مهترین این کتابخانه ها به Numpy و Pandas می توان اشاره کرد. در پست های آتی راجع به نصب کتابخانه های مذکور و شیوه استفاده از آن ها برای استفاده در مالی خواهیم پرداخت.
با ما باشید تا در ادامه به بحث جذاب سری های زمانی در پایتون بپردازیم.

#پایتون_مالی
#سری_زمانی

پایتون برای مالی در تلگرام https://t.iss.one/python4finance
پایتون برای مالی در بله https://ble.im/python4finance
4
Python4Finance pinned Deleted message
نصب کتابخانه های اساسی برای کار با سری های زمانی
در پایتون، به برنامه های از قبل نوشته شده که شما می توانید آن ها را فراخوانی کرده و از توابع، کلاس ها و متدهای آن ها استفاده کنید کتابخانه یا ماژول گفته می شود. این کتابخانه ها ممکن است با پایتون نوشته شده باشند یا با C و++ C .
فراخوانی این کتابخانه ها باعث افزایش سرعت برنامه نویسی و سهولت استفاده از قابلیت های پایتون می شود.
خوشبختانه مدیریت کتابخانه ها در پایتون، امروز خیلی آسان است (تا قبل از نسخه 3.4 اینگونه نبود) و به راحتی و با استفاده از مدیر پکیج PIP امکان پذیر است.
ابتدا مطمئن شوید که PIP شما آپدیت است. (دستور زیر را در CMD یا ترمینال اجرا کنید)

python -m pip install --upgrade pip

و حالا به راحتی پکیج های زیر را نصب کنید:
pip install numpy
pip install pandas
pip install scipy
pip install matplotlib

در ادامه به شیوه استفاده از این کتابخانه ها می پردازیم.

#پایتون_مالی
#سری_زمانی
#نصب_کتابخانه

#مقدمات
پایتون برای مالی در تلگرام https://t.iss.one/python4finance
پایتون برای مالی در بله https://ble.im/python4finance
4
آشنایی با کتابخانه Numpy
خب، تا اینجا با کتابخانه های پایتون آشنا شدیم. یکی از مهترین کتابخانه های پایتون نام پای است. این کتابخانه که بخش های مختلفی از آن با C و ++C نوشته است، در مقایسه با پایتون خالص، سرعت عمکلرد بسیار بهتری برای کار با ماتریس ها و بردارها دارد.
از آنجایی که سری های زمانی یک بردار چند در یک هستند (داده های پنل هم ماتریس چند در چند هستند) استفاده از Numpy برای ما بسیار حیاتی است.
هدف اصلی NumPy فراهم ساختن امکان کار با آرایه‌های چندبعدی همگن است. این آرایه‌ها جدولی از عناصر (معمولاً اعداد) هستند که همگی از یک نوع می‌باشند و با یک چندتایی، از اعداد صحیح مثبت اندیس‌گذاری می‌شوند.
توجه داریم که در پایتون آرایه ها به معنی سایر زبان های برنامه نویسی پشتیبانی نمی شوند و فقط لیست ها را داریم. به کمک Numpy امکان استفاده از آرایه ها و اعمال مرتبط با آن در پایتون فراهم می شود.


#پایتون_مالی
#سری_زمانی
#NumPy

پایتون برای مالی در تلگرام https://t.iss.one/python4finance
پایتون برای مالی در بله https://ble.im/python4finance
آشنایی با کتابخانه Numpy

برای تعریف یک آرایه در Numpy به شیوه زیر عمل می کنیم.
import numpy as np
a = np.array([2,3,4])
در این مثال فوق یک بردار یک در سه تشکیل می شود. دقت داریم که همه عناصر همگن هستند. در مثال فوق همه اعضا int هستند.
در مثال زیر، یک ماتریس 2 در 3 تشکیل می شود. چون یکی از اعضا اعشاری است ؛ نوع عناصر آرایه اعشار Float خواهد بود.
import numpy as np
b = np.array([(1.5,2,3), (4,5,6)])
با استفاده از متد dtype می توانیم نوع عناصر ماتریس را دریافت کنیم.
#پایتون_مالی
#سری_زمانی
#NumPy

پایتون برای مالی در تلگرام https://t.iss.one/python4finance
پایتون برای مالی در بله https://ble.im/python4finance
Media is too big
VIEW IN TELEGRAM
کاربرد پایتون در اقتصاد سنجی
پایتون یکی از بی نظیرتین زبان های برنامه نویسی در این زمان است. کاربرد پایتون در محاسبات اقتصادی به حدی است که می توان عموم محاسبات اقتصاد سنجی را در آن انجام داد. به دلیل قدرت و محبوبیت این زبان، Eviews که یکی از پرچمداران اقتصاد سنجی است، در آخرین آپدیت خود کتابخانه اختصاصی برای کار با پایتون را ارائه کرده است. فیلم حاضر نگاهی معرفی pyeviews برای اتصال پایتون به Eviews است. لینک راهنمایی

#پایتون_مالی
#سری_زمانی
#Eviews

پایتون برای مالی در تلگرام https://t.iss.one/python4finance
پایتون برای مالی در بله https://ble.im/python4finance
آشنایی با کتابخانه Pandas
پانداس
قوی ترین کتابخانه برای کار با داده هاست. به کمک این کتابخانه می توانید اطلاعات مربوط به سری های زمانی را از فایل های داده در قالب txt یا csv و یا منابع آنلاین دریافت کنید و بر روی آنها اعمالی چون Data mining ، Data cleaning ، اتصال داده ها ، گروه بندی داده ها، فیلتراسیون و ... را انجام داد.
بخش‌های اصلی این کتابخانه در زبان Cython یا زبان C نوشته شده‌است و به همین دلیل از نظر عملکرد کارایی بالایی دارد.
کارکرد پانداس تا حدی بالاست که برای کارهای حجیم ماشین لرنینگ ، بیگ دیتا و اینترنت اشیاء از آن استفاده می شود.


#پایتون_مالی
#سری_زمانی
#Pandas

پایتون برای مالی در تلگرام https://t.iss.one/python4finance
پایتون برای مالی در بله https://ble.im/python4finance
آشنایی با کتابخانه Pandas
برای ساخت Series از متد ()Series استفاده می‌کنیم. به دلیل تک بعدی بودنِ Series، مقادیری که می‌دهیم باید در یک بعد باشد. پس از لیست کمک می‌گیریم و آن را به عنوان اولین آرگومان به آن می‌دهیم. آرگومان دوم نام index-ها می‌باشد، که اگر مشخص نشود، به صورت پیشفرض از ۰ شروع می‌شود. بعد از تعریف کردن لیست مقادیر و index-ها، آن‌ها را به متد ()Series می‌دهیم و خروجی را دریافت می‌کنیم.
import pandas as pd
_inflation = ['10%', '30%', '40%', '15%']
_year = [1395, 1396, 1397, 1398]
_df= pd.Series(_inflation,_year )
print(_df)
البته این روش صرفا برای نمایش امکانات پانداس است و در عمل کارایی چندانی ندارد. در پست های آتی مفصل راجع به پانداس صحبت خواهیم کرد. با ما همراه باشید.

#پایتون_مالی
#سری_زمانی
#Pandas

پایتون برای مالی در تلگرام https://t.iss.one/python4finance
پایتون برای مالی در بله https://ble.im/python4finance
از اینکه کانال پایتون برای مالی را به دوستان خود معرفی می کنید بسیار سپاسگزاریم.

پایتون برای مالی در تلگرام https://t.iss.one/python4finance
پایتون برای مالی در بله https://ble.im/python4finance
4
آشنایی با کتابخانه SciPy
سای پای یکی دیگر از کتابخانه های بی نظیر پایتون است. در واقع سای پای نسخه تکمیل شده Numpy است که در محاسباات ریاضی، اقتصادی و مالی بسیار کاربرد دارد.
مسائلی مانند تحلیل رگرسیون، بهینه یابی، محاسبات آماری، محاسبات مالی و ... به راحتی با scipy قابل انجام است.
فرض کنید می خواهیم IRR یک پروژه را با مقادیر (100 میلیون تزریق و به ترتیب 40،50 و 60 میلیون تومان بازده ) را محاسبه کنیم.
حل این مسئله به راحتی با scipy قابل انجام است.
import scipy as sp
cashflows = [-100 , 40, 50 , 60]
print (sp.irr(cashflows))


#پایتون_مالی
#سری_زمانی
# Scipy

پایتون برای مالی در تلگرام https://t.iss.one/python4finance
پایتون برای مالی در بله https://ble.im/python4finance
روش های توزیع برنامه های پایتون
خیلی از دوستان می پرسند که خروجی پایتون بالاخره چیست؟ یعنی برای اجرای برنامه هایی که نوشتیم و توزیع آنها چه روش هایی را می توانیم استفاده کنیم؟
1- روش اول اینکه فایل های برنامه پایتون (py.*) خود را به صورت مستقیم به استفاده کننده بدهید. استفاده کننده باید پایتون را روی سیستم خود نصب کند و برنامه شما را اجرا کند، به همین سادگی! 😇
2- برنامه خود را در قالب یک نرم افزار به مخاطب تحویل بدهید. برای این منظور کتابخانه های مختلفی مانند PyQt وجود دارند که می توانید اپلیکیشن خود را مانند اپلیکیشن های ویندوزی یا لینوکسی طراحی و اجرا نمایید. 😚
3- برنامه خود را به عنوان یک وبسایت تحویل دهید. اگر کمی html و css بلد باشید به کمک ابزارهایی مانند جانگو می توانید یک وب سایت پرفکت بر پایه پایتون ایجاد کنید و برنامه خود را در آن قرار دهید.
4- امکان خروجی گرفتن از برنامه های پایتون در قالب اپ موبایل (اندروید و آی او اس) هم به سادگی مهیاست
در پست های آتی راجع به هر یک از شیوه های توزیع مفصل صحبت خواهیم کرد.


تلگرام https://t.iss.one/python4finance
بله https://ble.im/python4finance
آشنایی با کتابخانه Matplotlib
مصور سازی نتایج تقریبا آخرین کاری است که در محاسباتی انجام می شود. ترسیم نمودارهای دو بعدی با قابلیت های فراوان کاری است که کتابخانه Matplotlib انجام می دهد. فرض کنید می خواهیم تابع x^2 را رسم کنیم. برای این منظور با استفاده از Numpy و Matplotlib کدی مانند زیر خواهیم داشت.

import matplotlib.pyplot as plt
import numpy as np
a=np.linspace(1,100)
plt.plot(a,a**2)
plt.show()

#پایتون_مالی
#سری_زمانی
# Matplotlib

پایتون برای مالی در تلگرام https://t.iss.one/python4finance
پایتون برای مالی در بله https://ble.im/python4finance
محاسبات آماری در پایتون
پایتون یکی از خوش دست ترین زبان ها برای انجام محاسبات آماری است. به لطف پکیج هایی مانند scipy و statistics محاسبات آماری بسیار ساده و روان انجام می شوند.
برای محاسبه میانگین، میانه ، نما ، انحراف معیار و واریانس یک نمونه از دستورات زیر استفاده می کنیم:
import statistics as st
my_data = [5,2,5,6,1,2,6,7,2,6,3,5,5]
print("The mean is: " , st.iss.onean(my_data)) #Miangin
print("The median is: " , st.iss.onean(my_data)) #Miane
print("The mode is: " , st.mode(my_data)) #Nama
print("The stdev is: " , st.stdev(my_data)) #Enhraf Meyar
print("The variance is: " , st.variance(my_data)) #variance
البته زیبایی کار وقتی است که محاسبات برای سری های زمانی بزرگ و معنی دار انجام شود. ان شاء الله در ادامه مفصل به این موضوع خواهیم پرداخت.

#پایتون_مالی
#محاسبات_آماری
# statistics

پایتون برای مالی در تلگرام https://t.iss.one/python4finance
پایتون برای مالی در بله https://ble.im/python4finance
3