صفحة 266 من 686 الأولىالأولى ... 166216256260261262263264265266267268269270271272276316366 ... الأخيرةالأخيرة
النتائج 3,976 إلى 3,990 من 10289
  1. #3976
    الصورة الرمزية kira-h
    kira-h غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Oct 2011
    الإقامة
    المغرب
    المشاركات
    1,334

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة xcv114 مشاهدة المشاركة


    بعد إذن أستاذ أسامة

    تضع حلقة تبحث في الأرقام من 1 إلى 20 وتقوم بإضافة المتغير على إسم الكائن
    كود PHP:

    void TechnicalAnalysis
    ()
    {
     for(
    int i=1;i<=20;i++){
     
    double lineH=ObjectGet("Hi"+i,OBJPROP_PRICE1);
        if (
    Open[1] < lineH && Close[1] > lineH)
        {
            
    BuyOrder();
            
        }
      }

    ملحوظة
    خد بالك لازم تخلي الشرط بالشكل ده
    كود PHP:
     if (Open[1] < lineH && Close[1] > lineH
    عشان يفتح العملية عندما يكون إفتتاح الشمعة أقل من الكائن وإغلاقها أكبر من الكائن فقط
    وإلا مثلا عند الكائن Hi3 سيعتبر أنه أعلى من Hi1 و Hi2 وبالتالي سيستمر في فتح عمليات
    ماشاء الله عليك يا أستاذ
    جزاك الله خيرا
    توقيع العضو
    متداول فوركس، ومبرمج mql

  2. #3977
    الصورة الرمزية wadi2012
    wadi2012 غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Aug 2012
    الإقامة
    جرين لاند
    المشاركات
    1,089

    افتراضي رد:موضوع مخصص للأسئلة البرمجية

    عندي سؤال
    اذا اردت ان افتح اوردير عند سعر محدد على الشارت بالدالة ordersend
    ووضعت فيها السعر المحدد فان الاوردير لا يفتح عن السعر المحدد
    مثال

    كود PHP:
    double price=1.2870;                         
                     
    OrderSend(Symbol(),0,1,price,3,0,0,"My order",111,0,Green); 
    كما في المثال عملت اسكريبت يفتح عند سعر محدد ووضعت السعر في الدالة وعند تشغيل الاكسبيرت فان السعر لا يدخل عن 1.2870 بل اقل منه ب 4 نقاط 1.2866 غيرت الارقم وعملت دالة
    doublenormalize ولكن المشكلة هي هي لم تتغير
    انا حللت المشكلة بطريقة اخري وعملت دالة مقارنة بين ask والسعر الذي اريده وعندما تصبح النتيجة = 0 فانه يفتح عند السعر المحدد لكن بها مشكلة لاحظتها بعد وقت وهي دالة المقارن عندما تساوى صفر بين سعر ال ask والسعر الذي اريد الدخول قد تفشل بسبب ان السعر في اوقات الحركة السريعة يحصل بها تجاوز فلا تمر بنقطة المقارنة الصفرية وهنا تنتظر حتى تستقر حركة السعر وتضيع فرص فالحل نعمل اكبر او يساوي لكن سؤالي المحدد والذي لفت انتباهي لماذا لم يفتح عند السعر المحدد دون التحايل على الدالة ؟

  3. #3978
    الصورة الرمزية توفيق
    توفيق غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Dec 2007
    الإقامة
    اجادير جوهرة المغرب
    العمر
    37
    المشاركات
    1,402

    افتراضي رد:موضوع مخصص للأسئلة البرمجية

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

    يمكنك جعل الإكسبرت يقوم بالبحث عن تحقق الشروط مره واحده فقط مع بداية كل شمعه . وهذه الطريقة مفيده جدا في حال كان الإكسبرت يعتمد في الدخول على تحقق الشروط في الشمعه التي أغلقت بالتالي لن تؤثر على نتائج الإكسبرت
    مثال
    كود PHP:
    static int NewBar;
    if(
    NewBar=Time[0])return;
    NewBar=Time[0]; 
    هذا الكود سوف تقوم بوضعه في أول الداله start لكن ضع قبله فقط الداله الخاصة بالتريلينج ستوب إذا كان يوجد أو البريك إيفن ( الدوال التي يجب أن تعمل مع كل حركه للسعر )
    بارك الله فيك اخي الكريم
    في بحثي عن الحل وجد حل شبيه مرفق في صورة

    اضنها نفس الطريقة بكود مختلف
    هل هدا الحل صحيح اخي ماستر دولار
    بارك الله فيك
    الصور المصغرة للصور المرفقة الصور المصغرة للصور المرفقة ggggggg.png‏  
    آخر تعديل بواسطة توفيق ، 08-06-2013 الساعة 10:49 PM

  4. #3979
    الصورة الرمزية 300
    300
    300 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Sep 2009
    المشاركات
    873

    افتراضي رد:موضوع مخصص للأسئلة البرمجية

    اقتباس المشاركة الأصلية كتبت بواسطة 300 مشاهدة المشاركة
    اهلا استاذنا شكرا لك
    لك الفضل بعد الله انت والاستاذ حكيم بدخولنا الى لغه MQL4 فجزاكم الله خير ونفع بكم
    اذا سمحت لي بقوم باعاده طلبي السابق بتوضيح اكثر
    وهنالك نقطه كانت غيبه عني وهي السبريد ...
    هنا نعرف انه يتم ضرب بــ 2 حجم العقد ولكن المشكله هو كيف الاكسبيرت يحسب اول عقد له .؟
    وليس بشكل يدوي يعني تجعل الاكسبيرت يقوم بحساب "أول عقد بشكل تومتيك " دون تدخل منك لتضع له اول عقد
    ويقوم هو بحساب حجم العقد بناء على الهدف الذي تم وضعه والاستوب وعدد المحاولات + اقصى سبريد
    في اكسبيرت بسيط جدا في حال كان فوق مستوى 50 RSI يقوم بالشراء اذا اسفل يبيع
    ليس هذا المهم ولكن المهم هو تعديل حجم اللوت بشكل تومتيك في الاكسبيرت انا قمت بوضعها بشكل تعديل يدوي
    الان يلزمنا متغير خارجي هو عدد المضاعفات
    وحذف متغير لوت حتى الاكسبيرت يتحكم فيه بناء على
    كم هو رأس المال حالياً
    ماهو الهدف
    ماهو الاستوب
    اقصى سبريد ممكن يوصل له زوج ( وهنا نضيف للاكسبيرت اذا سبريد اكبر من maxspread يتجاهل الصفقه )
    ماهو عدد المضاعفات فرضا قمت بوضع 5
    الاكسبيرت يدخل الصفقه الاولى بحجم اللوت بناء على تعويض الصفقات + سبريدهم بمعدل 5 صفقات
    مثلا ضرب استوب الصفقه 1 مثلا 20 نقطه وخسر 50 دولار + سبريد 4 هنا 54 دولار
    الصفقه التاليه يدخل بحيث انه يعوض الصفقه 1 + سبريده الذي قمنا نحن بوضعه اساسا هو 4 يعني فقط يجمع زياده 4
    وهكذا في حال وصل للصفقه 5 الاخيره يعوض كل ماسبق + سبريدهم + هدف الصفقه الحاليه وهو 20 نقطه
    اذا خسرت الصفقه الخامسه يزورك المارجن كول
    وهنا يجب ان ناخذ بعين الاعتبار يتعرف الاكسبيرت على نوع الحساب ميكرو ميني ستاندر وياخذ بعين الاعتبار رافعه الماليه بحيث اذا وصل المضاعفه 5 يقوم تنفيذها ولايخبرك انه راس المال لايكفي .!
    واذا فصلت الكمبيوتر ورجعت تشغل الاكسبيرت يكمل عمله ولا كأن شيئ حدث ويكمل المضاعفات ,,,
    هنالك مشكله ايضا اذا ستطعت تعديلها " جننتني " هي هنا
    https://forum.arabictrader.com/t171452.html
    جاوبوني الاخوه مشكورين اخبروني استعمل ميثود OrderModify وقمت بوضعها بالاكسبيرت الحالي
    شغلت الاكسبيرت المرفق يوم الجمعه وايضا الهدف والاستوب يتغير .! احيانا يربح 7.76 واحيانا 8 واحيانا 9 دولار مع العلم الستوب ثابت والهدف ثابت والمسافه تظهر على الشارت متغيره مابين نقط الدخول والهدف والاستوب صحيت وجدته داخل صفقه مفتوحه بدون استوب وبدون هدف
    ياريت لو لديك ترغم ميتاتريدر يلتزم بالاستوب والهدف 100 % بدون تغير تقوم اضافاتها للاكسبيرت
    اتمنى منك تقوم بتعديل الاكسبيرت المرفق واضافه ماسبق وشرح الاضافات قمت بها لانه اكسبيرت سهل جدا
    وراح بفهم الاضافات التي قمت بها بسرعه ولا ننسى انه لوت الاول الاكسبيرت هو من يحدده
    بعتذر على الاطاااله
    جزاكم الله خير ونفع بكم
    استاذ مستر دولار هل الفكره بالاعلى واضحه او بقوم بشرحها بشكل موسع بملف pdf
    اتمنى اذا الفكره وضحت تخبرني بذلك حتى لا اقوم بعمل ملف pdf بتوقع الفكره بسيطه جدا
    الله يعين على باقي المضاعفات يالله نتعلم شوي شوي

  5. #3980
    الصورة الرمزية kira-h
    kira-h غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Oct 2011
    الإقامة
    المغرب
    المشاركات
    1,334

    افتراضي رد:موضوع مخصص للأسئلة البرمجية

    اقتباس المشاركة الأصلية كتبت بواسطة xcv114 مشاهدة المشاركة


    بعد إذن أستاذ أسامة

    تضع حلقة تبحث في الأرقام من 1 إلى 20 وتقوم بإضافة المتغير على إسم الكائن
    كود PHP:

    void TechnicalAnalysis
    ()
    {
     for(
    int i=1;i<=20;i++){
     
    double lineH=ObjectGet("Hi"+i,OBJPROP_PRICE1);
        if (
    Open[1] < lineH && Close[1] > lineH)
        {
            
    BuyOrder();
            
        }
      }

    ملحوظة
    خد بالك لازم تخلي الشرط بالشكل ده
    كود PHP:
     if (Open[1] < lineH && Close[1] > lineH
    عشان يفتح العملية عندما يكون إفتتاح الشمعة أقل من الكائن وإغلاقها أكبر من الكائن فقط
    وإلا مثلا عند الكائن Hi3 سيعتبر أنه أعلى من Hi1 و Hi2 وبالتالي سيستمر في فتح عمليات
    السلام عليكم ورحمة الله وبركاته
    قمت بعمل ما هو مطلوب ولكن الاكسبيرت يفتح فقط الصفقة بالنسبة لخط N فقط اللي هو مركز الخطوط
    أما باقي الخطوط H و L لا يعمل عليها الاكسبيرت !!!!
    قمت بما يلي :
    كود:
    void TechnicalAnalysis()
    {
     for(int i=1;i<=20;i++)
      {
     double lineH=ObjectGet("Hi"+i,OBJPROP_PRICE1);
     double lineL=ObjectGet("Li"+i,OBJPROP_PRICE1);
     double lineN=ObjectGet("N",OBJPROP_PRICE1);
        if ((Open[1] < lineN && Close[1] > lineN)||(Open[1] < lineH && Close[1] > lineH)||(Open[1] < lineL && Close[1] > lineL))
        {
            BuyOrder();
            
        }
      }
    }
    أيضا جربت هذا الكود ولم يعمل
    كود:
    void TechnicalAnalysis()
    {
     for(int i=1;i<=20;i++)
      {
     double lineH=ObjectGet("H"+i,OBJPROP_PRICE1);
     double lineL=ObjectGet("L"+i,OBJPROP_PRICE1);
     double lineN=ObjectGet("N",OBJPROP_PRICE1);
        if ((Open[1] < lineN && Close[1] > lineN)||(Open[1] < lineH && Close[1] > lineH)||(Open[1] < lineL && Close[1] > lineL))
        {
            BuyOrder();
            
        }
      }
    }
    مؤشر الخطوط للمهندس وجدي جزاه الله خيرا
    بالمرفقات

    بارك الله فيكم
    الملفات المرفقة الملفات المرفقة
    توقيع العضو
    متداول فوركس، ومبرمج mql

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

    افتراضي رد:موضوع مخصص للأسئلة البرمجية

    اقتباس المشاركة الأصلية كتبت بواسطة wadi2012 مشاهدة المشاركة
    عندي سؤال
    اذا اردت ان افتح اوردير عند سعر محدد على الشارت بالدالة ordersend
    ووضعت فيها السعر المحدد فان الاوردير لا يفتح عن السعر المحدد
    مثال

    كود PHP:
    double price=1.2870;                         
                     
    OrderSend(Symbol(),0,1,price,3,0,0,"My order",111,0,Green); 
    كما في المثال عملت اسكريبت يفتح عند سعر محدد ووضعت السعر في الدالة وعند تشغيل الاكسبيرت فان السعر لا يدخل عن 1.2870 بل اقل منه ب 4 نقاط 1.2866 غيرت الارقم وعملت دالة
    doublenormalize ولكن المشكلة هي هي لم تتغير
    انا حللت المشكلة بطريقة اخري وعملت دالة مقارنة بين ask والسعر الذي اريده وعندما تصبح النتيجة = 0 فانه يفتح عند السعر المحدد لكن بها مشكلة لاحظتها بعد وقت وهي دالة المقارن عندما تساوى صفر بين سعر ال ask والسعر الذي اريد الدخول قد تفشل بسبب ان السعر في اوقات الحركة السريعة يحصل بها تجاوز فلا تمر بنقطة المقارنة الصفرية وهنا تنتظر حتى تستقر حركة السعر وتضيع فرص فالحل نعمل اكبر او يساوي لكن سؤالي المحدد والذي لفت انتباهي لماذا لم يفتح عند السعر المحدد دون التحايل على الدالة ؟
    إذا أردت أن تفتح الصفقة عند سعر محدد وليس على سعر الأسك أو البيد فتستخدم الأوامر المعلقه
    OP_BUYLIMIT , OPBUYSTOP , OP_SELLLIMIT , OP_SELLSTOP

    ولو أنك وضعت الأمر بعيد عن السعر الحالي فلن يفتح أساسا سواء على بعد 4 نقاط أو لأ لكن السبب في أنه فتح على بعد 4 نقاط هو إستخدامك لعدد نقاط إعادة التسعير بالتالي عند أصبح السعر قريب من السعر الذي حددته فإعتبره الإكسبرت سعر يحقق الأمر ففتحت الصفقه

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

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

    افتراضي رد:موضوع مخصص للأسئلة البرمجية

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

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

  8. #3983
    الصورة الرمزية xcv114
    xcv114 غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Oct 2010
    الإقامة
    مصر
    المشاركات
    1,022

    افتراضي رد:موضوع مخصص للأسئلة البرمجية

    اقتباس المشاركة الأصلية كتبت بواسطة kira-h مشاهدة المشاركة
    السلام عليكم ورحمة الله وبركاته
    قمت بعمل ما هو مطلوب ولكن الاكسبيرت يفتح فقط الصفقة بالنسبة لخط N فقط اللي هو مركز الخطوط
    أما باقي الخطوط H و L لا يعمل عليها الاكسبيرت !!!!
    قمت بما يلي :
    كود:
    void TechnicalAnalysis()
    {
     for(int i=1;i<=20;i++)
      {
     double lineH=ObjectGet("Hi"+i,OBJPROP_PRICE1);
     double lineL=ObjectGet("Li"+i,OBJPROP_PRICE1);
     double lineN=ObjectGet("N",OBJPROP_PRICE1);
        if ((Open[1] < lineN && Close[1] > lineN)||(Open[1] < lineH && Close[1] > lineH)||(Open[1] < lineL && Close[1] > lineL))
        {
            BuyOrder();
            
        }
      }
    }
    أيضا جربت هذا الكود ولم يعمل
    كود:
    void TechnicalAnalysis()
    {
     for(int i=1;i<=20;i++)
      {
     double lineH=ObjectGet("H"+i,OBJPROP_PRICE1);
     double lineL=ObjectGet("L"+i,OBJPROP_PRICE1);
     double lineN=ObjectGet("N",OBJPROP_PRICE1);
        if ((Open[1] < lineN && Close[1] > lineN)||(Open[1] < lineH && Close[1] > lineH)||(Open[1] < lineL && Close[1] > lineL))
        {
            BuyOrder();
            
        }
      }
    }
    مؤشر الخطوط للمهندس وجدي جزاه الله خيرا
    بالمرفقات

    بارك الله فيكم
    أخي كيرا الدالة تعمل عندي على المؤشر إللي إنت أرفقته بدون أي مشاكل

    ولتتأكد قم بفتح إكسبيرت جديد وقم بوضع الدالة المشروحة فيه فقط
    كود PHP:

    void TechnicalAnalysis
    ()
    {
     for(
    int i=1;i<=20;i++)
      {
     
    double lineH=ObjectGet("H"+i,OBJPROP_PRICE1);
     
    double lineL=ObjectGet("L"+i,OBJPROP_PRICE1);
     
    double lineN=ObjectGet("N",OBJPROP_PRICE1);
       if(
    Time1!=Time[0]){
        if ((
    Open[1] < lineN && Close[1] > lineN)||(Open[1] < lineH && Close[1] > lineH)||(Open[1] < lineL && Close[1] > lineL))
        {
            
    OrderSend(Symbol(),OP_BUY,0.01,Ask,30,0,0,"",123,0,Lime);
            
    Time1=Time[0];
          } 
        }
      }

    أنا عوضت بأمر شراء مباشر بدلا من دالة الشراء وقمت بتعريف متغير Time1 ليفتح عملية واحدة فقط في الشمعة التي تحقق الشروط ( لا تهتم بـ Time1 دي انا وضعتها عشان أقدر أجرب بس وقمت بتعريفها خارج الدوال )
    كود PHP:
    int Time1
    وقمت بإستدعاء الدالة في إستارت
    كود PHP:
    int start()
      {
       
    TechnicalAnalysis();
      
       return(
    0);
      } 
    جرب الكلام ده في إكسبيرت جديد وستجده يعمل معك كما تريد
    ( وتأكد من أسماء الخطوط عندك على الشارت أنها H1 - H2 -H3 وهكذا )

  9. #3984
    الصورة الرمزية 300
    300
    300 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Sep 2009
    المشاركات
    873

    افتراضي رد:موضوع مخصص للأسئلة البرمجية

    طيب ممكن معادله اول لوت

  10. #3985
    الصورة الرمزية kira-h
    kira-h غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Oct 2011
    الإقامة
    المغرب
    المشاركات
    1,334

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة xcv114 مشاهدة المشاركة


    أخي كيرا الدالة تعمل عندي على المؤشر إللي إنت أرفقته بدون أي مشاكل

    ولتتأكد قم بفتح إكسبيرت جديد وقم بوضع الدالة المشروحة فيه فقط
    كود PHP:

    void TechnicalAnalysis
    ()
    {
     for(
    int i=1;i<=20;i++)
      {
     
    double lineH=ObjectGet("H"+i,OBJPROP_PRICE1);
     
    double lineL=ObjectGet("L"+i,OBJPROP_PRICE1);
     
    double lineN=ObjectGet("N",OBJPROP_PRICE1);
       if(
    Time1!=Time[0]){
        if ((
    Open[1] < lineN && Close[1] > lineN)||(Open[1] < lineH && Close[1] > lineH)||(Open[1] < lineL && Close[1] > lineL))
        {
            
    OrderSend(Symbol(),OP_BUY,0.01,Ask,30,0,0,"",123,0,Lime);
            
    Time1=Time[0];
          } 
        }
      }

    أنا عوضت بأمر شراء مباشر بدلا من دالة الشراء وقمت بتعريف متغير Time1 ليفتح عملية واحدة فقط في الشمعة التي تحقق الشروط ( لا تهتم بـ Time1 دي انا وضعتها عشان أقدر أجرب بس وقمت بتعريفها خارج الدوال )
    كود PHP:
    int Time1
    وقمت بإستدعاء الدالة في إستارت
    كود PHP:
    int start()
      {
       
    TechnicalAnalysis();
      
       return(
    0);
      } 
    جرب الكلام ده في إكسبيرت جديد وستجده يعمل معك كما تريد
    ( وتأكد من أسماء الخطوط عندك على الشارت أنها H1 - H2 -H3 وهكذا )
    تمام أستاذ يوسف جزاك الله خيرا حبيبي

    جاري المراجعة ولي عودة إن شاء الله
    توقيع العضو
    متداول فوركس، ومبرمج mql

  11. #3986
    الصورة الرمزية kira-h
    kira-h غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Oct 2011
    الإقامة
    المغرب
    المشاركات
    1,334

    09 رد:موضوع مخصص للأسئلة البرمجية

    اقتباس المشاركة الأصلية كتبت بواسطة xcv114 مشاهدة المشاركة


    أخي كيرا الدالة تعمل عندي على المؤشر إللي إنت أرفقته بدون أي مشاكل

    ولتتأكد قم بفتح إكسبيرت جديد وقم بوضع الدالة المشروحة فيه فقط
    كود PHP:

    void TechnicalAnalysis
    ()
    {
     for(
    int i=1;i<=20;i++)
      {
     
    double lineH=ObjectGet("H"+i,OBJPROP_PRICE1);
     
    double lineL=ObjectGet("L"+i,OBJPROP_PRICE1);
     
    double lineN=ObjectGet("N",OBJPROP_PRICE1);
       if(
    Time1!=Time[0]){
        if ((
    Open[1] < lineN && Close[1] > lineN)||(Open[1] < lineH && Close[1] > lineH)||(Open[1] < lineL && Close[1] > lineL))
        {
            
    OrderSend(Symbol(),OP_BUY,0.01,Ask,30,0,0,"",123,0,Lime);
            
    Time1=Time[0];
          } 
        }
      }

    أنا عوضت بأمر شراء مباشر بدلا من دالة الشراء وقمت بتعريف متغير Time1 ليفتح عملية واحدة فقط في الشمعة التي تحقق الشروط ( لا تهتم بـ Time1 دي انا وضعتها عشان أقدر أجرب بس وقمت بتعريفها خارج الدوال )
    كود PHP:
    int Time1
    وقمت بإستدعاء الدالة في إستارت
    كود PHP:
    int start()
      {
       
    TechnicalAnalysis();
      
       return(
    0);
      } 
    جرب الكلام ده في إكسبيرت جديد وستجده يعمل معك كما تريد
    ( وتأكد من أسماء الخطوط عندك على الشارت أنها H1 - H2 -H3 وهكذا )
    نفس المشكلة أستاذي الاكسبيرت يفتح أمر فقط بالخط N اللي هو مركز الخطوط ولكي أتأكد عملت لكل خط شرط خاص به مرتبط بدالة الأمر
    والأمر ليس ماركت بل أمر معلق
    شوف كدة الكود الخاص بالخطوط H1 ; H2 .... هل صحيحة ؟ مع العلم بوجود المضاعفات
    دالة الشرط
    كود:
    void TechnicalAnalysisSell2()
    {
     for(int i=1;i<=20;i++){
    double LineL=ObjectGet("Li"+i,OBJPROP_PRICE1);
    
        if ((Open[1]>=LineL)&&(Low[0]<LineL))
        {
            SellOrderL();
            
        }
    }
    }
    ثم دالة الأمر المعلق
    كود:
    void SellOrderL()
    {  
        double profit = 0;
        int cnt = OrdersHistoryTotal();
        for (int i=cnt-1; i >= 0; i--)
        {
            if (!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) continue;
            if ((OrderType() == OP_BUY || OrderType() == OP_SELL) && OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNo)
            {
                profit = OrderProfit();
                CurrentLots = OrderLots();     // take lots from the last order
                break;
            }
        } 
        
        if (profit > 0)     // had profit
        {
            CurrentLots = CurrentLots * LotsMpOnProfit + 0;
            if (LotsResetOnProfit)
            CurrentLots = Lots;
        }
        else if (profit < 0)    // had loss
        {
            CurrentLots = CurrentLots * LotsMpOnLoss + 0;
            if (LotsResetOnLoss) CurrentLots = Lots;
        }
        if (CurrentLots > MaxLots)
        {
            CurrentLots = Lots;
        }
        double lotvalue = CurrentLots;
        
        if (lotvalue < MarketInfo(Symbol(), MODE_MINLOT))    // make sure lot is not smaller than allowed value
        {
            lotvalue = MarketInfo(Symbol(), MODE_MINLOT);
        }
        if (lotvalue > MarketInfo(Symbol(), MODE_MAXLOT))    // make sure lot is not greater than allowed value
        {
            lotvalue = MarketInfo(Symbol(), MODE_MAXLOT);
        }
        
        for( i=1;i<=20;i++)
        {
        double LineL=ObjectGet("Li"+i,OBJPROP_PRICE1);     
        double price = (NormalizeDouble(LineL, NDigits) - (SellStep*PipValue*Point)); 
        double SL = price + Stoploss*PipValue*Point;
        if (Stoploss == 0) SL = 0; 
        double TP = price - Takeprofit*PipValue*Point;
        if (Takeprofit == 0) TP = 0;  
        int Tries; 
        int ticket = -1;    
        if (ECNBroker)
        { 
        ticket = OrderSend(Symbol(), OP_SELLSTOP, lotvalue, price, Slippage, 0, 0, "Kira-h", MagicNo, 0, Red); 
        if(ticket>-1 && Tries<10)
          { 
           OrderSelect(ticket, SELECT_BY_TICKET); 
           OrderModify(ticket, OrderOpenPrice(), SL, TP, 0, Blue); 
           Tries++;Sleep(1000);  
          } 
        } 
        else 
        ticket = OrderSend(Symbol(), OP_SELLSTOP, lotvalue, Bid, Slippage, SL, TP, "Kira-h", MagicNo, 0, Red);
        }    
    }
    بانتظار ردك أستاذ يوسف بارك الله فيك
    آخر تعديل بواسطة kira-h ، 10-06-2013 الساعة 10:16 PM
    توقيع العضو
    متداول فوركس، ومبرمج mql

  12. #3987
    الصورة الرمزية xcv114
    xcv114 غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Oct 2010
    الإقامة
    مصر
    المشاركات
    1,022

    افتراضي رد:موضوع مخصص للأسئلة البرمجية

    أخي كيرا

    أنا مش فاهم إنت تقصد تعمل إية ؟

    إنت عايز تعمل أوامر معلقة على كل خط فوق شراء وعلى كل خط تحت بيع ؟
    طيب لو عايز تعمل أوامر معلقة يبقى إزاي عامل شرط إن الشمعة تغلق فوق الخط ؟
    -----------
    ياريت تشرح بمثال

    -------------------
    كمان إنت كاتب إسم الكائن بين علامات التنصيص "Li" و "Hi" هل ده إسم الكائن على الشارت عندك ولا "H" و "L"
    ---------------------

    وفي النهاية أنا مش شايف سبب لإستدعاء مؤشر لتحديد مناطق الدخول
    المؤشر مفيش فيه حاجة مميزة ... بتحدد نقطة في النص وتكتبها في خصائص المؤشر والمؤشر بيضع خطوط على بعد معين من النقاط إنت بارضوة إللي بتحدده
    يعني مش مؤشر دعوم ولا مقاومات ومفيش فيه حاجة ما تقدرش تعملها مباشرة من الإكسبيرت
    وعندك إكسبيرت الأوامر المعلقة من برمجة أستاذ أسامة بيقوم بالوظايف دي كلها مباشرة بدون مؤشرات

    آخر تعديل بواسطة xcv114 ، 10-06-2013 الساعة 10:53 PM

  13. #3988
    الصورة الرمزية kira-h
    kira-h غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Oct 2011
    الإقامة
    المغرب
    المشاركات
    1,334

    افتراضي رد:موضوع مخصص للأسئلة البرمجية

    اقتباس المشاركة الأصلية كتبت بواسطة xcv114 مشاهدة المشاركة
    أخي كيرا

    أنا مش فاهم إنت تقصد تعمل إية ؟

    إنت عايز تعمل أوامر معلقة على كل خط فوق شراء وعلى كل خط تحت بيع ؟
    طيب لو عايز تعمل أوامر معلقة يبقى إزاي عامل شرط إن الشمعة تغلق فوق الخط ؟
    -----------
    ياريت تشرح بمثال

    -------------------
    كمان إنت كاتب إسم الكائن بين علامات التنصيص "Li" و "Hi" هل ده إسم الكائن على الشارت عندك ولا "H" و "L"
    ---------------------

    وفي النهاية أنا مش شايف سبب لإستدعاء مؤشر لتحديد مناطق الدخول
    المؤشر مفيش فيه حاجة مميزة ... بتحدد نقطة في النص وتكتبها في خصائص المؤشر والمؤشر بيضع خطوط على بعد معين من النقاط إنت بارضوة إللي بتحدده
    يعني مش مؤشر دعوم ولا مقاومات ومفيش فيه حاجة ما تقدرش تعملها مباشرة من الإكسبيرت
    وعندك إكسبيرت الأوامر المعلقة من برمجة أستاذ أسامة بيقوم بالوظايف دي كلها مباشرة بدون مؤشرات

    شكرا جزيلا على تفاعلك أستاذي العزيز ربنا يخليك

    الطريقة بسيطة جدا
    أسماء الخطوط H1 ; H2 ; H 3 .... إلى H20
    وأيضا L1 ; L2 . L3 ....إلى L20
    ثم خط الوسط باسم N

    حينما يلمس السعر أي خط من الخطوط دي يضع أمرين معلقين باي ستوب فوق الخط وسيل ستوب تحت الخط
    بالنسبة للاكسبيرت الان يضع فقط أمرين بالخط الوسط N وعندما يصعد السعر ويلمس مثلا H1 لا يضع أمرين بنفس الطريقة ...
    مع أن عدد العقود غير محدود
    دي المشكلة !!!
    توقيع العضو
    متداول فوركس، ومبرمج mql

  14. #3989
    الصورة الرمزية توفيق
    توفيق غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Dec 2007
    الإقامة
    اجادير جوهرة المغرب
    العمر
    37
    المشاركات
    1,402

    افتراضي

    استاد ماستر دولار كيف يمكنني تحديد اخر صفقة مفتوحة و تغيير الستوب الوز لها
    بارك الله فيك

  15. #3990
    الصورة الرمزية wadi2012
    wadi2012 غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Aug 2012
    الإقامة
    جرين لاند
    المشاركات
    1,089

    افتراضي رد:موضوع مخصص للأسئلة البرمجية

    اقتباس المشاركة الأصلية كتبت بواسطة توفيق مشاهدة المشاركة
    استاد ماستر دولار كيف يمكنني تحديد اخر صفقة مفتوحة و تغيير الستوب الوز لها
    بارك الله فيك
    بعد اذن مستر دولار والاعضاء والتصحيح ان كان عندي خطا في الرد
    تحديد اخر صفقة مفتوح يتم من بالمقارنة بالماجيك نمبر ونوع العملة ونوع الصفقة بيع اوش راء والاهم موقعها وفي الغالب من orderselect
    فاذا كان لديك فرضا 5 صفقات مفتوحة والاخيرة رقمها التسلسلي 4 لان اول صفقة يكون رقمها 0 هنا يمكن ان تحدد رقم الصفقة الاخيرة وهي orderstotal()-1
    وتضعه في دالة orderselect
    ومنها تحدد عن طريق ordermodify()
    تغيير الوقف
    هذا والله اعلم

المواضيع المتشابهه

  1. موضوع مخصص للاكسبيرتات اللتي يستخدمها الاعضاء على الحقيقي,,عندك اكسبيرت ممتاز ضعه هنا
    By محمد معمو in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EA
    مشاركات: 11
    آخر مشاركة: 15-12-2023, 02:03 PM
  2. عااااااااااااجل ( موضوع مخصص للفرص الفورية)!!!
    By عاشق الذبذبـة in forum توقعات وتوصيات سوق العملات
    مشاركات: 280
    آخر مشاركة: 27-08-2009, 10:30 PM

الاوسمة لهذا الموضوع


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