سؤال برمجي عاجل الي مستر دولار
سامحني يا مستر دولار لكن عندي سؤالين
الاول
اي من الدول تنفذ لي هذا الامر
المتغيرات
Q = عدد الصفقات بعد ظهور الاشارة في نفس الاتجاه
TM = المده التي تلي اغلاق اخر صفقة ولا يقوم فيها الاكسبرت يتنفيذ اي صفقة حتى لو ظهرت الف اشارة
اذا ظهرت اشارة البيع مثلا ينفذ الصفقة الاولي ثم اغلاقها علي تيك برفت
اذا استمرت الاشارة في الظهور او ظهرت اشارة جديدة بعدها ينفذ صفقة اخري بحد اقصى Q بعدها ينام المده الموجوده في TM بعد انتهاء المده يبحث عن اشارة جديده
مع العلم ان المطلوب ينفذ ذلك في كل من البيع والشراء
ويرجي الشرح بالتفصيل
الثاني
عندك مثلا المؤشر المرفق GMACD signsl يعطي علي الشارت في نافذه مستقلة كلمات نصية في حالة توفر بعض الشروط
مثل TRENDUP و TRENDDOWN كيف استدعي هذه القيمة في الاكسبرت اكثر من قيمة في نفس الوقف
وجزاك الله خير
وجزاك الله خير
1 مرفق
رد: سؤال برمجي عاجل الي مستر دولار
أولا تحتاج إلى عمل دالة لمعرفة الفرق بين توقيت آخر صفقة تم فتحها وبين التوقيت الحالي
كود PHP:
bool CloseTrade(){
int tradetime=0;
if(OrdersTotal()>0){
for(int i=OrdersHistoryTotal();i>=0;i--){
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber ){
tradetime=TimeCurrent()-OrderOpenTime();
if(tradetime>=TimeOut*60*60)return(false);
else return(true);
}
}
}
}
المتغير TimeOut هو عدد الساعات التي سيتوقف الإكسبرت بعدها عن فتح الصفقات ويمكنك مراجعة الإكسبرت المرفق إستخدمت فيه هذا الكود
لكن بقي الآن أن تحسب عدد الصفقات التي يتم فتحها قبل إيقاف الإكسبرت الوقت المحدد الطريقه البسيطه يمكنك تعريف متغير خارج الداله start
ثم مع كل مره يتم فتح صفقه فيها سوف تزيد قيمة المتغير Q
كود PHP:
if(OpenOrder){
Q++;
}
الآن ستعيد ترتيب شروط إيقاف الإكسبرت
كود PHP:
if(CloseTrade()&&Q==10){
Q=0;
return(0);
}
وتجعل قيمة Q=0 حتى نبدأ من جديد
بالنسبة للسؤال الثاني فسوف تستخدم الداله ObjectGet وهذه الكتابات يكون لها إسم محدد فسوف تجعلها بهذا الشكل على سبيل المثال
كود PHP:
if(ObjectGet(Name)=="TRENDDOWN")//Open Buy
لكن طبعا يجب أن يتم وضع المؤشر على الشارت حتى عند عمل باك تست لأن هذه الداله تقوم بإستدعاء هذه القيم من على الشارت
رد: سؤال برمجي عاجل الي مستر دولار
مشكور جدا يا غالي وجاري التجربة