النتائج 1 إلى 8 من 8
الموضوع: ما هو الكود لإحتساب البروفيت
- 25-02-2012, 10:40 PM #1
ما هو الكود لإحتساب البروفيت
السلام عليكم جميـــــــــــــــــــع
ماهي الدالة أو الكود اللي تحسبلي البروفيت للصفقات المفتوحة للإكسبيرت ؟؟........... ممكن يكون كزا إكسبيرت شغال في وقت واحد !! ........ و ممكن يكون على عملة واحدة!! ........... فأنا أبغ الإكسبيرت يحسبلي البروفيت للصفقات اللي فتحها فقط ......... و ليس البروفيت للأكاونت كله .
إزا ما فيها كلافة ........... فيني أعزبك ............ إرفاق الكود أو الدالة ............. سامحوني .
- 26-02-2012, 02:10 AM #2
السلام عليكم ورحمة الله
الدالة التي تبحث عنها هي حسب ما أعرف
كود PHP:OrderProfit()
بالتوفيق
- 26-02-2012, 04:47 AM #3
- 26-02-2012, 07:55 PM #4
اهلا اخي اولا تضع هذا الخيار فى ضمن قائمة خيارات الاكسبرت الخارجيه
كود PHP:extern int PipsProfit=10;
كود PHP:if((Pips(OP_BUY)>=PipsProfit))
{while(orderscnt(OP_BUY)>0){CloseBuyOrders();}}
if ((Pips(OP_SELL)>=PipsProfit))
{while(orderscnt(OP_SELL)>0){CloseSellOrders();}}
كود PHP:void CloseBuyOrders()
{
for (int cnt = 0 ; cnt < OrdersTotal() ; cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol())
{
if (OrderType()==OP_BUY)
{
OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,digits),3*Q);
}
}
}
}
void CloseSellOrders()
{
for (int cnt = 0 ; cnt < OrdersTotal() ; cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol())
{
if (OrderType()==OP_SELL)
{
OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,digits),3*Q);
}
}
}
}
double Profit(int type){
double P;
for(int i=0;i<=OrdersTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber&&OrderType()==type){
P+=OrderProfit();
}
}
return(P);
}
- 26-02-2012, 10:44 PM #5
شكرا أستاذي الكريم على المساعدة و الرد .............................
بالنسبة ل Pips و orderscnt فين نعرفهم ......... هذه نقطة ........... النقطة الثانية ............ أنا أبغ الإكسبيرت يحسبلي مجموع البرفيت للعمليات كلها على بعضها .......... البيع و الشراء .................. الرابح و الخسران منها ............. و لازم نعرف هذه العمليات عشان ما تختلط الحسابات مع العمليات الأخرى و الخاصة بإكسبيرتات تانية شغالة في نفس الوقت ...... و قد تكون على زوج واحد .......... معليش أغلبك معاي شوي .
- 26-02-2012, 11:12 PM #6
تفضل أخي الكريم
كود PHP:int Profit=TotalProfit();
int TotalProfit()
{
int total=OrdersTotal();
int totalPips = 0;
int totalProfits = 0;
for (int cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS);
int mode=OrderType();
bool condition = false;
if ( OrderMagicNumber() == MagicNumber ) condition = true;
if (condition)
{
switch (mode)
{
case OP_BUY:
totalPips += MathRound((MarketInfo(OrderSymbol(),MODE_BID)-OrderOpenPrice())/MarketInfo(OrderSymbol(),MODE_POINT));
//totalPips += MathRound((Bid-OrderOpenPrice())/Point);
totalProfits += OrderProfit();
break;
case OP_SELL:
totalPips += MathRound((OrderOpenPrice()-MarketInfo(OrderSymbol(),MODE_ASK))/MarketInfo(OrderSymbol(),MODE_POINT));
//totalPips += MathRound((OrderOpenPrice()-Ask)/Point);
totalProfits += OrderProfit();
break;
}
}
}
return(totalProfits); // or return(totalPips)
}
MagicNumber : هو معرف صفقات الإكسبيرت
- 27-02-2012, 12:29 AM #7
اعذرنى اخي الكبر شين نسيت ارفق الداله Pips وطريقة تعريف orderscnt على العموم الكود لمجموع صفقات الشراء لحاله والبيع لحاله وانت مطلوبك المجموع للبيع والشراء وما راح تستفيد من الكود السابق اتبع طريقة الاخ ahmedfeki واذا ما وصلت الى نتيجه خبرنا وين وقفت وان شاء الله معااااك
- 29-02-2012, 03:51 AM #8
بالفعل الكود المرفق من الأستاذ ahmedfeki قد أدى بالغرض .
زادكم الله علما ......... و نفع بكم أخواني ..................... وسامحوني .