النتائج 1 إلى 9 من 9
الموضوع: استفسار برمجي
- 30-05-2012, 04:03 PM #1
استفسار برمجي
هذه الدالة بروفيت بالدولار
كود PHP:double Profit(int type)
{
double p;
for(int i=0;i<=OrdersTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&& MagicNumber==OrderMagicNumber()&&OrderType()==type)
{
p+=OrderProfit();
}
if(OrderSymbol()==Symbol()&& MagicNumber1==OrderMagicNumber()&&OrderType()==type)
{
p+=OrderProfit();
}
}
return(p);
}
لكن اذا اردنا غلق الصفقات على بروفيت سالب لا يعمل الاكسبيرت
ارجو التوضيح او تعديل
شكرا
- 30-05-2012, 04:07 PM #2
على ما اعتقد لازم تعكس الاشارة for(int i=0;i<=OrdersTotal();i++){
- 30-05-2012, 04:17 PM #3
رد:استفسار برمجي
اخي ارجو ان تعذرني نسيت ان اذكر ان الداله تعمل بشكل عادي
اظن المشكل في الكود التالى لاغلق الصفقات و حذف الاوامر المعلقة
كود PHP:if (pro==proClose ){ Clorders(OP_BUY); Clorders(OP_SELL);DeletePendingOrders();}
proClose هو المتغير الخارجي بالدولار
الهدف المراد هو اغلاق الصفقات عند خسارة معينة تحدد بالدولار
close at lose
شكر
- 30-05-2012, 04:41 PM #4
- 30-05-2012, 04:44 PM #5
شكرا اخى على مرورك
- 30-05-2012, 05:22 PM #6
رد:استفسار برمجي
فى هذا الكود انت ما استدعيت الداله Profit هذا اولا ثانيا pro==proClose علامة == تعنى تعادل وعلشان تغلق بخساره يجب ان تكون > والرقم يكون فى السالب
مثال فى الكود التالى
كود PHP:if((Profit(OP_BUY)+Profit(OP_SELL)>=USD_Profit&&CloseInUSD_Profit)||(Profit(OP_BUY)+Profit(OP_SELL)<=USD_Loss&&CloseInUSD_Loss)
USD_Loss خيار خارجي وهو رقم سالب اذا وصله يغلق جميع الصفقات البيع والشراء هذا مثال فقط
- 30-05-2012, 06:29 PM #7
رد:استفسار برمجي
السلام عليكم اخى الكريم
اولا يجب عمل دالة اغلاق الصفقات
كود PHP:void closeordar(int typer){
for(int c=0;c<OrdersTotal();c++){
OrderSelect(c,SELECT_BY_POS,MODE_TRADES);
if(OrderMagicNumber()==MagicNumber&&OrderSymbol()==Symbol()&&OrderType()== typer){
if(OrderType()==OP_BUY)OrderClose(OrderTicket(),OrderLots(),Bid,30);
if(OrderType()==OP_SELL)OrderClose(OrderTicket(),OrderLots(),Ask,30);
}
}
}
كود PHP:double pofet(){
double pr;
for(int p=0;p<OrdersTotal();p++){
OrderSelect(p,SELECT_BY_POS,MODE_TRADES);
if(OrderMagicNumber()==MagicNumber&&OrderSymbol()==Symbol()){
pr=pr+OrderProfit();
}
}return(pr);
}
تعمل هذا الكود
كود PHP:if(pofet()<=-30){
closeordar(OP_BUY);closeordar(OP_SELL);
}
هذا كل معندى ولاعلم عندى اكثر من ذلك حتى الان
لو كان صح الحمدلله
وان كان خطا
احب اتعلم من الخطا
وجزاك الله خير
- 30-05-2012, 06:50 PM #8
- 30-05-2012, 06:52 PM #9