PDA

View Full Version : الشبح StopLosses؟



gotmetinho96
08-18-2009 04:53, 04:53 AM
أنا أعرف كيفية رمز قياسي ، stl stopeloss الفانيلا سهل. هذا ليس صعبًا على الإطلاق.

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

rotelot
10-18-2021 21:59, 09:59 PM
لا يمكنك. إذا لم يكن لديك أي اتصال بالوسيط الخاص بك (وهم لا يعرفون المكان الذي تريده ، أو غير ذلك) ، فلن يكون هناك SL. أفضل ملائمة هي برمجة منطقتك الخاصة SL المنحدرة في 'EA' الخاص بك بطريقة قابلة للاسترداد ، ومراقبة ما إذا كان EA الخاص بك لا يزال متصلاً. إن لم يكن بعد ذلك يجب أن يحذرك (عن طريق الرسائل القصيرةالبريد الإلكتروني وغيرها) بطريقة قابلة للاسترداد .... قم بتخزين جميع المعلومات التجارية في المصفوفات (أو الهياكل إذا كانت لغة أخرى غير MQL). فريد السحر ، سعر مفتوح ، نوع (شراءبيع) ، سعر HL ، عدد النقاط ، SL الحجم ، SL الأسعار وغيرها وحفظ هذه المصفوفات في فترات منتظمة إلى ملف. ستحتاج أيضًا إلى إجراء إجراءات برمجية لتحميل هذه القيم على تهيئة EA - في الحالات التي يتعطل فيها EAPC. والروتين إلى 'معرفة' عندما كنت قد عادت من انقطاع اتصال مؤقت أو حادث حتى تتمكن من فحص الوضع الحالي للعب الآيات في الفترة الأخيرة قبل انقطاع التيار. أنصحك بتعيين SL ثابت مع الوسيط الذي هو أبعد من السعر من توقفك الشبح الحقيقي ولكن ليس بقدر أن تكون غير متوفر في IE إذا كان توقف Stealth الخاص بك حاليا 30 نقطة من السعر ثم وضع وسيط وقف 100 نقطة بعيدا لذلك لديك بعض تغطية الكوارث

محفوظ ألماس
10-18-2021 23:19, 11:19 PM
استخدم GlobalVariables لـ StopLoss، Stop Trailing الحالي، Etc .. - لا تنتهي صلاحيتها لمدة 4 أسابيع بعد آخر استخدام.
http://book.mql4.com/variables/globals- بالطبع يجب تشغيل جهاز الكمبيوتر الخاص بك وتشغيله ولكن يمكن إعادة تشغيل الكمبيوتر الشخصي والتقاط المكان الذي توقفت عنده.

gotmetinho96
10-19-2021 00:40, 12:40 AM
تعمل المتغيرات العالمية من أجل تجارة واحدة ، يصعب تطبيقها على عدة متغيرات. يبدو أنني سأضطر إلى الكتابة إلى ملف سجل القراد. (لتداول اتجاه SL)

محفوظ ألماس
10-19-2021 02:01, 02:01 AM
أفضل طريقة لإعداد globals for multi هي استخدام المعرّفات الفريدة: AccountNumber_TradeTicket_ [StopLoss] 23875443_19283_ [60] ثم من السهل تحليلها باستخدام وظائف stringsearch و conversion. بعد ذلك من السهل إنشاء وظائف CreateGlobalStop () و GetGlobalStop ()

