صفحة 3 من 26 الأولىالأولى 12345678913 ... الأخيرةالأخيرة
النتائج 31 إلى 45 من 378
  1. #31
    تاريخ التسجيل
    Mar 2020
    الإقامة
    السعودية
    المشاركات
    8,531

    افتراضي

    ولأن الوقت جزء أصيل في الفوركس وبالتالي لكثير من العمليات البرمجية نطرح السؤال: هل يوجد انترفيسات أخرى ترث من ITimeDat

    دائما جواب مثل هذا النوع من الأسئلة هو الرجوع للمباشر لـ دوكاسكوبي API

    ج: نعم وتجدها هنا:
    https://www.dukascopy.com/client/jav...dukascopy/api/ITimedData.html

    وهي ولايوجد غيرها:

    IBar, IKagi, ILineBreak, IPointAndFigure, IPriceAggregationBar, IRangeBar, IRenkoBar, ITick, ITickBar

    كلها ترث دالة getTime() من هنا.

    ردد بشجن التالي:
    class extends class
    class implements interface
    interface extends interface

    الأخيرة تحديدا هي المعنية بـ IBar extends ITimeData

    ولايوجد ابداً في الدنيا أشياء مثل:
    interface extends class
    أو interface implements class
    أو class implements class
    أو interface implements interface
    آخر تعديل بواسطة سلمان_العتيبي ، 05-03-2020 الساعة 08:30 AM

  2. #32
    تاريخ التسجيل
    Mar 2020
    الإقامة
    السعودية
    المشاركات
    8,531

    افتراضي

    الآن انت اصبحت تعرف كل شيء له علاقة بالنوع IBar وهو نوع كائني "نوع معقد" مجاله قيم البارة وتبين لنا ان عددها ستة.

    وننتقل الان الى ITick ونعيد نفس الثرثرة السابقة لكي نفهمها 100% لأهميتها أيضا

    قد كنت تشاهد هذا السطر كثيراً:
    كود:
    public void onTick(Instrument instrument, ITick tick) throws JFException {}
    اريدك ان تخمن وترجم بالغيب وتتساءل: هل النوع ITick اذا استخدم لتعريف اي متغير وليكن tick -- هل له قيم كثيرة, ماهي هذه القيم وماهو نوعها وكم المباشر منها وكم الموروث من اعلى.

    جملة الطباعة println انسخها الان الى دالة OnTick
    واعد نفس الخطوات واستكشف.

    ردد:
    OnTick دالة
    ITick نوع
    tick متغير
    آخر تعديل بواسطة سلمان_العتيبي ، 05-03-2020 الساعة 08:37 AM

  3. #33
    تاريخ التسجيل
    Mar 2020
    الإقامة
    السعودية
    المشاركات
    8,531

    افتراضي

    في IBar هل تحدثنا عن ask و bid ؟؟

    لا, ولكن تحدثنا عن O-H-C-L وهل هذه القيم الأربعة مبنية على سعر الاسك ام على سعر البد -- (يعني تحدثنا عن أسعار انتهت)
    ولكن الاسك نفسه والبد نفسه لم نتحدث عنه.
    ركز رجاء.

    ask و bid نفسها تستخرج من خلال ITick
    وكما يقتضي الاسم نتحدث عن التكات(وليس عن الافتتاح والاغلاق والهاي واللو), والتكة اما عرض او طلب -- اما bid او ask

    لطباعة كل قيم tick ضعها دون نقطة استدعاء لدوالها
    ستجدها تطبع 3 قيم, الوقت الموروث من اعلى و البد والاسك. (هل ITick لها 3 دوال فقط؟؟ ج: ماهو شرط)

    ثم بعد ذلك باستخدام النقطة اطبع قيمة محددة؟
    هنا تتوقف--ماهي الدالة التي تعبر عن ask وماهي الدالة التي تعبر عن bid

    ودائما جوابنا ارجع لموقع API دوكاسكوبي واحضرها من هناك. (تذهب مباشرة الى com.dukascopy.api)

    https://www.dukascopy.com/client/jav...api/ITick.html
    آخر تعديل بواسطة سلمان_العتيبي ، 05-03-2020 الساعة 08:47 AM

  4. #34
    تاريخ التسجيل
    Mar 2020
    الإقامة
    السعودية
    المشاركات
    8,531

    افتراضي

    فهناك 11 دالة نصل لها من خلال اي متغير من نوع ITick --
    10 مباشرى و 1 موروثة
    انظر لأهمية الوراثة في الجافا inheritance , فبدلا من اعادة تصميم برنامج لمعرفة لوقت getTime مع كل اختراع جديد, جعلوا المشترك بين كل الاختراعات في مكان واحد دون الحاجة لاعادة كتابته كل مرة.

    الملف المرفق 520980

  5. #35
    تاريخ التسجيل
    Mar 2020
    الإقامة
    السعودية
    المشاركات
    8,531

    افتراضي

    Heap Memory in JVA

    هل لاحظ الدالة getBids()

    مصفوفة "array" ??? اليس كذلك؟
    لو اخترت طباعتها هل سيطبع عدة قيم للبد--اقرب 10 لـ بد عليها طلب؟؟ ام سيطبع قيمة واحدة غريبة؟؟
    الملف المرفق 520981

    سيطبع حرف D ثم علامة @ ثم رقم صحيح طويل,
    D تأتي في مكان التعبير عن اسم الكلاس الذي يوجد فيه المتغير في الجافا العادية "يعني يفترض مكانها اسم الكلاس" ولكن مع دوكاسكوبي ولأنها built-in خصيصا لمنصتهم تجد حرف D اختصار Dukascopy
    ناتج هذا الكود:

    كود:
            context.getConsole().getOut().println("OnBar: "+instrument+"    "+tick.getBids());
    هو:

    الملف المرفق 520982

  6. #36
    تاريخ التسجيل
    Mar 2020
    الإقامة
    السعودية
    المشاركات
    8,531

    افتراضي

    لأنها مصفوفة--حدد العناصر بإضافة الاندكس بعد الدالة بين قوسين []
    اضغط على الصورة لعرض أكبر

