Python4Finance
9.36K subscribers
567 photos
41 videos
152 files
758 links
کانال Python4Finance
آموزش پایتون در اقتصاد و مدیریت مالی
هر روز چند نکته را در خصوص پایتون برای مالی بیاموزیم
***
ارتباط با من
b2n.ir/y72935
***
آپارت:
aparat.com/Python4Finance
کانال چالش ها:
t.iss.one/python4finance_challenge
Download Telegram
#پایتون_برای_اقتصاد_و_مالی
#کامپایلر_مفسر


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

پایتون برای مالی در بله https://ble.im/python4finance
تفاوت کامپایلر و مفسر چیست؟
پایتون یک زبان تفسیری است. برای اینکه بیشتر متوجه بشویم، کامپیوترها چیزی رو جز 0 و یک متوجه نمی شوند. هرچه زبانی به صفر و یک ها نزدیک تر باشد زبان سطح پایین تری است و هرچه به زبان انسان ها نزدیک تر باشد سطح بالاتراست(البته این یک توضیح ساده بود و تفاوت های علمی زیادی دارن). این به معنای خوب یا بد بودن زبان های سطح بالا یا پایین نیست. برای مثال زبان C به نسبت پایتون یک زبان سطح پایین محسوب میشه اما بیشتر زیر ساخت های همین ویندوز یا لینوکسی که استفاده می کنیم با زبان C نوشته شده است. اگر بخواهیم یه توضیح کوچیک بدهیم به طور کلی زبان های برنامه نویسی دو دسته هستند. در هر صورت برای ترجمه زبان های برنامه نویسی به زبان قابل فهم برای کامپیوترها نیازمند کامپایلر یا مفسر هستیم.
کامپایلر و مفسر در واقع یک زبان برنامه نویسی سطح بالا را به یک زبان قابل فهم برای ماشین تبدیل می کنند، اما تفاوت آنها در این می باشد که در زبان های کامپایلری ابتدا یکبار کد ها به صورت کامل ترجمه می گردند و سپس برنامه برای اجرا از روی فایل کامپایل شده اجرا می گردد. اما در زبان های مفسری کد ها به صورت خط به خط تفسیر و اجرا می شوند و در اجرای بعدی برنامه نیز به همین صورت ادامه می یابد.

یکی از تفاوت های این زبان ها این است که زبان مفسر برای اجرا نیاز به یک نرم افزار مفسر یا interpreter دارد اما زبان کامپایلر تنها یکبار کامپایل شده و از آن پس بر روی هر سیستمی قابل اجرا است. اما همین نکته این تفاوت را ایجاد می کند که، زبان کامپایلر وابسته به سیستم عامل است، یعنی در صورتی اجرا خواهد شد که در آن سیستم عامل کامپایل شده باشد و در سیستم عامل های دیگر اجرا نخواهد شد. اما زبان مفسر در هر سیستم عاملی که نرم افزار مفسر آن وجود داشته باشد اجرا و تفسیر می گردد و در واقع وابسته به سیستم عامل نیست.
تعدادی از زبان های مفسری که می توان به آن ها اشاره کرد Python, Ruby, Perl, PHP, JavaScript, VBScript می باشند و همچنین زبان های معروف کامپایلری نیز Cobol, C#, C++, Visual Basic و… هستند.

#پایتون_برای_اقتصاد_و_مالی
#کامپایلر_مفسر

#مقدمات

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

