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

    افتراضي

    ادرس الكود التالي جيداً:

    كود:
        public void onStart(IContext context) throws JFException
        {
            this.context=context; 
            int j=0;
            for(Instrument a : Instrument.values())
            {
                j++;
                if(a.getType()==IFinancialInstrument.Type.FOREX)
                context.getConsole().getWarn().println(j+" - "+ a+" - "+a.isTradable()+"    "+a.getType());
                else if(a.getType()==IFinancialInstrument.Type.CFD)
                context.getConsole().getInfo().println(j+" - "+ a+" - "+a.isTradable()+"    "+a.getType());
                else if(a.getType()==IFinancialInstrument.Type.METAL)
                context.getConsole().getNotif().println(j+" - "+ a+" - "+a.isTradable()+"    "+a.getType());
            }
        }
    فيما بعد قد تحدد فقط العملات او المشتقات للتداول,
    وأيضا هي طريقة جيدة لتفعيل نوع محدد:
    ناتج البرنامج شيئا كهذا:

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

الاســـم:	0000.png
المشاهدات:	1
الحجـــم:	127.5 كيلوبايت
الرقم:	521028

    تأمل كيف تمت المقارنة بين getType و بين IFinancial.yTpe

    دائما المقارنة تتم بين قيمتين من نفس النوع

    a.getType من نوع IFinancialInstrument.TYPE

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

الاســـم:	0001.png
المشاهدات:	1
الحجـــم:	31.2 كيلوبايت
الرقم:	521029
    آخر تعديل بواسطة سلمان_العتيبي ، 05-03-2020 الساعة 04:14 PM

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

    افتراضي

    في المثال السابق--المقارنة == لتحديد لون التمييز:

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

الاســـم:	0000.png
المشاهدات:	1
الحجـــم:	75.2 كيلوبايت
الرقم:	521030

    عرفنا:
    1) isTradable
    2) getType()
    >>
    3) والآن:
    3) ()name
    4) ordinal()

    ordinal هي الترقيم ويإمكاننا استخدامها مكان المتغير j الذي وضعناه لترقيم العملات. العد يبدأ من 0
    name اسم العملة دون السلاش \ والنقاط لو وجدت.

    اضفناها على الكود السابق:
    كود:
            int j=0;
            for(Instrument a : Instrument.values())
            {
                j++;
                if(a.getType()==IFinancialInstrument.Type.FOREX)
                context.getConsole().getWarn().println(j+" - "+ a+" - "+a.isTradable()+"    "+a.getType()+"    "+a.name()+"    "+a.ordinal());
                else if(a.getType()==IFinancialInstrument.Type.CFD)
                context.getConsole().getInfo().println(j+" - "+ a+" - "+a.isTradable()+"    "+a.getType()+"    "+a.name()+"    "+a.ordinal());
                else if(a.getType()==IFinancialInstrument.Type.METAL)
                context.getConsole().getNotif().println(j+" - "+ a+" - "+a.isTradable()+"    "+a.getType()+"    "+a.name()+"    "+a.ordinal());
            }
    الناتج: يطبع الأشياء الأربعة السابقة:
    اضغط على الصورة لعرض أكبر

الاســـم:	0000.png
المشاهدات:	1
الحجـــم:	187.0 كيلوبايت
الرقم:	521031
    آخر تعديل بواسطة سلمان_العتيبي ، 05-03-2020 الساعة 04:33 PM

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

    افتراضي

    والآن على نفس المنوال اكتشف المحوطة بالأحمر في الصورة:

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

