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

إضافة رد
قديم 04-04-2017, 03:43 PM
  المشاركه #11

عضو هوامير المميز

تاريخ التسجيل: Mar 2017
المشاركات: 91
رب زدني علما غير متواجد حالياً  

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


اقتباس:
المشاركة الأصلية كتبت بواسطة !مشعل! مشاهدة المشاركة
عليكم السلام ورحمة الله وبركاته
جزااااااااااااااااااااااك الله خير اخوي

والله الصباح جالس أقرأ عن هالموضوع

متابعين معك ,
وأتمنى التطرق لـ :
- ( تحويل ملفات الاكسل إلى ميتاستوك )
- ( التعامل مع البيانات "التاريخيه" و "المؤشرات " في الاكسل )

والأهم :


ربي يووووووووووووووووووووووووووووووفقك
بإنتظارك ربي يسعدك
أهلًا بك أخي الكريم ونورتني
جــاري إعداد الشرح لكل ما تنتظر وأكثر بإذن الله
ولكن تابعني خطوة بخطوة حتى لا تحدث لخبطة
لأن الدروس تحتاج إلى تركيز وممارسة




رد مع اقتباس
 
 

قديم 04-04-2017, 05:12 PM
  المشاركه #12

عضو هوامير المميز

تاريخ التسجيل: Mar 2017
المشاركات: 91
رب زدني علما غير متواجد حالياً  

الدرس الثالث - قراءة ملف Emaster


بسم الله الرحمن الرحيم
وبه نستعين
الدرس الثالث - قراءة ملف EMASTER



كما ذكرنــا في الدرس السابق، ملف الEMASTER يحتوي على بيانات الأسهم الآتية:
1- الكود الخاص بالســــهم (مثلاً 1820)
2- إسم السهم (مثلًا مجموعة الحكيــر)
3- ملف أسعــار السهم (مثلًا F28.DAT)

وقمنا في الدرس السابق بتجهيز عدد 3 أعمدة بملف الإكسل لملئها بالبيانـــات أعلاه

الدرس الثالث - قراءة ملف Emaster

ما يتبقى الآن هو قراءة ملف EMASTER لاستخراج البيانات كما بالصورة
وعلى ذلك يجب التعرف على تكوين ملف EMASTER على شكل Bytes

دائمًا يكون حجم ملف EMASTER من مضاعفــــات الرقم 192
مش مصدق؟
جرب بنفسك!

كليك يمين على الملف وخصائص كما بالصورة:

الدرس الثالث - قراءة ملف Emaster


الحجم عندي كما يظهر بالصورة هو 40320 بايــــــت
وهو من مضاعفات رقم 192 حيث أن:
40320 ÷ 192 = 210

قد يختـــــلف حجم الملف عندك حسب عدد الأسهم بالسوق
ولكن يبقى دائمًا حجمه من مضاعفات الرقم 192
فكل سهم من الأسهم يمثل عدد 192 بايت بداخل EMASTER
باستثنــــاء أول 192 بايـــت داخل الملف لا تمثل أي سهم
(وهي بيانات عامة عن الفترة سيتم التطرق لها فيما بعد)

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

وبذلك يكون ترتيب الBytes بداخل ملف EMASTER كما بالصورة:

الدرس الثالث - قراءة ملف Emaster


تعرفنا على تكوين ملف الEMASTER
الآن نبدأ بقراءة الملف عن طريق كود VBA بداخل Module1
ويتم قراءة الملف على شكل مصفوفة من الBytes
تحتوي على البيــــــانات بالصـــــــورة أعلاه

لقراءة أي ملف وتحويله إلى مصفوفة من Bytes
يمكنك إضافة هــــــذه الدالـــــــة إلى Module1
وذلك أسفل دالة Main التي تم إضافتها بالدرس السابق:

الدرس الثالث - قراءة ملف Emaster

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

كود:
'دالة قراءة أي ملف وتحويله إلى مصفوفة من البايت حيث يتم إدخال بها مسار الملف
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


ويمكن استخدام هذه الدالة مباشرة فيما بعد
وذلك لقــراءة أي ملف من جهازك
وتحويله إلى مصفوفة من Bytes
وذلك باستخـــــدام إسم الدالة السابقة فقط
GetFileBytes
دون التطرق لمحتـــواها كالآتي:

الدرس الثالث - قراءة ملف Emaster

انتبه!
يجب تغيير المسار إلى المسار الصحيح لملف EMASTER على جهازك
ويمكن كتابة السطرين السابقين بداخل دالة Main

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


في انتظار دعواتكم قبل ردودكم،،،
تابعونا،،،





رد مع اقتباس
قديم 04-04-2017, 07:09 PM
  المشاركه #13

عضو هوامير المميز

تاريخ التسجيل: Jul 2008
المشاركات: 122
سطـام غير متواجد حالياً  

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


زادك الله من علمه ونفع بك
بداية موفقة جدا ومعلومات قيمة
ومتابعين معك وفقك الله



رد مع اقتباس
قديم 04-04-2017, 08:44 PM
  المشاركه #14

عضو هوامير المميز

تاريخ التسجيل: Mar 2017
المشاركات: 91
رب زدني علما غير متواجد حالياً  

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


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




رد مع اقتباس
قديم 04-04-2017, 09:04 PM
  المشاركه #15

عضو هوامير المميز

تاريخ التسجيل: Dec 2010
المشاركات: 641
ryof غير متواجد حالياً  

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


جزااااااااااااااااااااااك الله خير اخوي


رد مع اقتباس
قديم 04-04-2017, 11:07 PM
  المشاركه #16

عضو هوامير المميز

تاريخ التسجيل: Mar 2017
المشاركات: 91
رب زدني علما غير متواجد حالياً  

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


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

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

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

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

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

الكود السابق يبدأ بفرض متغير من النوع النصي 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

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

وفي هذا الكود تم عمل متكرر 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

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

وفي هذا الكود تم عمل متكرر 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)
ويمكن الحصول عليها وتخزينها بالعامود الثالث كالآتي:

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


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

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

وهذا الكود يتم كتابته بداخل الدالة 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



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

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

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

في انتظار دعواتكم قبل ردودكم،،،
تابعونا،،،



رد مع اقتباس
قديم 04-04-2017, 11:11 PM
  المشاركه #17

عضو هوامير المميز

تاريخ التسجيل: Mar 2017
المشاركات: 91
رب زدني علما غير متواجد حالياً  

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


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




رد مع اقتباس
قديم 04-04-2017, 11:47 PM
  المشاركه #18

عضو هوامير المميز

تاريخ التسجيل: Feb 2012
المشاركات: 427
zsbmwr غير متواجد حالياً  

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


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

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

فكتب الله اجرك



رد مع اقتباس
قديم 05-04-2017, 12:09 AM
  المشاركه #19

عضو هوامير المميز

تاريخ التسجيل: Mar 2017
المشاركات: 91
رب زدني علما غير متواجد حالياً  

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


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

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

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

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

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

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

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



رد مع اقتباس
قديم 05-04-2017, 12:29 AM
  المشاركه #20

عضو هوامير المميز

تاريخ التسجيل: Feb 2012
المشاركات: 427
zsbmwr غير متواجد حالياً  

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


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

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

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

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

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

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

امثالك فخر لنا



رد مع اقتباس
إضافة رد


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

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

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

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

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

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



06:33 PM