مساعدة! - كيف تجعل الوقف المتراجع لا يأخذ الخسائر عند الربح السلبي؟
Results 1 to 6 of 6

Thread: مساعدة! - كيف تجعل الوقف المتراجع لا يأخذ الخسائر عند الربح السلبي؟

  1. #1
    أنا مرة أخرى اختبار باستخدام التجريبي تداول MB. لن يأخذ رمز إيقاف السحب القياسي القياسي في اعتباره عمولة الأوامر والمبادلة.
    هل حاول أي شخص أن يكون ناجحًا أن لا يكون هناك وقف الخسارة مع الربح السلبي؟

    رمز توقف زائدة نموذجي:

    void ShortTrailingStop ()
    {
    int scnt
    int stotal = OrdersTotal ()؛

    لـ (scnt = stotal-1؛ scnt gt؛ = 0؛ scnt--)
    {
    OrderSelect (scnt، SELECT_BY_POS، MODE_TRADES)؛
    if (OrderType () lt؛ = OP_SELL OrderSymbol () == Symbol ())
    {
    إذا تم فتح (ShortType () == OP_SELL)/short position
    {
    إذا (TrailingStopgt، 0)
    {
    إذا ((OrderOpenPrice () - طرح) GT؛ (نقطة * TrailingStop))
    {
    if ((OrderStopLoss () gt؛ (Ask (Point * TrailingStop))) || (OrderStopLoss () == 0))
    {
    OrderModify (OrderTicket ()، OrderOpenPrice ()، اسأل (نقطة * TrailingStop)، OrderTakeProfit ()، 0، الأحمر)؛
    عودة (0)؛
    }
    }
    }
    }
    }
    }
    }

  2. #2
    سهل. كل ما عليك فعله هو أن تضيف الشفرة الزائدة الربح = الربح OrderProfit () وترفض السحب إلا بالقيمة الربحية ؛ 0. - سيكون عليك إغلاق الأوامر برمز البرنامج بدلاً من استخدام أمر stoploss حسب الطلب.

  3. #3
    شكرا لردكم ، ثم أنه لا درب ، فإنه سوف يأخذ فقط الربح عندما يكون هناك ربح يتطلب وظيفة OrderModify () للتتبع ، ولكن معلمة stoploss مزدوجة هي سبب المشكلة. لن تعمل مع وسيط بتكليف. هل هناك طريقة للتغلب على ذلك؟

  4. #4

    Quote Originally Posted by ;
    أعود إلى الاختبار ... إذا كانت (OrderType () lt؛ = OP_SELL OrderSymbol () == Symbol ()) {if (OrderType () == OP_SELL)/يتم فتح موضع قصير {
    حسنا أنا لست متأكدا مما إذا كان سيغير النتيجة النهائية للرمز في الوقت الحالي ، ولكن أعتقد أنني رأيت هذا الشيء المذكور في بعض المواضيع الأخرى في الآونة الأخيرة. إذا كان (OrderType () lt؛ = سيظل OP_SELL صحيحًا ، فإن الأمر الذي يتعلق بـ OrderType () ليس رقمًا ، أعتقد أنك تفلت بسببه إذا كان () (إذا كان (OrderType () == OP_SELL) انظر في هذا 1 أنت تتحقق مما إذا كان يساوي OP_SELL ، وهو الاستخدام الصحيح. تحقق مما إذا كان أقل من OP_SELL ليس هو الاستخدام الصحيح (gramar؟) أعتقد أن هناك قيمة مبادلة مخزنة في الطلب ، ولكن غير متأكد من عمولة . في صحتك

  5. #5
    شكرا لك الرد. هذه ليست المشكلة ، لقد قمت فقط بتغييرها إلى == لمعلوماتك لمراجعة ما إذا كان OP_SELL أو OP_BUY الذي سيعود 1 و 0. لتر ؛ = 1 أو 0. ليس السبب وراء بيع خسارة المخاطرة في الخسارة.

  6. #6
    الروتين يحصل على القليل من المشاركة. عليك حساب أعلى ربح نقطة يتحقق منذ فتح الطلب. اطرح عامل التتبع الخاص بك. إذا تم تفعيل الممر ، تحقق أيضا إذا كان الطلب في الربح. إذا كان الأمر كذلك ، فيجب السماح بإغلاق الطلب. سيكون عليك استخدام iBarShift على M1 و iHighest أو iLowest لحساب أعلى أو أدنى سعر يتحقق منذ إنشاء الطلب. ابدأ بـ OrderOpenTime () وانتقل للأمام إلى الوقت الحالي وابحث عن السعر الأعلىالأدنى (اعتماداً على ما إذا كان الشراء أو البيع). احتفظ أيضًا بحساب OrderProfit () - إذا كان في الربح إغلاق الطلب مع OrderClose ().

أذونات النشر

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  
  • رمز 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.