ما هو الكود لإحتساب البروفيت
النتائج 1 إلى 8 من 8
  1. #1
    تاريخ التسجيل
    Mar 2007
    الإقامة
    المملكة العربية السعودية
    المشاركات
    440

    افتراضي ما هو الكود لإحتساب البروفيت

    السلام عليكم جميـــــــــــــــــــع
    ماهي الدالة أو الكود اللي تحسبلي البروفيت للصفقات المفتوحة للإكسبيرت ؟؟........... ممكن يكون كزا إكسبيرت شغال في وقت واحد !! ........ و ممكن يكون على عملة واحدة!! ........... فأنا أبغ الإكسبيرت يحسبلي البروفيت للصفقات اللي فتحها فقط ......... و ليس البروفيت للأكاونت كله .
    إزا ما فيها كلافة ........... فيني أعزبك ............ إرفاق الكود أو الدالة ............. سامحوني .

  2. #2
    تاريخ التسجيل
    Mar 2009
    العمر
    28
    المشاركات
    550

    افتراضي

    السلام عليكم ورحمة الله

    الدالة التي تبحث عنها هي حسب ما أعرف
    كود PHP:
    OrderProfit() 
    ويفضل وضع الاسئلة البرمجية في الموضوع المخصص لها http://forum.arabictrader.com/t37612.html

    بالتوفيق

  3. #3
    تاريخ التسجيل
    Mar 2007
    الإقامة
    المملكة العربية السعودية
    المشاركات
    440

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة cher90 مشاهدة المشاركة
    السلام عليكم ورحمة الله

    الدالة التي تبحث عنها هي حسب ما أعرف
    كود PHP:
    OrderProfit() 
    ويفضل وضع الاسئلة البرمجية في الموضوع المخصص لها http://forum.arabictrader.com/t37612.html

    بالتوفيق
    شكرا أخي الكريم على الرد
    الدالة هذه أستخدمها لمعرفة البروفت لعملية واحدة فقط ........ لكن الإكسبيرت بيحط مجموعة عمليات ......... و أنا أبغ أكتب الدالة لمجموع البروفيت للعمليات اللي فتحها الإكسبيرت .......... و ليست عملية واحدة ........... فكيف يكون كتابتها ؟؟

  4. #4
    تاريخ التسجيل
    Apr 2009
    الإقامة
    ALAIN
    المشاركات
    1,101

    افتراضي

    اهلا اخي اولا تضع هذا الخيار فى ضمن قائمة خيارات الاكسبرت الخارجيه
    كود 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 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 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);

    بتوفيق

  5. #5
    تاريخ التسجيل
    Mar 2007
    الإقامة
    المملكة العربية السعودية
    المشاركات
    440

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة uae forex مشاهدة المشاركة
    اهلا اخي اولا تضع هذا الخيار فى ضمن قائمة خيارات الاكسبرت الخارجيه
    كود 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 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 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);

    بتوفيق
    شكرا أستاذي الكريم على المساعدة و الرد .............................
    بالنسبة ل Pips و orderscnt فين نعرفهم ......... هذه نقطة ........... النقطة الثانية ............ أنا أبغ الإكسبيرت يحسبلي مجموع البرفيت للعمليات كلها على بعضها .......... البيع و الشراء .................. الرابح و الخسران منها ............. و لازم نعرف هذه العمليات عشان ما تختلط الحسابات مع العمليات الأخرى و الخاصة بإكسبيرتات تانية شغالة في نفس الوقت ...... و قد تكون على زوج واحد .......... معليش أغلبك معاي شوي .

  6. #6
    تاريخ التسجيل
    Apr 2010
    الإقامة
    تونس
    المشاركات
    506

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة alshakatan مشاهدة المشاركة
    شكرا أستاذي الكريم على المساعدة و الرد .............................
    بالنسبة ل Pips و orderscnt فين نعرفهم ......... هذه نقطة ........... النقطة الثانية ............ أنا أبغ الإكسبيرت يحسبلي مجموع البرفيت للعمليات كلها على بعضها .......... البيع و الشراء .................. الرابح و الخسران منها ............. و لازم نعرف هذه العمليات عشان ما تختلط الحسابات مع العمليات الأخرى و الخاصة بإكسبيرتات تانية شغالة في نفس الوقت ...... و قد تكون على زوج واحد .......... معليش أغلبك معاي شوي .

    تفضل أخي الكريم

    كود PHP:
    int Profit=TotalProfit();

    int TotalProfit()
    {
       
    int total=OrdersTotal();
       
    int totalPips 0;
       
    int totalProfits 0;
       for (
    int cnt=0;cnt<total;cnt++)
       { 
       
    OrderSelect(cntSELECT_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 : هو معرف صفقات الإكسبيرت

  7. #7
    تاريخ التسجيل
    Apr 2009
    الإقامة
    ALAIN
    المشاركات
    1,101

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة alshakatan مشاهدة المشاركة
    شكرا أستاذي الكريم على المساعدة و الرد .............................
    بالنسبة ل Pips و orderscnt فين نعرفهم ......... هذه نقطة ........... النقطة الثانية ............ أنا أبغ الإكسبيرت يحسبلي مجموع البرفيت للعمليات كلها على بعضها .......... البيع و الشراء .................. الرابح و الخسران منها ............. و لازم نعرف هذه العمليات عشان ما تختلط الحسابات مع العمليات الأخرى و الخاصة بإكسبيرتات تانية شغالة في نفس الوقت ...... و قد تكون على زوج واحد .......... معليش أغلبك معاي شوي .
    اعذرنى اخي الكبر شين نسيت ارفق الداله Pips وطريقة تعريف orderscnt على العموم الكود لمجموع صفقات الشراء لحاله والبيع لحاله وانت مطلوبك المجموع للبيع والشراء وما راح تستفيد من الكود السابق اتبع طريقة الاخ ahmedfeki واذا ما وصلت الى نتيجه خبرنا وين وقفت وان شاء الله معااااك

  8. #8
    تاريخ التسجيل
    Mar 2007
    الإقامة
    المملكة العربية السعودية
    المشاركات
    440

    افتراضي

    بالفعل الكود المرفق من الأستاذ ahmedfeki قد أدى بالغرض .
    زادكم الله علما ......... و نفع بكم أخواني ..................... وسامحوني .