الاســـم:	0000.png
المشاهدات:	1
الحجـــم:	81.6 كيلوبايت
الرقم:	521035

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

    افتراضي

    الكود أسفل وضعت فيه أكثر ماقد تحتاجه مثل:
    1) الحد الأدنى لحجم الدخول والحد الأعلى لزوج معين والانكرمنت
    2) قيمة النقطة وقيمة السايز ومقاس التك سايز
    3) دولة السهم ان وجد و الاسم الطويل للعملة او السهم
    4) العملة الأولية او الثانيوة في الزوج وتنفعك اذا اردت فلترة ازواج معينة
    وهلم جراً
    اعتقد ستستخدم هذا الكود كثيراً:

    كود:
                context.getConsole().getErr().println(a.ordinal()+" --- "+ a+" --- group: "+a.getGroup());
                context.getConsole().getWarn().println(a.ordinal()+" --- "+ a+"    PrimaryJFCurrency: "+a.getPrimaryJFCurrency() +" --- SecondaryJFCurrency: "+a.getSecondaryJFCurrency()+"    Country: "+a.getCountry() +"    Description: "+a.getDescription());
                context.getConsole().getInfo().println(a.ordinal()+" --- "+ a+"    TradeAmountIncrement: "+a.getTradeAmountIncrement()+"    MaxTradeAmount: "+a.getMaxTradeAmount()   +"    MinTradeAmount: "+a.getMinTradeAmount()+"    AmountPerContract: "+a.getAmountPerContract() );
                context.getConsole().getNotif().println(a.ordinal()+" --- "+ a+" --- PipValue: "+a.getPipValue()+"    PipScale: "+a.getPipScale()+"    TickScale: "+a.getTickScale()+" --- LeverageUse: "+a.getLeverageUse());
                context.getConsole().getOut().println(a);

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

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

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

    افتراضي

    دوال ذات علاقة بوضع الأوامر
    النوع: IOrder --- كائني ( = تحته أكثر من قيمة بأنواع مختلفة)
    يبدأ بحرف I --- اذن هو Interface وليس class

    ونعلم ان الانرفيسات لا تخلق الاشياء بينما الكلاسات تفعل

    interface can not be used to create objects.
    their implementing class/es is/are used to instantiate any object
    that object is the access mean to that interface

    فنحن أي متغير من نوع interface يمكن تعريفه باسم الانترفيس ولكن لايمكن انشاء\خلق كانئات من خلاله.

    ذكرنا أن عملية انشاء كائن مفيد تتم على ثلاث خطوات:
    1) تعريفة اولا declaration
    2) ثم انشائه باستخدام new والكلاس كونسنتركتور instantiation
    3) ثم منحه قيمة initialization

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

    افتراضي

    public interface IOrder
    Contains order data and allows order manipulation

    وهو مخصص للتعامل مع الأوامر وبياناتها

    وبناء عليه نتوقع تحته الدوال ذات العلاقة.
    اقرأ عنه هنا--دون تدقيق--قراءة سطحية للمعرفة ليس الا
    https://www.dukascopy.com/client/jav...pi/IOrder.html

    حالات الأمر مع دوكاسكوبي: IOrder.State
    يوجد خمسة حالات:
    أولا لحظة وضع الأمر يسمونها CREATE وهي لحظة قبل وصوله للسيرفر
    ثم اذا اصبح الامر في المنصة انتظار يسمونه OPEN
    ثم اذا تنفذ يسمونه FILLED
    ولكن اذا الغي يسمونه CANCELLED---
    واذا اغلق الامر يسمونه CLOSED

    وكما تلاحظ هناك خمسة ترقيمات --- Five enumarations لحالات الأمر
    حالات الأمر ليست interface وليست class بل هي من نوع enum


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

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

    لاحظ IOrder.State استخدمت كأداة تعريف نوع وبالتالي نفهم ان الـ enums تستخدم للتعريف "declaration"
    حيث تم تعريف الكائن c ولأنه من نوع enum حتما نتذكر ordinal() أشهر دوال الـ enumerations
    آخر تعديل بواسطة سلمان_العتيبي ، 05-03-2020 الساعة 06:42 PM

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

    افتراضي

    عرفنا حالات الأمر
    والآن مع أنواع الأوامر وهي ايضا ثوابت- يعني من نوع enum

    مع المتيا تريدر هناك ستة ثوابت للأوامر وهي:
    OP_BUY
    OP_SELL
    _OP_BUYLIMIT
    OP_SELLLIMIT
    الخ


    مع دوكاسكوبي يوجد 12 ثابت للأوامر. ودعنا نحصل عليها برمجيا على نمط الصورة السابقة, ومن ضمنها طبعا الانواع الستة في الميتا تريدر.


    ========

    نصيحة مساء اليوم: اقرأ عن الـ inner enums

    فنحن عندما نجد انترفيس ثم نقطة ثم نوع enum وبينهم نقطة مثل IOrder.State ---- حتما State يعتبر داخلي, يعني داخل IOrder
    آخر تعديل بواسطة سلمان_العتيبي ، 05-03-2020 الساعة 06:39 PM

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

    افتراضي

    ويجب ان نتيقظ أن أنواع الأوامر توجد تحت الانترفيس IEngine --- تحت المكينة المسءولة عن وضع الأوامر
    وقلنا انها من نوع enum
    وبالتالي كما سبق هي enum داخل interface

    وبالتالي نتوقع شيئا كهذا:
    IEngine.OrderCommand


    دعنا نستخلصها برمجيا على نفس المنوال السابق ومن خلال دالة Onstart ؟ ؟

    الملف المرفق 521040

    كما ترى 12 نوع ولابد أن تفهم بشكل دقيق ماذا تعني--
    الستة التي تشبه اوامر الميتا--اعتقد انك فاهمها وخالص! تبقى الستة الأخرى

    ---

    ماذا سيحدث اذا اضفت 1 على دالة ordinal()
    ?
    سيكون الترقيم من 1 الى 12 بدلا من --- من 0 الى 11
    !!

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

    افتراضي

    هل لاحظت الدالة values() داخل for وبالتأكيد رأيت انها تكررت معنا كثيراً!!

    لم نشرحها ولن نشرحها لأنها من اساسيات الجافا وهي تعطيك قيم المصفوفة,
    يدرسونها في السنة الأولى جافا كأحد المقدمات.
    فأنت اذا لا تعرف ماذا تعني--فأنت تتواجد في الموضوع الخطأ
    نرجو العودة الى أي موقع للمبتدئين وهي كثيرة عموماً

    يوجد أمثلة كثيرة في النت في مواقع تعليمية كثيرة, حولها---طبقها كثيرا وخلال ساعات ستفهمها 100%
    آخر تعديل بواسطة سلمان_العتيبي ، 05-03-2020 الساعة 07:05 PM

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

    افتراضي

    دالة وضع ألأوامر توجد ايضا تحت الانترفيس IEngine --- تحت ماكينة المنصة.

    مع الميتاتريدر نستخدم دالة OrderSend ولها عدة بناءات --- many Constructors وحسب حاجتك تختار

    كل كنستركتور يختلف عن الاخر بعدد المتغيرات بداخله.
    آخر تعديل بواسطة سلمان_العتيبي ، 05-03-2020 الساعة 07:06 PM

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

    افتراضي

    نعلم أن لغة mql4 تقبل خمسة بناءات للأمر, اذا اخترت أحدها تصبح البقية overloaded (كأنها غير موجودة)
    بناء بـ 7 متغيرات (اسم الزوج ونوع الامر واللوتات وسعر الدخول والسلبنق والوقف والهدف)
    بناء بـ 8 متغيرات(كل ماسبق زايد الكومنت)
    بناء بـ 9 متغيرات(كل ماسبق زايد الماجك نمبر)
    بناء بـ 10 متغيرات(كل ماسبق زايد وقت صلاحية الأمر)
    بناء بـ 11 متغيرات(كل ماسبق زايد لون سهم الأمر على التشارت)

    انظر للصورة--فالتراكيب الخمسة أسفل صحيحة. والدليل أن البرنامج تقبلها اثناء الـ run-time
    وقبل ذلك لم يحدث مشاكل اثناء compile-time

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

