-
عضو جديد
جزاك الله خيرا يا استاذي
لكن الداله كما تري استعملت لتحويل متغير سترنج اسمه MagicString و هو متغير وليس نص تم تعريفه ك string
و لماذا يعمل نفس الكود اذا وضع في الداله الرئيسيه كالتالي ؟
التعديل الأخير تم بواسطة ahmedsisy ; 08-02-2019 الساعة 05:45 PM
-
لم افهم ما هو الاشكال ! فالكود بمشاركتك الاخيرة سليم
الدالة MAGIC_NO_Gen يجب أن تكون من نوع string لأنها تنتج لنا عدد نصي وليس صحيح
ثم تقوم بتحويلها الى عدد نصي لكي تستخدمه بماجك نمبر الصفقة والذي عبارة عن عدد صحيح
-
عضو جديد
مشكور يا استاذي وبارك الله فيك
كنت ارغب في انتاج الرقم النهائي بعد تحويله الي رقم داخل الداله الفرعية و استخدامه مباشرة بعد ذلك و لكن لسبب اجهله يجب ان تكون الداله من نوع string و تتحول الي رقم في الدالة الرئيسية
جزاك الله خيرا وفيت و كفيت
-
فهمت الاشكال أن النتيجة غير متساوية بين الصيغة الأولى والثانية للكود وهذا طبيعي
فالصحيح الصيغة الأولى للكود، لأنها تعمل ضمن مجال المصفوفة chararray
-
عضو جديد
chararray وظيفتها كما افهم تنتهي عند الامر StringAdd
حيث يحصل المتغير MagicString علي مابداخل المصفوفة
الخطا يحدث بين السطرين برنت ٣ وبرنت٤ اي عند التحويل
علي اي حال اشكرك جزيل الشكر
-
عضو جديد
اخي الكريم
عرفت اين المشكلة واحببت ان اشرككم بها
وهي للاسف بلا حل في 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 نقطة لكلتا الصفقتين , بدون ستوب لوس .
-وضع صفقتين معلقتين بلوت مضاعف, واحدة بيع وواحدة شراء ب تيك فروفيت محدد , دون ستوب لوس .
-لما واحدة من الصفقتين تضرب الهدف ,تُلغى الصفقة المعلقة من نفس النوع (اِذا صفقة التي ضربت الهدف كانت شراء فتُلغى صفقة الشراء المعلقة. والعكس) .
- بعد ذلك اِذا ضربت الصفقة الباقية الهدف , تلغى الصفقة المعلقة المتبقية. و يعاود من جديد ( فتح صفقتين و صفقتين معلقتين بيع و شراء).
-أما اِذا فُعِّلت الصفقة المعلقة الثانية , فيضع صفقة معلقة نفس النوع الصفقة المفتوحة بلوت مضاعف ,على بعد 50 نقطة .
-يستمر هكذا حتى تضرب الصفقة الهدف فتغلق جميع الصفقات المفعلة و المعلقة ,او يصل الوت الحد الاقصى المعلن عنه في الاعدادات ,فيغلق الكل.
أنا الان في البداية , أُريد من حضرتك ان تلقي نظرة على الكود هل صحيح , و اِذا كنت علي الطريق الصحيح؟
جزاك الله كل خير.
-
وعليكم السلام
أخي الكريم الكود لا يحتوي على أي شروط لتصحيحها!!
المرجو توضيح الفكرة أكثر بصور تخطيطية او من الشارت
-
شكرا أخي حسن.
الفكرة بسيطة :
-فتح صفقة بيع و صفقة شراء (بلوت 0.01)في آنِِ واحد بهدف صغير (20نقطة مثلا) بدون ستوب لوس.
- وضع صفقة بيع معلقة (0.02) على بعد +50 نقطة , و صفقة معلقة شراء (0.02) على بعد -50نقطة (دائما بهدف 20 نقطة و بدون ستوب).
- لما يتحرك السعر الى اسفل , و تضرب صفقة البيع الهدف (20نقطة) ,تُلغى صفقة البيع المعلقة .
- لما ينزل السعر الى مستوى صفقة الشراء المعلقة تتفعل الصفقة و تُوضع صفقة شراء معلقة جديدة(0.04) على بعد -50 نقطة.
-تستمر العملية هكذا حتى تُحقق صفقة الهدف فتُغلق جميع الصفقات المفتوحة و المعلقة . و يبدأ الاكسبيرت من جديد .
و اذا صعد السعر يكون نفس المبدأ فقط بدل البيع يكون الشراء.
اتمنى أخي الكريم ان اكون توفقت في شرح الفكرة هذه المرة.
تحياتي لك.
التعديل الأخير تم بواسطة benaissa ; 10-02-2019 الساعة 03:18 PM
ضوابط المشاركة
- لا تستطيع إضافة مواضيع جديدة
- لا تستطيع الرد على المواضيع
- لا تستطيع إرفاق ملفات
- لا تستطيع تعديل مشاركاتك
-
قوانين المنتدى
العلامات المرجعية