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


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

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

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

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



إضافة رد
 
أدوات الموضوع انواع عرض الموضوع
قديم 15-08-2017, 01:37 PM  
#181
رب زدني علما
عضو هوامير المميز
 
تاريخ التسجيل: Mar 2017
المشاركات: 91

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

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

وياليت ترفع ملف بكل الدروس .. حاولت اطبق ووصلت الى الدرس الرابع لكن فيه اخطاء ، ممكن الخطأ بأماكن الاكواد ما عرفت لها بشكل جيد
يرجى نسخ الكود لتصحيح الخطأ
نورت الموضوع

رب زدني علما غير متواجد حالياً   رد مع اقتباس
قديم 17-08-2017, 03:17 PM   #182
يزينها الله
عضو هوامير المميز
 
تاريخ التسجيل: Mar 2012
المشاركات: 51

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

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

كود:
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   'محاذاة للمنتصف
    Cells(1, 4) = "الإغلاق"
    Cells(1, 4).HorizontalAlignment = xlCenter
    Cells(1, 5) = "التغير%"
    Cells(1, 5).HorizontalAlignment = xlCenter
    'مسار المجلد الذي يحتوي على الإي ماستر بجهازك
    Dim path As String
    path = "C:\Users\VIP PC\DFN\DirectFNPro10Plus-Saudi\saif09990\metastock\history\TDWL\"            'هنا مسار مجلد الميتاستوك
    
    'قراءة ملف الإي ماستر وتحويله إلى مصفوفة من البايتس
    Dim bytes() As Byte
    bytes = GetFileBytes(path + "EMASTER")
    
    Dim bytes_code(3) As Byte       'عدد 4 بايت لتخزين كود السهم
    Dim bytes_name(51) As Byte      'عدد 52 بايت لتخزين إسم السهم
    'البايت الخاصة بالحرف الذي يمثل الفترة
    'I - D - W - M
    Dim bytePeriodLetter As Byte
    bytePeriodLetter = bytes(192 + 60)
    
    'البايت الخاصة بعدد دقائق الفترات أقل من اليومية
    Dim bytePeriodMinutes As Byte
    bytePeriodMinutes = bytes(192 + 62)
    
    'متغير لتخزين الفترة من النوع النصي
    Dim period As String
    
    'نبحث عن الحرف
    Select Case bytePeriodLetter
        Case 73 'ASCII Table -> I (Intraday)
            period = "M" + CStr(bytePeriodMinutes)    'إضافة بايت الدقيقة
        Case 68 'ASCII Table -> D (Daily)
            period = "Daily"
        Case 87 'ASCII Table -> W (Weekly)
            period = "Weekly"
        Case 77 'ASCII Table -> M (Monthly)
            period = "Monthly"
    End Select
    
    'نعيد تسمية إسم السهم لوضع الفترة بجواره
    Cells(1, 2) = "إسم السهم (" + period + ")"
    
    'نبحث عن قيمة خطوة البايتس المطلوبة لقراءة ملف أسعار الفترة
    Dim step As Integer
    Select Case bytePeriodLetter
        Case 73         'ASCII Table -> I (Intraday)
            step = 32
        Case Else       'لأي بيانات أخرى
            step = 28
    End Select

    'تكرار الأوامر الآتية بعدد الأسهم كلها
    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(Dir(path)) Then     'التحقق من وجود الملف لتجنب حدوث أخطاء
    
        'فتح الملف لقراءته
        Open path For Binary Access Read As file
        
        'تحديد طول مصفوفة البايتس وهو طول الملف سالب واحد
        'وذلك لأن الترقيم بأي مصفوفة يبدأ من صفر وليس واحد
        ReDim bytes(LOF(file) - 1) As Byte
        
        'قراءة الملف داخل المصفوفة
        Get file, , bytes
        
        'إغلاق الملف بعد الانتهاء من قراءته
        Close file
    End If
    
    'إرجاع القيمة المطلوبة كناتج للدالة، وهي مصفوفة البايتس
    GetFileBytes = bytes
End Function
هذا الكود كامل حتى حل التطبيق الثاني ، بس طلع عندي خلايا فاضية بالأعمدة اعلى وادنى سعر خلال سنة واعلى وادنى خلال 6 أشهر
يزينها الله غير متواجد حالياً   رد مع اقتباس
إضافة رد



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

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

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

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

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

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




06:23 PM


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

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