لتبليغ الإدارة عن موضوع أو رد مخالف يرجى الضغط على هذه الأيقونة الموجودة على يمين المشاركة لتطبيق قوانين المنتدى


سجل من هنا
العودة   هوامير البورصة السعودية > >
التسجيل اضف الموقع لمفضلتك بحث جوجل فوركس هوامير التقويم البحث مشاركات اليوم اجعل كافة الأقسام مقروءة
 

◕ دورة احترافية لربط الإكسل Excel لتحليل البيانات اللحظية والتاريخية ◕ ← إصنع برنامجك

منتدى التحليل الفني والاساسي

مشاهدة نتائج الإستطلاع: هل ترغب في الانتقال للمستوى الأعلى بالدورة لعمل برامج تحليل باستخدام لغة السي شارب
نعم - سأتابعها بإذن الله 13 76.47%
لا - يفضل الأعضاء استخدام الإكسل لأنه أسهل 4 23.53%
المصوتون: 17. أنت لم تصوت في هذا الإستطلاع



إضافة رد
 
أدوات الموضوع انواع عرض الموضوع
قديم 04-04-2017, 07:09 PM  
#13
سطـام
عضو هوامير المميز
 
تاريخ التسجيل: Jul 2008
المشاركات: 122

رد: ◕ دورة احترافية لربط الإكسل Excel لتحليل البيانات اللحظية والتاريخية ◕ ← إصنع برن

زادك الله من علمه ونفع بك
بداية موفقة جدا ومعلومات قيمة
ومتابعين معك وفقك الله
سطـام متواجد حالياً   رد مع اقتباس
قديم 04-04-2017, 08:44 PM   #14
رب زدني علما
عضو هوامير المميز
 
تاريخ التسجيل: Mar 2017
المشاركات: 90

رد: ◕ دورة احترافية لربط الإكسل Excel لتحليل البيانات اللحظية والتاريخية ◕ ← إصنع برن

اقتباس:
المشاركة الأصلية كتبت بواسطة سطـام مشاهدة المشاركة
زادك الله من علمه ونفع بك
بداية موفقة جدا ومعلومات قيمة
ومتابعين معك وفقك الله
نورت الموضوع
بارك الله فيـــك

رب زدني علما غير متواجد حالياً   رد مع اقتباس
قديم 04-04-2017, 09:04 PM   #15
ryof
عضو هوامير المميز
 
تاريخ التسجيل: Dec 2010
المشاركات: 637

رد: ◕ دورة احترافية لربط الإكسل Excel لتحليل البيانات اللحظية والتاريخية ◕ ← إصنع برن

جزااااااااااااااااااااااك الله خير اخوي
ryof غير متواجد حالياً   رد مع اقتباس
قديم 04-04-2017, 11:07 PM   #16
رب زدني علما
عضو هوامير المميز
 
تاريخ التسجيل: Mar 2017
المشاركات: 90

الدرس الرابع - إستخراج الأسهم من emaster

بسم الله الرحمن الرحيم
وبه نستعين
الدرس الرابع - استخراج الأسهم من EMASTER

توقفنا في الدرس السابــــق عند قراءة ملف الEMASTER
وتحويله إلى مصفوفة من Bytes من مضاعفات العدد 192
وذكرنا أن أول 192 بايت من المصفوفة لا تخــص أي سهم
وعلى هذا نبدأ استخراج الأسهم بدايةً من البايت رقم 192

يتم كتابة هذا الكـــــود بداخل دالة الMain
وذلك أسفل الكود الخاص بتنسيق الأعمدة
(أسفل الكود الذي تم كتابته في أول درس)



لا تنسى تغيير المسار بالكود إلى المسار الحقيقي بجهازك!!

الكود السابق يبدأ بفرض متغير من النوع النصي String يسمى path
وتم تخزيــن بــه المسار الخاص بالمجلد الذي يحتوي على EMASTER

ثم تم فرض متغير من النــوع Byte يسمى bytes لتسجيل مصفوفة الملف EMASTER
وتم وضع الأقواس بالكــود () بعد اسم المتغير bytes ليتعرف البرنامج أنها مصفـــــوفة
وتم استخدام الدالة السابق شرحها وإضافتها GetFileBytes للحصول على المصفوفة

