2 مرفق
طلب مساعدة فى كيفية تعديل على اكسبيرت
انا حاليا باحاول ان اجرب عمل بعض الاكسبيرتات على موقع ExpertAdvisorBuilder
ولكنى احتاج عند بدء تشغيله ان يسالنى عن عدد الاوردرات المراد فتحها مثل اكسبيرت FXPT_BuySellUnlimitedOrders
وانا عملت اكسبيرت بسيط لمؤشر الماكد وهو شراء فوق خط الزيرو والبيع العكس
وانا اريد ليس فقط التعديل على الاكسبيرت ولكن ارشادى على الكود
وانا ارفقت الاكسبيرتات التى تحدثت عنها
رد:طلب مساعة فى كيفية تعديل على اكسبيرت
اسف ارجو من الاخوة المشرفين ان يغيروا كلمة مساعدة
وشكرا
رد:طلب مساعدة فى كيفية تعديل على اكسبيرت
اقتباس:
المشاركة الأصلية كتبت بواسطة mostafakamal
انا حاليا باحاول ان اجرب عمل بعض الاكسبيرتات على موقع ExpertAdvisorBuilder
ولكنى احتاج عند بدء تشغيله ان يسالنى عن عدد الاوردرات المراد فتحها مثل اكسبيرت FXPT_BuySellUnlimitedOrders
وانا عملت اكسبيرت بسيط لمؤشر الماكد وهو شراء فوق خط الزيرو والبيع العكس
وانا اريد ليس فقط التعديل على الاكسبيرت ولكن ارشادى على الكود
وانا ارفقت الاكسبيرتات التى تحدثت عنها
هذا الكود الخاص بفتح الأمر الشراء مثلا
كود PHP:
Ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLossLevel, TakeProfitLevel, "Buy(#" + MagicNumber + ")", MagicNumber, 0, DodgerBlue);
أنت الآن تريد تحديد للإكسبرت تكرار الأمر أكثر من مره لذلك ستستخدم الحلقه for
ليصبح
كود PHP:
for(int i=1;i<=OrdersNumber;i++)
Ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLossLevel, TakeProfitLevel, "Buy(#" + MagicNumber + ")", MagicNumber, 0, DodgerBlue);
ثم تقوم بتعريف المتغير الخارجي OrdersNumber في أعلى الكود وهو عدد الأوامر
كود PHP:
extern int OrdersNumber=1;
1 مرفق
رد:طلب مساعدة فى كيفية تعديل على اكسبيرت
تفضل اخي مرفق الاكسبرت
الغلط ممكن تعرفه من برنامج metaeditor عند الضغط على compile راح يبين نوع الاخطاء الغلط اللى كان معاك هو int i والاكسبرت فيه int i لذلك يجب تغير i الى اى حرف ثاني لا يجوز تكرارint لنفس الحرف الا فى داله من نوع void فى هذه الدالة ممكن تكرره اكثر من مره فى داله اخري لانها مغلقه
1 مرفق
رد:طلب مساعدة فى كيفية تعديل على اكسبيرت
اقتباس:
المشاركة الأصلية كتبت بواسطة mostafakamal
جزاك الله يا اخى الكريم كل خير
بالفعل الاكسبيرت اشتغل تمام والحمد لله
بقى لى مشكلة وهى عند الاغلاق
حيث ان عند تحول الماكد من تحت الصفر الى اعلى او العكس
بتكون اشارة غلق الاوامر القديمة وفى نفس الوقت فتح اوامر جديدة
ولكن الى حصل معى انه بيفتح اوامر جديدة فى نفس وقت اغلاق الاوامر القديمة
فهل توجد دالة لاعطاء امر الاغلاق اولا لكل الاوردرات ثم فتح الاوامر الجديدة
وشكرا
فى الاكسبرت يقراء الكود من اول استار اذا كان امر الخروج قبل امر الدخول راح تششوفه يغلق قبل ثم يبداء الدخول فى العقود الجديده الا اذا كانت العقود كثيره من الطبيعي تجد تداخل بين الاغلاق والفتح لانه عنده بضع ثواني للفتح والاغلاق
اما فى اكسبرتك مافى اساسا اغلاق على عكس الاشاره كل الاغلاق اللى تشوفه على الاستوب او ملاحقة الربح او الهدف
تفضل اضفت خيار اغلاق على عكس الاشاره مع تفعيل واتعطيل CloseByVolatilitySignal وبعد اضفت التعرف على حسابتات الخماسيه
true تعنى تفعيل خيار اغلاق الصفقات على الاشاره العكسيه
False تعنى تعطيل الخيار
اعمل False الى الاستوب والهدف وملاحقةالربح وشوف لو حصلت مشاكل فى الاغلاق راح تحتاج الى عمل دالة لمعرفة الاوامر المفتوحه وتشترط فى امر الدخول الصفقات اصغر من 1
1 مرفق
رد:طلب مساعدة فى كيفية تعديل على اكسبيرت
اقتباس:
المشاركة الأصلية كتبت بواسطة mostafakamal
نفس المشكلة اخى الكريم
انا كنت باعمل هذه الدالة فى برنامج Forex EA Generator
ولكن للاسف الاكسبيرت لهذا البرنامج بامتداد exe
ولا استطيع التعامل مع الاكواد داخله
ما عملت التعديل فى النسخه السابقه فقط اضفت الخروج عند عكس الاشاره واكواد التعرف على الخماسي
فى هذه النسخه اضفت داله البحث عن الاومر المفتوحه وهي
كود PHP:
int orderscnt(int type){
int cnt=0;
for(int i =0;i<OrdersTotal();i++){
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
if(OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()&&OrderType()==type){
cnt++;
}
}
}
return(cnt);
}
واضفت امر شرط فى امر الشراء لعقود البيع اقل من 1 ونفس الشئ لاومر البيع
كود PHP:
if (orderscnt(OP_SELL)<1&&Buy1_1 < Buy1_2 && Buy2_1 > Buy2_2) Order = SIGNAL_BUY;
if (orderscnt(OP_BUY)<1&&Sell1_1 > Sell1_2 && Sell2_1 < Sell2_2) Order = SIGNAL_SELL;
هذه احد الحلول
ملاحظه اخي تعتبر اكسبرتات مستر دولار الافضل من حيث الاداء ليش ما تنسخ اومر الدخول فى احد اكسبرتات مستر دولار
اضافة اكسبيرت خدمي الى اكسبيرت اخر
مرحبا اخواني
ممكن اي احد يعرف بالبرمجة بس يدلني اقدر اضيف اكسبيرت خدمي الى الاكسبيرت الخاص بي مع العلم انو الاكسبيرت الخاص بي والاكسبيرت الخدمي بصيغة mq4.
وشكرا لكم