پایتون برای مالی در بله https://ble.im/python4finance
بلوک ها در پایتون
در پایتون دستورات به دو دسته تقسیم می شوند. دستوراتی که در یک خط تمام می شوند مثل:
print("salam")
برخی دستورات، برای تکمیل شدن به چند خط کد نیازدارند، برای مثال دستورات حلقه ها یا دستورات شرطی (که به آن بلوک گفته می شود).
از آنجایی که پایتون مانند سایر زبان ها، از علامت هایی مانند ; یا }{ برای تعیین انتهای خط یا انتهای بلوک ها استفاده نمی کند، برای این موارد از فاصله استفاده می کند . (به تو رفتگی های داخل کدها اصطلاحا دندانه یا indent گفته می شود. ) هر دندادنه معمولا از یک تب یا 4 فاصله تشکیل می شود. بنابراین در پایتون فاصله ها معنادار هستند.

#پایتون_برای_اقتصاد_و_مالی
#بلوک_پایتون

#مقدمات

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

پایتون برای مالی در بله https://ble.im/python4finance
1
یک کتاب خوب، برای آشنایی اولیه با پایتون

#معرفی_کتاب
#آموزش_پایتون


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

پایتون برای مالی در بله https://ble.im/python4finance
2
@python4finance_Beginning_Programming.pdf
6.8 MB
یک کتاب خوب، برای آشنایی اولیه با پایتون

#معرفی_کتاب
#آموزش_پایتون


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

پایتون برای مالی در بله https://ble.im/python4finance
3
ساختار شرطی در پایتون
یکی از مهمتری کارها در هر فرآیندی ، بحث تصمیم گیری است. مثلا می خواهیم قیمت یک سهم را بررسی کنیم و اگر قیمت آن از اندازه مشخصی پایین تر آمد آن را بخریم. یا اینکه می خواهیم بر اساس نام یک سهم ، تحلیل خاصی انجام دهیم. همه این موارد از طریق ساختار شرطی قابل انجام است.
نتیجه یک شرط یا صحیح است (True) و یا غلط است (False) که در نتیجه یک مورد با مورد دیگر انجام می شود. البته می توان به یک متغیر به صورت دستی مقدار صحیح یا غلط را انتصاب داد.
فرض کنید یک متغیر x با مقدار مشخصی داریم. می خواهیم مقدار y را با مقدار x مقایسه کنیم و اگر هر دو متغیر برابر بودند پیامی را به کاربر نشان بدهیم. حاصل کار به صورت زیر خواهد بود:
x=10
y=10
if x==y:
print("Great, x=y")

#ساختار_شرطی
#آموزش_پایتون

#مقدمات

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

پایتون برای مالی در بله https://ble.im/python4finance
ساختار شرطی در پایتون
در صورتی که بخواهیم شروط مختلفی را ضمن یک ساختار شرطی بررسی کنیم از elif استفاده می کنیم. فرض کنیم می خواهیم نمره یک دانش آموز را در سه حالت بزرگتر از 10 مساوی 10 و کوچکتر از 10 مقایسه کنیم. حاصل چیزی شبیه به زیر خواهد بود:
grade=15
if grade > 10 :
print("Greater than 10")
elif grade == 10 :
print("equal to 10")
elif grade < 10 :
print("less than 10")
چند نکته: به ساختار تو رفتگی ها در دستور if دقت کنید. هر کدام از این تو رفتگی ها (که بعد از علامت : در خط قبل قرار دارد) یک بلوک را تشکیل می دهد.
برای مقایسه تساوی باید از == استفاده کنید (علامت = باعث ایجاد خطا می شود. = برای انتصاب است)
در صورتی که بخواهید ذیل یک شرط چندین خط کد بنویسید باید تو رفتگی را برای تمام خطوط آن بلوک رعایت نمایید.

#ساختار_شرطی
#آموزش_پایتون

#مقدمات

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

پایتون برای مالی در بله https://ble.im/python4finance
ساختار شرطی در پایتون
توجه داریم، که elif در جایی به کار می رود که بخواهیم مجددا شرط دیگری را بررسی کنیم. اگر بخواهیم برای تمام حالت های باقیمانده تصمیم بگیریم از else استفاده می کنیم.
مثلا می خواهیم اگر اسم کاربر p1 یا p2 یا p3 بود پیام مناسب خود را دریافت کند و الا پیام خطا دریافت کند. حاصل چیزی شبیه زیر خواهد بود:
user = "p9"
if user=="p1":
print("welcome p1")
elif user=="p2":
print("welcome p2")
elif user=="p3":
print("welcome p3")
else:
print("Error, Anonymous")
#ساختار_شرطی
#آموزش_پایتون

#مقدمات

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

پایتون برای مالی در بله https://ble.im/python4finance
یادگیری ماشین (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