1 مرفق
رد:موضوع مخصص للأسئلة البرمجية
اقتباس:
المشاركة الأصلية كتبت بواسطة MR.dollar
بما أنك تريد التحكم في المضاعفات فسوف تستخدم شرط إذا كان عدد الصفقات أقل من العدد المحدد
فمثلا إذا كنت تريد أقصى عدد 3 مضاعفات فسوف تستخدم الشرط
كود PHP:
if(MyOrdersTotal(Magicnumber)<4)
4 = الصفقة الرئيسيه + الثلاث صفقات المضاعفات
مشكلة عدم فتح الصفقات في اليوم التالي فأكيد لن يفتحها بما أنه ما زال هناك صفقات مفتوحه في اليوم الذي قبله
لأنك وضعت الشرط
كود PHP:
MyOrdersTotal(Magicnumber)+MyOrdersTotal(Magicnumber2)==0
فسوف تقوم بحذف هذا الشرط
بالنسبه للنقطه الثانيه فما الخطأ الذي يظهر ولا ينفذ ما ذكرته
تنحل مشكله تاتي اخرى يعني بعد حذ ف الشرط بقى يفتح العقديين الاساسيين ولكن المشكله التي ظهرت لايضاعف اذا تفعل امر ما فقط يصاعف اول امر يتفعل واذا تفعل امر اخر لايضاعف كمان لو تفعلت اوامر المضاعفه الاولى لايضاعف المضاعف الثانيه ...
ياريت تجرب الاكسبيرت عندك وتجعله يعمل حسب الفكره تماما ...... الفكره مشروحه اكثر من مره..اتمنى ان اكون قد اوصلت الفكره وفهمت مااريد
3 مرفق
رد:موضوع مخصص للأسئلة البرمجية
السلام عليكم ورحمة الله
أستاذي أسامة فضلا اريد معرفة دالة استخراج الأوبجيكت من مؤشر ليس فيه انديكسات الألوان ، حاولت التطبيق من قراءة موقع mq4 فوجدت جمل برمجية لكن واجهتني صعوبة في التطبيق ، ارفقت لك ثلاث مؤشرات احدها iPanel_Trend عايز احدد فيه متى يكون الترند صاعد بنسبة 70% مثلا للشراء وعكسها للبيع ، ياريت تتفضل بعمل دالة في اكسبيرت كنموذج كامل لأستخراج الأوبجيكت حتى استخدمها في اكسبيرتاتي في شرط التنفيذ للصفقات . شكرا لك
1 مرفق
رد:موضوع مخصص للأسئلة البرمجية
اخ اسامه بعد الكثير من المحاولات وجدت ان استخدم لكل مضاعفه رقم ماجيك نمبر خاص حتى اميزها عن الاخرى تقريبا 70% يعمل حسب الفكره ولكن لاحظت انها مثلا عند ما تتفعل المضاعف الاولى يقوم بفتح عقود مشابه لعقود المضاعفه الاولى والمفروض ان تكون العقود عكس وليست مشابه.
رد:موضوع مخصص للأسئلة البرمجية
اقتباس:
المشاركة الأصلية كتبت بواسطة al_naser
اخ اسامه بعد الكثير من المحاولات وجدت ان استخدم لكل مضاعفه رقم ماجيك نمبر خاص حتى اميزها عن الاخرى تقريبا 70% يعمل حسب الفكره ولكن لاحظت انها مثلا عند ما تتفعل المضاعف الاولى يقوم بفتح عقود مشابه لعقود المضاعفه الاولى والمفروض ان تكون العقود عكس وليست مشابه.
لاحظ في الشروط التي وضعتها لفتح المضاعفات
كود PHP:
LastOrdertype(Magicnumber)==OP_SELL
والشرط الآخر
كود PHP:
LastOrdertype(Magicnumber1)==OP_SELL
في حين أن بعض الصفقات المضاعفه تضع لها الماجيك نمبر Magicnumber2
كود PHP:
ticket1=OrderSend(Symbol(),OP_BUYSTOP,LastLot( Magicnumber1)*2,NormalizeDouble(BuyPrice1,Digits),3,BuySL1,BuyTP1,comment,Magicnumber2,0,Green);
وهذا قد يسبب الخطأ
أيضا السبب لديك ليس في كود المضاعفات لكن المشكله في أنك تستخدم خيار فتح الصفقات الرئيسيه حتى لو كان هناك صفقات أخرى مفتوحه
وهذا الكود سيسبب مشاكل عند إستخدام المضاعفات لمعرفة آخر صفقه تم فتحها
لحل هذه المشكله
في كل مره تقوم بتفح صفقه رئيسيه تجعل لها ماجيك نمبر أو مثلا كومنت مختلف عن أي صفقه رئيسيه أخرى
حتى عندما تبدأ المضاعفات تكون لكل صفقه رئيسيه مضاعفه خاصه بها
رد:موضوع مخصص للأسئلة البرمجية
اقتباس:
المشاركة الأصلية كتبت بواسطة Jmeel
السلام عليكم ورحمة الله
أستاذي أسامة فضلا اريد معرفة دالة استخراج الأوبجيكت من مؤشر ليس فيه انديكسات الألوان ، حاولت التطبيق من قراءة موقع mq4 فوجدت جمل برمجية لكن واجهتني صعوبة في التطبيق ، ارفقت لك ثلاث مؤشرات احدها iPanel_Trend عايز احدد فيه متى يكون الترند صاعد بنسبة 70% مثلا للشراء وعكسها للبيع ، ياريت تتفضل بعمل دالة في اكسبيرت كنموذج كامل لأستخراج الأوبجيكت حتى استخدمها في اكسبيرتاتي في شرط التنفيذ للصفقات . شكرا لك
وعليكم السلام ورحمة الله وبركاته
بشكل عام الدوال المسئوله عن إستدعاء كائن من على الشارت
كود PHP:
ObjectGet( string name, int index)
حيث name هو إسم الكائن
index هو خاصية الكائن التي تريد إستدعائها
مثلا خط على الشارت إسمه line1
لإستدعاء سعر الخط الحالي
كود PHP:
double price=ObjectGet(line1,OBJPROP_PRICE1);
لإستدعاء لون الخط
كود PHP:
double price=ObjectGet(line1,OBJPROP_COLOR);
مثلا لو كان ترند فسوف يكون لها نقطة بدايه ونهاية فسوف يكون
كود PHP:
double price1=ObjectGet(line1,OBJPROP_PRICE1);
double price2=ObjectGet(line1,OBJPROP_PRICE2);
لو مثلا أريد تحديد توقيت البدايه والنهايه للترند
كود PHP:
datetime time1=ObjectGet(line1,OBJPROP_TIME1);
datetime time2=ObjectGet(line1,OBJPROP_TIME2);
لو مثلا كان الترند شعاع وأريد معرفة السعر عند أي شمعه أحددها كم قيمة الترند أستخدم
كود PHP:
double price=ObjectGetValueByShift(line1,0)
الرقم 0 هو رقم الشمعه
في المؤشر الذي أرفقته
أولا أريد معرفة إسم الكائن على الشارت
نسبة الشراء إسم الكائن Trend_UP_value
ونسبة البيع إسم الكائن Trend_DOWN_value
ثانيا أريد معرفة القيم التي تأخذها
سوف نستخدم الداله
كود PHP:
ObjectDescription
وهي تعود بالتكست وتستخدم للكائن من نوع OBJ_LABEL أو OBJ_TEXT
فسوف يكون الكود
كود PHP:
string buypercent=ObjectDescription("Trend_UP_value");
لكن يجب أن أقوم بتحويل الكود من نص إلى أرقام حتى تكون المقارنه صحيحه عند إستخدامها
كود PHP:
double percentNumber=StrToDouble(StringSubstr(buypercent,0,StringLen(buypercent-1)));
وسوف تستخدم نفس الطريقة بالنسبه للبيع
2 مرفق
رد:موضوع مخصص للأسئلة البرمجية
السلام عليكم ورحمة أستاذي أسامة
عملت اكسبيرت عشان يظهر الأندكس للمؤشر المرفق وايضا ارفقت الأكسبيرت ، المشكلة ان قيم الخطين كل يوم بتتغير ، فضلا عدل لي الأكسبيرت وأشرح كيف التعامل والخطين متغيرة ؟؟ وشكرا .
1 مرفق
رد:موضوع مخصص للأسئلة البرمجية
من فضلك اخوي اسامه اريد دمج المؤشر اسفل في اكسبيرت، كيف يمكن كتابة الكود:
ادا كانت شمعه 1 زرقاء يعطي true
ادا كانت شمعه 1 حمراء يعطي false
لون الشمعه يؤخذ من فريم نص ساعه
كود PHP:
double haOpen11=iCustom(NULL,Heiken_Ashi_TIME_FRAME,"Heiken_Ashi_Smoothed_Alert[1]",1,2);
double haOpen22=iCustom(NULL,Heiken_Ashi_TIME_FRAME,"Heiken_Ashi_Smoothed_Alert[1]",3,2);
double haClose1=iCustom(NULL,Heiken_Ashi_TIME_FRAME,"Heiken_Ashi_Smoothed_Alert[1]",0,1);
double haClose2=iCustom(NULL,Heiken_Ashi_TIME_FRAME,"Heiken_Ashi_Smoothed_Alert[1]",2,1);
double haClose11=iCustom(NULL,Heiken_Ashi_TIME_FRAME,"Heiken_Ashi_Smoothed_Alert[1]",0,2);
double haClose22=iCustom(NULL,Heiken_Ashi_TIME_FRAME,"Heiken_Ashi_Smoothed_Alert[1]",2,2);
كود PHP:
if(haOpen2>haClose2&&haOpen22<haClose22){
signal=false;}
if(haOpen2<haClose2&&haOpen22>haClose22){
signal=true}
سويت هذا لكن ما اعرف وين الخطأ