داد جاروبی به دستم آن نگار / گفت کز دریا برانگیزان غبار
جولیا Julia برای تحلیل دادههای بورس تهران
جولیا Julia گزینهای مناسب برای دانش دادهها و امور مالی
عدد دقیقی از تعداد زبانهای برنامهنویسی در دست نیست. احتمالا بیشتر از ۱۵۰۰ زبان. زبانهای شناختهشدهتر چیزی در حدود ۲۰۰ زبان هستند. قانع کردن و قانع شدن برای یادگیری یک زبان دیگر کار سادهای نیست. بهویژه اینکه آشنایی با یک زبان با تسلط به آن زبان فاصله بسیاری دارد و هزینه و زمان و انرژی بسیاری میبرد. حتا زبانهایی که از سر تفنن ایجاد شدهاند هم به نوعی پاسخ به نیازی بودهاند و در پی پر کردن خلائی که به مرور زمان و پدیدار شدن نیازهای جدید پیش آمدند و زبانهای موجود یا راهی برای پاسخ نداشتند یا پاسخ مناسب. جولیا هم برای رفع مشکل سرعت و کارآمدی زبانهایی مثل پایتون و رابی در عین حفظ راحتی و انعطاف و قدرت آنها در حوزه پردازش دانش و محاسبات علمی با نگاهی به پردازش موازی و چندهستهای و پردازش ابری در سال ۲۰۱۲ رسما معرفی شد.
دو سال قبل زبان جولیا به فهرست ۵۰ زبان اول برنامهنویسی در فهرست تیوبی یا TIOBE Index رسید در واقع ۴۹امین و سپتامبر امسال به رتبه ۳۶ TIOBE Index رسید.
«ویرایش در ۱ دی ۱۳۹۹، همانطور که پیشبینی شد رتبه جولیا در فهرست تیوبی یا TIOBE Index باز هم بهتر شد و به جایگاه ۲۶ام رسید.»
جولیا زبان شایستهای هست و به رشد خود ادامه خواهد داد و جایگاهش در سال بعد، بهتر خواهد شود. جولیا برای متخصصان رشتههایی مثل امور مالی که تسلطی بر برنامهنویسی ندارند انتخاب مناسبتری در قیاس با گزینههایی مانند پایتون هست و Syntax و دستور زبان به مراتب معقولتری برای محاسبات دارد.
پردازش اطلاعات بورس تهران
برای آشنایی بیشتر با جولیا به نظرم رسید مثالهای سادهای در پردازش اطلاعات بورس کمک بهتری از توصیف و توضیح تاریخچه و دستور زبان آن خواهد کرد.
فرض کنید میخواهیم بر روی یکی از نمادهای بورس تهران، شرکت زامیاد با نماد خزامیا تحلیل تکنیکال انجام دهیم.
راههای مختلف رایگان و پولی برای دریافت اطلاعات معاملات سهام در بورس داریم ولی مرجع رسمی سایت شركت مدیریت فناوری بورس تهران به آدرس http://www.tsetmc.com است
صفحه مربوط به نماد خزامیا در این آدرس است
http://www.tsetmc.com/Loader.aspx?ParTree=151311&i=2589887561569709
عدد انتهای URL کد هر نماد در سایت فناوری بورس یا tsetmc است
برای دریافت سابقه معاملات نماد باید به صفحهای که آدرس آن ذکر شد برویم و بر روی دکمه تهیه خروجی کلیک کنیم تا از آدرس زیر
http://www.tsetmc.com/tsev2/data/Export-txt.aspx?t=i&a=1&b=0&i=2589887561569709
فایل اطلاعات به صورت csv یا Comma-separated values یا اعداد جداشده با کاما دانلود شود
اطلاعات به صورت زیر است
<TICKER>,<DTYYYYMMDD>,<FIRST>,<HIGH>,<LOW>,<CLOSE>,<VALUE>,<VOL>,<OPENINT>,<PER>,<OPEN>,<LAST>
Zamyad,20190918,1520.00,1545.00,1482.00,1507.00,107305231261,71189107,3942,D,1560.00,1528.00
Zamyad,20190917,1590.00,1624.00,1536.00,1560.00,106059587484,67999660,3982,D,1616.00,1536.00
Zamyad,20190916,1659.00,1699.00,1564.00,1616.00,144540814929,89448578,6054,D,1645.00,1591.00
Zamyad,20190915,1640.00,1696.00,1590.00,1645.00,135360471033,82307197,5255,D,1656.00,1659.00
شامل نام نماد، تاریخ، عدد اولین معامله، بالاترین قیمت روز، پایینترین، قیمت بسته شدن و ...
این اطلاعات به ترتیب آخرین روز به اولین روز مرتب شده که برای ترسیم نمودارهای تکنیکال این ترتیب باید تغییر کند چون ما سابقه سهم از قدیم به جدید را رسم میکنیم و نه برعکس.
تمرینی که قصد انجامش را داریم این است که به طور خودکار این اطلاعات فعلا برای همین نماد خاص یعنی خزامیا دریافت شود و بعد اندیکاتور یا دقیقتر اوسیلاتور CCI یا Commodity Channel Index محاسبه و ترسیم شود تا مبنای تصمیمگیری برای خرید یا فروش سهم شود.
بخش اول کار دریافت اطلاعات به صورت خودکار است. این کار در جولیا به این صورت انجام میشود.
using HTTP
using Inflate
#http://www.tsetmc.com/Loader.aspx?ParTree=151311&i=2589887561569709
namad_id = "2589887561569709"
url = "http://www.tsetmc.com/tsev2/data/Export-txt.aspx?t=i&a=1&b=0&i=$namad_id";
response = HTTP.get(url)
csv = String(Inflate.inflate_gzip(r.body))
print(csv)
برنامه فوق اطلاعات نماد خزامیا را بر روی صفحه چاپ میکند مانند خروجی خلاصه شده زیر
<TICKER>,<DTYYYYMMDD>,<FIRST>,<HIGH>,<LOW>,<CLOSE>,<VALUE>,<VOL>,<OPENINT>,<PER>,<OPEN>,<LAST>
Zamyad,20190918,1520.00,1545.00,1482.00,1507.00,107305231261,71189107,3942,D,1560.00,1528.00
Zamyad,20190917,1590.00,1624.00,1536.00,1560.00,106059587484,67999660,3982,D,1616.00,1536.00
Zamyad,20190916,1659.00,1699.00,1564.00,1616.00,144540814929,89448578,6054,D,1645.00,1591.00
Zamyad,20190915,1640.00,1696.00,1590.00,1645.00,135360471033,82307197,5255,D,1656.00,1659.00
قسمت ۲
مطلبی دیگر از این انتشارات
معرفی دیزاینپترن Observer
مطلبی دیگر از این انتشارات
آیا یادگیری برنامه نویسی واقعا سخت و طاقت فرسا است ؟
مطلبی دیگر از این انتشارات
آموزش تست نویسی در PHP و Laravel با PHPUnit