النتائج 6,856 إلى 6,870 من 10335
الموضوع: موضوع مخصص للأسئلة البرمجية
- 29-10-2015, 06:16 PM #6856
- 30-10-2015, 05:16 PM #6857
السلام عليكم حمة الله
أرجو من المشرف الاستاذ الفاضل MR.dollar ان يشرح لي هذا كود .
void OpenBUYOrder(double Lots,int Magic)
{
double sl,tp;
sl=Ask-StopLoss*Point;
tp=Ask+TakeProfit*Point;
if(Lots==FirstLots && hour>=StartTime && hour<=EndTime)
{
Ticket1=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,sl,tp ,"",Magic,0,Green);
if(Ticket1>0)
{
gT1=OrderSend(Symbol(),OP_SELLSTOP,Lots,sl,3,sl+St opLoss*Point,sl-TakeProfit*Point,"",Magic,0,Green);
gT2=OrderSend(Symbol(),OP_SELLSTOP,Lots,sl,3,sl+St opLoss*Point,sl-(TakeProfit*Point),"",Magic,0,Green);
}
else
{
Alert("ÎØÃ ÔÑÇÁ "," Err = ",GetLastError()," Price = ",Ask," Lots = ",Lots);
}
}
}
- 30-10-2015, 08:45 PM #6858
وعليكم السلام ورحمة الله وبركاته
تقوم بفتح أمر شراء ووضع أمرين بيع معلقين
من إعدادات الداله تضع حجم اللوت ورقم الماجيك نمبر للأوامر
كود PHP:OpenBUYOrder(double Lots,int Magic)
إذا كان حجم اللوت المحدد يساوي قيمه FirstLot وكان التوقيت الحالي ضمن بداية ونهاية توقيت عمل الإكسبرت يتم فتح أمر الشراء
كود PHP:if(Lots==FirstLots && hour>=StartTime && hour<=EndTime)
كود PHP:if(Ticket1>0)
{
gT1=OrderSend(Symbol(),OP_SELLSTOP,Lots,sl,3,sl+St opLoss*Point,sl-TakeProfit*Point,"",Magic,0,Green);
gT2=OrderSend(Symbol(),OP_SELLSTOP,Lots,sl,3,sl+St opLoss*Point,sl-(TakeProfit*Point),"",Magic,0,Green);
}
- 31-10-2015, 04:37 PM #6859
- 02-11-2015, 06:30 PM #6860
السلام عليكم اخوتي الاعزاء
هناك عدة صفقات مفتوحة شراء مثلا فأريد دالة تعود برقم العملية التي ربحها موجب للشراء
فكيف اكتب تلك الدالة .. وماذا لو اردت ان تكون الدالة لمعرفة ربح كل صفقات الشراء المفتوحة هل هي موجب ام سالب ؟؟
وجزاكم الله كل خيرآخر تعديل بواسطة hre007 ، 02-11-2015 الساعة 06:33 PM
- 03-11-2015, 09:00 PM #6861
وعليكم السلام ورحمة الله وبركاته
مثال دالة لمعرفة رقم العمليه المفتوحه الرابحه
كود PHP:int OrderInProfitNum()
{
for(int i=OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber&&OrderType()==OP_BUY)
{
if(OrderProfit()>0)return(i);
}
}
return(0);
}
مثال
كود PHP:bool IsOrderInProfit()
{
for(int i=OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber&&OrderType()==OP_BUY)
{
if(OrderProfit()<0)return(false);
}
}
return(true);
}
- 04-11-2015, 03:11 PM #6862
- 04-11-2015, 05:51 PM #6863
السلام عليكم ورحمة الله وبركاته
ارجو ان تكرمون بشرح لهذه كواد.....
int LastClosedWiner()
{
int c=0;
for(int i=OrdersHistoryTotal()-1;i>=0;i--)
{
bool select=OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber && (OrderProfit()>0))
{
if(OrderType()==OP_BUY)
c=1;
else
c=-1;
}
}
return(c);
}
/////////////////////////////
// ÇáæÙíÝÉ ÇáÑÆíÓíÉ ;
int Procces_1()
{
double slot,ssl,stp,bw;
// Ýí ÍÇá áÇ íæÌÏ ÕÝÞÇÊ ÍÇáíÉ æßÇä åäÇß ÕÝÞÇÊ ãÚáÞÉ ÝÇÍÐÝåÇ áÃäå áÇ ÏÇÚí áåÇ
if(MyRealOrdersTotal(MagicNumber)==0 && MyPendingOrdersTotal(MagicNumber)==2)
{
DeletePendingOrders(MagicNumber);
return(0);
}
// Ýí ÍÇá áÇ íæÌÏ ÕÝÞÇÊ ÍÇáíÉ Ãæ ÕÝÞÇÊ ãÚáÞÉ ÝÞã ÈÝÊÍ ÕÝÞÉ ÈíÚ Ãæ ÕÝÞÉ ÔÑÇÁ ÍÓÈ ÑÛÈÉ ÇáãÓÊÎÏã ;
if(MyRealOrdersTotal(MagicNumber)==0 && MyPendingOrdersTotal(MagicNumber)==0 && hour>=StartTime && hour<=EndTime && winAndStop==false)
{
if(OpenWinerAgain==false)
{
if(OpenBuy)
{
OpenBUYOrder(FirstLots,MagicNumber);
}
else
{
OpenSELLOrder(FirstLots,MagicNumber);
}
return(0);
}
else
{
if(LastClosedWiner()==1)
{
OpenBUYOrder(FirstLots,MagicNumber);
}
else
{
OpenSELLOrder(FirstLots,MagicNumber);
}
return(0);
}
}
// Ýí ÍÇá Êã ÝÊÍ ÕÝÞÉ ÈíÚ Ãæ ÔÑÇÁ íÌÈ æÖÚ ÕÝÞÇÊ ãÚáÞÉ ãÚÇßÓÉ áåÇ äæÚÇ æÇÊÌÇåÇ
if(MyRealOrdersTotal(MagicNumber)==2 && MyPendingOrdersTotal(MagicNumber)==0)
{
OrderSelect(t1,SELECT_BY_TICKET,MODE_TRADES);
slot=OrderLots()*LotsDouble;
ssl=OrderStopLoss();
stp=OrderTakeProfit();
if(OrderType()==OP_BUY && slot<Maxlot)
{
gT1=OrderSend(Symbol(),OP_SELLSTOP,slot,ssl,3,ssl+ StopLoss*Point,ssl-TakeProfit*Point,"",MagicNumber,0,Green);
gT2=OrderSend(Symbol(),OP_SELLSTOP,slot,ssl,3,ssl+ StopLoss*Point,ssl-(TakeProfit*Point),"",MagicNumber,0,Green);
}
if(OrderType()==OP_SELL && slot<Maxlot)
{
gT1=OrderSend(Symbol(),OP_BUYSTOP,slot,ssl,3,ssl-StopLoss*Point,ssl+TakeProfit*Point,"",MagicNumber ,0,Green);
gT2=OrderSend(Symbol(),OP_BUYSTOP,slot,ssl,3,ssl-StopLoss*Point,ssl+(TakeProfit*Point),"",MagicNumb er,0,Green);
}
}
return(0);
}
// æÙíÝÉ áÍÓÇÈ ÚÏÏ ÇáÕÝÞÇÊ ÇáÍÇáíÉ
int MyRealOrdersTotal(int Magic)
{
int c=0;
int total=OrdersTotal();
t1=-1;
t2=-1;
for(int cnt=0; cnt<total; cnt++)
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if(OrderMagicNumber()==Magic && OrderSymbol()==Symbol() && (OrderType()==OP_BUY || OrderType()==OP_SELL))
{
if(t1==-1)
{
t1=OrderTicket();
}
else
{
if(t2==-1)
{
t2=OrderTicket();
}
}
c++;
}
}
return(c);
}
// æÙíÝÉ áÍÓÇÈ ÚÏÏ ÇáÕÝÞÇÊ ÇáãÚáÞÉ ÝÞØ
int MyPendingOrdersTotal(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_SELLSTOP))
{
c++;
}
}
return(c);
}
// æÙíÝÉ áÍÐÝ ÇáÕÝÞÇÊ ÇáãÚáÞÉ
int DeletePendingOrders(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_SELLSTOP))
{
OrderDelete(OrderTicket());
}
}
return(0);
}
//+------------------------------------------------------------------+
- 04-11-2015, 06:14 PM #6864
نعم سيعمل بدون مشاكل
يجب أن يكون لديك شارت الرينكو ويكون لايف على الميتاتريدر حتى يعمل, يمكنك إستخدام الإكسبرت المرفق لعمل شارت الرينكو
بالنسبه للباك تست قرأت بعض المواضيع التي تتكلم عن إمكانية عمل باك تست لشارت الرينكو لكن لم أجرب أحد هذه الطرق سابقا وأعتقد أنها لن تعطي نتائج دقيقه حتى إذا أمكن عملها
- 04-11-2015, 06:58 PM #6865
شكرا على ردك الكريم اخي العزيز مستر دولار
طبقت الدالة وهي تعمل رغم وجود التحذير الاتي
return value of 'OrderSelect' should be checked -------.mq4 193 3
والذي لا اعرف معناه تحديدا
.. ولكن وجدت ان هناك خطأ بطريقة تفكيري من الاساس
ولنفرض مثلا اني افتح شراء مع كل تقاطع ايجابي على الموفتج .. وعند وجود عدة صفقات مفتوحة خاسرة ثم التقاطع الاخير اعطي ربح ولنفترض للصفقة الاخيرة والقبل الاخيرة فانا اريد ان مع التقاطع العكسي ينظر للصفقات الرابحة فقط ويغلقها دون الصفقات الخاسرة
وانا اعطيت الامر كالتالي
كود PHP:if ( ma2>ma4 && ma1< ma3 && OrderInProfitNum(OP_BUY)>0 ) Close_Type(OP_BUY);
فما هو الحل يا استاذي الكريم بارك الله فيك
- 06-11-2015, 06:10 PM #6866
جزاك الله تعالى كل الخير مستر اسامه
فعلت الاكسبيرت ولكن الاكسبيرت الاخر لم يفتح ولا صفقة وظهرت ايضا ظهرت لى هذه الرسالة فى رسايل Experts
2015.11.06 17:05:27.015 renkolivecharts_pimped_v4_13 EURUSD,M5: Error: Dll calls must be allowed!
لا اعرف ماهو السبب مع انى مفعل خيار ال DLL ؟آخر تعديل بواسطة صلاح الدين الفوركساوى ، 06-11-2015 الساعة 06:35 PM
- 07-11-2015, 12:21 PM #6867
وعليكم السلام ورحمة الله وبركاته
الداله الأول LastClosedWiner تقوم بمعرفة نوع آخر صفقه أغلقت هل هي بيع أو شراء
فإذا كانت شراء تعود بالقيمه رقم 1 وإذا كانت بيع تعود بالقيمه رقم -1
الداله DeletePendingOrders تقوم بحذف الأوامر المعلقه
الداله MyPendingOrdersTotal تحسب مجموع الأوامر المعلقه المفتوحه
الداله MyRealOrdersTotal تحسب مجموع الأوامر المفعله
الداله Procces_1
كود PHP:if(MyRealOrdersTotal(MagicNumber)==0 && MyPendingOrdersTotal(MagicNumber)==2)
{
DeletePendingOrders(MagicNumber);
return(0);
}
كود PHP:if(MyRealOrdersTotal(MagicNumber)==0 && MyPendingOrdersTotal(MagicNumber)==0 && hour>=StartTime && hour<=EndTime && winAndStop==false)
كود PHP:if(OpenBuy)
{
OpenBUYOrder(FirstLots,MagicNumber);
}
else
{
OpenSELLOrder(FirstLots,MagicNumber);
}
كود PHP:if(LastClosedWiner()==1)
{
OpenBUYOrder(FirstLots,MagicNumber);
}
else
{
OpenSELLOrder(FirstLots,MagicNumber);
}
كود PHP:if(MyRealOrdersTotal(MagicNumber)==2 && MyPendingOrdersTotal(MagicNumber)==0)
{
OrderSelect(t1,SELECT_BY_TICKET,MODE_TRADES);
slot=OrderLots()*LotsDouble;
ssl=OrderStopLoss();
stp=OrderTakeProfit();
if(OrderType()==OP_BUY && slot<Maxlot)
{
gT1=OrderSend(Symbol(),OP_SELLSTOP,slot,ssl,3,ssl+ StopLoss*Point,ssl-TakeProfit*Point,"",MagicNumber,0,Green);
gT2=OrderSend(Symbol(),OP_SELLSTOP,slot,ssl,3,ssl+ StopLoss*Point,ssl-(TakeProfit*Point),"",MagicNumber,0,Green);
}
if(OrderType()==OP_SELL && slot<Maxlot)
{
gT1=OrderSend(Symbol(),OP_BUYSTOP,slot,ssl,3,ssl-StopLoss*Point,ssl+TakeProfit*Point,"",MagicNumber ,0,Green);
gT2=OrderSend(Symbol(),OP_BUYSTOP,slot,ssl,3,ssl-StopLoss*Point,ssl+(TakeProfit*Point),"",MagicNumb er,0,Green);
}
}
return(0);
}
- 07-11-2015, 12:24 PM #6868
ضع شرط إغلاق الصفقه الرابحه فقط في شروط دالة الإغلاق
مثال
كود PHP:void Close_Type_Profit(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();
int Otype=OrderType();
if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol()&&OrderType()==type&&OrderProfit()>0)
{
if (Otype==OP_BUY)
{
bool action= OrderClose(ticket,lots,NormalizeDouble(Bid,Digits),3*P);
}
if (Otype==OP_SELL)
{
action= OrderClose(ticket,lots,NormalizeDouble(Ask,Digits),3*P);
}
}
}
}
كود PHP:if ( ma2>ma4 && ma1< ma3) Close_Type_Profit(OP_BUY);
- 07-11-2015, 12:26 PM #6869
- 07-11-2015, 03:17 PM #6870
المواضيع المتشابهه
-
موضوع مخصص للاكسبيرتات اللتي يستخدمها الاعضاء على الحقيقي,,عندك اكسبيرت ممتاز ضعه هنا
By محمد معمو in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 11آخر مشاركة: 15-12-2023, 02:03 PM -
عااااااااااااجل ( موضوع مخصص للفرص الفورية)!!!
By عاشق الذبذبـة in forum توقعات وتوصيات سوق العملاتمشاركات: 280آخر مشاركة: 27-08-2009, 10:30 PM