على الأقل حتى إذا أردت إستخدام هذه الداله لاحقا في إأي إكسبرت أو في جزء آخر من الإكسبرت فسيكون سهل بدلا من كتابة كود جديد فسيكون الأمر أسهل
Printable View
اشكركم على المساعده اخواني لي طلب لاني عجزت عن تنفيذه بصراحه انا عاوز اكسبريت بالمواصفات التاليه بحثت ولم اجد
الفكره كالتالي مثلا عند تقاطع الماكد شراء يشتري بهدف عشر نقاط اذا حققها يستمر بالشراء من جديد والبيع نفس الشيئ لكن اذا خساره وعكست الصفقه يدخل بيع من التقاطع التالي والهدف عشر نقاط مع المظاعفه 1 2 3 4
لكن اهم شرط انه مايسكر العقد الخاسر يبقى مفتوح واذا عكست الاشاره يشتري من جديد بثلاث عقود والمجموع الكلي للربح هو عشره نقاط مع حسبة السبريد واذا حققها يبدا من جديد
هذي الفكره كانت لاحد الاخوان بس هو يستخدمها يدوي على كسر الترند اعتقد اسمه فرهان وهدفه خمسين نقطه على اليورو الهدف مو مشكله بس اهم شي يكون المجموع الكلي لعدد معين انا اختاره
ولكم تحياتي وبعد قليل طيارتي الى امريكا دعواتكم
https://forum.arabictrader.com/t121359.html
هذا رابط الموضوع الطريقة مشابه لها لكن باسلوب مختلف ممكن يكون تقاطع موفنجات
اقتباس:
ممكن تعطوني الامر اللي بيغلق اصلفقة بعد ربح عدد محدد من النقاط بدون انتظار اغلاق الشمعة لانه اغلب الاكسبيرتات تعتمد على اخذ الربح بعد اغلاق الشمعة .
اقتباس:
يمكنك عمل داله لإغلاق الصفقات بعد ربح عدد محدد من النقاط مثال للإكسبرت المرفق سوف تجد الكود
للاسف اخوي MR.dollar تهت بين اكواد الاكسبيرت اللي عندي ماخوذ من موقع الجيران فكرته نحدد شمعة لدخول م high و low محدد ومشكلة الاكسبيرت مافي خاصية stoploss راح ارفق الاكسبيرت واتمنى انك تساعدني الله يجزاك الف خير .
اقتباس:
if(HideTP&&TakeProfit>0)
{
CloseBuyOrdersHiddenTP();CloseSellOrdersHiddenTP() ;
}
مستر دولار عندى سؤال اذا تكرمت
لنفترض اننا لدينا صفقة مفتوحة والاكسبيرت فتح صفقة اخرى كيف اخبر الاكسبيرت بتعديل هدف الصفقة الاولى الى نقطة دخولها
رجاء التوضيح بمثال
شكرا لك
في البداية سوف تقوم بتعريف الدالتين المسئوله عن إغلاق الصفقات وتعريفها سيكون خارج الداله start
سوف تقوم بتعريف المتغير الخارجي الذي ستقوم بتحديد الهدف منهكود PHP:void CloseBuyOrdersHiddenTP()
{
int total=OrdersTotal();
for (int cnt=total;cnt>=0;cnt--)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol())
{
if(OrderType()==OP_BUY&&Bid>(OrderOpenPrice()+TakeProfit*point))
{
OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),3*D);
}
}
}
}
void CloseSellOrdersHiddenTP()
{
int total=OrdersTotal();
for(int cnt=total;cnt>=0;cnt--)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol())
{
if(OrderType()==OP_SELL&&Ask<(OrderOpenPrice()-TakeProfit*point))
{
OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),3*D);
}
}
}
}
ثم بداخل الداله start سوف تضع شرط إغلاق الصفقاتكود PHP:extern int TakeProfit=0;
هذا فقطكود PHP:if(TakeProfit>0)
{
CloseBuyOrdersHiddenTP();CloseSellOrdersHiddenTP();
}
مثلا سوف تقوم بعمل داله لتغير هدف الصفقه الأولى إلى نقطة الدخول
ثم سأضع الشرطكود PHP:void ModifyFirstOrder()
{
for (int cnt = OrdersTotal() ; cnt >=0 ; cnt--)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
double tp=OrderTakeProfit();int ticket=OrderTicket();
if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol() )
{
if(tp!=FirstOrderPrice(type))
OrderModify(ticket,OrderOpenPrice(),OrderStopLoss(),OrderOpenPrice(),0);
return;
}
}
}
كود PHP:if(orderscnt()==2)ModifyFirstOrder();
أستاذ أسامة أتمنى المساعدة هنا فضلا ً وتكرماً
https://forum.arabictrader.com/t151602.html
السلام عليكم ورحمة الله وبركاته
اريد كود يجعل الاكسبيرت ينفذ الاتي
اذا كان فتح صفقة وكسبت مايفتحش تاني الا تاني يوم
او مثلا مجموع ارباح الصفقات يساوي عدد معين من النقاط احدده انا اذا حققها لايدخل مرة تانية الا في اليوم الجديد
بمعني ان الاكسبرت اذا ربح يوم لايدخل مرة اخري الا في اليوم الجديد
استاذ اسامة ، هل توجد مواقع تشرح الأخطـاء التى تظهر أثناء عمل الاكسيبرتات او المؤشرات بالتفصيل مع إقتراح حلول لمعالجة هذه الأخطـاء !! ، لدي رابطين لموقعين لكن لا يوجد تركيز على كيفية إصلاح الخطـأ .
http://docs.mql4.com/trading/errors
http://www.iexpertadvisor.com/metaTrader4errors.asp
وعليكم السلام تفضل الدالة
{
StopEAToday=false;
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() && iTime(Symbol(),1440,0) < OrderCloseTime())
{
lastCloseTime = OrderCloseTime();
profit = OrderProfit();
}
}
if (profit > LastOrderResult37 && Stop_Ea==true )
{
StopEAToday=true;
}
}
شكرا لك اخي جميل
ولكن مش عارف اربط الكود بشروط الاكسبرت ازاي وحاجة كمان المتغير LastOrderResult37
غير معرف و مش عارف بتاع ايه وهل الدالة تعمل علي ايقاف الاكسبرت اذا كانت اخر صفقة رابحة فقط بدون النظر الي الصفقات الخاسرة
يعني لو خسر5 وكسب واحدة يقف الاكسبرت علي كده لان اللي انا عايزه ان الاكسبرت يقف بعد ما يقوم بحساب الرابح + الخاسر اذا كانت النتيجة ربح بنسبة معينة
احددها من اعدادات الاكسبرت يقف ولا يدخل مجددا إلا في اليوم الجديد معلش انا طولت عليك كتير بس الكود ملخبطني شوية
السلام عليكممرفق صورة من المؤشر
كيف اخلي شرط بيع او شراء على مؤشر bulls power والمؤشر موجود من ضمن مؤشرات الميتاتريدرالاساسية اذا كان القيمة اقل من صفر بيع واذا كان اكثر من صفر شراء
الملف المرفق 335570