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