اخي اسم الموضوع الجديد اكسبيرت بهدف مخفي نقتطين
عرض للطباعة
اخي اسم الموضوع الجديد اكسبيرت بهدف مخفي نقتطين
شكرا أخي وجزاك الله كل خير
اخى سمحنى رجعت محتاج مساعده لنفس كود المضاعفات اعذرنى
اذا فتح فى نفس الوقت قبل ضرب هدف او استوب اوردر 0.01 بيع وبعده اوردر 0.02 شراء والبيع 0.01 ضرب T/P الاول
الاوردر التالي بيكون 0.01 والمطلوب انه يكمل مضاعفات لان المطلوب هو T/P لأخر مضاعفه
انا عدلت على الكود بأضافة دالة LastOrder وعدلت الشرط ولكن لم احصل على المطلوب
دالة LastOrder
السلام عليكم الاخ الاستاذ حسن.
اطلب منك ان تشرح لي بعض الاشياء , اذا سمحت:
ما الفرق بين = و == .
ماذا تعني (NormalizeDouble(Ask,Digits .
ماذا تعني (if(OrderType()==type || type==-1.
اشكرك أُستاذي الكريم.
استاذ حسن اتمنى الافاده فى التالي :-
1- لو انا عاوز افتح صفقه بيع اذا وصل السعر الى مستوى 50 فيبو
بفتح بيع فقط مره واحده يعنى لو السعر لمس الخط بفتح بيع اما هدف او ستوب طيب لو ضربت ستوب او هدف والسعر رجع مره اخرى
لا يفتح صفقه تانى من نفس المستوى خلال اليوم او الاسبوع
مثال للتوضيح
انا رسمت فيبو والسعر كان تحت مستوى ال 50 فيبو ثم ارتفع السعر ولمس الفيبو 50
تم فتح صفقه بيع ثم ذهب وجاب الهدف ثم عاد لمستوى فيبو 50 فى نفس اليوم انا بقي مش عاوزه يفتح صفقه تانيه فى نفس اليوم عند نفس المستوى
دى تبقى ازاى لو سمحت
وعليكم السلام
= نتيجة لمعادلة حسابية مثل x + y = 5
== شرط التساوي مثل إذا كان x يساوي y NormalizeDouble لتحديد عدد الأرقام بعد الفاصلة مثلا Ask سعر الشراء "الأسك"
Digits العدد الافتراضي للأرقام بعد الفاصلة لسعر الزوج
type متغير صحيح يعبر عن نوع الصفقة، وإذا لم يتم تحديد نوع الصفقة يأخذ القيمة 1- افتراضيا أي الدالة تبحث في كل أنواع الصفقات
سمحنى اخى حسن
أشكرك جزيل الشكر أخي الكيم الاستاذ حسن.
استاذ حسن لو سمحت احتاج للتالى :-
1-عمل تنبيه اذا السعر لمس خط او مستوى معين مرسوم على الشارت خط دعم او مقاومه والتنبيه يكون عند لمسه مره واحده فقط خلال الشمعه وليس بتكرار اللمس منعا للازعاج بسبب تكرار التنبيه
2- رسم سهم arrow للاعلى او للاسفل عند لمس السعر للمستوى اى ان لو الخط اعلى السعر والسعر صعد ولمسه يرسم سهم للاسفل يفيد البيع
والعكس فى حاله الشراء
والف شكر على مجهودك معنا للافاده جعله الله فى ميزان حسناتك اخى
السلام عليكم
أخي الكريم الموضوع مخصص فقط للأسئلة البرمجية
عموما راجع المشاركة التالية كتطبيق عملي
مثال تطبيقي لعمل مؤشر اسهم لتقاطع موفينجين
اوك تمام اشكرك اخى ولا تآآخذنى
لن تحتاج لاي تعديل اصلا، لانه يوجد لديك مضاعفات الصفقة المفتوحة LotsMP2 بحيث يضاعف بناء على اخر صفقة مفتوحة
عندنا الشرط ده
انه اذا الهدف اكبر من gap يبداء من اول لوت والتعديل المطلوب انه اذا اخر مضاعفه اتفتحت اذا ضربت الهدف والهدف اكبر من gap يبداء من الاول
كالتالي:
gap هي مسافة القفزة السعرية أو السبريد الزائد عن الطبيعي المتوقع
مثلا gap=2 فيكون الهدف الفعلي Takeprofit-2
بالتوفيق إن شاء الله
ملف مرفق 13152
LastOrder هو دا اللى انا كنت فكرت فيه وعملته بالفعل ولكن مش بيعمل المطلوب
الاوردر رقم 1 ضرب الهدف والاوردر رقم 2 ضرب استوب والاوردر 3 بداء من الاول وكان المفروض الاوردر رقم 3 يكمل على المضاعفات لان الاوردر اللى ضرب الهدف ليس الاخير وليس اخر مضاعفه ايه الخطأ فى الكود ده كدا ؟
اخي الكريم لم افهم ماذا تريد بالضبط! كل مرة تضع تعديلات جديدة حتى اصبحت الشروط معقدة!
اشرح الفكرة بالتفصيل مع امثلة بالارقام وتضع كل احتمالات المضاعفات الممكنة
غير ذلك لا يمكنني المساعدة أكثر فالفكرة غير واضحة
ماشى اخى هحاول فى الرد ده اشرح الفكره بشكل بسيط
شروط ان الاكسبيرت يبداء من اول لوت
اذا اخر اوردر تفعل ضرب t/p
او اذا اخر مضاعفه t/p
ملف مرفق 13158
شرح الصوره اوردر رقم 1 فتح 0.01 وبعده اوردر رقم 2 فتح 0.02
اللى حصل بعد كدا ان اوردر رقم 2 ضرب s/l وكان لسه اوردر رقم 1 شغال وبعد كدا اوردر رقم 1 ضرب t/p
والاكسبيرت فتح اوردر رقم 3 بلوت 0.01 عايز من حضرتك ان الاكسبيرت يبداء من اول لوت اذا كان اخر اوردر تفعل هو اللى t/p او اخر مضاعفه اتفتحت t/p
يعنى لو كان فى اوردر 0.01 مفتوح واوردر تانى فى نفس الوقت مفتوح 0.02
وال 0.02 ضرب استوب يبقا هيكمل مضاعفات حتى لو 0.01 ضرب هدف بعد او قبل استوب 0.02
يعنى عند فتح عقد جديد بمضاعفه جديده يبقا t/P العقد اللى قبله لا يهم
يعني تحتاج إلى دالة تعطيك وظائف الصفقة قبل الاخيرة وتقارنها مع وظائف الصفقة الأخيرة (مثل مقارنة حجم العقدين أو نتيجتهما أو معا)
الدالة كالتالي تعطيك حجم عقد أو نتيجة الصفقة قبل الاخيرة :
الكود ده محتاج اكتب مكان
SecondOrdersاذا اخر اوردر تفعل على المنصه ضرب T/P ان شاء الله نبداء من اول لوت
خد بالك انا كتبت فى المشاركه فى النهايه ان العقد الى قبل الاخير لا يهمنا فى شيء وحضرتك كتبت ليا دالة تعطينى معلومات عن العقد اللى قبل الاخير ؟
وكل اللى محتاجه منك ان تعرفنى ازي اعدل الشرط اللى هو اذا ضرب هدف بيبداء من الاول التعديل هيكون ان ضرب الهدف ولكن لأخر عقد تفعل او اخر مضاعفه اقراء المشاركه اللى فوق دى وانا كتبت فيها اكثر من مثال وشكراً لك
كل اللى محتاجه كتبته لك فى الشرط حتى يكون الامر اسهل
اخى حتى اسهل عليك الموضوع انا محتاج دالة معرفة اخر اوردر تفعل last order opened
واقدر احدد انا عايز ايه من الداله هكذا
if(info=="Lots")return(lo);
else if(info=="Profit")return(pt);
else if(info=="Type")return(ty);
else if(info=="OpenPrice")return(op);
else if(info=="ClosePrice")return(cp);
else if(info=="TP")return(tp);
كيف لا يهم نتيجة العقد الثاني وهو على اساس خسارته تريد مضاعفة الصفقة الجديدة!!
لا يوجد دالة كهذه فبمجرد اغلاق الصفقة يتغير كل شيء
ونوهت عن هذا سابقا
بالنسبة للمضاعفات مش مشكله هتكون عادى
اقصد
ان عندى اول اوردر 0.01 والتانى 0.02 لو التانى الى هو 0.02 ضرب استوب والى 0.01 ضرب هدف بعد استوب 0.02 كدا الاكسبيرت هيبداء من اول لوت 0.01 تانى وكدا الاكسبيرت هيكون فى خساره لان لوت 0.02 خسارته اكبر من لوت 0.01 طيب الحل ايه ؟
ان انا عايز الاكسبيرت يبداء من الاول بس اذا كان اخر اوردر اتفتح ضرب هدف طيب لو مفيش دالة لأخر اوردر تفعل فى اى حل اخر ؟
ان يكون فى دالة تعرف تفاصيل لوت كل اوردر بيتفتح وبناءً على اكبر لوت مفتوح اذا ضرب هدف يبداء من الاول 0.01 فى حاجة كده !
?
اعتقد يوجد تناقض برمجي
عموما مرفق دالة تستخرج نتيجة آخر صفقة مغلقة بأكبر توقيت الفتح (الربح أو حجم العقد)
يعني مثلا في صفقة مغلقة بعقد 0.02 ثم يليه صفقة مغلقة بعقد 0.01 يعني صفقة 0.01 آخر صفقة مغلقة، ولكن من حيث الفتح كانت آخر صفقة مفتوحة هي 0.02 وبالتالي الدالة ستنظر فقط الى الصفقة 0.02 عند اغلاقها لأنها الاكبر زمنيا من حيث توقيت الفتح
شكراً لك اخى بتتعب معانا والله
اخى الشرط ده اللى هو اذا كان فى اوردر اغلق close او s/l على ربح الاوردر التالى هيكون بنفس اللوت للاوردر اللى اغلق على ربح فى حالة اذا كان الربح اقل من gap
الصوره هحصل غير كدا ده بسبب تأخر اغلاق الاوردر المفتوح ولا خطأ فى الشرط ؟
الكود كامل
نعم صحيح
اخي حسن
من فضلك اريد مراجع عربية/اجنبية لتعليم برمجة الاكسبرتات والمؤشرات باللغتين mq4,mq5 من الصفر الى الاحتراف
ارجو الافادة
السلام عليكم
ممكن مساعده
عندى مشكله فى الاكسبيرت وهى
عندى صفقات معلقه buy وsell معلق على اكثر من زوج
اذا تفعل مثلا buyعلى احدى الازواج
يجب حزف sell والعكس
من على زوج ده فقط وليس من على كل الازواج
اكون شكر
السلام عليكم
وعليكم السلام
ستقوم بعمل شرط إذا يوجد صفقة شراء مفعلة يحذف الأوامر المعلقة العكسية، والعكس صحيح
مثال :
دالة عدد الصفقات المفتوحة كالتالي :
ثم دالة اغلاق الصفقات كالتالي:
فيكون شرط إغلاق الشراء المعلق عند تفعيل بيع كالتالي :
OrderDeleteالمشكله انه يحزف كل الصفقات المعلقه من نفس النوع على كل الازواج
انا عاوز على الزوج المفعل فقط وليس على كل الازواج
لا يمكن اخي فالدوال السابقة تعمل على الزوج اللي عليه الاكسبيرت فقط بل ومع شرط الماجك نمبر
الخطأ لديك في طريقتك بعمل الشروط
ارفق الكود للتصحيح
شكرا
صحيح
نسيت هذا الموضوع
طيب انا عايز مصادر للغة mq5 هل يوجد لديك؟
الكود كدا صح اخى حسن
اذا الاوردر المغلق على ربح = او اكبر من 0 او الاوردر المغلق على ضرب استوب والاستوب = او اكبر من 0 يفتح نفس اللوت المغلق
كنت عايز اتأكد اذا كان الكود كدا صح ولا لا ؟
الغرض من اضافة SL لان لو استخدمت تريلنج استوب وحقق ربح بحجز الارباح يفتح نفس اللوت تانى
وعايز اضافة شرط اخر اذا كان الايكوتى قبل فتح اول لوت $1000 وعند اغلاق اى اوردر على ربح وكان الايكوتى اعلى من 1000$ يبداء من اول لوت
اذا كان الايكوتى 1000 وحصل ان فى ربح والايكوتى اصبح 1010 وبداء من اول لوت 0.01 والايكوتى اصبح 1030 يبداء من اول لوت تانى وهكذا يعنى يتم حفظ اخر ايكوتى ويكمل عليه
يمكنك تحميل كتاب شامل للغة MQL5 بعدة لغات من الموقع الرسمي https://www.mql5.com/en/docs
ملف مرفق 13280
أما عربيا يمكن ان تجد بعض الشروحات باليوتيوب
السلام عليكم حسن و الجميع.
انا عندي اكسبيرت يفتح مجموعة من الصفقات بيع و شراء و لكل مجموعة دائما يكون الكومنت نفسه للصفقات سواء كانت بيع او شراء، و لكل مجموعة لها كومنت محدد لصفقاتها.
المطلوب دالة تخبرني هل مجموع البروفيت للصفقات المفتوحة بدلالة اسم محدد هي على ربح (حتى ولو كان بسيط) بعد حساب السواب و الكومشين.
مثال:
عندنا صفقتين بيع
و صفقة واحدة شراء
و لهم نفس الكومنت، اريد من الدالة ان تخبرني بعد تحقق شروط محددة ان تخبرني هل البروفيت لهذه الصفقات الثلاثة على ربح بعد حساب السواب و الكومشن.
و بالنهاية الله يوفقك يا حسن و يرزقك رزقة انت تريدها من حيث لا تحتسب.