وأخيرًا يتم استخدام For Loop لتكرار الكود الذي سنكتبه بإذن الله بداخلها
وتكون عدد التكرارات هي حجـــــــم الملف EMASTER مقسومًا على 192
وهو يساوي عدد الأسهم كما ذكرنا بالدرس السابق

حيث تم استخدام الدالة UBound للحصول على طــــول المصفوفة bytes
وهو يساوي طول ملف الEMASTER

ونلاحظ أنه تم البدأ في التكرارات من رقم 1 وليس من الرقم 0
وذلك لما تم ذكـــره أيضًا في الدرس السابق أن أول 192 بايت
بملف EMASTER لا تمثل أي أسهم ولذلك نبــــــــدأ من الرقم 1

ويكون المتغير i بالFor Loop هو المسلسل بداخل التكرار
ويضاف عليه 1 تلقائيًا كل مرة يتم فيها التكرار

ما يتبقى الآن هو كتابــــــــــة الكود المطلوب بداخل متكرر For Loop
للحصول على (إسم السهم - كود السهم - مسار ملف الميتاستوك)
لكل سهم عن طريق ال192 بايت الخاصة بالسهم


أولًا .. كود السهم

ويتم تخزينه بداخل ال192 بايت الخاصة بالسهم
بدايـــة من البايـــت رقم 11 حتى البايت رقم 14
(عدد 4 بايت)
ويتم الحصول عليه بكتابة هذا الكود داخل متكرر For Loop



وفي هذا الكود تم عمل متكرر For Loop أخرى استنادًا على متغير جديد نسميه J
حيث تم التكرار من J = 0 حتى J = 3
أي عدد 4 تكرارات
وفي كل تكرار يتم نســــــــخ البايـــــت رقم i * 192 + 11 + j
من مصفوفة bytes إلى مصفوفة جديدة تسمى bytes_code
وبعـــد الانتهاء من الFor Loop تكون المصفـوفة bytes_code
تحتـــــــوي على عدد 4 بايت وهي الكــــــود الخاص بالسـهم
ويتم تحويل المصفوفة bytes_code إلى متغير نصي عن طريق الدالة StrConv
ومن ثم تخزيــــن الكود في خلية الإكســــل بالصف i + 1 والعامود 1 بآخر سطر


ثانيًا .. إسم السهم

ويتم تخزينه بداخل ال192 بايت الخاصة بالسهم
بدايـة من البايت رقم 139 حتى البايت رقم 190
(عدد 52 بايت)
ويتم الحصول عليه بكتابة هذا الكود داخل متكرر For Loop



وفي هذا الكود تم عمل متكرر For Loop أخرى بالمثـل
حيث يتم التكرار من J = 0 حتى J = 51 (أي 52 تكرار)
وفي كل مرة يتم نسخ البايت رقم i * 192 + 139 + J
من مصفوفة bytes إلى مصفوفة جديدة تسمـى bytes_name
وبعد الانتهـــــاء من الFor Loop تكون المصفوفة bytes_name
تحتوي على عدد 52 بايت وهي إسم السهم
ويتم تحويل المصفوفة bytes_name إلى متغير نصي عن طريق الدالة StrConv
ويتم إضافة &H401 بآخر الدالة وهي للتحويل إلى Encoding اللغة العربية
ومن ثم تخـزين إسم السهم في خلية الإكسل في الصف i + 1 والعامود 2


ثالثًا .. مسار ملف الميتاستوك الخاص بالسهم

ويتم تخزينه بداخل ال192 بايت الخاصة بالسهم
وذلك في Byte واحــــــدة فقط وهي الثانية (2)
ويمكن الحصول عليها وتخزينها بالعامود الثالث كالآتي:




*** وبذلك يكون الكود بالكامل للدرس كالآتي ***



وهذا الكود يتم كتابته بداخل الدالة Main
ولا تنسى:
1- تغيير المسار بالكود إلى مسار المجلد الذي يحتوي على ملف الEMASTER
2- إضــــافة الدالــــــة GetFileBytes التي تم شرحــــــها بالدرس السابــــــق


يمكنك نسخ الكود الكامل منذ البداية من هنا:

