النتائج 1 إلى 3 من 3
الموضوع: طلب مساعدة فى تعديل إكسبيرت
- 23-06-2010, 11:58 AM #1
طلب مساعدة فى تعديل إكسبيرت
السلام عليكم ورحمه الله وبركاته
لدى إكسبيرت وضع الأوامر المعلقه فى وقت معين , عند تفعيله يضع أمرين sale stop وbuy stop على بعد عدد نقاط يتم تحديده من سعر السوق والمشكله هى إنى عايزو يضع الأوامر فى الوقت المحدد ومش عايزو يعمل اى حاجه تانيه خالص لأنه بيستمر فى وضع الاوامر وكمان بيفتح صفقات لوحده لما سعر السوق يصادف أسعار الأوامر المعلقه السابقه
وكل اللى أنا طالبه إنه يكون كل وظيفته إنه يضع الأمرين فى الدقيقه المحددة وبعد كده يقفل نفسه كأنه مش موجود .
الإسكريبت :
كود://+------------------------------------------------------------------+ //| m-e-c_biz_Pending_Orders_EA_V1.mq4 | //| Copyright © 2010 m-e-c.biz | //| http://m-e-c.biz | //+------------------------------------------------------------------+ #property copyright "Copyright © 2010 m-e-c.biz" #property link "http://m-e-c.biz" //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ //خصائص الاكسبيرت extern int Pips=50;// الفرق بالنقاط بين سعر الاغلاق وسعر وضع الاوامر المعلقة extern int hour = 0;// ساعة وضع الاوامر extern int minute = 15;// دقيقة وضع الاوامر extern int TakeProfit=20;// الهدف extern int StopLoss=20;// الوقف extern double Lots=0.1;// اللوت extern int MagicNumber = 123456;// الماجيك نمبر int init() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { //---- if (Hour()==hour && Minute()>=minute) { string Name="m-e-c_biz_Pending_Orders_EA_V1"; Comment(Name); double b= iClose(Symbol(),PERIOD_M15,1)+Pips*Point; double s= iClose(Symbol(),PERIOD_M15,1)-Pips*Point; if (StopLoss>0) { double bsl=b-StopLoss*Point; double ssl=s+StopLoss*Point; } else { bsl=0; ssl=0; } if (TakeProfit>0) { double bt=b+TakeProfit*Point; double st=s-TakeProfit*Point; } else { bt=0; st=0; } if (MyBuyPendingOrdersTotal(MagicNumber)==0) OrderSend(Symbol(),OP_BUYSTOP,Lots,b,3,bsl,bt,Name,MagicNumber,0,Green); if (MySellPendingOrdersTotal(MagicNumber)==0) OrderSend(Symbol(),OP_SELLSTOP,Lots,s,3,ssl,st,Name,MagicNumber,0,Red); } if (MyBuyRealOrdersTotal(MagicNumber)>0) DeleteSellPendingOrders(MagicNumber); if (MySellRealOrdersTotal(MagicNumber)>0) DeleteBuyPendingOrders(MagicNumber); //---- return(0); } //+------------------------------------------------------------------+ // وظيفة لحساب عدد الصفقات الحالية الشراء int MyBuyRealOrdersTotal(int Magic) { int c=0; int total = OrdersTotal(); for (int cnt = 0 ; cnt < total ; cnt++) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && (OrderType()==OP_BUY)) { c++; } } return(c); } // وظيفة لحساب عدد الصفقات الحالية للبيع int MySellRealOrdersTotal(int Magic) { int c=0; int total = OrdersTotal(); for (int cnt = 0 ; cnt < total ; cnt++) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && (OrderType()==OP_SELL)) { c++; } } return(c); } // وظيفة لحساب عدد صفقات الشراء المعلقة فقط int MyBuyPendingOrdersTotal(int Magic) { int c=0; int total = OrdersTotal(); for (int cnt = 0 ; cnt < total ; cnt++) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && (OrderType()==OP_BUYSTOP || OrderType()==OP_BUYLIMIT )) { c++; } } return(c); } // وظيفة لحساب عدد صفقات البيع المعلقة فقط int MySellPendingOrdersTotal(int Magic) { int c=0; int total = OrdersTotal(); for (int cnt = 0 ; cnt < total ; cnt++) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && (OrderType()==OP_SELLSTOP || OrderType()==OP_SELLLIMIT)) { c++; } } return(c); } // وظيفة لحذف صفقات الشراء المعلقة void DeleteBuyPendingOrders(int Magic) { int total = OrdersTotal(); for (int cnt = total - 1; cnt >= 0; cnt--) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && (OrderType()==OP_BUYSTOP || OrderType()==OP_BUYLIMIT)) { OrderDelete(OrderTicket()); } } return(0); } // وظيفة لحذف صفقات البيع المعلقة void DeleteSellPendingOrders(int Magic) { int total = OrdersTotal(); for (int cnt = total - 1; cnt >= 0; cnt--) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && (OrderType()==OP_SELLSTOP || OrderType()==OP_SELLLIMIT)) { OrderDelete(OrderTicket()); } } return(0); }
شكرا مقدما للجميع.
- 23-06-2010, 02:59 PM #2
رد: طلب مساعدة فى تعديل إكسبيرت
هذا الإكسبرت حسب ما يبدو للمهندس الفاضل وجدي الأفضل أن تطلب التعديل منه مباشرة ولن يتأخر بإذن الله
- 23-06-2010, 04:30 PM #3
المواضيع المتشابهه
-
طلب تعديل بسيط على إكسبيرت
By dawns_mist in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 13آخر مشاركة: 24-02-2023, 10:49 PM -
مساعدة مع إكسبيرت fx robot
By wssw2000 in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 2آخر مشاركة: 13-06-2010, 09:00 PM -
مساعدة: و لا إكسبيرت إشتغل معي
By ابو عبدالله المسلم in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 5آخر مشاركة: 01-02-2008, 12:55 AM