مشكور يا استاذي وبارك الله فيك
كنت ارغب في انتاج الرقم النهائي بعد تحويله الي رقم داخل الداله الفرعية و استخدامه مباشرة بعد ذلك و لكن لسبب اجهله يجب ان تكون الداله من نوع string و تتحول الي رقم في الدالة الرئيسية
جزاك الله خيرا وفيت و كفيت
عرض للطباعة
مشكور يا استاذي وبارك الله فيك
كنت ارغب في انتاج الرقم النهائي بعد تحويله الي رقم داخل الداله الفرعية و استخدامه مباشرة بعد ذلك و لكن لسبب اجهله يجب ان تكون الداله من نوع string و تتحول الي رقم في الدالة الرئيسية
جزاك الله خيرا وفيت و كفيت
chararray وظيفتها كما افهم تنتهي عند الامر StringAdd
حيث يحصل المتغير MagicString علي مابداخل المصفوفة
الخطا يحدث بين السطرين برنت ٣ وبرنت٤ اي عند التحويل
علي اي حال اشكرك جزيل الشكر
الكود الصحيح كالتالي :
يكون ببداية الدالة بعدها تستخدم الـ MagicNo1 بدوال فتح الصفقة
السلام عليكم أخي حسن.
طلبي لحضرتك ان توجهني وتصلح لي الاخطاء, من فضلك, في برمجة اِكسبيرت .
الفكرة : فتح صفقتين الاولى بيع و الثانية شراء في نفس الوقت بلوت 0.01 مثلا.
- تيك بروفيت مثلا20 نقطة لكلتا الصفقتين , بدون ستوب لوس .
-وضع صفقتين معلقتين بلوت مضاعف, واحدة بيع وواحدة شراء ب تيك فروفيت محدد , دون ستوب لوس .
-لما واحدة من الصفقتين تضرب الهدف ,تُلغى الصفقة المعلقة من نفس النوع (اِذا صفقة التي ضربت الهدف كانت شراء فتُلغى صفقة الشراء المعلقة. والعكس) .
- بعد ذلك اِذا ضربت الصفقة الباقية الهدف , تلغى الصفقة المعلقة المتبقية. و يعاود من جديد ( فتح صفقتين و صفقتين معلقتين بيع و شراء).
-أما اِذا فُعِّلت الصفقة المعلقة الثانية , فيضع صفقة معلقة نفس النوع الصفقة المفتوحة بلوت مضاعف ,على بعد 50 نقطة .
-يستمر هكذا حتى تضرب الصفقة الهدف فتغلق جميع الصفقات المفعلة و المعلقة ,او يصل الوت الحد الاقصى المعلن عنه في الاعدادات ,فيغلق الكل.
أنا الان في البداية , أُريد من حضرتك ان تلقي نظرة على الكود هل صحيح , و اِذا كنت علي الطريق الصحيح؟
جزاك الله كل خير.
اشكرك جزيل الشكر يا استاذنا الكريم
اخي الكريم
عرفت اين المشكلة واحببت ان اشرككم بها
وهي للاسف بلا حل في Mql4
the largest number you can have as an int is... 2147483648 which is a 10 digit number.. so anything above that is not going to work right in mt4
الكود الذي كتبته يستخرج ١٣ رقم و اكبر رقم ممكن لنوع انتجر هو ١٠ ارقام
و لقد فهمت ان هذه المشكلة تم حلها في Mql5 و لكني استخدم Mql4 حاليا
لك شكري و تحياتي
وعليكم السلام
أخي الكريم الكود لا يحتوي على أي شروط لتصحيحها!!
المرجو توضيح الفكرة أكثر بصور تخطيطية او من الشارت
شكرا أخي حسن.
الفكرة بسيطة :
-فتح صفقة بيع و صفقة شراء (بلوت 0.01)في آنِِ واحد بهدف صغير (20نقطة مثلا) بدون ستوب لوس.
- وضع صفقة بيع معلقة (0.02) على بعد +50 نقطة , و صفقة معلقة شراء (0.02) على بعد -50نقطة (دائما بهدف 20 نقطة و بدون ستوب).
- لما يتحرك السعر الى اسفل , و تضرب صفقة البيع الهدف (20نقطة) ,تُلغى صفقة البيع المعلقة .
- لما ينزل السعر الى مستوى صفقة الشراء المعلقة تتفعل الصفقة و تُوضع صفقة شراء معلقة جديدة(0.04) على بعد -50 نقطة.
-تستمر العملية هكذا حتى تُحقق صفقة الهدف فتُغلق جميع الصفقات المفتوحة و المعلقة . و يبدأ الاكسبيرت من جديد .
و اذا صعد السعر يكون نفس المبدأ فقط بدل البيع يكون الشراء.
اتمنى أخي الكريم ان اكون توفقت في شرح الفكرة هذه المرة.
تحياتي لك.
ملف مرفق 12120
هذا اصبح طلب اكسبيرت وليس سؤال برمجي !
عموما الكود كالتالي مع شرح كل دالة وشرط
معذرة أخي حسن اِن كان بعض التجاوز في طلبي , لكن أفهم اكثر من خلال الامثلة التطبيقية اكثر , ربما عيب في طريقة عملي , أعتذر مرة أُخرى.
شكرا على كرمك اللا محدود .