كود:
Sub Main()
    'تحديد اتجاه الصفحة من اليمين إلى اليسار (اللهم اجعلنا من أهل اليمين)
    ActiveSheet.DisplayRightToLeft = True
    Cells.Font.Name = "Arial Unicode MS"
    Cells.Font.Size = 10

    'عامود كود السهم
    Columns(1).ColumnWidth = 8                  'سمكه صغير نسبيًا
    Columns(1).HorizontalAlignment = xlCenter   'محاذاة للمنتصف
    Columns(1).Font.Color = vbRed               'اللون الأحمر
    Columns(1).Font.Bold = True                 'الخط الثقيل
    
    'عامود إسم السهم
    Columns(2).ColumnWidth = 25                 'سمكه كبير
    Columns(2).HorizontalAlignment = xlRight    'محاذاة لليمين
    Columns(2).Font.Color = vbBlue              'اللون الأزرق
    Columns(2).Font.Bold = True                 'الخط الثقيل
    
    'عامود مسار ملف الميتاستوك الخاص بالسهم
    Columns(3).ColumnWidth = 80                'سمكه كبير جدًا
    Columns(3).HorizontalAlignment = xlLeft     'محاذاة لليسار
    
    'تلوين صف عناوين الأعمدة
    Rows(1).Interior.Color = RGB(220, 220, 255)
    Rows(1).Font.Bold = True                 'الخط الثقيل
    
    'تحديد أسماء الأعمدة ومحاذتها
    Cells(1, 1) = "الكود"
    Cells(1, 2) = "إسم السهم"
    Cells(1, 2).HorizontalAlignment = xlCenter   'محاذاة للمنتصف
    Cells(1, 3) = "مسار ملف الميتاستوك"
    Cells(1, 3).HorizontalAlignment = xlCenter   'محاذاة للمنتصف

    'مسار المجلد الذي يحتوي على الإي ماستر بجهازك
    Dim path As String
    path = "C:\Users\Tamer\Documents\LiveMetaStock\Daily\Saudi Stock Exchange-Tadawul\"
    
    'قراءة ملف الإي ماستر وتحويله إلى مصفوفة من البايتس
    Dim bytes() As Byte
    bytes = GetFileBytes(path + "EMASTER")
    
    Dim bytes_code(3) As Byte       'عدد 4 بايت لتخزين كود السهم
    Dim bytes_name(51) As Byte      'عدد 52 بايت لتخزين إسم السهم
    
    'تكرار الأوامر الآتية بعدد الأسهم كلها
    For i = 1 To UBound(bytes) / 192
        'هنا يتم استخراج بيانات السهم
        
        'أولًا كود السهم ويتكون من عدد 4 بايت بداية من البايت رقم 11
        For j = 0 To 3
            bytes_code(j) = bytes(i * 192 + 11 + j)
        Next j
        Cells(i + 1, 1) = StrConv(bytes_code, vbUnicode)
        
        'ثانيًا إسم السهم ويتكون من عدد 52 بايت بداية من البايت رقم 139
        For j = 0 To 51
            bytes_name(j) = bytes(i * 192 + 139 + j)
        Next j
        Cells(i + 1, 2) = StrConv(bytes_name, vbUnicode, &H401)
        
        'ثالثًا رقم ملف الميتاستوك الخاص بالسهم وهو بالبايت رقم 2
        Cells(i + 1, 3) = path + "F" + CStr(bytes(i * 192 + 2)) + ".DAT"
    Next i
End Sub

'دالة قراءة أي ملف وتحويله إلى مصفوفة من البايت حيث يتم إدخال بها مسار الملف
Public Function GetFileBytes(ByVal path As String) As Byte()

    'فرض الملف
    Dim file As Long
    file = FreeFile()
    
    'فرض مصفوفة البايتس التي سيتم قراءة الملف فيها
    Dim bytes() As Byte
    
    If LenB((path)) Then     'التحقق من وجود الملف لتجنب حدوث أخطاء
    
        'فتح الملف لقراءته
        Open path For Binary Access Read As file
        
        'تحديد طول مصفوفة البايتس وهو طول الملف سالب واحد
        'وذلك لأن الترقيم بأي مصفوفة يبدأ من صفر وليس واحد
        ReDim bytes(LOF(file) - 1) As Byte
        
        'قراءة الملف داخل المصفوفة
        Get file, , bytes
        
        'إغلاق الملف بعد الانتهاء من قراءته
        Close lngFileNum
    End If
    
    'إرجاع القيمة المطلوبة كناتج للدالة، وهي مصفوفة البايتس
    GetFileBytes = bytes
