الحلقة الثالثة و العشرون من سلسلة تعلم البرمجة باسهل طريقة

تقليص
X
 
  • تصفية - فلترة
  • الوقت
  • عرض
إلغاء تحديد الكل
مشاركات جديدة

  • الحلقة الثالثة و العشرون من سلسلة تعلم البرمجة باسهل طريقة

    حساب حجم اللوت
    Calculating Lot Size


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

    يعتبر الإفراط في الرافعة المالية أحد أكبر أسباب خسارة تجار الفوركس. استخدام أحجام كبيرة جدًا بالنسبة إلى اللوتات
    إلى رأس المال الخاص بك يمكن أن يمحو حسابك بنفس السهولة التي يمكن أن ينتج عنها مكاسب كبيرة.
    أوصيك بألا تستخدم أكثر من 2-3٪ من حقوق الملكية الخاصة بك لكل صفقة. بهذا ، فإننا نعني أن
    الحد الأقصى للمبلغ الذي يمكن أن تخسره في كل صفقة لن يكون أكثر من 2-3٪ من حسابك.


    إدارة الأموال
    Money Management


    لحساب حجم اللوت باستخدام هذه الطريقة ، نحتاج إلى تحديد نسبة من السيولة المراد استخدامها و
    وقف الخسارة بالنقاط. سنستخدم المتغير الخارجي EquityPercent لتعيين النسبة المئوية للسيولة التي يمكن استخدامها. سنفترض أنه تم استخدام وقف الخسارة بمقدار 50 نقطة.

    كود PHP:
    extern double EquityPercent = 2;
    extern double StopLoss = 50; 
    
    أولاً ، نحتاج إلى حساب مقدار السيولة المحددة بواسطة EquityPercent. إذا كان لدينا حساب
    10،000 دولار أمريكي ، ونستخدم 2٪ من السيولة لدينا ، فسيكون الحساب كالتالي:

    كود PHP:
    double RiskAmount = AccountEquity() * (EquityPercent / 100); 
    
    AccountEquity () هي دالة MQL تُرجع رصيد الحساب الجاري. نحن نقسم
    النسبة المئوية بمقدار 100 تعطينا قيمة كسرية (0.02). ثم نضرب ذلك في
    AccountEquity () لحساب مقدار السيولة للاستخدام. 2٪ من 10،000 دولار هي 200 دولار ، وهذا سيكون
    مخزن في متغير RiskAmount.

    بعد ذلك ، علينا إيجاد قيمة التك. هذا هو الربح لكل نقطة إذا كنا نتداول في لوت واحد من العملة المطلوبة
    على سبيل المثال ، إذا كنا نتداول 1 لوت من اليورو مقابل الدولار الأميركي على حساب قياسي (100 ألف لوت) ، فإن الربح

    لكل نقطة 10 دولارات. في الحساب المصغر (10 آلاف لوت) ، سيكون الربح لكل نقطة 1 دولار.
    يمكننا استخدام وظيفة MarketInfo () مع المعلمة MODE_TICKVALUE لإرجاع الربح لكل
    نقطة للعملة المحددة. يجب أن تكون قيمة العلامة بالنقاط ، لذلك إذا كنا نتداول على نقطة كسرية
    الوسيط (3 أو 5 منازل عشرية) ، يجب علينا مضاعفة قيمة التجزئة في 10.

    كود PHP:
    double TickValue = MarketInfo(Symbol(),MODE_TICKVALUE);
    if(Point == 0.001 || Point == 0.00001) TickValue *= 10; 
    
    بافتراض أننا نتداول في حساب قياسي ، فإن قيمة التك لليورو مقابل الدولار الأميركي ستكون 10. سيتم تخزين هذا
    في متغير TickValue. إذا كان هذا وسيطًا بنظام النقطة الكسرية ، فستكون قيمة TickValue هي 1. سنحتاج إلى ذلك
    ضرب هذا في 10 ليصبح مكافئًا لنقطة واحدة. إذا كان متغير النقطة Point يشير إلى أن العملة
    هي 3 أو 5 منازل عشرية ، سيتم ضرب TickValue في 10 لجعلها تساوي 2 أو 4 عشرية.

    الخطوة التالية هي حساب حجم اللوت. أولاً ، نقسم مقدار المخاطرة على إعداد StopLoss.
    سيعطينا هذا ربحنا لكل نقطة لهذا الطلب. 200 دولار أمريكي مقسومة على وقف الخسارة عند 50 ستحصل على 4 دولارات أمريكية.
    الآن كل ما يتعين علينا القيام به هو قسمة ذلك على TickValue للحصول على حجم اللوت:

    كود PHP:
    double CalcLots = (RiskAmount / StopLoss) / TickValue; 
    
    سيكون حجم اللوت المحسوب على الحساب القياسي 0.4 لوت. على الحساب المصغر ، اللوت المحسوب
    سيكون الحجم 4 عقود. يتم تخزين هذه القيمة في متغير CalcLots.

    إذا كنت تستخدم إدارة الأموال المناسبة ، فستكون النسبة المئوية لرأس المال الذي تستخدمه عادة
    ثابتة. (1-2٪ للمخاطر المتحفظة ، 5٪ للمخاطر الأعلى). وقف الخسارة الخاص بك ، من ناحية أخرى ،
    ستختلف بناءً على الإطار الزمني الخاص بك ونظام التداول الخاص بك. حجم اللوت سوف يختلف على نطاق واسع تبعا
    على وقف الخسارة الخاص بك.

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

    إذا كان يجب عليك استخدام أمر إيقاف خسارة كبير ، أو عدم استخدام أي شيء على الإطلاق ، فمن المحتمل أن يكون حجم اللوت الثابت أكثر فائدة.
    يجب أن نكون قادرين على الاختيار بين حساب حجم اللوت أو استخدام حجم عقد ثابت. دعونا نستخدم
    متغير منطقي خارجي يسمى DynamicLotSize لتشغيل حساب حجم اللوت الخاص بنا وإيقاف تشغيله:

    كود PHP:
    // External variables
    extern bool DynamicLotSize = true;
    extern double EquityPercent = 2;
    extern double FixedLotSize = 0.1;
    
    // Start function
    if(DynamicLotSize == true)
    {
    double RiskAmount = AccountEquity() * (EquityPercent / 100);
    double TickValue = MarketInfo(Symbol(),MODE_TICKVALUE);
    if(Digits == 3 || Digits == 5) TickValue *= 10;
    double CalcLots = (RiskAmount / StopLoss) / TickValue;
    double LotSize = CalcLots;
    }
    else LotSize = FixedLotSize; 
    
    إذا تم ضبط DynamicLotSize على true، فسنحسب حجم اللوت بناءً على وقف الخسارة ، ونحدد
    قيمة متغير LotSize. إذا كانت DynamicLotSize تساوي false ، فنحن ببساطة نعيّن قيمة
    FixedLotSize إلى LotSize. سيتم تمرير متغير LotSize إلى دالة OrderSend () مثل
    حجم اللوت للطلب.




    التحقق من حجم اللوت
    Verifying Lot Size


    تمامًا مثل وقف الخسارة وجني الأرباح وأسعار الأوامر المعلقة ، يجب أيضًا التحقق من حجم اللوت
    تأكد من أنه مقبول لدى الوسيط الخاص بك. هذا يعني أن حجم اللوت الخاص بك يجب ألا يكون كبيرًا جدًا أو أيضًا
    صغيرة ، ولا ينبغي تحديدها في ميكرو لوت (0.01) إذا كان الوسيط الخاص بك لا يدعمها. أنت
    يجب أيضًا تسوية حجم اللوت الخاص بك إلى المكان العشري المناسب.

    دعنا نتحقق من الحد الأدنى والحد الأقصى لحجم اللوت أولاً. وظيفة MarketInfo () ، باستخدام
    معلمات MODE_MINLOT و MODE_MAXLOT لمقارنة حجم العقد الحالي بـ
    الحد الأدنى والحد الأقصى لحجم اللوت. إذا كان حجم اللوت غير صالح ، فسيتم تغيير حجمه تلقائيًا إلى
    الحد الأدنى أو الحد الأقصى.

    كود PHP:
    if(LotSize < MarketInfo(Symbol(),MODE_MINLOT))
    {
    LotSize = MarketInfo(Symbol(),MODE_MINLOT);
    }
    else if(LotSize > MarketInfo(Symbol(),MODE_MAXLOT))
    {
    LotSize = MarketInfo(Symbol(),MODE_MAXLOT);
    } 
    

    نحن ببساطة نقارن قيمة LotSize ، حجم اللوت المحسوب أو الثابت من أعلى ، إلى الحد الأدنى
    والحد الأقصى لحجم اللوت. إذا كان حجم اللوت أقل من الحد الأدنى لحجم اللوت ، أو أكبر من الحد الأقصى للحجم
    ، سيتم تعيين الحد الأدنى المناسب أو الحد الأقصى للقيمة المناسبة.

    بعد ذلك ، نحتاج إلى مقارنة حجم اللوت لدينا بقيمة الخطوة. تشير قيمة الخطوة إلى ما إذا كان الوسيط أم لا
    يسمح بعقود الميكرو (0.01) أو الميني لوت (0.1). إذا حاولت استخدام حجم لوت صغير على وسيط فقط
    يسمح بالعقود الصغيرة ، سوف تحصل على خطأ ولن يتم وضع الصفقة. هذا هو الكود للتحقق من
    قيمة الخطوة:

    كود PHP:
    if(MarketInfo(Symbol(),MODE_LOTSTEP) == 0.1)
    {
    LotSize = NormalizeDouble(LotSize,1);
    }
    else LotSize = NormalizeDouble(LotSize,2 
    
    );

    تقرب الدالة NormalizeDouble () قيمة LotSize إلى عدد الأرقام المحددة في
    الخانة الثانية. في السطر الأول ، إذا كان حجم الخطوة هو 0.1 ، فيشير ذلك إلى أن الوسيط يستخدم ميني لوت ، سيتم تقريب LotSize إلى منزلة عشرية واحدة. خلاف ذلك ، سيتم تقريب LotSize إلى 2 عشري
    أماكن.

    إذا صادفت في المستقبل وسيطًا يسمح لك بأحجام لوت تصل إلى ثلاثة منازل عشرية ،
    ثم يمكنك بسهولة تعديل الكود أعلاه للتحقق من ذلك أيضًا. لكن في الوقت الحالي ، تقريبًا الكل
    يستخدم وسيط MetaTrader إما منزلة أو منزلتين عشريتين لتحجيم اللوت.
يعمل...
X