الاســـم:	4541.png
المشاهدات:	0
الحجـــم:	127.7 كيلوبايت
الرقم:	520983



    اضغط على الصورة لعرض أكبر

الاســـم:	4540.png
المشاهدات:	0
الحجـــم:	170.9 كيلوبايت
الرقم:	520985

    كود:
        public void onTick(Instrument instrument, ITick tick) throws JFException
        {
            context.getConsole().getOut().println("OnTick: 0  "+instrument+"    "+tick.getBids()[0]);
            context.getConsole().getOut().println("OnTick: 1  "+instrument+"    "+tick.getBids()[1]);
            context.getConsole().getOut().println("OnTick: 2  "+instrument+"    "+tick.getBids()[2]);
        }

  7. #37
    تاريخ التسجيل
    Mar 2020
    الإقامة
    السعودية
    المشاركات
    8,531

    افتراضي

    هل سنستمر الى ما لانهاية نضيف في الاندكس؟ ام لها عدد محدد؟ وماهي فلسفتها اساسا؟
    واذا كان لها عدد محدد؟ وتجاوزته دون قصد--مثلا عدد العناصر 11 وانا طلبت طباعة العنصر 21 ؟؟؟ ماذا سيحدث؟

  8. #38
    تاريخ التسجيل
    Mar 2020
    الإقامة
    السعودية
    المشاركات
    8,531

    افتراضي

    تخيل الكود التالي يطبع 12 عنصر ---- من 0 وحتى 11:
    كود:
     
        public void onTick(Instrument instrument, ITick tick) throws JFException
        {
            context.getConsole().getOut().println("OnTick: 0  "+instrument+"    "+tick.getBids()[0]);
            context.getConsole().getOut().println("OnTick: 1  "+instrument+"    "+tick.getBids()[1]);
            context.getConsole().getOut().println("OnTick: 2  "+instrument+"    "+tick.getBids()[2]);
            context.getConsole().getOut().println("OnTick: 0  "+instrument+"    "+tick.getBids()[3]);
            context.getConsole().getOut().println("OnTick: 1  "+instrument+"    "+tick.getBids()[4]);
            context.getConsole().getOut().println("OnTick: 2  "+instrument+"    "+tick.getBids()[5]);
            context.getConsole().getOut().println("OnTick: 0  "+instrument+"    "+tick.getBids()[6]);
            context.getConsole().getOut().println("OnTick: 1  "+instrument+"    "+tick.getBids()[7]);
            context.getConsole().getOut().println("OnTick: 2  "+instrument+"    "+tick.getBids()[8]);
            context.getConsole().getOut().println("OnTick: 0  "+instrument+"    "+tick.getBids()[9]);
            context.getConsole().getOut().println("OnTick: 1  "+instrument+"    "+tick.getBids()[10]);
            context.getConsole().getOut().println("OnTick: 2  "+instrument+"    "+tick.getBids()[11]);
        }
    بعد تشغيل البرنامج:
    06:29:52 java.lang.ArrayIndexOutOfBoundsException: 10 @ jforex.SalmanExpert_04.onTick(SalmanExpert_04.java :28)

    جربت 11 عنصر, واتى الرسالة أعلاه: ومختصرها: ArrayIndexOutOfBoundsException -- يعني هناك مشكلة سببها انني طلبت طباعة عنصر خارد حدود المصفوفة -- يعني array index is out of bounds

    وبالتالي ننتبه لهذه النقطة لابد نعلم سلفا اعلى اندكس, او لانطبعها بهذا الشكل العبثي ونختار فلسفة foreach التي بشكل اوتوماتيكي تعرف عدد عناصر المصفوفة وتفر عليها بالترتيب.

  9. #39
    تاريخ التسجيل
    Mar 2020
    الإقامة
    السعودية
    المشاركات
    8,531

    افتراضي

    نستخدم فور المطورة (يسمونها مع C# باسم foreach)
    كود:
        public void onTick(Instrument instrument, ITick tick) throws JFException
        {
            int j=0;
            for( double  i  :  tick.getBids() )
            {
                j++;
                context.getConsole().getOut().println("OnTick:  "+j+"   "+instrument+"    "+i);
            }
        }
    لاحظ روعتها!

    اضغط على الصورة لعرض أكبر

الاســـم:	4540.jpg
المشاهدات:	1
الحجـــم:	198.0 كيلوبايت
الرقم:	520986

  10. #40
    تاريخ التسجيل
    Mar 2020
    الإقامة
    السعودية
    المشاركات
    8,531

    افتراضي

    اذن عرفنا الان ان منصة دوكاسكوبي للفوليوم توفر فوليوم اقرب 10 أسعار عليها عرض وطلب.

    لاحظ الأسعار المسافة بينها بالنقاط (يعني بين كل امرين متتالين ) ماهو شرط متساوية

    وهنا دوكاسكو تعرض السيولة الحقيقة للعرض والطلب من خلال حوض السيولة الذي تحت رؤويتهم.

  11. #41
    تاريخ التسجيل
    Mar 2020
    الإقامة
    السعودية
    المشاركات
    8,531

    افتراضي

    عرض اليورو دولار فقط لأننا تعمدنا تفعيله لوحده وشرحنا التفعيل يوم أمس بما لامزيد عليه.

  12. #42
    تاريخ التسجيل
    Mar 2020
    الإقامة
    السعودية
    المشاركات
    8,531

    افتراضي

    لماذا سنستخدم هذه الفترة for المطورة كثيراً؟
    ل 3 أسباب:
    1) انت تتعلم الان كمبتدئ
    2) تسعى لاستكشاف اكثر معطيات دوكاسكوبي تحت العناوين المختلفة
    3) توفر علينا وجع الرأس في البحث عن عدد عناصر المصفوفة لنتحاشى الخطأ "ArrayIndexOutOfBoundsException" ومشكلته أنه runtime-error

    تركيبة مابين قوسي for
    متغير من نوع قيم المصفوفة--في المثال السابق النوع double لأن أسعار البد من نوع double ثم متغير تضعه انت ليحمل قيم واحدة من قيم عناصر المصفوفة
    ثم نقطتين فوق بعض ":"

    ثم المصفوفة وهي في المثال أعلاه tick.getBids() دون قوسي المصفوفة
    آخر تعديل بواسطة سلمان_العتيبي ، 05-03-2020 الساعة 10:01 AM

  13. #43
    تاريخ التسجيل
    Mar 2020
    الإقامة
    السعودية
    المشاركات
    8,531

    افتراضي

    3) توفر علينا وجع الرأس في البحث عن عدد عناصر المصفوفة لنتحاشى الخطأ "ArrayIndexOutOfBoundsException" ومشكلته أنه runtime-error
    فأنت كتبت البرنامج وحفظته وسويت compile ولم يظهر لك مشاكل --- مرحلة compile-time لايوجد اخطاء
    وعلى فرض أنك بعت هذا البرنامج كمنتج, الزبون سيعاني, سيظهر له مشكلة الاندكس! ثم سيرمي منتجك عليك ويتعوض الله.
    حيث ظهرت المشاكل اثناء run للبرنامج "اثناء تشغيل البرنامج" --- تسمى run-time errors or exceptions

  14. #44
    تاريخ التسجيل
    Mar 2020
    الإقامة
    السعودية
    المشاركات
    8,531

    افتراضي

    تمرين: باستخدام for اطبع العملات المفعلة مرقمة؟

    الأفضل نضع الطباعة تحت دالة OnStart--مرة واحدة
    لو مسحتها من الكونسوال فقط اعد إطفاء ثم تشغيل الخبير لطباعتها مرة أخرى
    على الكونسول اضغط رايت كلك ثم clear messages لتمسح أي محتوى سابق.

    كود:
    package jforex;
    import java.util.*;
    import com.dukascopy.api.*;
    public class SalmanExpert_05 implements IStrategy
    {
        private IContext context;
        public void onStart(IContext context) throws JFException
        {
            this.context=context; 
            int j=0;
            for( Instrument  i  :  context.getSubscribedInstruments() )
            {
                j++;
                context.getConsole().getOut().println("onStart:  "+j+"   "+i);
            }            
        }
        public void onAccount(IAccount account) throws JFException {}
        public void onMessage(IMessage message) throws JFException
        {
            }
        public void onStop() throws JFException {}
        public void onTick(Instrument instrument, ITick tick) throws JFException
        {
        }
        public void onBar(Instrument instrument, Period period, IBar askBar, IBar bidBar) throws JFException{     }
    }

    الناتج:
    اضغط على الصورة لعرض أكبر

الاســـم:	4540.png
المشاهدات:	0
الحجـــم:	206.1 كيلوبايت
الرقم:	520987
    آخر تعديل بواسطة سلمان_العتيبي ، 05-03-2020 الساعة 10:13 AM

  15. #45
    تاريخ التسجيل
    Mar 2020
    الإقامة
    السعودية
    المشاركات
    8,531

    افتراضي

    على الكونسول اضغط رايت كلك ثم clear messages لتمسح أي محتوى سابق.
    اضغط على الصورة لعرض أكبر

الاســـم:	0000.png
المشاهدات:	0
الحجـــم:	89.5 كيلوبايت
الرقم:	520988

صفحة 3 من 26 الأولىالأولى 12345678913 ... الأخيرةالأخيرة

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17