السلس MTF MACD لإشارات شراءبيع في وقت سابق
Results 1 to 8 of 8

Thread: السلس MTF MACD لإشارات شراءبيع في وقت سابق

  1. #1
    1 مرفق (ق) مرحبا الرجال

    هل لديك أي فكرة عن كيفية تغيير هذا الرمز للحصول على MTF MACD الداخلي هذا لرسم أبسط؟

    دعنا نفترض أنه تم استخدام المنطقة الداخلية على M1 لرسم M5 MACD (باستخدام الإعداد الافتراضي 12 ، 26 ، 9) ، ثم يشير المرجع إلى كل سعر إغلاق يستخدم في الحساب 5 مرات قبل الانتقال إلى قيمة إغلاق أخرى (والتي سيتم استخدامها 5 مرات مرة أخرى). وبالتالي ، يمكنك الحصول على MTF MACD التي تنطلق من أعلى أو أقل.

    كيف يمكن تغيير ذلك بحيث يشير المستحيل في أي وقت معين إلى سعر الإغلاق القادم في الإطار الزمني الرئيسي؟
    قضية:
    نحن على M1 باستخدام MTF MACD مكان إلى 5 (آخر TF أعلى). الآن للحصول على قيمة MACD أكثر سلاسة ، سأستخدم ، في أي وقت ، تحول السعر الحالي 0 وسعر الإغلاق في shift5 ، shift10 ، 15 ، 20 ، 25 إلخ
    إذا كان على الماكد M5 و MTF MACD إلى M15 ، فيجب أن يشير الطرف الداخلي إلى تحول السعر الحالي 0 وسعر الإغلاق shift3 ، shift6 ، 9 ، إلخ.

    أتصور الميزة هي أنه يتم تحديث قيمة MACD للإطار الزمني الأعلى في كل مرة يرسم فيها الفاصل الأدنى شريطًا جديدًا. بالطبع لن يرسم قيمة MACD الدقيقة التي تكون أعلى TF مثل وجود MACD المرسوم على TF الأعلى. ومع ذلك ، فإنه سوف يوفر تقاطع خط الصفر ، وعلامات تجارية.

    التقطت MACD MTF هنا: [url = http:/codebase.mql4.com/5660].

    تم لصق الكود أدناه. هل يمكنك مساعدتي؟ يجب تغيير بعض التعليمات البرمجية في وظيفة البدء لتلقي هدفي.

    في صحتك
    توماس

    _______
    // ----------------------------------------------- -------------------
    //| MTF MACD.mq4 |
    // ----------------------------------------------- -------------------
    #property حقوق الطبع والنشر mqlservice.co.uk
    #property Hyperlink http://mqlservice.co.uk/

    #property indior_separate_window
    # الملكية indior_buffers اثنين
    #property indior_color1 Gray
    #property indior_color2 قرمزي
    //-- معلمات الإدخال
    extern int TimeFrame = 0؛
    خارجي int FastEMA = 12 ؛
    Extern int SlowEMA = 26؛
    إشارة int الخارجية = 9 ؛
    extern int AppliedPrice = 0؛
    extern int Alter = 0؛

    extern series note0 = السعر المطبق 0-CLOSE | 1-فتح | 2 - عالية | 3-منخفض |
    سلسلة extern note1 = | 4-المتوسط ​​| 5-نموذجي | 6-الوزن |
    extern series note2 = الوقت 0 = الفترة الزمنية الحالية ؛
    السلسلة الخارجية note3 = 1 = M1 ، 5 = M5 ، 15 = M15 ، 30 = M30 ؛
    السلسلة الخارجية note4 = 60 = H1 ، 240 = H4 ، 1440 = D1 ؛
    extern series note5 = 10080 = W1 ، 43200 = MN1 ؛
    //-- مخازن
    MainBuffer مزدوج [] ؛
    إشارة مزدوجة [] ؛

    // ----------------------------------------------- -------------------
    //| خدمة التهيئة الداخلية المخصصة |
    // ----------------------------------------------- -------------------
    int init ()

    int draw_begin = MathMax (FastEMA ، SlowEMA) ؛
    series short_name = MTF MACD Price؛
    //- في الداخل
    SetIndexStyle (0، DRAW_HISTOGRAM، 0،2)؛
    SetIndexBuffer (0، MainBuffer)؛
    SetIndexStyle (1، DRAW_LINE)؛
    SetIndexBuffer (1، SignalBuffer)؛
    Print (MTF MACD.mq4، Ver. # 2)؛
    طباعة (حقوق الطبع والنشر © 2009/05/26 MQL Service UK http://mqlservice.co.uk/) ؛
    التبديل (AppliedPrice)
    الحالة 1: short_name = short_name
    إذا كان (TimeFramelt؛ Period ()) TimeFrame = Period ()؛
    السلسلة TFName =؛
    التبديل (الإطار الزمني)

    الحالة 1: TFName = M1 ؛ استراحة؛
    الحالة 5: TFName = M5 ؛ استراحة؛
    الحالة 15: TFName = M15 ؛ استراحة؛
    الحالة 30: TFName = M30 ؛ استراحة؛
    الحالة 60: TFName = H1 ؛ استراحة؛
    الحالة 240: TFName = H4؛ استراحة؛
    الحالة 1440: TFName = D1؛ استراحة؛
    الحالة 10080: TFName = W1 ؛ استراحة؛
    الحالة 43200: TFName = MN1؛ استراحة؛
    الافتراضي: TFName = مخطط ؛ الإطار الزمني = الفترة ()؛ استراحة؛


    short_name = StringConenate (short_name، (TF TFName ، FastEMA ، SlowEMA ، Signal ))؛
    IndiorShortName (SHORT_NAME)؛
    SetIndexDrawBegin (0، draw_begin)؛
    SetIndexDrawBegin (1، draw_begin)؛
    SetIndexLabel (0، منزل)؛
    SetIndexLabel (1، الإشارة)؛
    IndiorDigits (6)؛
    عودة (0)؛

    // ----------------------------------------------- -------------------
    //| عرف وظيفة إزالة deinitialization |
    // ----------------------------------------------- -------------------
    int deinit ()

    //-

    //-
    عودة (0)؛

    // ----------------------------------------------- -------------------
    //| وظيفة التكرار داخلي مخصص |
    // ----------------------------------------------- -------------------
    بداية int ()

    int limit، iChart، iTF، delta = 0؛
    وقت التاريخ TimeArray []؛
    إذا (TimeFramegt؛ Period ()) delta = MathCeil (TimeFramePeriod ())؛
    int counted_bars = IndiorCounted ()؛
    //- التحقق من الأخطاء المحتملة
    إذا كان (counted_barslt؛ 0) بإرجاع (-1) ؛
    //- سيتم إعادة فرز آخر شريط يتم حسابه
    إذا (counted_barsgt؛ 0) counted_bars--؛
    حد = البارات-counted_bars دلتا.

    ArrayCopySeries (TimeArray، MODE_TIME، رمز ()، الإطار الزمني)؛

    ITF = 0؛
    لـ (المخطط = 0 ؛ iChart ؛ الحد ؛ iChart)

    بينما (Time [iChart] lt؛ TimeArray [iTF]) iTF ؛
    MainBuffer [iChart] = EMPTY_VALUE.
    SignalBuffer [iChart] = EMPTY_VALUE.
    MainBuffer [iChart] = iMACD (رمز ()، الإطار الزمني، FastEMA، SlowEMA، الإشارة، AppliedPrice، MODE_MAIN، ITF التحول)؛
    SignalBuffer [iChart] = iMACD (رمز ()، الإطار الزمني، FastEMA، SlowEMA، الإشارة، AppliedPrice، MODE_SIGNAL، ITF التحول)؛

    عودة (0)؛


    // ----------------------------------------------- -------------------

    https://www.cavemantrading.com/attac...1556900020.mq4

  2. #2
    كيف أقوم بجمع مجموعة من الأسعار وأذكرها حيث يتم تحديد التنوع في # و HigherTimeFramePresentTimeFrame = TFfactor لفترات في MACD؟ نطاق FastPeriod (في هذه الحالة FastPeriod = 12) هو: Shift0 و 11 فترة مع TFfactor بين كل قيمة (إذا PresentTimeFrame = M5 و HigherTimeFrame = M15 ثم الصفيف المشار إليه إلى الفاصل السريع هو Shift0 ، 3 ، 6 ، 9 ، 12 ، 15 ، 18 ، 21 ، 24 ، 27 ، 30 ، 33 على M5). وينطبق نفس المبدأ على مجموعة SlowPeriod.

  3. #3
    1 مرفق (ق) نعتقد أن يذهب بعض الشيء نحو ما تريد (لم يعد اليوم). قد تتطلب التغيير والتبديل؟ (لم يحاكم في الوقت الفعلي). HTH
    https://www.cavemantrading.com/attac...0849415505.mq4

  4. #4
    Quote Originally Posted by ;
    نعتقد أن هذا يسير نحو ما تحتاجه (لا مزيد من الوقت الآن). قد تحتاج التغيير والتبديل؟ (لم يحاكم في الوقت الحقيقي). HTH
    شكرا - سأختبرها ، ودرس الكود ثم أعود إليك

  5. #5
    2 المرفق (المرفقات)
    Quote Originally Posted by ؛
    أعتقد أن هذا يسير نحو ما تريد (لا مزيد من الوقت اليوم). قد تتطلب التغيير والتبديل؟ (لم يحاكم في الوقت الحقيقي). HTH
    مرحبا Futurespec حصلت مشغول ، ولكن اليوم لقد قمت بتحليلها. تبدو مقارنة M1​​M5 واعدة لأن نسختك رائدة بالفعل. هنا يعبر الرسم البياني أدناه الزيرولين عند 0317 ، حيث يعبر MACF MACD (MACD عادي) آخر الزيرولين في 0320 - 3 دقائق في وقت لاحق. ومع ذلك ، يبدو أن المنطقة الداخلية تقوم بعملية التنعيم فقط حيث يتم ربطها بمخطط ، ولا تعمل في الوقت الفعلي. أظهرت المقارنة M5H1 مشكلة أخرى. يبدو أنه لا يحتفظ بقيمة الإطار الزمني الأعلى (حول الإطار الزمني الأدنى) حتى فترة واحدة قبل الدخول في قيمة الساعة كاملة التالية. يتضمن MACD نموذجي على مخطط H1 ومرجع آخر MFT MACD يشير إلى H1 قيمة MACD تبلغ 0.000009 في الساعة 1400. لكن mnMTF MACD لا يكتسب هذه القيمة - لذلك هنا متأخر. ينطبق نفس الشيء على قيم 1500 ساعة مقابل 1555 و 1600 ساعة مقابل 1655. هل صحيح أن المتغير الخاص بك يسهل القيم عن طريق حساب متوسط ​​قيم هذا الفاصل الزمني الأعلى؟ هذا هو ما أهدف إليه - في حالة ذكر 5MH1 ذكر: هل يمكنك تحديد مجموعة من أسعار الإغلاق 12 ساعة إلى قيمة FastPeriod و 26 ساعة إلى قيمة SlowPeriod؟ في الوقت 05 بعد الساعة ، تشير إلى الأسعار النهائية عند xx05 و 12 ساعة و xx05 26 ساعة إلى الوراء ... وفي 10 دقائق بعد الساعة تشير إلى جميع قيم xx10 للساعات 12 و 26 السابقة على التوالي. شكرا للمساعدة. لا يمكنني ضمان أن هذه الفكرة تستحق العناء ، لكنني أعتقد أنك ستحصل على مزيج من الثبات بين مرجع وقت أعلى وزناد تجاري سابق.
    https://www.cavemantrading.com/crypt...fic-price.html
    https://www.cavemantrading.com/forex...red-green.html

  6. #6

    Quote Originally Posted by ;
    هذا هو بالضبط ما أهدف إليه - في حالة ذكر 5MH1: هل يمكنك تحديد مجموعة من أسعار الإغلاق 12 ساعة للقيمة FastPeriod و 26 ساعة للقيمة SlowPeriod؟ في الساعة 05 بعد الساعة ، تشير إلى أسعار الإغلاق عند xx05 و 12 ساعة و xx05 26 ساعة إلى الوراء ... وفي 10 دقائق بعد الساعة تشير إلى كل من قيمة xx10 لمدة 12 و 26 ساعة سابقة على التوالي.
    هل لدى MT4 شيء مكافئ لمشغل المعامل هذا في C ؟ لقد تم إخباري أن مشغل المعامل في C ممتاز لإغفال القيم غير المطلوبة. المرجع:
    http://www.cprogramming.com/tutorial/modulus.htmlنعم ، في الواقع لا! لقد اصطدت mql4.com واكتشفت أن الغرض نفسه بالضبط موجود. إذا delta = TimeFramePeriod () ثم يمكننا التحقق من المرض: إذا (bar٪ delta == 0) يجب تضمين كل من الحانات التي ستعود إلى هذا الشرط في صفيف MTF الجديد المستخدم لحساب MACD. عندما يكون الفاصل الزمني للرسم البياني هو M5 والفاصل الزمني الأعلى القياسي هو H1 ، فإن دلتا = 60/5 = 12 إذا كان (شريط٪ delta == 0) سيعيد لاحقًا الحانات عند التغيير 0 ، 12 ، 24 ، 36 ، 48 إلخ من المحتمل أن تُرجع هذه المبالغ عددًا صحيحًا عند القسمة على 12 (دلتا). أي شريط آخر (على سبيل المثال ، حانة 37) سيعود برقم عشري عند القسمة على 12. وبهذه الطريقة يمكن بسهولة وضع الحانات التي يجب استخدامها لحساب MTF MACD الخاص بك في سلسلة حانة منفصلة ، والتي يمكن استخدامها لأي فترة MACD. اليوم السؤال هو: هل يمكن ترميزه ، ومن يمكنه فعل ذلك في MT4؟

  7. #7
    شكرا جزيلا لمساعدتكم حتى الآن!

  8. #8
    MathMod (القيمة المزدوجة ، القيمة المزدوجة 2) يفعل نفس الشيء في MT4. بالنسبة لترميزها ... ليست مشكلة ولكن آسف ليس لدي الوقت في الوقت الحالي.

أذونات النشر

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