![]() |
لو سمحت اول مره اطلب اكسبريت ممكن حد يساعدني؟
هاي لو سمحتم عايزه اكسبريت يضع امر شراء و بيع sell stop and buy stop ويضع الاوامر دي معلقة على مسافة 10 نقاط بالنسبه للبيع و12 نقطة بالنسبة للشراء من سعر افتتاح شمعة الساعة 22:00 وياريت لو اقدر اغير توقيت الشمعة زي ما انا عايزه والهدف 10 نقط والاستوب لوس 20 open price+12 = BUY STOP ORDER open price-10 = SELL STOP ORDER TP=10pip SL=20pip ويا سلام لو عند تفعيل احد الاوامر يتم وضع الامر الملعق الغير مفعل عند نقطة وقف الخسارة للامر المفعل وإذا تحقق هدف الأمر المفعل يتم إلغاء الامر الاخر المعلق |
رد: لو سمحت اول مره اطلب اكسبريت ممكن حد يساعدني؟
بلاش الشرط ده لأن ملوش لازمه
اقتباس:
|
رد: لو سمحت اول مره اطلب اكسبريت ممكن حد يساعدني؟
ان شاء الله احاول برمجته وانا كنت من متتبعي هذه الاستراتجية وهي جيدة في اغلب الاحيان
هل الاكسبريت يبدء عمله مع افتتاح اليوم الجديد يعني بعد تحديد الهاي واللو ل 22 لليوم السابق وينتهي عمله قبل الساعة 22 بساعة ؟؟؟؟؟؟ |
رد: لو سمحت اول مره اطلب اكسبريت ممكن حد يساعدني؟
اقتباس:
شكرا لك استاذ MOVING_AVERAGE الاكسبريت يبدأ عمله بمجرد افتتاح شمعة الساعة 22 يبدأ الاكسبريت في حساب الحسابات وتنفيذ الاوامر واتمنى ان تتيح لي الخيار في تغيير الساعه 22 إلى أي ساعى أريد شكرا استاذ MOVING_AVERAGE |
رد: لو سمحت اول مره اطلب اكسبريت ممكن حد يساعدني؟
بالتوفيق اختى الكريمة وبارك الله فيك اخى موفينج
|
رد: لو سمحت اول مره اطلب اكسبريت ممكن حد يساعدني؟
اقتباس:
|
رد: لو سمحت اول مره اطلب اكسبريت ممكن حد يساعدني؟
اقتباس:
اختي عند رجوعي من السفر ساعمل الاكسبريت |
رد: لو سمحت اول مره اطلب اكسبريت ممكن حد يساعدني؟
1 مرفق
تفضلي الأكسبيرت كل المدخلات قابلة للتعديل ، تحياتي .
|
رد: لو سمحت اول مره اطلب اكسبريت ممكن حد يساعدني؟
ألف شكر أستاذ جميل و إن شاء الله هجربه وأقولك الاخبار وإن شاء الله مش هيكون محتاج حاجه تاني لكن ممكن طلب آخر؟ ممكن الاكسبريت بصيغة mq4 بحيث أقدر أعدل عليه بمعرفتي البسيطه في البرمجه ومنها اتعلم واستفيد من خبرة حضرتك! |
رد: لو سمحت اول مره اطلب اكسبريت ممكن حد يساعدني؟
اقتباس:
|
رد: لو سمحت اول مره اطلب اكسبريت ممكن حد يساعدني؟
1 مرفق
اقتباس:
|
رد: لو سمحت اول مره اطلب اكسبريت ممكن حد يساعدني؟
شكرا بجد أستاذ جميل مش عارفه أشكرك أزاي بجد جزاك الله كل خير
|
رد: لو سمحت اول مره اطلب اكسبريت ممكن حد يساعدني؟
اقتباس:
لو سمحت أستاذ جميل أنا عارفه طلباتي كترت ولكن كنت أريد إلغاء الأمر المعلق عند تحقق الهدف للصفقة التي تفعلت وليس عند تفعيلها هل واضح لك ما أريد ؟؟ هناك أستفسار: كنت قد طلبت من حضرتك أن يتم وضع الأوامر الساعه 22 و لقد لاحظت أن وقت وضع الأوامر عند الساعه 22 و 3دقائق فهل هناك غرض برمجي لجعل الدقائق=3 ؟؟ حيث إن لم يكن هناك غرض فسوف أجعل الدقائق=0 |
رد: لو سمحت اول مره اطلب اكسبريت ممكن حد يساعدني؟
تحتاج الى التأكد من الأغلاق واخترت 3 دقائق عشان سرعة الباك تيست لاتتناسب وبعض المنصات ، غيريها وجربي مايناسب المنصة .
الغاء العقد المعلق بعد اغلاق العقد المفتوح بالربح ممكن ، لكن ماذا لو كان يغلق على خسارة . هل ايضا يلغى العقد المعلق ؟؟؟ ام يظل مفتوحا ؟ . |
رد: لو سمحت اول مره اطلب اكسبريت ممكن حد يساعدني؟
اقتباس:
|
رد: لو سمحت اول مره اطلب اكسبريت ممكن حد يساعدني؟
اقتباس:
تمام حضرتك أريد إلغاء العقد المعلق بعد اغلاق العقد المفتوح بالربح أما إذا ضرب الاستوب لوس لا اريد أغلاق العقد المعلق وبجد شكرا جدا ليك أستاذ جميل |
رد: لو سمحت اول مره اطلب اكسبريت ممكن حد يساعدني؟
1 مرفق
اقتباس:
معتقدش الاعدادات كتيره او صعبه بصراحه الاستاذ جميل عامل الاكسبريت بطريقة جميله وسهله ما شاء الله على تفضل الصورة تشرح كل شئ وتحت امرك في اي وقت http://www.fx-arabia.com/vb/attachme...1&d=1355685018 |
رد: لو سمحت اول مره اطلب اكسبريت ممكن حد يساعدني؟
اقتباس:
|
رد: لو سمحت اول مره اطلب اكسبريت ممكن حد يساعدني؟
عندك الأكسبيرت والكود مفتوح ، حاولي تعدلي الشرط بأن يلغي العقد المعلق بعد اغلاق العقد المفتوح بربح ، وأبقاء المعلق اذا اغلق بخسارة ؟؟
|
رد: لو سمحت اول مره اطلب اكسبريت ممكن حد يساعدني؟
اقتباس:
|
رد: لو سمحت اول مره اطلب اكسبريت ممكن حد يساعدني؟
دي الدالة المسؤلة عن أختبار الشروط إذا كان العقد المفتوح شراءاً فيتم إلغاء أمر البيع المعلق
ده الكود قبل التعديل [PHP] void IfOrderExists12() { bool exists = false; for (int i=OrdersTotal()-1; i >= 0; i--) if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if (OrderType() == OP_BUY && OrderSymbol() == Symbol() && OrderMagicNumber() == 33) { exists = true; } } else { Print("OrderSelect() error - ", ErrorDescription(GetLastError())); } if (exists) { DeletePendingOrder10(); } } [/PHP] وده بعد التعديل [PHP] void IfOrderExists12() { bool exists = false; for (int i=OrdersTotal()-1; i >= 0; i--) if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) { if (OrderType() == OP_BUY && OrderSymbol() == Symbol() && OrderMagicNumber() == 33 && OrderProfit() > 0) { exists = true; } } else { Print("OrderSelect() error - ", ErrorDescription(GetLastError())); } if (exists) { DeletePendingOrder10(); } } [/PHP] انا غيرت MODE_TRADES إلى MODE_HISTORY وضيفت الشرط ده OrderProfit() > 0 أي أن الربح يكون أكبر من صفر وهعمل نفس الكلام بالنسبة للدالة الخاصة بأختبار الشروط إذا كان العقد المفتوح بيعاً تمام كده ولا إيه؟؟؟ |
رد: لو سمحت اول مره اطلب اكسبريت ممكن حد يساعدني؟
تمام وبعد انتهاء التعديلات جربي وشوفي النتيجة
|
رد: لو سمحت اول مره اطلب اكسبريت ممكن حد يساعدني؟
اقتباس:
تم التعديل والتجربه ووصلت الصفقة للهدف لكن للأسف لم يتم إلغاء الامر المعلق ماذا ينقص الكود؟؟ |
رد: لو سمحت اول مره اطلب اكسبريت ممكن حد يساعدني؟
هذا هو الكود بالكامل بعد التعديل
[PHP] #property copyright " - jmeel24@yahoo.com " #include <stdlib.mqh> #include <WinUser32.mqh> // exported variables extern string A0=" ------- General Setting --------- "; extern int Hour41 = 0; extern double Volume_Lots = 0.1; extern int MagicNo=4141; extern string A2=" ------- B U Y Setting ------------ "; extern int PriceOffset30 = 12; extern int BuyTakeprofit30 = 10; extern int BuyStoploss30 = 20; int Expiration30 = 1440; extern string A1=" ------- S E L L Setting ---------- "; extern int PriceOffset31 = 10; extern int SellTakeprofit31 = 10; extern int SellStoploss31 = 20; int Expiration31 = 1440; // local variables double PipValue=1; // this variable is here to support 5-digit brokers bool Terminated = false; string LF = "\n"; // use this in custom or utility blocks where you need line feeds int NDigits = 4; // used mostly for NormalizeDouble in Flex type blocks int ObjCount = 0; // count of all objects created on the chart, allows creation of objects with unique names int current = 0; int Today41 = -1; datetime BarTime25 = 0; datetime BarTime29 = 0; int init() { NDigits = Digits; if (false) ObjectsDeleteAll(); // clear the chart Comment(""); // clear the chart } // Expert start int start() { if (Bars < 10) { Comment("Not enough bars"); return (0); } if (Terminated == true) { Comment("EA Terminated."); return (0); } OnEveryTick43(); } void OnEveryTick43() { if (true == false && false) PipValue = 10; if (true && (NDigits == 3 || NDigits == 5)) PipValue = 10; CustomCode45(); AtCertainTime41(); IfOrderExists12(); IfOrderExists5(); } void CustomCode45() { } void AtCertainTime41() { int datetime800 = TimeCurrent(); int hour0 = TimeHour(datetime800); int minute0 = TimeMinute(datetime800); if (DayOfWeek() != Today41 && hour0 == Hour41 ) { Today41 = DayOfWeek(); IfOrderDoesNotExist24(); IfOrderDoesNotExist28(); } } void IfOrderDoesNotExist24() { bool exists = false; for (int i=OrdersTotal()-1; i >= 0; i--) if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if (OrderType() == OP_SELLSTOP && OrderSymbol() == Symbol() && OrderMagicNumber() == 33) { exists = true; } } else { Print("OrderSelect() error - ", ErrorDescription(GetLastError())); } if (exists == false) { OncePerBar25(); } } void OncePerBar25() { if (BarTime25 < Time[0]) { // we have a new bar opened BarTime25 = Time[0]; // keep the new bar open time SellPendingOrder31(); } } void SellPendingOrder31() { int expire = TimeCurrent() + 60 * Expiration31; double price = NormalizeDouble(Open[0], NDigits) - PriceOffset31*PipValue*Point; double SL = price + SellStoploss31*PipValue*Point; if (SellStoploss31 == 0) SL = 0; double TP = price - SellTakeprofit31*PipValue*Point; if (SellTakeprofit31 == 0) TP = 0; if (Expiration31 == 0) expire = 0; int ticket = OrderSend(Symbol(), OP_SELLSTOP, Volume_Lots, price, 4, SL, TP, "My Expert", 33, expire, Red); if (ticket == -1) { Print("OrderSend() error - ", ErrorDescription(GetLastError())); } } void IfOrderDoesNotExist28() { bool exists = false; for (int i=OrdersTotal()-1; i >= 0; i--) if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if (OrderType() == OP_BUYSTOP && OrderSymbol() == Symbol() && OrderMagicNumber() == 33) { exists = true; } } else { Print("OrderSelect() error - ", ErrorDescription(GetLastError())); } if (exists == false) { OncePerBar29(); } } void OncePerBar29() { if (BarTime29 < Time[0]) { // we have a new bar opened BarTime29 = Time[0]; // keep the new bar open time BuyPendingOrder30(); } } void BuyPendingOrder30() { int expire = TimeCurrent() + 60 * Expiration30; double price = NormalizeDouble(Open[0], NDigits) + PriceOffset30*PipValue*Point; double SL = price - BuyStoploss30*PipValue*Point; if (BuyStoploss30 == 0) SL = 0; double TP = price + BuyTakeprofit30*PipValue*Point; if (BuyTakeprofit30 == 0) TP = 0; if (Expiration30 == 0) expire = 0; int ticket = OrderSend(Symbol(), OP_BUYSTOP, Volume_Lots, price, 4, SL, TP, "My Expert", 33, expire, Blue); if (ticket == -1) { Print("OrderSend() error - ", ErrorDescription(GetLastError())); } } void IfOrderExists12() { bool exists = false; for (int i=OrdersTotal()-1; i >= 0; i--) if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) { if (OrderType() == OP_BUY && OrderSymbol() == Symbol() && OrderMagicNumber() == 33 && OrderProfit() > 0) { exists = true; } } else { Print("OrderSelect() error - ", ErrorDescription(GetLastError())); } if (exists) { DeletePendingOrder10(); } } void DeletePendingOrder10() { for (int i=OrdersTotal()-1; i >= 0; i--) if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if (OrderType() == OP_SELLSTOP && OrderSymbol() == Symbol() && OrderMagicNumber() == 33) { bool ret = OrderDelete(OrderTicket(), Red); if (ret == false) { Print("OrderDelete() error - ", ErrorDescription(GetLastError())); } } } } void IfOrderExists5() { bool exists = false; for (int i=OrdersTotal()-1; i >= 0; i--) if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) { if (OrderType() == OP_SELL && OrderSymbol() == Symbol() && OrderMagicNumber() == 33 && OrderProfit() > 0) { exists = true; } } else { Print("OrderSelect() error - ", ErrorDescription(GetLastError())); } if (exists) { DeletePendingOrder9(); } } void DeletePendingOrder9() { for (int i=OrdersTotal()-1; i >= 0; i--) if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if (OrderType() == OP_BUYSTOP && OrderSymbol() == Symbol() && OrderMagicNumber() == 33) { bool ret = OrderDelete(OrderTicket(), Red); if (ret == false) { Print("OrderDelete() error - ", ErrorDescription(GetLastError())); } } } } int deinit() { if (false) ObjectsDeleteAll(); } [/PHP] |
رد: لو سمحت اول مره اطلب اكسبريت ممكن حد يساعدني؟
تفضلي الكود بعد التصحيح
[PHP] #property copyright " jmeel24@yahoo.com " #include <stdlib.mqh> #include <WinUser32.mqh> // exported variables extern int MagicNo=4141; extern string A1=" Time Order Setting "; extern int Hour16 = 22; extern int Minute16 = 2; extern string A2=" Sell Order Setting "; extern double SellLots8 = 0.1; extern int SellStoploss8 = 20; extern int SellTakeprofit8 = 10; extern int PriceOffset8 = 10; extern string A3=" Buy Order Setting "; extern double BuyLots17 = 0.1; extern int BuyStoploss17 = 20; extern int BuyTakeprofit17 = 10; extern int PriceOffset17 = 12; // local variables double PipValue=1; // this variable is here to support 5-digit brokers bool Terminated = false; string LF = "\n"; // use this in custom or utility blocks where you need line feeds int NDigits = 4; // used mostly for NormalizeDouble in Flex type blocks int ObjCount = 0; // count of all objects created on the chart, allows creation of objects with unique names int current = 0; int Expiration17 = 1380; int Expiration8 = 1380; int Today16 = -1; datetime BarTime7 = 0; datetime BarTime9 = 0; int deinit() { if (false) ObjectsDeleteAll(); } int init() { NDigits = Digits; if (false) ObjectsDeleteAll(); // clear the chart Comment(""); // clear the chart } // Expert start int start() { if (Bars < 10) { Comment("Not enough bars"); return (0); } if (Terminated == true) { Comment("EA Terminated."); return (0); } OnEveryTick20(); } void OnEveryTick20() { if (true == false && false) PipValue = 10; if (true && (NDigits == 3 || NDigits == 5)) PipValue = 10; CheckLastOrderResult23(); AtCertainTime16(); } void AtCertainTime16() { int datetime800 = TimeLocal(); int hour0 = TimeHour(datetime800); int minute0 = TimeMinute(datetime800); if (DayOfWeek() != Today16 && hour0 == Hour16 && minute0 == Minute16) { Today16 = DayOfWeek(); IfOrderDoesNotExist15(); IfOrderDoesNotExist14(); } } void IfOrderDoesNotExist15() { bool exists = false; for (int i=OrdersTotal()-1; i >= 0; i--) if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if (OrderType() == OP_SELLSTOP && OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNo) { exists = true; } } else { Print("OrderSelect() error - ", ErrorDescription(GetLastError())); } if (exists == false) { OncePerBar7(); } } void OncePerBar7() { if (BarTime7 < Time[0]) { // we have a new bar opened BarTime7 = Time[0]; // keep the new bar open time SellPendingOrder8(); } } void SellPendingOrder8() { int expire = TimeCurrent() + 60 * Expiration8; double price = NormalizeDouble(Open[0], NDigits) - PriceOffset8*PipValue*Point; double SL = price + SellStoploss8*PipValue*Point; if (SellStoploss8 == 0) SL = 0; double TP = price - SellTakeprofit8*PipValue*Point; if (SellTakeprofit8 == 0) TP = 0; if (Expiration8 == 0) expire = 0; int ticket = OrderSend(Symbol(), OP_SELLSTOP, SellLots8, price, 4, SL, TP, "My Expert", MagicNo, expire, Red); if (ticket == -1) { Print("OrderSend() error - ", ErrorDescription(GetLastError())); } } void IfOrderDoesNotExist14() { bool exists = false; for (int i=OrdersTotal()-1; i >= 0; i--) if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if (OrderType() == OP_BUYSTOP && OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNo) { exists = true; } } else { Print("OrderSelect() error - ", ErrorDescription(GetLastError())); } if (exists == false) { OncePerBar9(); } } void OncePerBar9() { if (BarTime9 < Time[0]) { // we have a new bar opened BarTime9 = Time[0]; // keep the new bar open time BuyPendingOrder17(); } } void BuyPendingOrder17() { int expire = TimeCurrent() + 60 * Expiration17; double price = NormalizeDouble(Open[0], NDigits) + PriceOffset17*PipValue*Point; double SL = price - BuyStoploss17*PipValue*Point; if (BuyStoploss17 == 0) SL = 0; double TP = price + BuyTakeprofit17*PipValue*Point; if (BuyTakeprofit17 == 0) TP = 0; if (Expiration17 == 0) expire = 0; int ticket = OrderSend(Symbol(), OP_BUYSTOP, BuyLots17, price, 4, SL, TP, "My Expert", MagicNo, expire, Blue); if (ticket == -1) { Print("OrderSend() error - ", ErrorDescription(GetLastError())); } } void CheckLastOrderResult23() { double profit = 0; datetime lastCloseTime = 0; int cnt = OrdersHistoryTotal(); for (int i=0; i < cnt; i++) { if (!OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) continue; if (OrderSymbol() == Symbol() && lastCloseTime < OrderCloseTime()) { lastCloseTime = OrderCloseTime(); profit = OrderProfit(); } } if (profit > 0) { DeletePendingOrder19(); DeletePendingOrder18(); } } void DeletePendingOrder19() { for (int i=OrdersTotal()-1; i <= 0; i++) if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if (OrderType() == OP_SELLSTOP && OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNo) { bool ret = OrderDelete(OrderTicket(), Red); if (ret == false) { Print("OrderDelete() error - ", ErrorDescription(GetLastError())); } } } } void DeletePendingOrder18() { for (int i=OrdersTotal()-1; i <= 0; i++) if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if (OrderType() == OP_BUYSTOP && OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNo) { bool ret = OrderDelete(OrderTicket(), Red); if (ret == false) { Print("OrderDelete() error - ", ErrorDescription(GetLastError())); } } } } [/PHP] |
رد: لو سمحت اول مره اطلب اكسبريت ممكن حد يساعدني؟
كل الشكر لك أستاذ جميل وجاري التجربه وبصراحه اتعلمت منك كتير عن طريق الاكسبريت ده وكنت اتمنى اعرف من حضرتك التعديل بتاعي مش شغال ليه ؟
وجاري تجربة التعديل الجديد |
رد: لو سمحت اول مره اطلب اكسبريت ممكن حد يساعدني؟
انتي غيرتي فقط Trade الى History وهذا لايكفي ولابد من تحديد أن يكون هو العقد الأخير وأن يكون اغلق على ربح . راجعي الدالة وقارنيها ، ثم اختصرت أن يكون الأغلاق بيع أو شراء وكذلك المعلق بيع أو شراء ، لأن الأكسبيرت ينتهي عند هذا الحد وينتظر الموعد الجديد .
|
رد: لو سمحت اول مره اطلب اكسبريت ممكن حد يساعدني؟
اقتباس:
ما شاء الله عليك أستاذ جميل شكراً لك على هذا الوقت والمجهود وفقك الله دائماً إلى الخير وفعلا والله استفدت منك كثيرا |
رد: لو سمحت اول مره اطلب اكسبريت ممكن حد يساعدني؟
السلام عليكم ورحمة الله وبركاتة
ممكن الاكسبرت بعد اخر تعديل لو سمحتى شكرااااااااا جزيلاااااااااااا لحضرتك وللاستاذ جميل |
رد: لو سمحت اول مره اطلب اكسبريت ممكن حد يساعدني؟
السلام عليكم
ممكن الاكسبرت بعد اخر تعديل شكرااااااااا جزيلاااااااااااا |
الساعة الآن 06:18 AM |
Powered by vBulletin® Copyright ©2000 - 2025
جميع الحقوق محفوظة الى اف اكس ارابيا www.fx-arabia.com