Trailing Stop EA
الصفحة 1 من 289 12 الأخيرةالأخيرة
Results 1 to 10 of 16

Thread: Trailing Stop EA

  1. #1
    لقد كنت أعمل في EA التي (على أساس المطابع من أزرار كائن المخطط) ؛ يفتح الصفقات في سعر السوق تجمد أبعاد اللوت على أساس مخاطري باستخدام خط SL الذي أضعه على الرسم البياني. يضبط عمليات التداول المعلقة (ويحسب أبعاد اللقطات اليمنى بناءً على المخاطر٪) مع سطر إدخال و SL الذي أضعه على المخطط. مجموعة متنوعة من أنواع وظائف الإغلاق (كل ما هو متاح ، جميع المخططات ، كل OP ، جميع الأرباح ، جميع التخفيضات إلخ.). نقل التداولات إلى BE كافية لدفع comm. و المقايضات لقد كنت أعمل على وظيفة مراقبة SL التي تقوم بعمل ما تقوم به و تعمل بشكل جيد ولكن فقط في المرة الأولى. أنا اضغط على الزر ، فإنه يتبين أين يتحرك السعر SL وفقا لذلك و. مرة أخرى يحدد هذا مدى التحرك بناءً على المخاطرة الأولية (مثل تحركات SL استخدم سعر الفتح وحالة ثابتة 5: 1 لجني الأرباح لحساب مقدار التحرك حيث يتم وضع هذه المتغيرات التي لن تتحرك ولا تختلط الحسابات) . ما أحاول القيام به هو اتخاذ قرار بشأن حلقة من الأنواع التي أضغط فيها على الرسم البياني وتحرك SL. إذا وصل السعر إلى مستوى جديد ، فإنه يتحرك على SL دون الحاجة إلى ضرب SL slut buttion مرة أخرى. أدرك أنه إذا قمت بتغيير TF الخ ... ونعيد التأكيد على أنه يجب عليّ إعادة الضغط على الزر. هل يمكن وضع هذا الكود في حلقة تستمر في التحرك والتحقق من SL؟ لقد حاولت بعض الأشياء مثل الاستفادة في حين أنها لا تعبث إلا الأشياء وكذلك يرتد SL ذهابا وإيابا. إذا قمت بالمتابعة ، بعد كل ذلك إذا تم الإيقاف بعد السطر الأولي ...

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

    تم إدراج رمز إذا تم الضغط على زر SL Trail (sparam == TSLButton)/ObjectSetInteger (0، TSLButton، OBJPROP_STATE، false)؛ bool TSL = false double TickValue = MarketInfo (الرمز () ، MODE_TICKVALUE) ؛ dual GGG = OrderCommission () OrderSwap ()؛ dual GGG1 = NormalizeDouble (OrderCommission () OrderSwap ()، Digits) * Point؛ المزدوجة XXX = GGG1TickValue ، المزدوج XXY = (OrderOpenPrice () - OrderTakeProfit ())TPFactor؛ int orders_cnt = 0؛ int كاملة = OrdersTotal ()؛ for (int I = 0؛ ilt؛ total؛ I ) if (OrderSelect (I، SELECT_BY_POS، MODE_TRADES) == false)؛ if (OrderSymbol () == Symbol ()) orders_cnt ؛ ObjectSetInteger (0، TSLButton، OBJPROP_COLOR، ButtonTxtCLR)؛ ObjectSetInteger (0، TSLButton، OBJPROP_BGCOLOR، الأحمر)؛ ObjectSetInteger (0، TSLButton، OBJPROP_BORDER_COLOR، الأحمر)؛ RefreshRates ()؛ if (OrderType () == OP_BUY) إذا (Bidgt؛ (OrderOpenPrice () (XXY * two))) TSL = OrderModify (OrderTicket () ، OrderOpenPrice () ، (OrderOpenPrice () - (XXX)) ، OrderTakeProfit () ، 0، clrNONE)؛ if (Bidgt؛ (OrderOpenPrice () (XXY * 3))) TSL = OrderModify (OrderTicket ()، OrderOpenPrice ()، ((OrderOpenPrice () - (XXX)) (XXY)، OrderTakeProfit ()، 0، clrNONE)؛ إذا كانت (Bidgt؛ (OrderOpenPrice () (XXY * 4))) TSL = OrderModify (OrderTicket ()، OrderOpenPrice ()، ((OrderOpenPrice () - (XXX)) (XXY * 3))، OrderTakeProfit ()، 0، clrNONE)؛ if (OrderType () == OP_SELL) إذا (Asklt؛ (OrderOpenPrice () - (XXY * two))) TSL = OrderModify (OrderTicket () ، OrderOpenPrice () ، (OrderOpenPrice () (XXX)) ، OrderTakeProfit () ، 0، clrNONE)؛ إذا كان (Asklt؛ (OrderOpenPrice () - (XXY * 3))) TSL = OrderModify (OrderTicket () ، OrderOpenPrice () ، ((OrderOpenPrice () (XXX)) - (XXY) ، OrderTakeProfit () ، 0 ، clrNONE)؛ إذا كان (Asklt؛ (OrderOpenPrice () - (XXY * 4))) TSL = OrderModify (OrderTicket () ، OrderOpenPrice () ، ((OrderOpenPrice () (XXX)) - (XXY * 3)) ، OrderTakeProfit () ، 0، clrNONE)؛

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

  3. #3
    Quote Originally Posted by ;
    مرحبًا press78 ، ليس عليك وضع شفرتك في حلقة ، بل قم باستدعاءها في كل حدث OnTick. أفضل شيء يجب القيام به كمفهوم شامل هو أن الزر الخاص بك يجب أن يقوم بتشغيلإيقاف توقفك المتحرك ، ثم يحتفظ بلطف (في ملف على سبيل المثال) وتحقق من تلك القيمة إلى وظيفة OnInit ، ثم في OnTick ، ​​تقوم بالاتصال بك رمز التوقف اللاحق في حالة تشغيل هذا العامل أو إيقاف تشغيله.
    شكرا لك على الرد. وهذا يشير لي في اتجاه ما أريد دراسته
    لأنني لم أضطر إلى كتابة أي شيء مشابه لما تصفه من قبل!

  4. #4
    يقترب. اطلب من المراقبة التوقف عن العمل تحت وظيفة القراد. ومع ذلك فإنه يحاول تغيير جميع الصفقات المفتوحة (سواء بالشراء أو البيع) بناءً على أول صفقة مفتوحة. أول شيء يعمل كل شيء كبير. يتحرك SL كما ينبغي بالكمية المناسبة ... دعنا نقول أن التبادل 1 هو شراء على EUR USD ... التجارة 2 هي شراء التجارة على زوج مختلف ... يبدأ SL بالجنون بناءً على ما يقوم به اليورو مقابل الدولار الأميركي. التجارة 3 هي صفقة بيع على زوج مختلف ... مرة أخرى يبدأ SL بالجنون بناءً على المعاملة 1 التي يتم تنفيذها. كان لي على حد سواء شراء وبيع الصفقات في ظل واحد بدوره علىإيقاف درب الخيار SL. سيتم إصلاح هذه المشكلة من خلال تقسيمها على حدة في تشغيلإيقاف 11 ، ولكنها لا تفكر. كيف يمكنني الحصول على وظيفة SL trail للتحقق من كل صفقة على حدة وإدارتها؟ هنا هو ما لدي لرمز تحت OnTick. رمز مدرج إذا (TrueBuySL == true) bool TSLBuy = false؛ TotalNumberOfOrders = OrdersTotal ()؛ لـ (PositionIndex = TotalNumberOfOrders -1؛ PositionIndex gt؛ = 0؛ PositionIndex -) إذا كان (! OrderSelect (PositionIndex، SELECT_BY_POS، MODE_TRADES)) تابع؛ if (OrderType () == OP_BUY OrderSymbol () == Symbol ()) if (MarketInfo (Symbol ()، MODE_BID) gt؛ (OrderStopLoss () (BuyRisk * TrailFactor))) TSLBuy = OrderModify (OrderTicket ()، OrderOpenPrice ()، ((OrderStopLoss () (BuyRisk * TrailMove)) - BECSAdd)، OrderTakeProfit ()، 0، clrNONE)؛ if (TrailSellSL == true) bool TSLSell = false؛ TotalNumberOfOrders = OrdersTotal ()؛ لـ (PositionIndex = TotalNumberOfOrders -1؛ PositionIndex gt؛ = 0؛ PositionIndex -) إذا كان (! OrderSelect (PositionIndex، SELECT_BY_POS، MODE_TRADES)) تابع؛ if (OrderType () == OP_SELL OrderSymbol () == Symbol ()) if (MarketInfo (Symbol ()، MODE_ASK) lt؛ (OrderStopLoss () - (SellRisk * TrailFactor))) TSLSell = OrderModify (OrderTicket ()، OrderOpenPrice ()، ((OrderStopLoss () - (SellRisk * TrailMove)) BECSAdd)، OrderTakeProfit ()، 0، clrNONE)؛

  5. #5

    Quote Originally Posted by ;
    الاقتراب. اطلب من المراقبة التوقف عن العمل تحت وظيفة القراد. ومع ذلك فإنه يحاول تغيير جميع الصفقات المفتوحة (سواء بالشراء أو البيع) على أساس التجارة الأولى المفتوحة. يعمل كل شيء في الصفقة المفتوحة. يتحرك SL عندما ينبغي أن يكون بالكمية المناسبة ... دعنا نقول أن التجارة 1 هي شراء على EUR USD ... التجارة 2 هي شراء التجارة على زوج آخر ... يبدأ SL بالجنون متوقفاً على أداء اليورو مقابل الدولار الأميركي. التجارة 3 هي تجارة السوق على زوج مختلف ... مرة أخرى يبدأ SL بالجنون على أساس ما تقوم به المعاملة 1. كان لي شراء وبيع على حد سواء ...
    حسنًا ، لقد أضفت رقمًا سحريًا وتصفية المسار SL لإدارة الصفقات فقط عندما يتطابق Symbol و OrderType و MagicNumber مع معلومات الطلب. يبدو أن هذا قد أوقف حركة الجنون المتحركة عند البحث في صفحتين (اتجاهات متعارضة لهذا الاختبار) على أزواج مميزة. من المبكر جدًا معرفة ما إذا كان الممر سيحصل على المهمة. سوف يقول الوقت على كلا الحرفين. أنا فضولية بدلاً من ذلك ، لكن مرشح المكان لـ OrderSymbol و OrdeType لم يكن يحمي الصفقات على الرسوم البيانية الأخرى وحتى من نوع التجارة المعارض من أن يتأثر بطريقة SL ؟؟ بناء على هذه النظرية ، عندما رغبت في فتح العديد من الصفقات على نفس الزوج بالضبط ، ولديهم المسار الذي سيديرهم بشكل منفصل ، سأحتاج إلى فتح العديد من المخططات للزوج المتطابق ووضعها على EA بأرقام سحرية مختلفة؟ إذا كان أي شخص لديه أي معلومات أخرى أو مساعدة من شأنها أن تكون مع ذلك قيمة كبيرة.

  6. #6
    هل تسأل عن كيفية تنفيذ TS؟ - تحتاج (لكل طلب) مساحة درب واقترح مقياس (أي نقطة واحدة أو أكثر ، وليس نقطة فرعية). من هناك من السهل و رمز TS العادي يبدو أي شيء مثل هذا: Inserted Code if (OrderSelect (...)) if (OrderType () == OP_BUY (MarketInfo (OrderSymbol ()، MODE_BID) -traildistancegt؛ OrderStopLoss ()) ) إذا (! OrderModify (OrderTicket () ، OrderOpenPrice () ، NormalizeDouble (MarketInfo (OrderSymbol () ، MODE_BID) -متدرب قياس ، Digits-1) ، OrderTakeProfit () ، 0))؛ آخر إذا كان (OrderType () == OP_SELL (MarketInfo (OrderSymbol () ، MODE_ASK) traildistancelt ؛ OrderStopLoss ())) إذا (! OrderModify (OrderTicket () ، OrderOpenPrice () ، NormalizeDouble (MarketInfo (OrderSymbol () ، MODE_ASK) traildistance-step، Digits-1)، OrderTakeProfit ()، 0))؛

  7. #7

    Quote Originally Posted by ;
    هل تسأل عن كيفية تنفيذ TS؟ - تحتاج (لكل طلب) مساحة درب وأقترح إجراء (أي نقطة واحدة أو أكثر ، وليس نقطة فرعية). من هذه النقطة أنها بسيطة ويظهر رمز TS عادي أي شيء مشابه لذلك: if (OrderSelect (...)) {if (OrderType () == OP_BUY (MarketInfo (OrderSymbol ()، MODE_BID) -traildistancegt؛ OrderStopLoss ( ))) إذا (! OrderModify (OrderTicket ()، OrderOpenPrice ()، NormalizeDouble (MarketInfo (OrderSymbol ()، MODE_BID) -traildistance measure، Digits-1)، OrderTakeProfit ()، 0))؛ آخر إذا (OrderType () == OP_SELL (MarketInfo (OrderSymbol () ، MODE_ASK) traildistancelt ؛ OrderStopLoss ())) ...
    ليس تماما. يعتمد EA على نسبة المخاطرة٪ وبناءً عليه يتم تحديد مساحتي وقياس عملي من خلال التجارة نفسها باستخدام سعر إدخال المعلومات وقبول الربح. لقد حصلت على أنها تعمل على ما يرام مع رمز بلدي أنه يعمل فقط للتجارة الأصلية. بعد تلك المعاملات 1،2 وما إلى ذلك ... إذا كانت أزواج متميزة أو نوع تجاري يتم نقل SS من قبلنا وفقًا للتداول 0. لا أستطيع معرفة التعامل مع كل صفقة على أساس تفاصيلها التجارية وكيفية الحصول على وظيفة التتبع. هذا ما حيرني. يبدو أن إضافة العدد قد توقفت عن بعضه ، لكنني أتساءل عما إذا كان شيء ما في الكود الخاص بي لاختيار الطلب غير مناسب لأن الفلاتر التي استخدمتها للرمز والشراء مقابل السوق لم تكن تفعل ذلك وأنا غير متأكد. وقد تأثرت تجارة بيع طريق التجارة شراء. فعل

  8. #8
    إذا كانت وظيفة ”أجو” الخاصة بك تعمل في طلب واحد ، فإنها تعمل تقريبًا لأي (لأن العملية غير مميزة). ومع ذلك ، يفترض هذا أن يتم تعيين كافة العوامل من جديد بيانات الطلب. لذا ، هناك احتمالات أنك تفشل في هذه الخطوة.

  9. #9
    هذا هو السبب في أنني نشرت رمز بلدي. قد يساعد اختيار شخص ما على اختيار المكان الذي أخطأت فيه في شفرتي. وهي تعمل من أجل التجارة 0 بغض النظر عما إذا كانت شراء أو بيع. الصفقات 1،2،3 وما إلى ذلك .. هي أيقظ ويبدو أن يجري على أساس التجارة 0. شكرا لردودكم.

  10. #10
    لا يمكنني تقييم أهمية هذا ، لكنك لا تقوم بحساب متغيرات BuyRiskSellRiskTrailFactorTrailMoveBECSAdd لكل طلب ، ولكن استخدم نفس القيم لجميع الطلبات (وأنت لا تقوم بتطبيع القيمة الأخيرة (ق) ، ما يجب على الأرجح).

أذونات النشر

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