النتائج 1 إلى 5 من 5
  1. #1
    الصورة الرمزية alshakatan
    alshakatan غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Mar 2007
    الإقامة
    المملكة العربية السعودية
    المشاركات
    439

    افتراضي ممكن مساعدة في كتابة الأمر OrderSend

    السلام عليكم جميـــــــــع
    أساتذتي الأفاضل هذا الكود
    كود:
    extern double BuyPrice=1.3837;
    extern double SellPrice=1.3427;
    extern double Fibo=0.618; 
    ==============================
    double PIP,BTZD;
                                             
    PIP=(BuyPrice-SellPrice)*Fibo; 
    BTZD=BuyPrice+PIP; 
    if ((MyBuyRealOrdersTotal(MagicNumber)==0) && (MyBuyPendingOrdersTotal(MagicNumber)==0) && AccountBalance()<Equity) 
          OrderSend(Symbol(),OP_BUYSTOP ,Lots,SellPrice,3,0,BTZD,Name,MagicNumber,0,Green);//  (1)
    لمن أستخدمت المتغير BTZD في الأمر OrderSend في خانة StopLoss & TakeProfit تم التعرف على المتغير BTZD ,و تم وضع الأمر .

    و لكن لمن وضعت المتغير BTZD في خانة Price لم يستطيع الإكسبيرت من وضع الأمر .
    كود:
    OrderSend(Symbol(),OP_BUYSTOP ,Lots,BTZD,3,0,0,Name,MagicNumber,0,Green);       //   (2)
    ماهو السبب ؟؟ و ما هو الخطأ ؟؟
    يوفقكم ربي

  2. #2
    الصورة الرمزية MR.dollar
    MR.dollar غير متواجد حالياً مشرف المتداول العربي
    تاريخ التسجيل
    Jun 2009
    الإقامة
    مصر
    المشاركات
    13,851

    افتراضي رد: ممكن مساعدة في كتابة الأمر OrderSend

    وعليكم السلام ورحمة الله وبركاته
    عند حدوث أي خطأ غير متوقع في الإكسبرت إذهب إلى خانة Journal سوف يظهر لك رقم الخطأ ثم إذهب إلى الرابط
    http://docs.mql4.com/constants/errors

    سوف تجد به قائمة برقم الخطأ وما يعنيه عندها يمكن معرفة المشكله وحلها بسهوله
    غالبا المشكله عندك هي في نوع الأمر فتأكد إذا كان سعر الدخول أقل من أمر الشراء فسوف يصبح من النوع BuyStop لكن إذا كان سعر الدخول اقل من أمرالشراء فيجب أن يكون من نوع BuyLimit
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

  3. #3
    الصورة الرمزية alshakatan
    alshakatan غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Mar 2007
    الإقامة
    المملكة العربية السعودية
    المشاركات
    439

    افتراضي رد: ممكن مساعدة في كتابة الأمر OrderSend

    اقتباس المشاركة الأصلية كتبت بواسطة MR.dollar مشاهدة المشاركة
    وعليكم السلام ورحمة الله وبركاته
    عند حدوث أي خطأ غير متوقع في الإكسبرت إذهب إلى خانة Journal سوف يظهر لك رقم الخطأ ثم إذهب إلى الرابط
    http://docs.mql4.com/constants/errors

    سوف تجد به قائمة برقم الخطأ وما يعنيه عندها يمكن معرفة المشكله وحلها بسهوله
    غالبا المشكله عندك هي في نوع الأمر فتأكد إذا كان سعر الدخول أقل من أمر الشراء فسوف يصبح من النوع BuyStop لكن إذا كان سعر الدخول اقل من أمرالشراء فيجب أن يكون من نوع BuyLimit
    شكرا مشرفنا الغالي على المرور و الإفادة ...... شوف السطر هذا
    كود:
    OrderSend(Symbol(),OP_BUYSTOP ,Lots,BuyPrice,3,0,BTZD,Name,MagicNumber,0,Green);
    هنا تم التعرف على المتغير BTZD عل أنه TakeProfit و تم وضع الأمر
    كود:
    3	2010.11.22 00:00	buy stop	3	0.10	1.38370	0.00000	1.42140	0.00	5000.00
    وتم تعريف BTZD=1.4214

    أما هنا لم يتم قبول BTZD على أنه OrderOpenPrice
    كود:
    OrderSend(Symbol(),OP_BUYSTOP ,Lots,BTZD,3,0,0,Name,MagicNumber,0,Green);
    و طلع الخطأ بأن السعر غير ممقبول ..... invalid price 1.42139800 for OrderSend functio
    لماذا السعر هذا 1.421398 غير مقبول مع إنه نفس السعر السابق 1.4214 تقريبا
    و للعلم بالنسبة لسعر السوق هو طبعا أقل من سعر BuyPrice و الا لما تم فتح الصفقة الأولى
    هل ممكن توضيح أكثر لسبب الخطأ

  4. #4
    الصورة الرمزية MR.dollar
    MR.dollar غير متواجد حالياً مشرف المتداول العربي
    تاريخ التسجيل
    Jun 2009
    الإقامة
    مصر
    المشاركات
    13,851

    افتراضي رد: ممكن مساعدة في كتابة الأمر OrderSend

    اقتباس المشاركة الأصلية كتبت بواسطة alshakatan مشاهدة المشاركة
    شكرا مشرفنا الغالي على المرور و الإفادة ...... شوف السطر هذا
    كود:
    OrderSend(Symbol(),OP_BUYSTOP ,Lots,BuyPrice,3,0,BTZD,Name,MagicNumber,0,Green);
    هنا تم التعرف على المتغير BTZD عل أنه TakeProfit و تم وضع الأمر
    كود:
    3    2010.11.22 00:00    buy stop    3    0.10    1.38370    0.00000    1.42140    0.00    5000.00
    وتم تعريف BTZD=1.4214

    أما هنا لم يتم قبول BTZD على أنه OrderOpenPrice
    كود:
    OrderSend(Symbol(),OP_BUYSTOP ,Lots,BTZD,3,0,0,Name,MagicNumber,0,Green);
    و طلع الخطأ بأن السعر غير ممقبول ..... invalid price 1.42139800 for OrderSend functio
    لماذا السعر هذا 1.421398 غير مقبول مع إنه نفس السعر السابق 1.4214 تقريبا
    و للعلم بالنسبة لسعر السوق هو طبعا أقل من سعر BuyPrice و الا لما تم فتح الصفقة الأولى
    هل ممكن توضيح أكثر لسبب الخطأ
    كما ترى السعر 1.421398 له 6 فواصل عشريه لذلك هذا سبب الخطأ إستخدم الأمر NormalizeDouble لتحديد الأرقام بعض الفاصله فيصبح بهذا الشكل

    كود PHP:
     NormalizeDouble(BTZD,Digits
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

  5. #5
    الصورة الرمزية alshakatan
    alshakatan غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Mar 2007
    الإقامة
    المملكة العربية السعودية
    المشاركات
    439

    افتراضي رد: ممكن مساعدة في كتابة الأمر OrderSend

    شكرا باش مهندس بالفعل أتحلت المشكلة .... لكن ........ !!!!!!!!!

    السؤال بصيغة أخرى ( و هو اللذي حصل بالفعل ) ؟؟ لماذا تم تعديل السعر BTZD في خانة TakeProfit&StopLoss ليتم قبوله و لم يتم بالمثل في خانة OrderOpenPrice ??
    شوف ايش سويت ..... حطيت القيمة 1.42139800 مباشرة في خانة TakeProfit&StopLoss فتم تعديل السعر أوتوماتيكيا إلى 1.4214 و تم قبول الأمر
    كود:
     OrderSend(Symbol(),OP_BUYSTOP ,Lots,BuyPrice,3,0,1.42139800,Name,MagicNumber,0,Green);
    و حطيته في خانة OrderOpenPrice فلم يحصل المثل
    كود:
    OrderSend(Symbol(),OP_BUYSTOP ,Lots,1.42139800,3,0,0,Name,MagicNumber,0,Green);
    و تم رفض الأمر بخطأ رقم 4107 Invalid price.
    فأستنتجت بأن الرقم يتم تعديله أوتوماتيكيا في خانتي TakeProfit&StopLoss و لا يتم ذلك في خانة OrderOpenPrice
    فهل إستنتاجي صحيح أم هناك خلل آخر


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