سؤال noobie
Results 1 to 6 of 6

Thread: سؤال noobie

  1. #1
    يمكن أن يشرح لي أحد كيف هذا EA حساب حجم اللوط لكل قضية تجارية أفهم litlle جدا في لغات mt4.

    //| حساب حجم اللوط الأمثل |
    // ----------------------------------------------- -------------------
    ضعف LotsOptimized ()
    {
    الكثير المزدوج = الكثير؛
    int orders = HistoryTotal ()؛/أوامر التاريخ المجموع
    الخسائر int = 0؛/عدد من أوامر الخسائر دون انقطاع
    //---- select select size
    الكثير = NormalizeDouble (AccountFreeMargin () * MaximumRisk1000.0،1)؛
    //---- رقم حساب أوامر خسائر دون انقطاع
    إذا (DecreaseFactorlt، 0)
    {
    لـ (int i = orders-1؛ igt؛ = 0؛ i--)
    {
    if (OrderSelect (i، SELECT_BY_POS، MODE_HISTORY) == false) {Print (Error in history!)؛ استراحة؛ }
    if (OrderSymbol ()! = Symbol () || OrderType () gt؛ OP_SELL) تابع؛
    //----
    إذا كان (OrderProfit () gt؛ 0) فاصل؛
    if (OrderProfit () lt؛ 0) loss ؛
    }
    if (lossesgt؛ 1) lot = NormalizeDouble (lot lot-loss * lossesDecreaseFactor، 1)؛
    }
    //---- return حجم اللوت
    if (lotlt؛ 0.01) lot = 0.01؛
    العودة (الكثير)؛

  2. #2
    من هذا الخط: double lot = Lots؛ ... if (lossesgt؛ 1) lot = NormalizeDouble (lot lot-loss * lossesDecreaseFactor، 1)؛ أولاً ، لديك حجم اللوت الأولي ، المسمى Lots (انظر متغير extern ، في الجزء العلوي من التعليمات البرمجية) دعنا نقول Lots = 0.2. ثم هناك DecreaseFactor ، دعنا نقول DecreaseFactor = 5 إذا كانت الخسائر المتتالية تساوي 2 (خسائر أكبر من 1) ثم حجم اللوت = 0.2 - 0.2 * 2/5 = 0.2 - 0.45 = 0.2 - 0.08 = 0.12 يتم تقريبه إلى 1 نقطة عشرية = gt؛ NormalizeDouble (...، 1) 0.12 = gt؛ 0.1 نأمل أن تكون هذه المساعدة

  3. #3
    شكرا لك أنا أفهم الآن!
    Quote Originally Posted by ;
    من هذا الخط: double lot = Lots؛ ... if (lossesgt؛ 1) lot = NormalizeDouble (lot lot-loss * lossesDecreaseFactor، 1)؛ أولاً ، لديك حجم اللوت الأولي ، المسمى Lots (انظر متغير extern ، في الجزء العلوي من التعليمات البرمجية) دعنا نقول Lots = 0.2. ثم هناك DecreaseFactor ، دعنا نقول DecreaseFactor = 5 إذا كانت الخسائر المتتالية تساوي 2 (خسائر أكبر من 1) ثم حجم اللوت = 0.2 - 0.2 * 2/5 = 0.2 - 0.45 = 0.2 - 0.08 = 0.12 يتم تقريبه إلى 1 نقطة عشرية = gt؛ NormalizeDouble (...، 1) 0.12 = gt؛ 0.1 نأمل أن تكون هذه المساعدة
    Quote Originally Posted by ;
    من هذا الخط: double lot = Lots؛ ... if (lossesgt؛ 1) lot = NormalizeDouble (lot lot-loss * lossesDecreaseFactor، 1)؛ أولاً ، لديك حجم اللوت الأولي ، المسمى Lots (انظر متغير extern ، في الجزء العلوي من التعليمات البرمجية) دعنا نقول Lots = 0.2. ثم هناك DecreaseFactor ، دعنا نقول DecreaseFactor = 5 إذا كانت الخسائر المتتالية تساوي 2 (خسائر أكبر من 1) ثم حجم اللوت = 0.2 - 0.2 * 2/5 = 0.2 - 0.45 = 0.2 - 0.08 = 0.12 يتم تقريبه إلى 1 نقطة عشرية = gt؛ NormalizeDouble (...، 1) 0.12 = gt؛ 0.1 نأمل أن تكون هذه المساعدة

  4. #4
    هناك شيء آخر لا أحمله ؛ فهمت. إذا كان الهامش المجاني للحساب هو 3000 ، وكان الحد الأقصى للمخاطر هو 0،01 ، يجب أن يكون حجم اللوت 3000 * .011000 = .03 لكن EA تأخذ فقط حجم الكثير .01. في عدد قليل من المناسبات فتح EA .1 الكثير عندما ينمو الحساب إلى 5000 ولكن في هذه المرحلة يجب أن يفتح 5000 * .011000 = .05 لوت./| حساب حجم اللوط الأمثل |/ ----------------------------------------------- ------------------- double LotsOptimized () {double lot = Lots؛ int orders = HistoryTotal ()؛/history orders total int losses = 0؛/number of losses orders without a break/---- select lot lot lot = NormalizeDouble (AccountFreeMarg in () * MaximumRisk1000.0،1)؛/---- calcuulate number of losses orders without a break if (DecreaseFactorlt؛ 0) {for (int i = orders-1؛ igt؛ = 0؛ i--) {if (OrderSelect (i، SELECT_BY_POS، MODE _HISTORY ) == false) {Print (Error in history!)؛ استراحة؛ } إذا كان (OrderSymbol ()! = Symbol () || OrderType () gt؛ OP_SELL) تابع؛/---- if (فاصل OrderProfit () gt؛ 0)؛ if (OrderProfit () lt؛ 0) loss ؛ } if (lossesgt؛ 1) lot = NormalizeDouble (lot lot-loss * lossesDecreaseFactor، 1)؛/-------- حجم العائد إذا (lotlt؛ 0.01) lot = 0.01؛ العودة (الكثير)؛
    https://www.forexdrop.com/trading-sy...g-journal.html

  5. #5
    ما زلت لا أفهم لماذا لا يفتح إيا حجم اللوط الصحيح. Cqn womeone أخبرني ما 1 المدرج في الرمز .... lot = NormalizeDouble (AccountFreeMarg in () * MaximumRisk1000.0،1)؛
    Quote Originally Posted by ;
    هناك شيء آخر لا أحمله ؛ فهمت. إذا كان الهامش المجاني للحساب هو 3000 ، وكان الحد الأقصى للمخاطر هو 0،01 ، يجب أن يكون حجم اللوت 3000 * .011000 = .03 لكن EA تأخذ فقط حجم الكثير .01. في عدد قليل من المناسبات فتح EA .1 الكثير عندما ينمو الحساب إلى 5000 ولكن في هذه المرحلة يجب أن يفتح 5000 * .011000 = .05 لوت./| حساب حجم اللوط الأمثل |/ ----------------------------------------------- ------------------- double LotsOptimized () {double lot = Lots؛ int orders = HistoryTotal ()؛/history orders total int losses = 0؛/...
    Quote Originally Posted by ;
    هناك شيء آخر لا أحمله ؛ فهمت. إذا كان الهامش المجاني للحساب هو 3000 ، وكان الحد الأقصى للمخاطر هو 0،01 ، يجب أن يكون حجم اللوت 3000 * .011000 = .03 لكن EA تأخذ فقط حجم الكثير .01. في عدد قليل من المناسبات فتح EA .1 الكثير عندما ينمو الحساب إلى 5000 ولكن في هذه المرحلة يجب أن يفتح 5000 * .011000 = .05 لوت./| حساب حجم اللوط الأمثل |/ ----------------------------------------------- ------------------- double LotsOptimized () {double lot = Lots؛ int orders = HistoryTotal ()؛/history orders total int losses = 0؛/...

  6. #6
    مرحبًا ، يبدو أن هناك منطقًا خاطئًا مع ردي الأخير. الدالة حجم اللوت المحسوب الأول ليس من المتغير Lots ، ولكن من: lot = NormalizeDouble (AccountFreeMarg in () * MaximumRisk1000.0،1)؛ أولا ، حول NormalizeDouble (.. ، 1) ، فإنه يعود القيمة مع 1 أرقام الدقة. على سبيل المثال ، var1 = 5/8 = 0.625. NormalizeDouble (var1،2) = 0.63 gt؛ gt؛ gt؛ رقمين بعد العلامة العشرية NormalizeDouble (var1،1) = 0.6 gt؛ gt؛ gt؛ رقم واحد بعد العلامة العشرية من حالتك ، AccountFreeMargin = 3000 MaximumRisk = 0.01 AccountFreeMargin * MaximumRisk1000 = 3000 * 0.011000 = 0.03 lot = NormalizeDouble (0.03،1) = 0.0 !!! يتم حذف 3 لأنه في الموضع الثاني ، تحسب من اليسار بعد الفاصلة العشرية ثم قبل إرجاع النتيجة:/---- return lot size if (lotlt؛ 0.01) lot = 0.01؛ العودة (الكثير)؛ لذلك ، لأن الكمية المحسوبة فوق النتيجة 0 وهي أصغر من 0.01 ، تعيد الدالة 0.01 ؛ آخر شيء ، يجب عليك استخدام if (DecreaseFactorgt؛ 0) بدلاً منه إذا (DecreaseFactorlt؛ 0) ، وتأكد من أن قيمة DecreaseFactor هي قيمة موجبة (على سبيل المثال 3) آمل أن يساعد هذا

أذونات النشر

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  
  • رمز BB مفعل
  • الابتسامات مفعلة
  • رمز[IMG] مفعل
  • رمز [VIDEO] مفعل
  • رمز HTML غير مفعل
This website uses cookies
We use cookies to store session information to facilitate remembering your login information, to allow you to save website preferences, to personalise content and ads, to provide social media features and to analyse our traffic. We also share information about your use of our site with our social media, advertising and analytics partners.