PDA

View Full Version : تحديد وقت البدء لـ EA؟



حامد سهيل
01-11-2009 20:51, 08:51 PM
هل هناك وسيلة مباشرة لجدولة وقت لبدء المستشار الخبير؟ لنفترض أنني أريد أن يبدأ EA في الساعة 2:00 صباحًا بشكل منتظم ويتوقف بعد 12 ساعة. يمكنني استخدام عمل النوم لإيقافه ، لكن لا يمكنني معرفة كيفية بدء تشغيله. مما قرأته يبدو أن التاريخ والوقت بأكمله يشير إلى وقت أساسي في 1 يناير 1970. كيف يمكنني إخبار المستشار الخبير الخاص بي أنه 2:30 صباحًا؟

ناصرة نصيرة راحة
12-03-2022 15:23, 03:23 PM
سأحاول وتتيح لك معرفة.
كان هناك خطأ في الكود. إليك الكود الذي يجب أن يعمل: الرمز المدرج int hour = TimeHour (Period # 91؛ 0 # 93؛ -RRB-؛ int day = DayOfWeek ()؛ if ((day == 5* Friday *hour gt؛ = 11) || (اليوم == 0* الأحد *الساعة لتر ؛ 20) || (اليوم! = 5 أيام! = 0 (ساعة جي تي ؛ = 17 ساعة لتر ؛ 20))) رجوع ؛

prodrigo4
12-03-2022 16:46, 04:46 PM
أنت لا تفعل ذلك روكيت. شكرا حتى الآن. سيحاول ويسمح لك بالمعرفة.

ناصرة نصيرة راحة
12-03-2022 18:08, 06:08 PM
هل يمكن لأي شخص مساعدتي في إنشاء رمز Do Not Enter Times لكل هذه الأوقات وتوجيهي حول كيفية إضافته.
يجب أن يقوم الكود أدناه بذلك في حالة ما إذا كانت الأوقات المشار إليها هي أوقات الخادم (أي ما يظهر عندما تشير إلى شمعة) ؛ سيعود (تنفيذ تعليمات ”عودة” ، أي الخروج من الوظيفة الحالية) إذا واجهت بعض الأوقات المستبعدة. اختبار تجريبي. تم إدراج كود int hour TimeHour (Time # 91؛ 0 # 93؛ -RRB-؛ if ((DayOfWeek () == 5* Friday *hour gt؛ = 11) || (DayOfWeek () == 0* sunday *hour lt؛ 20) || (hour gt؛ = 17 hour lt؛ 20)) إرجاع ؛

prodrigo4
12-03-2022 19:30, 07:30 PM
أنا لست مبرمجًا ، بل أنا مخترق مرتبك على ما أعتقد. لدي EA أحب استخدامه ، لكنني أريده ألا يدخل في تجارة جديدة خلال ساعات معينة (17:00 بالتوقيت الشرقي إلى 20:00 بالتوقيت الشرقي القياسي) على وجه الخصوص من الاثنين إلى الخميس. ليس قبل الساعة 20:00 بتوقيت شرق الولايات المتحدة يوم الأحد ، وليس بعد الساعة 11:00 بتوقيت شرق الولايات المتحدة يوم الجمعة. خلال تلك الأوقات ، يتحول الوسيط الخاص بي (Oanda) إلى نقطة الصفر. انتظر مع السمكة الصغيرة وأود أن أبقى بالخارج. ومع ذلك ، إذا كنت في صفقة ، فأنا أرغب في استمرارها دون انقطاع خلال هذه الأطر الزمنية حتى يتم استيفاء شروط الإغلاق. هل يمكن لأي شخص مساعدتي في إنشاء رمز Do Not Enter Times وتوجيهي. سأكون ممتنا للغاية. لقد سئمت من دهس الوسيط مرارًا وتكرارًا خلال هذه الأوقات.

obriina447
12-03-2022 20:53, 08:53 PM
مرحبًا بدوام كامل على مدار الساعة طوال أيام الأسبوع ، كنت أسعى إلى EA استنادًا إلى نظام supertrend. هل يمكن إرسال EA الخاص بك الذي وصفته في أحد المواضيع؟ أود رئيس الوزراء ، ولكن لم يتم السماح بعد بهذه الميزة في حسابي ، على الرغم من أنني كنت عضوًا منذ أسبوعين حتى الآن. شكرًا لك.

حامد سهيل
12-03-2022 22:15, 10:15 PM
سيكون التحدي الذي أواجهه هو العثور على رمز سيرفع حجم اللوت تلقائيًا بعد كل طلب خاسر والعودة إلى البداية بعد وصول الفائز. ثم ابدأ العملية مرة أخرى. أنا أدرك أن هذا لا يتم الدفاع عنه بشكل عام ، لكنه شيء أرغب في العبث به. لم يكن لدى نظامي أكثر من ستة خاسرين حتى وصل إلى الفائز. أي مقترحات؟ هل تعرف متى قام أي شخص في هذا المنتدى بترميز هذا وقد أجده عندما أجريت بحثًا على الإنترنت؟

ظفر مصطفى
12-03-2022 23:37, 11:37 PM
TimeCurrent () يستخدم Brokers Time - TimeLocal () يستخدم فترة أجهزة الكمبيوتر المحلية الخاصة بك.

حامد سهيل
12-04-2022 00:59, 12:59 AM
شكرا لك على مساعدتك مع هؤلاء الرجال. سيتم تشغيله بواسطتي ونرى ما سيحدث. لدي ما يمكن أن يكون سؤال غبي. هل ساعة الكمبيوتر الخاصة بي لها بعض التأثير على EA أم أن هذا يستغل وقت الوسيط بشكل صارم على المنصة (وهو 8 ساعات قبل وقتي)؟ اكتمل - لقد جربت أيضًا الكود أيضًا ولكني لم أجعل الإضافات المفضلة لديك حتى الآن. سأحاول رمز روني وأرى ما إذا كان يعمل أولاً.

ظفر مصطفى
12-04-2022 02:22, 02:22 AM
هل يمكنك تجربة روتين وقتي أيضًا؟ يتم تعيينه افتراضيًا إلى false ولن يتم تنشيطه كما قال الوقت. ومع ذلك ، لن يتم إغلاقه بعد ذلك إذا بدأت بعد ساعات. إذا بدأت في العمل 14 ، فسيتعين عليك تعديل هذا. أيضًا ... إذا كان (CanTrade totallt ؛ 1 ......) أمر = SIGNAL_BUY ؛ إذا كان (CanTrade totallt ؛ 1 ......) الأمر = SIGNAL_SELL ؛

obtaobcctt
12-04-2022 03:44, 03:44 AM
هل وضعت معايير التجارة التي يجب أن تكون CanTrade صحيحة؟ إذا (CanTrade ... ... ...) الأمر = SIGNAL_BUY ؛ إذا كان (CanTrade ... ...) أمر = SIGNAL_SELL ؛

حامد سهيل
12-04-2022 05:06, 05:06 AM
لقد عدت إلى تحليل EA باقتراحات Full و Ronald الخاصة بالتشفير ، لكن كلا الأسلوبين وضع الصفقات خارج ساعات العمل. هل الاختبار الخلفي لا يمكن الاعتماد عليه للتحقق من الترميز لأوقات البدءالإيقاف؟ حقًا ، لقد وضع فقط إدخالًا على حسابي التجريبي خارج الساعات المحددة ، لذلك لا يزال هناك شيء لا يعمل بشكل صحيح.

حامد سهيل
12-04-2022 06:28, 06:28 AM
وجدت ذلك! سأحاول ذلك الليلة وقد يكون هذا قد حل مشكلتي.

حامد سهيل
12-04-2022 07:51, 07:51 AM
أعتقد أنني أضفت قوسًا بينما كنت أحاول العثور على عدم التوازن السابق الذي أبطل كود OrdersTotal الخاص بي. الآن انظر إذا كان بإمكاني العثور عليه ويجب أن أعود.

حامد سهيل
12-04-2022 09:13, 09:13 AM
شكرا على الاقتراح. كان لدي شيء مشابه وكان يعمل. لست متأكدًا من سبب تغييره ، لكنني سأقدم توصيتك للمحاولة. Int start () {bool CanTrade = False؛ إذا كان (TimeCurrent () gt؛ = StrToTime (08:30) TimeCurrent () lt؛ = StrToTime (19:30)) CanTrade = True ؛ {أمر int = SIGNAL_NONE ؛ int كاملة ، تذكرة ؛ StopLossLevel مزدوج ، TakeProfitLevel ؛ التاريخ والوقت Current_Bar = التوقيت [0] ، إذا كان (EveryTickMode Bars! = BarCount) TickCheck = False؛ Complete = OrdersTotal ()؛ الطلب = SIGNAL_NONE ؛ تم تعيين هذا مبكرًا على النحو التالي: # تعريف SIGNAL_NONE 0

ظفر مصطفى
12-04-2022 10:35, 10:35 AM
Total = OrdersTotal () ؛/يعتمد سوق المرتجعات والأوامر المعلقة على ما إذا كان (إجمالي ؛ 1) ... نظامك العادي .../ضع هذا الشيك في الشيك الخاص بك وسوف يقوم بتعيين الأمر فقط في حالة عدم وجود أوامر حالية.

حامد سهيل
12-04-2022 11:58, 11:58 AM
حسنًا ، لقد حصلت على EA لتجميعه دون أخطاء وضعه تحت قسم البداية واستخدام اقتراح رونالد. لقد قمت بتعيينها على حسابي التجريبي وضربت الإدخالات وفعلت ذلك حتى ذهب حسابي إلى الصفر ، أو هناك تقريبًا. (لو كان يتحرك في اتجاه TP ، فمن المحتمل أن يكون لدي رصيد حساب تجريبي صحي في هذا الوقت.) أتساءل عما إذا كان في المنطقة المناسبة. لسبب ما يؤدي إلى تشغيل الإدخالات. أي اقتراحات أي شخص؟

obtaobcctt
12-04-2022 13:20, 01:20 PM
أُووبس
https://www.cavemantrading.com/attachments/1529194953.pngشكرا لك على الإصلاح يا رجال.

حامد سهيل
12-04-2022 14:42, 02:42 PM
بنغو! 0 أخطاء ، 0 تحذيرات. شكرًا!

ظفر مصطفى
12-04-2022 16:04, 04:04 PM
رمز مدرج إذا (TimeCurrent () gt؛ = StrToTime (08:30) TimeCurrent () lt؛ = StrToTime (19:30) # 91؛ b # 93؛ -RRB- # 91؛b # 93؛ CanTrade = True؛ نعم.

حامد سهيل
12-04-2022 17:27, 05:27 PM
أول شيء لاحظته في رمز رونالد هو أنه يبدو أن هناك أ) مفقودًا: إذا (TimeCurrent () gt ؛ = StrToTime (08:30) TimeCurrent () lt ؛ = StrToTime (19:30) CanTrade = صحيح ؛ يبدو أن تكون في عداد المفقودين أ) لإغلاق أول واحد في الكود في مقدمة TimeCurrent. صحيح؟

ظفر مصطفى
12-04-2022 18:49, 06:49 PM
يمكن. لقد أغلقت القسم الأول ببساطة (قد يكون هذا الروتين بأكمله مقطعًا واحدًا ويحتاج إلى إغلاق أكثر أسفل السلسلة) ولكن عندما ينص على ”غير متوازن” يمكنك أن تعتقد أنه كذلك. - يمكن أن يكون بعيدًا في أي مكان.

حامد سهيل
12-04-2022 20:11, 08:11 PM
تبطئ وتحقق بشكل أفضل من الأخطاء. انظر إلى العديد من الأمثلة التي تعمل للحصول على أفكار حول هيكل البرنامج. لن يعلمك أحد البرمجة. [كود]/بيع إذا (الطلب == SIGNAL_SELL ((EachTickMode! TickCheck) || (! EachTickMode (Bars! = BarCount)))) {//Loop # 1 ...
عادل بما فيه الكفاية ولن أتحدى مبرمجًا ، ولكن حتى أضفت أن رمز وقت البدء ، لم يكن هناك خطأ يحدث هنا لأن الحلقات ليست مغلقة كما اقترحت. حتى أضع وقت الترميز في البرنامج المترجم دون أخطاء وعمل. أحتاج إلى حل مشكلة الحصول على وقت بدء الترميز في المكان باستخدام الأقواس المناسبة.

ظفر مصطفى
12-04-2022 21:33, 09:33 PM
تمهل وقم بإجراء فحص أفضل للأخطاء. انظر إلى بعض الأمثلة للحصول على أفكار حول هيكل البرنامج. لن يعلمك أحد البرمجة. الرمز المدرج/بيع إذا (الطلب == SIGNAL_SELL ((EachTickMode! TickCheck) || (! EachTickMode (Bars! = BarCount))))/Loop # 1 if (! IsTrade)/Loop # 2/تحقق مجانًا margin if (AccountFreeMargin () lt؛ (1000 * Lots))/Loop # 3 Printing (ليس لدينا أي أموال. الهامش المجاني =، AccountFreeMargin ())؛ عودة (0) ؛/End of Loop # 3/End of Loop # 2/End of Loop # 1 ملاحظة: نادرًا ما تشير نهاية الأسطر الأقواس إلى السطر الصحيح. - أنت تفتقد إلى حلقة مغلقة # 1 - تأكد دائمًا من تطابق {} و (). اكتب رمزًا مع تباعد في أخطاء الفصل المشابهة لهذا. على الرغم من أن هذا الرمز يبدو بعيدًا جدًا عن العمل ، إلا أن هذا هو الإجراء. سوف تتعلم أولاً كل طريقة لعدم عمل البرنامج ثم تتوقف عن ارتكاب هذه الأخطاء.

حامد سهيل
12-04-2022 22:56, 10:56 PM
شكرا لكم على الرد. هذا سهل بالنسبة للمطور ، لكنني حاليًا أحصل على نهاية التطبيق - أقواس غير متوازنة تم تركها خطأ وأنا أعاني من تحديد المكان الذي يجب أن يذهب إليه الأقواس لإزالة عدم التوازن. إنه يوجهني إلى سطر ما لن أفكر فيه أين يمكن أن يحدث عدم التوازن. إنه يوجهني إلى التسطير الجريء للرمز أدناه ، وهو جزء من EA. هل هناك وسيلة سهلة لتحديد اللواء أو إذا استخدمت إجراء التجربة والخطأ حتى أجدها؟/بيع إذا (Order == SIGNAL_SELL ((eachTickMode!) TickCheck) || (! EachTickMode (Bars! = BarCount)))) if (! IsTrade)/تحقق من الهامش المجاني إذا (AccountFreeMargin () lt؛ (1000 * الكثير)) الطباعة (ليس لدينا أي أموال. الهامش المجاني =، AccountFreeMargin ())؛ عودة (0) ؛ إذا (Use_Stop_Loss) StopLossLevel = محاولة StopLoss * نقطة ؛ آخر StopLossLevel = 0.0 ؛ إذا (Use_Take_Profit) TakeProfitLevel = عرض الأسعار - TakeProfit * نقطة ؛ آخر TakeProfitLevel = 0.0 ؛ if (OrderOpenTime ()!) = Current_Bar) Ticket = OrderSend (Symbol ()، OP_SELL، LotsOptimized ()، Bid، Slippage، StopLossLevel، TakeProfitLevel، Economy (# MagicNumber )، MagicNumber، 0، DeepPink) ؛ تنبيه (قصير ، أحمر) ؛ إذا (OpenBar!) = أشرطة) OpenBar = أشرطة ؛ if (Ticket gt؛ 0) if (OrderSelect (Ticket، SELECT_BY_TICKET، MODE_TRADES)) الطباعة (فتح طلب البيع ، OrderOpenPrice ()) ؛ إذا (SignalMail) SendMail ([تنبيه الإشارة] ، [ الرمز () ] DoubleToStr (العطاء ، الأرقام) الاقتصاد المفتوح) ؛ else Printing (خطأ في فتح ترتيب SELL: ، GetLastError ()) ؛ إذا (EachTickMode) TickCheck = صحيح ؛ إذا (! EachTickMode) BarCount = أشرطة ؛ عودة (0) ؛ } إذا (! EachTickMode) BarCount = أشرطة ؛ عودة (0) ؛

obtaobcctt
12-05-2022 00:18, 12:18 AM
يجب أن يبدأ () {//القوس أعلاه مهم منطقي CanTrade = False؛ إذا (TimeCurrent () gt؛ = StrToTime (08:30) TimeCurrent () lt؛ = StrToTime (19:30) CanTrade = True؛ int Order = SIGNAL_NONE؛ int Total، Ticket؛ double StopLossLevel، TakeProfitLevel؛ datetime Current_Bar = Time [ 0]؛ if (EachTickMode Bars! = BarCount) TickCheck = False؛ Total = OrdersTotal ()؛ Order = SIGNAL_NONE؛ باقي الكود .... return (0)؛

حامد سهيل
12-05-2022 01:40, 01:40 AM
رونالد ، أنا مبتدئ في البرمجة لذا يرجى التحلي بالصبر. حاول هذا ولكن عندما جمعته لم يبدو أنه يعمل. تلقيت الأخطاء التالية: ”منطقي” - فاصلة منقوطة متوقعة C
https://www.cavemantrading.com/attachments/1529194953.pngملفات البرنامج MetaTrader - Alpari UK Experts Lag3.mq4 (81، 1) 'CanTrade' - التعبير عن النطاق العالمي غير مسموح به C
https://www.cavemantrading.com/attachments/1529194953.pngrogram FilesMetaTrader - Alpari UKexpertsLag3.mq4 (82، 80) هذه هي الطريقة التي قمت بإعدادها:/ -------------------------- ---------------------------------------- /| وظيفة بدء خبير |/ ----------------------------------------------- ------------------- int begin () bool CanTrade = False؛ if (TimeCurrent () gt؛ = StrToTime (08:30) TimeCurrent () lt؛ = StrToTime (19:30) CanTrade = True؛ {int Order = SIGNAL_NONE؛ int Total، Ticket؛ double StopLossLevel، TakeProfitLevel؛ datetime Current_Bar = Time [0]؛ if (EachTickMode Bars! = BarCount) TickCheck = False؛ Total = OrdersTotal ()؛ Order = SIGNAL_NONE؛

obtaobcctt
12-05-2022 03:02, 03:02 AM
If (TimeCurrent () gt؛ = StrToTime (08:30) TimeCurrent () lt؛ = StrToTime (19:30) CanTrade = أصيل هذا المكان يقع تحت Start () ولكن حتى منطق الدخول الخاص بك.

ظفر مصطفى
12-05-2022 04:25, 04:25 AM
من الممكن أيضًا استخدام: ساعات العمل الخارجية المدرجة في الكود = 2//02: 00 = 2:00 صباحًا - 14:00 = 2 مساءً خارجي StartMinute = 0//Input as 24hr Time extern WORKHours = 12 ؛ منطقي TradeOK = خطأ ؛ مزدوج ShutOffTime ؛ إذا (TradeOK == false TimeHour (TimeLocal ()) gt ؛ = StartHour TimeMinute (TimeLocal ()) gt ؛ = StartMinute) TradeOK = صحيح ؛ ShutOffTime = TimeCurrent () (ساعات العمل * 3600) ، إذا (TimeCurrent () gt؛ = ShutOffTime) TradeOK = false ؛ إذا (TradeOK) .... روتينك ... هناك أيضًا TimeDayOf Week للتفعيل في أمسية معينة أيضًا. TimeLocal يستحوذ على الوقت من جهاز الكمبيوتر الإقليمي الخاص بك. يبدأ هذا النمط في الوضع ”إيقاف”. ملاحظة: 3600 ثانية (60 * 60) في ساعة واحدة.

obtaobcctt
12-05-2022 05:47, 05:47 AM
Bool CanTrade = خطأ ؛ إذا كان (TimeCurrent () gt؛ StrToTime (02:30)) CanTrade = صحيح ؛ يخبر هذا الرمز المستشار الخبير بأنه عندما يكون الوقت أكبر من 2:30 وقت الوسيط ، فإنه قد يحدد صفقة.

حامد سهيل
12-05-2022 07:09, 07:09 AM
شكرا رونالد على الرد. هل يمكن أن يدخل هذا الرمز ضمن وظيفة البدء التي تعتبر خبيرًا أو وظيفة التهيئة؟ لقد قمت بالتغيير وفقًا لما هو موضح أدناه لإعطائي نافذة الإطار الزمني. هل يمكن أن يعمل هذا؟ إذا كان (TimeCurrent () gt ؛ = StrToTime (08:30) lt ؛ = StrToTime (19:30) CanTrade = صحيح

obrayb
12-05-2022 08:32, 08:32 AM
1 مرفق (مرفقات) مرحبًا بالجميع لدي مستشار خبير يعمل بشكل جيد بالنسبة لي شخصيًا لقد قمت بنشره أدناه. لقد حاولت لفترة من الوقت إضافة وظيفة الوقت ولكن دون جدوى ، بما في ذلك جميع الخطوات. أنا لست طفلاً عندما أنظر إلى إيفرست لأعترف بالهزيمة! هل هناك حقًا رجل طيب للغاية يمكنه .... اجعل يومي! . . وافعلها لي؟ جزيل الشكر.
https://www.cavemantrading.com/attachments/1531669900627469677.mq4