صفحة 1 من 2 12 الأخيرةالأخيرة
النتائج 1 إلى 15 من 22
  1. #1
    الصورة الرمزية yousef2025
    yousef2025 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Dec 2024
    الإقامة
    السعودية
    المشاركات
    48

    افتراضي سؤال برمجي للاخوة المبرمجين

    السلام عليكم
    اخوكم بيحاول يتعلم برمجة MQL4
    ارجو المساعدة

    هذا الكود لحساب الربح/الخسارة الاجمالي لجميع اوامر الشراء
    سويته على شكل user-defined function

    وين الخطأ ؟

    كود:
    // this function calculates net buys profit double CalculateOpenBuyOrderNetProfit() { double totalNetProfit = 0.0; int totalOrders = OrdersTotal(); for (int i = 0; i < totalOrders; i++) { OrderSelect(i, SELECT_BY_POS, MODE_TRADES); if (OrderType() == OP_BUY) { double currentPrice = MarketInfo(Symbol(), MODE_BID); // Get current bid price double orderOpenPrice = OrderOpenPrice(); double orderLots = OrderLots(); double pipValue = MarketInfo(Symbol(), MODE_POINT); double contractSize = MarketInfo(Symbol(), MODE_CONTRACT_SIZE); // Calculate current profit/loss in pips double pips = (currentPrice - orderOpenPrice) / pipValue; // Calculate profit/loss in account currency double profit = pips * pipValue * orderLots * contractSize; totalNetProfit += profit; } } return totalNetProfit; }
    الصور المصغرة للصور المرفقة الصور المصغرة للصور المرفقة 22.png‏  

  2. #2
    الصورة الرمزية yousef2025
    yousef2025 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Dec 2024
    الإقامة
    السعودية
    المشاركات
    48

    افتراضي

    هل الخطأ اني بدأت
    i=0
    يمكن المفروض ابدا اللووب
    i=1

    ????

  3. #3
    الصورة الرمزية Algo_Master
    Algo_Master غير متواجد حالياً مشرف المتداول العربي
    تاريخ التسجيل
    Dec 2011
    الإقامة
    مصر
    المشاركات
    1,634

    افتراضي

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

    هذا الكود لحساب الربح/الخسارة الاجمالي لجميع اوامر الشراء
    سويته على شكل user-defined function

    وين الخطأ ؟

    كود:
    // this function calculates net buys profit double CalculateOpenBuyOrderNetProfit() { double totalNetProfit = 0.0; int totalOrders = OrdersTotal(); for (int i = 0; i < totalOrders; i++) { OrderSelect(i, SELECT_BY_POS, MODE_TRADES); if (OrderType() == OP_BUY) { double currentPrice = MarketInfo(Symbol(), MODE_BID); // Get current bid price double orderOpenPrice = OrderOpenPrice(); double orderLots = OrderLots(); double pipValue = MarketInfo(Symbol(), MODE_POINT); double contractSize = MarketInfo(Symbol(), MODE_CONTRACT_SIZE); // Calculate current profit/loss in pips double pips = (currentPrice - orderOpenPrice) / pipValue; // Calculate profit/loss in account currency double profit = pips * pipValue * orderLots * contractSize; totalNetProfit += profit; } } return totalNetProfit; }
    اهلا بك اخى الكريم

    الخطأ كما يظهر فى الصوره انه لم يتم تعريف المتغير MODE_CONTRACT_SIZE قبل استخدامه

    تمنياتنا لك بالتوفيق
    توقيع العضو
    قسم البرمجه بمنتدى المتداول العربى
    يرحب بكم
    https://forum.arabictrader.com/f31.html

  4. #4
    الصورة الرمزية yousef2025
    yousef2025 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Dec 2024
    الإقامة
    السعودية
    المشاركات
    48

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة Algo_Master مشاهدة المشاركة
    اهلا بك اخى الكريم

    الخطأ كما يظهر فى الصوره انه لم يتم تعريف المتغير MODE_CONTRACT_SIZE قبل استخدامه

    تمنياتنا لك بالتوفيق
    استاذي الكريم
    مش المفروض انه ال function
    Marketinfo()
    تجيب قيمته

    ؟؟

  5. #5
    الصورة الرمزية Algo_Master
    Algo_Master غير متواجد حالياً مشرف المتداول العربي
    تاريخ التسجيل
    Dec 2011
    الإقامة
    مصر
    المشاركات
    1,634

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة yousef2025 مشاهدة المشاركة
    استاذي الكريم
    مش المفروض انه ال function
    Marketinfo()
    تجيب قيمته

    ؟؟
    اخى الكريم ، داله معلومات السوق المدمجه مكتوبه خطأ ، فهى "MarketInfo" ...

    ثم انها ليس بها "MODE_CONTRACT_SIZE"

    يمكنك استخدام مساعد اللغه "Reference" لدراستها قبل استخدامها ...
    توقيع العضو
    قسم البرمجه بمنتدى المتداول العربى
    يرحب بكم
    https://forum.arabictrader.com/f31.html

  6. #6
    الصورة الرمزية yousef2025
    yousef2025 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Dec 2024
    الإقامة
    السعودية
    المشاركات
    48

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة Algo_Master مشاهدة المشاركة
    اخى الكريم ، داله معلومات السوق المدمجه مكتوبه خطأ ، فهى "MarketInfo" ...

    ثم انها ليس بها "MODE_CONTRACT_SIZE"

    يمكنك استخدام مساعد اللغه "Reference" لدراستها قبل استخدامها ...
    شكرا جزيلا على التوضيح
    ربي يسعدك

  7. #7
    الصورة الرمزية wajdyss
    wajdyss غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Sep 2006
    الإقامة
    جزر الملديف
    المشاركات
    3,022

    افتراضي

    اخي لماذا لا تستخدم الدالة الجاهزة
    OrderProfit()

    ويصبح الكود هكذا


    // this function calculates net buys profit
    double CalculateOpenBuyOrderNetProfit()
    {
    double totalNetProfit = 0.0;
    int totalOrders = OrdersTotal();
    for (int i = 0; i < totalOrders; i++)
    {
    OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
    if (OrderType() == OP_BUY)
    {
    double currentPrice = MarketInfo(Symbol(), MODE_BID);
    // Get current bid price double orderOpenPrice = OrderOpenPrice();
    double orderLots = OrderLots();
    double pipValue = MarketInfo(Symbol(), MODE_POINT);
    double contractSize = MarketInfo(Symbol(), MODE_CONTRACT_SIZE);
    // Calculate current profit/loss in pips
    double pips = (currentPrice - orderOpenPrice) / pipValue;
    // Calculate profit/loss in account currency
    double profit =OrderProfit();
    totalNetProfit += profit;
    }
    }

    الصور المصغرة للصور المرفقة الصور المصغرة للصور المرفقة ScreenShot_20250122233734.png‏  
    آخر تعديل بواسطة wajdyss ، 23-01-2025 الساعة 12:38 AM
    توقيع العضو
    مبرمج MT4 , MT5

    MT4 & MT5 Programmer

  8. #8
    الصورة الرمزية Algo_Master
    Algo_Master غير متواجد حالياً مشرف المتداول العربي
    تاريخ التسجيل
    Dec 2011
    الإقامة
    مصر
    المشاركات
    1,634

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة wajdyss مشاهدة المشاركة
    اخي لماذا لا تستخدم الدالة الجاهزة
    OrderProfit()

    ويصبح الكود هكذا

    هذا صحيح

    كل الشكر و التحيه و التقدير اخونا الغالى wajdyss
    توقيع العضو
    قسم البرمجه بمنتدى المتداول العربى
    يرحب بكم
    https://forum.arabictrader.com/f31.html

  9. #9
    الصورة الرمزية yousef2025
    yousef2025 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Dec 2024
    الإقامة
    السعودية
    المشاركات
    48

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة wajdyss مشاهدة المشاركة
    اخي لماذا لا تستخدم الدالة الجاهزة
    OrderProfit()

    ويصبح الكود هكذا

    ربي يسعدك

  10. #10
    الصورة الرمزية yousef2025
    yousef2025 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Dec 2024
    الإقامة
    السعودية
    المشاركات
    48

    افتراضي

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

    كل الشكر و التحيه و التقدير اخونا الغالى wajdyss
    اخي الكريم
    باستخدام الدالة اللتي اشار اليها الاخ الكريم
    اتوقع مافي داعي استخدم الكود الموجود داخل الصندوق البرتقالي
    لانني استخدمت كل هذه السطور لحساب ربح/خسارة مركز معين
    ؟؟؟
    الصور المصغرة للصور المرفقة الصور المصغرة للصور المرفقة Untitled.png‏  

  11. #11
    الصورة الرمزية yousef2025
    yousef2025 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Dec 2024
    الإقامة
    السعودية
    المشاركات
    48

    افتراضي

    يصبح الكود هكذا

    ما رايكم استاذتنا المبرمجين ؟

    كود:
    // this function calculates net buys profit double CalculateOpenBuyOrderNetProfit() { double totalNetProfit = 0.0; int totalOrders = OrdersTotal(); for (int i = 0; i < totalOrders; i++) { OrderSelect(i, SELECT_BY_POS, MODE_TRADES); if (OrderType() == OP_BUY) { double profit =OrderProfit(); totalNetProfit += profit; } } return totalNetProfit; }

  12. #12
    الصورة الرمزية Algo_Master
    Algo_Master غير متواجد حالياً مشرف المتداول العربي
    تاريخ التسجيل
    Dec 2011
    الإقامة
    مصر
    المشاركات
    1,634

    افتراضي

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

    ما رايكم استاذتنا المبرمجين ؟

    كود:
    // this function calculates net buys profit double CalculateOpenBuyOrderNetProfit() { double totalNetProfit = 0.0; int totalOrders = OrdersTotal(); for (int i = 0; i < totalOrders; i++) { OrderSelect(i, SELECT_BY_POS, MODE_TRADES); if (OrderType() == OP_BUY) { double profit =OrderProfit(); totalNetProfit += profit; } } return totalNetProfit; }
    تمام اخى

    هذا هو ما قل و دل بحسب طلبك من الوظيفه

    بالتوفيق إن شاء الله
    جمعه مباركه للجميع
    توقيع العضو
    قسم البرمجه بمنتدى المتداول العربى
    يرحب بكم
    https://forum.arabictrader.com/f31.html

  13. #13
    الصورة الرمزية yousef2025
    yousef2025 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Dec 2024
    الإقامة
    السعودية
    المشاركات
    48

    افتراضي

    ربي يسعدك ويحفظك
    وينفع بعلمك المسلمين

  14. #14
    الصورة الرمزية wajdyss
    wajdyss غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Sep 2006
    الإقامة
    جزر الملديف
    المشاركات
    3,022

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة yousef2025 مشاهدة المشاركة
    اخي الكريم
    باستخدام الدالة اللتي اشار اليها الاخ الكريم
    اتوقع مافي داعي استخدم الكود الموجود داخل الصندوق البرتقالي
    لانني استخدمت كل هذه السطور لحساب ربح/خسارة مركز معين
    ؟؟؟
    صحيح اخي
    لا داعِ لها لأنك لم تستخدمها في نهاية الكود
    توقيع العضو
    مبرمج MT4 , MT5

    MT4 & MT5 Programmer

  15. #15
    الصورة الرمزية wajdyss
    wajdyss غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Sep 2006
    الإقامة
    جزر الملديف
    المشاركات
    3,022

    افتراضي

    هناك ملاحظة اخي
    كي تحسب الربح بشكل صحيح فيجب ان تحسب السواب والكوميشن
    يعني
    OrderSwap()+OrderCommission()
    بالاضافة طبعاً للسابق
    OrderProfit()
    توقيع العضو
    مبرمج MT4 , MT5

    MT4 & MT5 Programmer

صفحة 1 من 2 12 الأخيرةالأخيرة

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17