النتائج 1 إلى 9 من 9
الموضوع: اكسبرت يغلق صفقات اكسبرت اخر
- 27-02-2018, 07:16 PM #1
اكسبرت يغلق صفقات اكسبرت اخر
السلام عليكم ,,
مطلوب اكسبرت (A) يغلق صفقات اكسبرت (B) في حالة ان اكسبرت (B) فتح عقد مثلا بقيمة لوت 0.11 يقوم الاكسبرت (A) بإغلاق جميع الصفقات اذا ادخل المستخدم قيمة 0.11 في الاكسبرت A
خصائص اكسبرت A
1- lot size to close all orders = user input double
2- All pairs = true/false
3- Magic number للتحكم في اكسبرت يحمل ماجيك نمبر
هذا .. وشكراً لكم
- 28-02-2018, 08:07 AM #2
آخر تعديل بواسطة السمحان ، 28-02-2018 الساعة 08:13 AM
- 28-02-2018, 01:33 PM #3
اهلا اخي سمحان
حجم اللوت لاي نوع صفقه بيع ام شراء ام الاثنين
أغلاق جميع صفقات الاكسبرت المفتوحة على شارت اليورو سواء كانت شراء او بيع
وماالمفصود
2- All pairs = true/false
تقصد يغلق صفقات الشارت ام كل الصفقات ام الصفقات المحدده بالماجيك
أما اذا القيمة false يعتمد على الشارت الموضوع عليه مثلا يورو دولار = يدير صفقات اليورو دولار فقط
أما اذا تم تحديد ماجيك نمبر فأنه يستغني عن الخيارات بالاعلى و يدير الصفقات بالمجيك نمبر نفسه
- 28-02-2018, 01:38 PM #4
مثال بالصورة بالمرفقات
حالما تصل الامضاعفات إلى 0.11 اريد من الاكسبرت A اغلاق جميع الصفقات :
0.01
0.02
0.03
0.04
0.05
0.06
0.07
0.08
0.09
0.10
0.11 <عند الوصول الى هذه المضاعفة يغلق الاكسبرت A جميع الصفقات السابقة من 0.01 إلى 0.11
- 01-03-2018, 02:20 PM #5
- 01-03-2018, 05:39 PM #6
- 02-03-2018, 04:45 PM #7
تفضل هذا الكود لاحد المبرمجين من منتدى مجاور
كود://+------------------------------------------------------------------+ //| CloseDeleteAll_MagicNumber.mq4 | //| Copyright 2013, MetaQuotes Software Corp. | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "samir arman Copyright 2013," #property link "[email protected]" input double LOT_Close=0.11; extern int MagicNumber; int init() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { if(LO()>=LOT_Close)CloseDeleteAll(); Comment(LO()); return(0); } //+------------------------------------------------------------------+ bool CloseDeleteAll() { int total = OrdersTotal(); for (int cnt = total-1 ; cnt >=0 ; cnt--) { if(OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES)) { if(OrderMagicNumber()== MagicNumber){ switch(OrderType()) { case OP_BUY : { if(!OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),0,Violet)) return(false); }break; case OP_SELL : { if(!OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),0,Violet)) return(false); }break; } if(OrderType()==OP_BUYSTOP || OrderType()==OP_SELLSTOP || OrderType()==OP_BUYLIMIT || OrderType()==OP_SELLLIMIT) if(!OrderDelete(OrderTicket())) { Print("Error deleting " + OrderType() + " order : ",GetLastError()); return (false); } } } } return (true); } double LO(){ double pr_2=0; for(int p=0;p<OrdersTotal();p++){ if(OrderSelect(p,SELECT_BY_POS,MODE_TRADES)) if(OrderMagicNumber()==MagicNumber){ pr_2=pr_2+OrderLots(); } }return(pr_2); }
1- عند وضع قيمة "0" في خانة الماجيك نمبر يدير كل الصفقات
2- الاكسبرت يقوم بجمع لوتات الشراء و البيع و عند وصولها إلى 0.11 يغلق كل الصفقات و هذا غير المرغوب
المطلوب ان يقوم بمراقبة اللوتات كلا على حدى Buy / Sell و كل عملة لوحدها
مثلا اليورو وصل عقد البيع 0.10 , و الباوند عقد البيع 0.01 لا تيم الجمع بينهم و هكذا كل عملة لوحدها
بمجرد فتح عقد على اليورو0.11 سواء كان بيع او شراء يتم اغلاق جميع العقود البيع و الشراء و هكذا لبقية العملات
- 08-03-2018, 12:41 AM #8
السلام عليكم ورحمة الله وبركاته
الموضوع جيد
وأرغب بعمل فكرة مماثلة
مثلا إذا أصبح عدد الأوامر في افكسبيرت A مثلا 8 أوامر
يقوم الإكسبيرت B وهو المطلوب إنتاجه بإغلاق جميع الصقات إذا أصبح الربخ مبلغ معين بالدولار
- 08-03-2018, 09:29 PM #9