salieti
10-19-2021 03:22, 03:22 AM
بسيطة ، وليس أي خلاف من درب حقيقي مجرد استخدام قواعد لإغلاق التجارة ، بدلا من تحريك slées بضعة أسطر من الكود فقط لأجلك ، يجب أن يكون لديك أوامر مختارة Inserted Code إذا (! HideTakeProfitOrderType () == OP_SELLOrderTakeProfit () ! = OrderOpenPrice () - TakeProfit * my_point) {OrderModify (OrderTicket ()، OrderOpenPrice ()، OrderOpenPrice () - TakeProfit * my_point، OrderTakeProfit ()، 0، CLR_NONE)؛ } إذا كانت (! HideTakeProfitOrderType () == OP_BUYOrderTakeProfit ()! = OrderOpenPrice () TakeProfit * my_point) {OrderModify (OrderTicket ()، OrderOpenPrice ()، OrderOpenPrice () TakeProfit * my_point، OrderTakeProfit ()، 0، CLR_NONE)؛ } if (HideTakeProfitOrderType () == OP_SELLMarketInfo (OrderSymbol ()، MODE_BID) lt؛ = OrderOpenPrice () - TakeProfit * my_point) {OrderClose (OrderTicket ()، OrderLots ()، MarketInfo (OrderSymbol ()، MODE_BID)، Slippage، CLR_NONE )؛ } if (HideTakeProfitOrderType () == OP_BUYMarketInfo (OrderSymbol ()، MODE_ASK) gt؛ = OrderOpenPrice () TakeProfit * my_point) {OrderClose (OrderTicket ()، OrderLots ()، MarketInfo (OrderSymbol ()، MODE_ASK)، Slippage، CLR_NONE )؛ }

salieti
10-19-2021 04:42, 04:42 AM
أنا فقط أدركت أن هذا هو موضوع جولة أوروغواي رونالد ، بعد كل رمز iv شو ea شو ، كيف لا يمكن أن تعرف هذا

