2 مرفق
رد:موضوع مخصص للأسئلة البرمجية
اقتباس:
المشاركة الأصلية كتبت بواسطة MR.dollar
قم بإستخدام print لطباعة قيم أسعار الدخول والهدف الأستوب لوز حتى تتأكد من المشكله في هذا الجزء
بما أن الخطأ في الأمر OrderSend فقم بالبحث في هذا الجزء لمحاولة حل المشكله
تأكد إذا كان البروكر من نوع ECN يجب أن تتأكد أن تقوم بفتح الصفقه بدون هدف واستوب لوز ثم عمل مودفاي للأوامر ووضع الهدف والأستوب لوز
استاذ اسامة انا وضعت بالفعـل أمر لعمل مودفاي للأوامر ووضع الهدف والأستوب لوز ، وبحثت فـ جزء OrderSend ولم أجد أخطـاء !! ووضعت أمر لتنبيه بظهور الخطـأ وايضـا سعر الدخول وظهرت الرسالة بالشكل التالى ..
https://forum.arabictrader.com/attac...0&d=1339251017
ماذا أفعل بعد ذلك !!
رد:موضوع مخصص للأسئلة البرمجية
اقتباس:
المشاركة الأصلية كتبت بواسطة MR.dollar
أي إكسبرت يحسب الهدف بعد خصم الإسبريد فعندما تحسب الهدف لصفقات الشراء فأنت تضع سعر الأسك + الهدف وعندما تحسب الهدف لصفقة البيع فأنت تضع سعر البيد - الهدف
ظهور خطأ 1 يعني أن الإكسبرت يحاول عمل مودفاي للأمر لكن الهدف والأستوب هم نفسهم لم يتغيروا أي لا توجد قيمة جديده سيتم وضعها للصفقه بالتالي لا يوجد داعي لعمل مودفاي للأمر
لتجنب هذا الخطأ قارن أولا هل الهدف الجديد أو الأستوب الجديد لا يساوي الأستوب السابق
كود PHP:
if(tp!=OrderTakeProfit()||sl!=OrderStopLoss())
{
// modify order
}
تم التعديل ولى سؤال بخصوص عدد ثوانى الإنتظار فـ أمر Sleep هل يمكن وضعهـا 10 أو 100 بدلا من 2000 وهل قد يؤدى ذلك لتهنيج فـ المنصة لوضع رقم مثل 10 أو 100 ، وما هو أقل رقم يمكن وضعه فـ أمر Sleep حتى أتأكد من عدم حدوث مشاكل او تهنيج للمنصة او الاكسيبرت !!
رد:موضوع مخصص للأسئلة البرمجية
اقتباس:
المشاركة الأصلية كتبت بواسطة MR.dollar
يمكنك وضعه كما تريد أو يمكنك حذف الأمر Sleep تماما وسوف يكرر المحاوله بدون توقف قليلا
يجب أن تلاحظ أن 1000 تعني 1 ثانيه
نعم أعلم أن 1000 تعني 1 ثانيه ، ولكن ماقصدته هو ان اضع زمن تكرار المحاولة أقل زمن ممكن لأنى أعتقد ان مشكلة إعادة التسعير او تحرك السعر بسرعة اثناء فتح الصفقة هى السبب فـ ظهور رسالة الخطـأ على منصة fxdd malta وأريد تجربة أقل زمن ممكن قد يساعد فـ حل مشكلة ظهور رسالة الخطـأ ، وسوف أجرب رقم 1 أى 1 من 1000 ثانية وأخبرك النتيجة .
اقتباس:
المشاركة الأصلية كتبت بواسطة MR.dollar
كود PHP:
if(ticket<0)Alert("Order Send Error "+GetLastError(),"open price for the order"+OrderOpenPrice());
أنت تريد معرفة أسعار الدخول والهدف والخروج سوف تضع في التنبيه
كود PHP:
if(ticket<0)Alert("Order Send Error "+GetLastError(),"open price for the order"+NormalizeDouble(Ask,digits));
سوف أقوم بإضافة التعديل ولكن لى سؤال ، ما الفائدة من معرفة أسعار الدخول والهدف والخروج طالمـا انه لايفتح الصفقة من الاساس وتظهر رسالة الخطـأ !!
رد:موضوع مخصص للأسئلة البرمجية
استاذ اسامه جربت هذا الكود وهو للاستاذ وضاح عطار عن الانفجار السعري ولكن في شيئ خطئ بالتاكيد
wag=iCustom(NULL,0,"Waddah_Attar_Explosion",Senset ive,DeadZonePip,ExplosionPower,TrendPower,true,6,t rue,true,true,true,0,1);
انا فقط اريد معرفه اذا كانت الاشاره شراء او بيع يعني اللون الاخضر او الاحمر بغض النظر عن الخط الاصفر
بصراحه مش عارف كيف ارفع الصوره او المؤشر لكن بتمنا تكون بتعرف مؤشر الاخ وضاح العطار
رد:موضوع مخصص للأسئلة البرمجية
السلام عليكم أخي أسامه ...
لو سمحت أخي كنت أريد داله تحسب آخر صفقه مغلقه بحيث أضع في الشرط مثلا إذا كانت آخر صفقه مغلقه أغلقت على ربح أقوم بفتح شراء أو بيع ...
وبارك الله فيك
رد:موضوع مخصص للأسئلة البرمجية
اقتباس:
المشاركة الأصلية كتبت بواسطة MR.dollar
كود PHP:
if(ticket<0)Alert("Order Send Error "+GetLastError(),"open price for the order"+OrderOpenPrice());
أنت تريد معرفة أسعار الدخول والهدف والخروج سوف تضع في التنبيه
كود PHP:
if(ticket<0)Alert("Order Send Error "+GetLastError(),"open price for the order"+NormalizeDouble(Ask,digits));
وضعت فـ التنبيه الكود التالى ..
كود PHP:
if(ticket<0)Alert("Order Send Error "+GetLastError(),"||","open price for the order"+NormalizeDouble(Ask,digits),"||","Order Take Profit"+NormalizeDouble(TP,digits),"||","Order Stop Loss"+NormalizeDouble(SL,digits));
ومثله للبيع مع تغيير Ask ، هل التعديل صحيح
ولى ملحوظة انا وضعت التارجت والاستوب مسبقـا بـ 0 فـ أمر OrderSendحتى يتم تعديل التارجت والاستوب بأمر مودفاى بالشكل التالى
كود PHP:
ticket=OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(Ask,digits),slippage*Q,0,0," EA",MagicNumber,0,Blue);
ولذلك سوف يظهر دائمـا فـ التنبيه ان التارجت والاستوب بـ 0 !!
وسؤال آخر ، ما الفرق بين استخدام أمر
كود PHP:
"open price for the order"+OrderOpenPrice()
و
كود PHP:
"open price for the order"+NormalizeDouble(Ask,digits)
ولماذا لا استخدم الأمر الأول فـ التنبيه !!
رد:موضوع مخصص للأسئلة البرمجية
اقتباس:
المشاركة الأصلية كتبت بواسطة MR.dollar
كمثال بسيط
كود PHP:
for(int i=1;i<=14;i++){
double c=Close[i]-Close[i+1];
}
طبعا ستقوم بتغيير طريقة حفظ القيم حسب ما تريد من الكود
أستاذ أسامة بارضوة مش عارف أوصل للي أنا عاوزة
أنا عايز أطلع مجموع الفرق بين إغلاقات الشموع للـ 14 شمعة الماضية مثلا على اليورو
وبالنسبة للإستخدام فرضاً هستخدمها إنها تظهر في كومنت
كود PHP:
for(int i=1;i<=barscount;i++){
double e;
EURUSDt=iClose("EURUSD"+add_char,TIMEFRAME,i)-iClose("EURUSD"+add_char,TIMEFRAME,i+1);
e+=EURUSDt;
}