End Function



وعند تشغيل هذا الكود، نكون قد وصلنا إلى أول مرحلة من الربط كما بالصورة



وسيتم في الدروس القادمــة بإذن الله قراءة ملفات الميتاستوك الخاصة بكل سهم
وقراءة الأسعار اللحظية والتاريخية منها، وإضافة الأسعار بالجداول والرسم البياني

في انتظار دعواتكم قبل ردودكم،،،
تابعونا،،،
رب زدني علما غير متواجد حالياً   رد مع اقتباس
قديم 04-04-2017, 11:11 PM   #17
رب زدني علما
عضو هوامير المميز
 
تاريخ التسجيل: Mar 2017
المشاركات: 90

رد: ◕ دورة احترافية لربط الإكسل Excel لتحليل البيانات اللحظية والتاريخية ◕ ← إصنع برن

اقتباس:
المشاركة الأصلية كتبت بواسطة ryof مشاهدة المشاركة
جزااااااااااااااااااااااك الله خير اخوي
بارك الله فيـــك
نورت الموضوع

رب زدني علما غير متواجد حالياً   رد مع اقتباس
قديم 04-04-2017, 11:47 PM   #18
zsbmwr
عضو هوامير المميز
 
تاريخ التسجيل: Feb 2012
المشاركات: 245

رد: ◕ دورة احترافية لربط الإكسل Excel لتحليل البيانات اللحظية والتاريخية ◕ ← إصنع برن

بارك الله فيك ولك

اتمنى تواصل بنفس الابداع

فكتب الله اجرك
zsbmwr غير متواجد حالياً   رد مع اقتباس
قديم 05-04-2017, 12:09 AM   #19
رب زدني علما
عضو هوامير المميز
 
تاريخ التسجيل: Mar 2017
المشاركات: 90

Icon5 رد: ◕ دورة احترافية لربط الإكسل Excel لتحليل البيانات اللحظية والتاريخية ◕ ← إصنع برن

اقتباس:
المشاركة الأصلية كتبت بواسطة zsbmwr مشاهدة المشاركة
بارك الله فيك ولك

اتمنى تواصل بنفس الابداع

فكتب الله اجرك
والله يا أخي لا أستطيع أن أبخل بما علمني الله
وسأستمر بإذن الله إلى أن يتعلم الأعضاء كيفية صنع برنامج عملاق بمعنى الكلمة
ولو يوجد اهتمام بهذه الدورة، إن شاء الله أجهز دورة أخرى لتحليل السوق بطريقة احترافية باستخدام لغة الC#

وهذا البرنامج التحليلي بفضل الله من برمجتـــي



ولن أبخل على الأعضاء بأي معلومات
فإن العلم من عنـــد الله
وفوق كل ذي علم عليم

المشكــــ ! ــ ! ــ ! ــــــلة
لا أجد أي أسئلة .. ولا أعتقد أحد متابعني
هل من أحد يستفيد ؟؟؟
رب زدني علما غير متواجد حالياً   رد مع اقتباس
قديم 05-04-2017, 12:29 AM   #20
zsbmwr
عضو هوامير المميز
 
تاريخ التسجيل: Feb 2012
المشاركات: 245

رد: ◕ دورة احترافية لربط الإكسل Excel لتحليل البيانات اللحظية والتاريخية ◕ ← إصنع برن

اقتباس:
المشاركة الأصلية كتبت بواسطة رب زدني علما مشاهدة المشاركة
والله يا أخي لا أستطيع أن أبخل بما علمني الله
وسأستمر بإذن الله إلى أن يتعلم الأعضاء كيفية صنع برنامج عملاق بمعنى الكلمة
ولو يوجد اهتمام بهذه الدورة، إن شاء الله أجهز دورة أخرى لتحليل السوق بطريقة احترافية باستخدام لغة الc#

وهذا البرنامج التحليلي بفضل الله من برمجتـــي



ولن أبخل على الأعضاء بأي معلومات
فإن العلم من عنـــد الله
وفوق كل ذي علم عليم

المشكــــ ! ــ ! ــ ! ــــــلة
لا أجد أي أسئلة .. ولا أعتقد أحد متابعني
هل من أحد يستفيد ؟؟؟