salieti
10-19-2021 06:03, 06:03 AM
أنا فقط أدركت أنني سجلت رمز خاطئ ، وهنا هو درب الشبح إدراج درب كود باطلة () {int totalorders = OrdersTotal ()؛ for (int i = totalorders-1؛ igt؛ = 0؛ i--) {OrderSelect (i، SELECT_BY_POS)؛ إذا كانت (OrderTicket () == تذكرة || OrderTicket () == ticket2 || OrderTicket () == ticket3 || OrderTicket () == ticket4 || OrderTicket () == ticket5 || OrderTicket () == ticket6) { if (MarketInfo (OrderSymbol ()، MODE_LOTSTEP) == 0.001) digits = 3؛ if (MarketInfo (OrderSymbol ()، MODE_LOTSTEP) == 0.01) digits = 2؛ if (MarketInfo (OrderSymbol ()، MODE_LOTSTEP) == 0.1) digits = 1؛ if (MarketInfo (OrderSymbol ()، MODE_LOTSTEP) == 1) digits = 0؛ if (MarketInfo (OrderSymbol ()، MODE_POINT) == 0.0001) my_point = 0.0001؛ if (MarketInfo (OrderSymbol ()، MODE_POINT) == 0.00001) my_point = 0.0001؛ if (MarketInfo (OrderSymbol ()، MODE_POINT) == 0.01) my_point = 0.01؛ if (MarketInfo (OrderSymbol ()، MODE_POINT) == 0.001) my_point = 0.01؛ if (OrderSymbol () == OrderSymbol ()! HideTrailingStop) {if (OrderStopLoss () lt؛ OrderOpenPrice () OrderType () == OP_BUY MarketInfo (OrderSymbol ()، MODE_ASK) -OrderOpenPrice () gt؛ = TrailingStop * my_point OrderStopLoss ( )! = OrderOpenPrice ()) OrderModify (OrderTicket ()، OrderOpenPrice ()، OrderOpenPrice ()، OrderTakeProfit ()، 0، CLR_NONE)؛ if (OrderStopLoss () gt؛ OrderOpenPrice () OrderType () == OP_SELL OrderOpenPrice () - MarketInfo (OrderSymbol () ، MODE_BID) gt؛ = TrailingStop * my_point OrderStopLoss ()! = OrderOpenPrice ()) OrderModify (OrderTicket ()، OrderOpenPrice ()، OrderOpenPrice ()، OrderTakeProfit ()، 0، CLR_NONE)؛ if (OrderStopLoss () gt؛ = OrderOpenPrice () OrderType () == OP_BUY MarketInfo (OrderSymbol ()، MODE_ASK) -OrderStopLoss () gt؛ = TrailingStop * my_point MarketInfo (OrderSymbol ()، MODE_ASK) gt؛ = OrderStopLoss () (TrailingStep * 2) * my_point) OrderModify (OrderTicket ()، OrderOpenPrice ()، OrderStopLoss () TrailingStop * my_point، OrderTakeProfit ()، 0، CLR_NONE)؛ if (OrderStopLoss () lt؛ = OrderOpenPrice () OrderType () == OP_SELL OrderStopLoss () - MarketInfo (OrderSymbol ()، MODE_BID) gt؛ = TrailingStop * my_point MarketInfo (OrderSymbol ()، MODE_BID) lt؛ = OrderStopLoss () - (TrailingStep * 2) * my_point) OrderModify (OrderTicket ()، OrderOpenPrice ()، OrderStopLoss () - TrailingStop * my_point، OrderTakeProfit ()، 0، CLR_NONE)؛ } if (OrderSymbol () == OrderSymbol () HideTrailingStop) {if (OrderType () == OP_BUY) {if (MarketInfo (OrderSymbol ()، MODE_ASK) -OrderOpenPrice () gt؛ = TrailingStop * my_pointObjectGet (sl OrderTicket () b، OBJPROP_PRICE1) lt؛ OrderOpenPrice ()) {ObjectCreate (sl OrderTicket () b، OBJ_HLINE، 0، 0، 0)؛ ObjectSet (sl OrderTicket () b ، OBJPROP_PRICE1 ، OrderOpenPrice ())؛ ObjectSet (sl OrderTicket () b، OBJPROP_COLOR، Red)؛ ObjectSet (sl OrderTicket () b، OBJPROP_STYLE، 3)؛ } if (MarketInfo (OrderSymbol ()، MODE_ASK) -ObjectGet (sl OrderTicket () b، OBJPROP_PRICE1) gt؛ = TrailingStop * my_pointObjectGet (sl OrderTicket () b، OBJPROP_PRICE1) gt؛ = OrderOpenPrice () ObjectGet (sl OrderTicket () b ، OBJPROP_PRICE1) lt؛ MarketInfo (OrderSymbol ()، MODE_ASK) -TrailingStep * my_point) {ObjectSet (sl OrderTicket () b، OBJPROP_PRICE1، MarketInfo (OrderSymbol ()، MODE_ASK) -TrailingStop * my_point؛ }} if if (OrderType () == OP_BUYMarketInfo (OrderSymbol ()، MODE_ASK) lt؛ = ObjectGet (sl OrderTicket () b، OBJPROP_PRICE1)) OrderClose (OrderTicket ()، OrderLots ()، MarketInfo (OrderSymbol ()، MODE_ASK )، Slippage، CLR_NONE)؛ count_orders ()؛ if (OrderType () == OP_SELL) {if (OrderOpenPrice () - MarketInfo (OrderSymbol ()، MODE_BID) gt؛ = TrailingStop * my_pointObjectGet (sl OrderTicket () s، OBJPROP_PRICE1) gt؛ OrderOpenPrice ()) {ObjectCreate ( sl OrderTicket () s، OBJ_HLINE، 0، 0، 0)؛ ObjectSet (sl OrderTicket () s ، OBJPROP_PRICE1 ، OrderOpenPrice ())؛ ObjectSet (sl OrderTicket () s، OBJPROP_COLOR، Red)؛ ObjectSet (sl OrderTicket () s، OBJPROP_STYLE، 3)؛ } if (ObjectGet (sl OrderTicket () s، OBJPROP_PRICE1) -MarketInfo (OrderSymbol ()، MODE_BID) gt؛ = TrailingStop * my_pointObjectGet (sl OrderTicket () s، OBJPROP_PRICE1) lt؛ = OrderOpenPrice () ObjectGet (sl OrderTicket () s، OBJPROP_PRICE1) gt؛ MarketInfo (OrderSymbol ()، MODE_BID) TrailingStep * my_point) {ObjectSet (sl OrderTicket () s، OBJPROP_PRICE1، MarketInfo (OrderSymbol ()، MODE_BID) TrailingStop * my_point . }} if (OrderType () == OP_SELLMarketInfo (OrderSymbol () ، MODE_BID) gt؛ = ObjectGet (sl OrderTicket () s ، OBJPROP_PRICE1)) OrderClose (OrderTicket ()، OrderLots ()، MarketInfo (OrderSymbol ()، MODE_ASK )، Slippage، CLR_NONE)؛ count_orders ()؛ }}}}

salieti
10-19-2021 07:24, 07:24 AM
لا يقتصر الأمر على التسلل ، بل يرسم خطوطًا على الرسم البياني حتى يمكنك رؤية الشريحة ، لقد اختبرت فقط على ibfx ، بينما عبر الإنترنت ، إذا كنت غير متصل بالإنترنت ، فإن marketinfo لا يعمل

محفوظ ألماس
10-19-2021 08:45, 08:45 AM
RR أفضل فكرة فقط ضربني. ما عليك سوى إضافة 1000 نقطة إلى SLTP وحفظها في الترتيب كالمعتاد. Simpy لديك روتين خروج خفي طرح 1000 نقطة من SL أو TP. يجعل من السهل حفظها وسهل قراءتها.

نادر مريم
10-19-2021 10:06, 10:06 AM
RR أفضل فكرة فقط ضربني. ما عليك سوى إضافة 1000 نقطة إلى SLTP وحفظها في الترتيب كالمعتاد. Simpy لديك روتين خروج خفي طرح 1000 نقطة من SL أو TP. يجعل من السهل حفظها وسهل قراءتها.
يبدو وكأنه فكرة جيدة ، وتخزين TPSL الحقيقي داخل TPSL كبير.

gotmetinho96
10-19-2021 11:26, 11:26 AM
مرحبا بالجميع. أولاً ، هذه حلول رائعة جدا أراها هنا. المشكلة الرئيسية التي أواجهها مع نسخاتي من هذه الرموز هي إمكانية الاسترداد. لنفترض أن الوقفة المتحركة هي 40 نقطة. مسافة stoploss الحالية هي 30 نقطة. فجأة ، تغلق المحطة. خلال تلك الفترة: يتحرك السعر لأعلى بمقدار 70 نقطة تقريبًا 30 نقطة. عندما تعود المحطة إلى الإنترنت ، يجب أن يكون الوقف - حسب نقطة الوقف - السعر الحالي - 10 نقاط. ولكن ، إلى EA ، تحرك السعر 40 نقطة للأعلى ، الأمر الذي يجعل stoploss يصل إلى 40 نقطة أقل من السعر الحالي بدلاً من 10. أي حل لذلك؟ كنت أفكر في استخدام عاليةمنخفضة من شريط. المشكلة هي أنني لا أستطيع دائما معرفة ما إذا كان ارتفاعانخفاض حدث بعد الصفقة.

محفوظ ألماس
10-19-2021 12:47, 12:47 PM
ابدأ بـ OrderOpenTime () و iBarshift على M1 حتى الوقت الحالي. استخراج قيمة M1 عالية من كل شريط وحفظ أعلى لحساب أعلى ربح نقطة. في فوضوي قليلا لكنه يعمل ولكن لا يهم كيندا على سبيل المثال الخاص بك لأنك غاب عن ارتفاع وإذا كنت 30 نقطة تحت الماء قد تنشيط مقطورة. عليك فقط تشغيلها من نقطة الاستعادة الخاصة بك.

نور الله سعادة
10-19-2021 14:08, 02:08 PM
أي حل لذلك؟ كنت أفكر في استخدام عاليةمنخفضة من شريط. المشكلة هي أنني لا أستطيع دائما معرفة ما إذا كان ارتفاعانخفاض حدث بعد الصفقة.
فقط درب عاليةمنخفضة من 1 دقيقة من الشموع بين النظام المفتوح والوقت الحالي. إذا لم تكن الشموع دقيقة واحدة كافية ، فلا يوجد حلاً جيدًا ، وربما يتعين عليك العثور على وسيط آخر (منصة أخرى على الأرجح) تسمح بتوقف جانب الخادم.

نادر مريم
10-19-2021 15:29, 03:29 PM
يمكننا تتبع أعلىأدنى سعر ضمن مجموعة من الأشرطة بسهولة باستخدام iHighest () iLowest ()

gotmetinho96
10-19-2021 16:49, 04:49 PM
يمكننا تتبع أعلىأدنى سعر ضمن مجموعة من الأشرطة بسهولة باستخدام iHighest () iLowest ()
القضية هي ما يحدث إذا تم وضع الصفقة على الشريط نفسه. (يفترض بعد ارتفاع). أدرك أن هذا ليس مثالياً ، لكن على الأقل أحاول تغطية قواعدي.