وعليكم السلام ورحمة الله وبركاته
تستخدم الداله ObjectCreate لرسم الأشكال على الشارت. راجع هذا الموضوع بهذه شرح تفصيلي
https://forum.arabictrader.com/t37561-8.html
Printable View
وعليكم السلام ورحمة الله وبركاته
تستخدم الداله ObjectCreate لرسم الأشكال على الشارت. راجع هذا الموضوع بهذه شرح تفصيلي
https://forum.arabictrader.com/t37561-8.html
راجع أيضا هذه المشاركه
https://forum.arabictrader.com/t135010.html#post2272507
الأخ العزيز استاذ أسامه مستر دولار
كنت قرأت لحضرتك موضوع من فترة عن اكسبيرت ناسخ للصفقات بين المنصات صراحة مش قادر اوصل لهذا الموضوع
ولكن سؤالي الان
كيف يتم نسخ الصفقات بين عدة منصات ميتاتريدر ( ليست بجهاز كمبيوتر واحد )
او بمعنى نسخ الصفقات عبر الانترنت
بحثت كثيرا في استخدام الـ WebRequest ولكني للاسف لم اصل لنتيجة
فلو حضرتك تتكرم كعادتك وتشرح لي طريقة نسخ الصفقات بين المنصات عن بعد وليس نسخ الصفقات بين منصتين على نفس جهاز الكمبيوتر او السرفر
سؤالي الأخر
كيف يتم نقل أو نسخ الصفقات المفتوحة والمغلقة إلى ملف اكسيل نفس التقارير اليومية اللي بتيجي من البروكر على الايميل كل يوم
بحيث يتم النقل لحظي بمجرد فتح او إغلاق الصفقة
كيف يتم نقل الصفقات المفتوحة او المغلقة وحفظها في قاعدة بيانات من نوع MySQL
لاني بحثت كثيرا عن هذه المواضيع وللأسف لم أجد نتيجة في شتى أرجاء الانترنت وخصوصا مجتمع MQL5
جزاك الله خير على تعبك معانا
جعلك الله زخرا لنا
الله يعطيكم العافية اريد برمحة اكسبيرت صغير يعتمد علا انديكيتر خارجي اذا ممكن شكرا لكم
استاذ اسامه فضلاً أُريد كود دالة لتحديد " أقصى عدد للاوردرات المفتوحه " ...
لدي اكسبريت على عملات كثيره واريد ضبط عدد الصفقات المفتوحه
السلام عليكم ....... ممكن كود اكسبيرت تقاطع 2 موفينج بحيث لما يحصل تقاطع شراء يقفل اي بيع والعكس
السلام عليكم اخي في انتظار الدكتور اسامة
هذا مثال على تقاطع الموفينج 50 و 21
ثم دالة الاغلاق خسب تايب الصفقة كالتاليكود PHP:
if (iMA(NULL, PERIOD_H4,50,0,MODE_SMA,PRICE_CLOSE,1) < iMA(NULL, PERIOD_H4,21,0,MODE_SMA,PRICE_CLOSE,1))
CloseOrders(OP_SELL);
if (iMA(NULL, PERIOD_H4,50,0,MODE_SMA,PRICE_CLOSE,1) > iMA(NULL, PERIOD_H4,21,0,MODE_SMA,PRICE_CLOSE,1))
CloseOrders(OP_BUY);
بالتوفيقكود PHP:
void CloseOrders(int type)
{
for (int cnt=OrdersTotal()-1;cnt>=0;cnt--)
{
bool select=OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
int ticket=OrderTicket();
double lots=OrderLots();
if(OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol()&&(OrderType()==type))
{
if(OrderType()==OP_BUY)
{
bool closeb=OrderClose(ticket,lots,NormalizeDouble(Bid,Digits),5);
}
if(OrderType()==OP_SELL)
{
bool closes=OrderClose(ticket,lots,NormalizeDouble(Ask,Digits),5);
}
}
}
}
هذه دالة لحساب مجموع الصفقات المفتوحه لجميع العملات وليس لعمله محدده فقط
يمكنك أيضا حذف شرط الماجيك نمبر إذا كنت تستخدم ماجيك نمبر مختلف لكل عملهكود PHP:
int TotalOrders()
{
int cnt=0;
for(int i =0;i<OrdersTotal();i++){
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
if(OrderMagicNumber()==MagicNumber){
cnt++;
}
}
}
return(cnt);
}
وعليكم السلام ورحمة الله وبركاته
الآن نريد عمل دالتين دالة سوف تبحث في الصفقات المغلقه وإذا كانت أغلقت على خساره فسوف تنتظر أن يصل السعر لنقطة الدخول ويدخل الصفقه مره أخرى
ودالة أخرى سوف تبحث في هذه الصفقه الخاسره هل تم فتح الصفقه التعويضيه لها أم لأ وسوف يحدد الصفقات المرتبطه ببعضها عن طريق حفظ التيكيت نمبر للصفقه الخاسره ووضعه كماجيك نمبر في الصفقه الجديده المفتوحه
أولا دالة لفتح الصفقات مره أخرى
ثانيا دالة التأكد من أن الصفقه لم تفتح بعد أو أنها فتحت وأغلقت على ربحكود PHP:
void CheckOrders()
{
for(int i=0;i<OrdersHistoryTotal();i++)
{
bool select=OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
int type=OrderType();
int ticket=OrderTicket();
double TP=OrderTakeProfit();
double SL=OrderStopLoss();
double Price=OrderOpenPrice();
double lots=OrderLots();
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
{
if(OrderClosePrice()==OrderStopLoss())
{
if(!OrderReopened(ticket)&&!OrderReopenedAndClosed(ticket))
{
if(type==OP_BUY&&Ask==Price)
{
OrderSend(Symbol(),OP_BUY,lots,Ask,3,SL,TP,"ReOpened from #"+DoubleToStr(ticket),ticket,0);
}
else if(type==OP_SELL&&Bid==Price)
{
OrderSend(Symbol(),OP_SELL,lots,Bid,3,SL,TP,"ReOpened from #"+DoubleToStr(ticket),ticket,0);
}
}
}
}
}
}
كود PHP:
void OrderReopened(int ticket)
{
for(int i=0;i<OrdersTotal();i++)
{
bool select=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==ticket)
{
return(true);
}
}
return(false);
}
void OrderReopenedAndClosed(int ticket)
{
for(int i=0;i<OrdersHistoryTotal();i++)
{
bool select=OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==ticket)
{
if(OrderProfit()>0)return(true);
else return(false);
}
}
return(false);
}