كفووووووووووو

امثالك فخر لنا
zsbmwr غير متواجد حالياً   رد مع اقتباس
قديم 05-04-2017, 07:56 AM   #21
سطـام
عضو هوامير المميز
 
تاريخ التسجيل: Jul 2008
المشاركات: 122

رد: ◕ دورة احترافية لربط الإكسل Excel لتحليل البيانات اللحظية والتاريخية ◕ ← إصنع برن

متابعين والله وبكل اهتمام وبداءنا في التطبيق

الشرح واضح والخطوات واضحة
لك كل الشكر والتقدير
حفظك الله
سطـام متواجد حالياً   رد مع اقتباس
قديم 05-04-2017, 10:50 AM   #22
&& لنكاوي &&
عضو هوامير المميز
 
تاريخ التسجيل: May 2009
المشاركات: 732

رد: ◕ دورة احترافية لربط الإكسل Excel لتحليل البيانات اللحظية والتاريخية ◕ ← إصنع برن

بارك الله فيك اخي ،

شرح راااائع ومرتب.

مبدع واتمنى المواصله.
&& لنكاوي && غير متواجد حالياً   رد مع اقتباس
قديم 05-04-2017, 11:40 AM   #23
خلاد2
عضو هوامير المميز
 
تاريخ التسجيل: Dec 2011
المشاركات: 1,173

رد: ◕ دورة احترافية لربط الإكسل Excel لتحليل البيانات اللحظية والتاريخية ◕ ← إصنع برن

بسم الله الرحمن الرحيم
الحمدلله والصلاة والسلام على رسول الله
صلى الله عليه وسلم
السلام عليكم ورحمة الله وبركاته
اسعدك الله استاذنا الموقر
واصل ابداعك
رحم الله من رباك
احسن الله إليك كما أحسنت إلينا جميعاً بعلمك
جزاك الله خير الجزاء ياعم وبارك الله فيك لما يحبه ويرضاه وصل على محمد وعلى آله وصحبه أجمعين
خلاد2 غير متواجد حالياً   رد مع اقتباس
قديم 05-04-2017, 02:18 PM   #24
رب زدني علما
عضو هوامير المميز
 
تاريخ التسجيل: Mar 2017
المشاركات: 90

رد: ◕ دورة احترافية لربط الإكسل Excel لتحليل البيانات اللحظية والتاريخية ◕ ← إصنع برن

اقتباس:
المشاركة الأصلية كتبت بواسطة سطـام مشاهدة المشاركة
متابعين والله وبكل اهتمام وبداءنا في التطبيق

الشرح واضح والخطوات واضحة
لك كل الشكر والتقدير
حفظك الله
تحياتي لك وتحت أمرك في أي أسئلة

اقتباس:
المشاركة الأصلية كتبت بواسطة && لنكاوي && مشاهدة المشاركة
بارك الله فيك اخي ،

شرح راااائع ومرتب.

مبدع واتمنى المواصله.
بارك الله فيك أخي الكريم
رب زدني علما غير متواجد حالياً   رد مع اقتباس
إضافة رد



مواقع النشر (المفضلة)

الكلمات الدلالية (Tags)
, , لتحليل , لربط , إصنع , والتاريخية , اللحظية , الإكسل , البيانات , احترافية , excel , برنامجك , دورة

أدوات الموضوع
انواع عرض الموضوع

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة

الانتقال السريع




11:53 AM


الاعلان بمنتدى هوامير البورصة
تشغيل وتطوير افاق الإقتصاد
Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
جميع المواضيع و الردود المطروحة لا تعبر عن رأي المنتدى بل تعبر عن رأي كاتبها وقرار البيع والشراء مسؤليتك وحدك

بناء على نظام السوق المالية بالمرسوم الملكي م/30 وتاريخ 2/6/1424هـ ولوائحه التنفيذية الصادرة من مجلس هيئة السوق المالية: تعلن الهيئة للعموم بانه لا يجوز جمع الاموال بهدف استثمارها في اي من اعمال الاوراق المالية بما في ذلك ادارة محافظ الاستثمار او الترويج لاوراق مالية كالاسهم او الاستتشارات المالية او اصدار التوصيات المتعلقة بسوق المال أو بالاوراق المالية إلا بعد الحصول على ترخيص من هيئة السوق المالية.