الاســـم:	0000.png
المشاهدات:	2
الحجـــم:	165.1 كيلوبايت
الرقم:	521048
    الصور المصغرة للصور المرفقة الصور المصغرة للصور المرفقة 0000.png‏  

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

    افتراضي

    إذن في الميتا تريدر يوجد 5 constructors

    مع منصة دوكاسكوبي يوجد 6 كونستركتورات لوضع الأمر

    واسم الدالة submitOrder

    توجد تحت IEngine Interface


    https://www.dukascopy.com/client/jav...ommand-double-

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

    افتراضي

    البناء الأول: 1st constructor بـ 4 متغيرات (الليبل ثم اسم الزوج ثم نوع الامر ثم اللوتات)
    البناء الثاني: 2nd constructor بـ 5 متغيرات (كل ماسبق زايد سعر الدخول)
    البناء الثالث: 3rd constructor بـ 6 متغيرات (كل ماسبق زايد سعر الانزلاق السعري - سلبج)
    لايوجد أبداً بناء بـ 7 متغيرات
    البناء الرابع: 4thconstructor بـ 8 متغيرات (كل ماسبق زايد وقف الخسارة والتيك بروفت)
    البناء الخامس: 5th constructor بـ 4 متغيرات (كل ماسبق زايد تاريخ نهاية صلاحية الأمر)
    البناء السادس: 6th constructor بـ 4 متغيرات (كل ماسبق زايد الكومنت)

    كلها في الكود أسفل:

    الأمر الأول اسفل جعلناه ماركت, لأنه ليس من ضمن المتغيرات سعر الدخول price---لكي تعلم انه لايصلح الا مع اوامر الماركت؟

    كود:
            IOrder order1 = engine.submitOrder("order_1", symbol, OrderCommand.BUY      , 0.01);
            IOrder order2 = engine.submitOrder("order_2", symbol, OrderCommand.BUYLIMIT , 0.02,price);
            IOrder order3 = engine.submitOrder("order_3", symbol, OrderCommand.BUYLIMIT , 0.03,price,0);
            IOrder order4 = engine.submitOrder("order_4", symbol, OrderCommand.BUYLIMIT , 0.04,price,0,SL,TP);
            IOrder order5 = engine.submitOrder("order_5", symbol, OrderCommand.BUYLIMIT , 0.05,price,0,SL,TP,0);
            IOrder order6 = engine.submitOrder("order_6", symbol, OrderCommand.BUYLIMIT , 0.06,price,0,SL,TP,0,"السلام عليكم");

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

    افتراضي

    ولاننسى import لما يلزم وجوده مع برامج وضع الأوامر مثل:

    كود:
    import com.dukascopy.api.*;
    import com.dukascopy.api.IEngine.OrderCommand;
    جرب تكتب البرنامج من غير الأخيرة--هل سيعدي مرحلة الكمبلة؟
    آخر تعديل بواسطة سلمان_العتيبي ، 05-03-2020 الساعة 08:26 PM

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

    افتراضي

    الآن ونرجو التركيز لأنها مصطلحات:
    هناك كلمة order وهناك كلمة position
    order يعني أمر انتظار--أي امر لم يتنفذ
    position -- أي أمر منفذ وداخل السوق

    يعني مثل مصطلحات mql5

    في المنصة يوجد كونسول لـ orders
    ويوجد كونسول آخر لـ positions

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

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