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

    افتراضي

    الكود أعلاه نتوقع التالي:

    وجود أمر واحد فقط في كونسول positions

    ووجود 11 أمر في كونسول Orders
    ليش 11؟؟
    لأنه تم وضع خمسة أوامر انتظار
    وثلاثة منها تم وضع وقف خسارة وتيك بروفت لها--يعني ست عمليات إضافية (3 عمليات وضع وقف خسارة و 3 عمليات وضع تيك بروفت)
    5+6 = 11

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

    افتراضي

    انظر للصورة بعد تطبيق الخبير:
    اضغط على الصورة لعرض أكبر

الاســـم:	0000.jpg
المشاهدات:	2
الحجـــم:	165.6 كيلوبايت
الرقم:	521053

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

    افتراضي

    ومزية أول معطى OrderLabel أنه لايمكن تكراره لأي أمر طالما عليه امر انتظار او امر مفتوح بنفس الليبل

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

الاســـم:	0000.jpg
المشاهدات:	2
الحجـــم:	138.8 كيلوبايت
الرقم:	521054


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

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

    افتراضي

    ركز في هذه الخربشة رغم عدم وضوحها أول وهلة: نسخ ولزق من صفحة الرسائل تبين أسباب الرفض. اقرأها عدة مرات
    17:43:34 com.dukascopy.api.JFException: Label not unique(code 1). (Order already exists) [order_1]:label=order_1;getId()=186086112;groupId=186086112;openingOrderI d=726359355;pendingOrderId=null;pendingOrderComman d=null;parentOrderId=null;tpOrderId=null;slOrderId =null;state=FILLED;instrument=GBP/JPY;openPrice=137.803;requestedAmount=0.01;amount= 0.01;lastServerRequest=NONE;awaitingResubmit=false ;
    fill history:
    [time=2020-03-05 17:15:11, price=137.803, amount=0.01] @ com.dukascopy.api.impl.connect.cb.d(L:180)
    لاحظ رسالة طويلة جدا تبين لك تفاصيل الرفض وهو "order label is not unique" بل مستخدم مسبقاً

    الملف المرفق 521055
    آخر تعديل بواسطة سلمان_العتيبي ، 05-03-2020 الساعة 08:48 PM

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

    افتراضي

    وطالما أول أمر واجهه خطأ شطف بقية الأمور لأنه هكذا توقف البرنامج اوتوماتيك!!
    نوع الخطأ: com.dukascopy.api.JFException


    جرب أن تتعمد أن يكون أول أمر او امرين حسب ترتيبها في البرنامج بلبيل مختلف عما هو موجود سابقا وترك البقية كماهي

    لأننا نحن تعدينا الكومبايل تايم بنجاح ونحن الان في الرن-تايم run-time سينفذ مايجده حتى يرى أول خطأ أو مخالفة لقوانين دوكاسكوبي.

    والكود السابق ككل: انسخه ثم حفظ باسم الكلاس ثم كمبلة ثم تطبيق:
    كود:
    package jforex;
    import com.dukascopy.api.*;
    import com.dukascopy.api.IEngine.OrderCommand;
    
    public class SalmanExpert_09 implements IStrategy
    {
        private IContext context;
        private IEngine engine;
        public void onStart(IContext context) throws JFException
        { 
            this.context = context;
            this.engine = context.getEngine();
            Instrument symbol= Instrument.GBPJPY;
            double price=1.00000;
            double TP=1.10000;
            double SL=0.90000;
            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,"السلام عليكم");
        }
        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{     }
    }
    آخر تعديل بواسطة سلمان_العتيبي ، 05-03-2020 الساعة 08:53 PM

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

    افتراضي

    تمرين غير محلول:
    اكتب برنامج يضع أوامر بيع انتظار مدرجة على زوج اليورو الدولار---امر كل 10 نقاط واللوتات على النحو التالي: 0.01 ثم 0.02 ثم 0.03 وهكذا حتى الامر العاشر بـ 0.10 لوت
    (من يطرح محاولة حله سنحترم ردوده ونجيب اسئلته--يعني لن يتم تجاهله)

    لوت؟؟

    اللوت مع دوكاسكوبي = 1,000,000 وليس 100,000

    لذا 0.01 لوت تعادل حجم سيولة 10,000 وليس 1,000

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

    افتراضي

    اعد النظر في هذا السطر:

    Instrument symbol= Instrument.GBPJPY

    هذا السطر في الكود أعلاه هو تعريف متغير من نوع Instrument --- تم تسمية هذا المتغير symbol ثم إعطائه قيمة باسم الزوج الذي نريده وهو GBPJPY--تأمل كيف تم هذا؟

    لاحظ لم نضيف تفعيله--لأننا افترضنا انه مفعل وجاهز في المنصة؟؟ راجع دروس ألأمس المكثفة عن التفعيل "subscription"


    وبالتالي اذا لم يكن الزوج مفعلا سيرفض الخبير العمل ويطفي حاله من حاله!

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

    افتراضي

    هذا السطر في الكود أعلاه هو تعريف متغير من نوع Instrument --- تم تسمية هذا المتغير symbol ثم إعطائه قيمة باسم الزوج الذي نريده وهو GBPJPY--تأمل كيف تم هذا؟


    لأن GBPJPY يعتبر ثابت -- يعني من نوع enum ويوجد تحت كلاس اسمها Instrument فإن الاستدعاء لايتم الا هكذا:
    اسم الكلاس ثم نقطة "." ثم اسم الثابت

    قوانين استدعاء الثوابت:
    Interface.enum
    أو
    class.enum


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

    افتراضي

    ولزوج المجنون يفترض نختار قيم مثل 130.000بدلا من قيم 1.00000 لسعر الدخول
    آخر تعديل بواسطة سلمان_العتيبي ، 05-03-2020 الساعة 09:14 PM

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

    افتراضي

    ولإغلاق كل الأوامر دالة close تحت IEngine تقوم بالمهمة ومن خلال for loop وطبعا الأفضل نستخدم for المطورة---
    كود هذا الاجراء سهل وبسيط جداً,
    كود:
            this.engine = context.getEngine();
            for( IOrder order : engine.getOrders() )    order.close();
    وإذا كنت مبرمج ميتا تريدر--عليك تغيير تفكيرك شوي هنا

    close مع دوكاسكوبي يعنون بها 1) اغلاق الأوامر المفتوحة و 2) حذف الأوامر المعلقة معاً في نفس اللحظة
    والميزة هنا انها تحدث تقريبا في نفس الوقت

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

    افتراضي

    كود الإغلاق بحده الأدنى:
    كود:
    package jforex;
    import com.dukascopy.api.*;
    public class Close_all_orders implements IStrategy{
        private IEngine engine;
        public void onStart(IContext context) throws JFException {
            this.engine = context.getEngine();
            for( IOrder order : engine.getOrders() )    order.close();
        }
        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 {}
    }

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

    افتراضي

    تمرين غير محلول: بناء على كل ماسبق وعلى فرض وجود صفقات كثيرة على ازواج كثيرة, ومنها زوج EURUSD
    كيف نغلق فقط صفقات اليورو دولار ؟؟
    كيف فقط نغلق الصفقات المفتوحة مع بقاء أوامر الانتظار؟

    طبعا لابد تفكر في if-statment
    وكل ماسبق يكفي لتنفيذ هذا البرنامج.

    مساعدة: IOrder .State ------ if ------ getOrders
    آخر تعديل بواسطة سلمان_العتيبي ، 05-03-2020 الساعة 09:34 PM

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

    افتراضي

    engine.getOrders

    دالة getOrders توجد تحت IEngine لذا تم المرور لها من خلال كائن من نوع IEngine وسمينها هذا الكائن engine

    هذه الدالة حاول معرفة ناتجها من خلال ما كنا نفعله في الردود امس وصباح اليوم؟

    أيضا ابحث عن الدوال الأخرى تحت ماكينة دوكاسكوبي IEngine

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

    افتراضي

    س: كيف نحصل على سعر اخر تكة لزوج اليورو دولار ؟؟ وليكن سعر البد bid؟؟
    ج: بناء على الشروح السابقة لـ ITick نفعل التالي:


    ITick lastTick = history.getLastTick(instrument) fffffffffffffff;
    double price = lastTick.getBid() fffffffffffffff

    ----------
    -------
    --
    أولا حصلنا على تكات اليورو دولار ثم حددنا اختيار البد

    -
    -
    مارأيك لو حذفنا المتغير منسيبتمنب من السطر الثاني ووضعنا مكانه قيمته من السطر الأول:
    يعني:


    double price = history.getLastTick(instrument) .getBid() fffffffffffffff

    آخر تعديل بواسطة سلمان_العتيبي ، 05-03-2020 الساعة 09:44 PM

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

    افتراضي

    الناتج النهائي getBid نعلم انه من نوع double لذا اخترنا نوع double للمتغير price
    انشأنا كائن هيستوري history
    ثم استدعينا دالة getLastTick الموجودة داخل الهيستوري
    ولها قيم كثيرة من ضمنها getBid حيث تم استدعائها

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

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