Thursday 28 December 2017

الانتقال من المتوسط - حساب خوارزمية


ميتاترادر ​​5 - أمثلة اختبار أداء المتوسطات المتحركة حساب في MQL5 مقدمة استخدام المتوسطات المتحركة هو ممارسة شائعة في تحليل السلاسل الزمنية للسوق والمؤشرات ومستشاري الخبراء البرمجة. لها الأكثر شعبية سعر البيانات طريقة تجانس. في النسخة الجديدة من لغة مقل هناك عشرات من خوارزميات المتوسط ​​المتحرك المتاحة. ما الفرق بينها حقا، هل تعتمد سرعة الحساب على خوارزمية معينة من المتوسطات المتحركة التي تكون الخوارزمية أسرع هل زادت سرعة الحساب للمتوسطات المتحركة في ميتاتريدر 5 مقارنة مع ميتاترادر ​​4 هناك الكثير من هذه الأسئلة تظهر. لذلك، يتيح النظر في معظمها. وبطبيعة الحال، فإن سرعة منصة جديدة مثيرة للإعجاب، ولكن من الأفضل للتحقق من ذلك تجريبيا. 1. ظروف الاختبار تعتمد سرعة الحساب على العديد من العوامل. ولذلك، فإن البيانات التي تم الحصول عليها كنتائج هذا البحث، في ظروف الاختبار الأخرى ستكون مختلفة. وبعبارة أخرى، فإن القيم المطلقة للأداء ستكون مختلفة، ولكن القيم النسبية يجب أن تكون مشابهة (لمنصة سيرتياين). بسبب حقيقة أن وظيفة إما في MQL5 لا يعود نتائج الحساب نفسه (فإنه يعود مؤشرات مقبض)، ونحن سوف اختبار سرعة الدالتين: إما و كوبيبوفر. شروط الاختبار: وحدة المعالجة المركزية: كور i7 965 الرمز: يوروس حجم بيانات الأسعار: 10000 عنصر محطة العميل: مستقل، يتم تعيين الحد الأقصى لعدد الأشرطة في المخطط إلى 10000 نماذج المتوسط ​​المتحرك: موديسما، موديما، موديسما، موديلوما دقة سرعة الحساب يقتصر على رقمين هامين عدد المكالمات الممكنة للمتوسطات المتحركة: 7 2. الطريقة التي اختبرناها لقياس وقت حساب المتوسطات المتحركة لدينا الدالة جيتيكونت () التي تعمل بالميلي ثانية. هذه الدقة ليست كافية، لذلك نحن بحاجة إلى تنظيم بعض الدورات لتحسين نوعية القياسات. ومع ذلك، إذا كنا سوف تكرار حلقة عدة مرات مع نفس الحساب ونفس البيانات المدخلات، سيتم تشويه النتائج. سبب هذه الحقيقة ما يلي: الدالة إما بإنشاء نسخة من المؤشر الفني المقابل في ذاكرة التخزين المؤقت العمومية من المحطة الطرفية العميل. إذا كانت نسخة من مؤشر (مع نفس المعلمات) موجودة بالفعل في ذاكرة التخزين المؤقت العمومية، لم يتم إنشاء النسخة الجديدة، يتم زيادة عداد مرجع نسخة المؤشرات. وبعبارة أخرى، يتم احتساب مؤشر المخزن المؤقت بأكمله مرة واحدة فقط في المكالمة الأولى، وعلى كل المكالمات اللاحقة فإنه يأخذ فقط القيم الجاهزة، فإنه يعيد حساب البيانات الجديدة فقط. ولذلك ينبغي تنظيم الحلقة بالطريقة، عندما تكون معلمات الدخل للمؤشر فريدة أثناء الدورة. لقد اخترنا ثلاثة معلمات من هذا القبيل: متوسط ​​الفترة الزمنية والسعر المطبق. نطاق القيم الجدول 2. النتائج سيتم النظر في معنى حالات الاختبار أبعد (الأقسام 4.1-4.7). يتيح تقدير الصورة الكاملة لأداء حساب المتوسط ​​المتحرك. ولتقديم النتائج، يتم عرض النتائج في الرسوم البيانية (انظر الأشكال 1-5). يتم عرض نوع النداء للمتوسط ​​المتحرك في المحاور X (انظر الجدول 2)، وتعرض القيم في المحاور Y في مقياس لوغاريتمي مضروبا في -1، وبالتالي فإن القيم الأكبر تعني سرعة الأداء. كل نموذج حساب (سما، إما، سما، لوما) يتوافق مع عمود على الرسم البياني. الشكل 1. نتائج اختبار الأداء لمختلف خوارزميات المتوسط ​​المتحرك يمكن للمرء أن يرى فرقا كبيرا في سرعة الحساب للحالات المختلفة لحساب المتوسطات المتحركة. ماذا يعني أن العديد من خوارزميات حساب المتوسطات المتحركة، التي يقدمها مطوري MQL5 لها أداء حساب مختلف: هناك خوارزمية سريعة (الحالة 6) وأساليب أبطأ (الحالات 3 و 4). لذلك، من الضروري اختيار الخوارزميات الصحيحة عند كتابة البرامج في MQL5، والذي يستخدم المتوسطات المتحركة. ويعرض الجدول الزمني لحساب كل نموذج من النماذج المتحركة (0-6) بالتفصيل على الأرقام التالية، انظر الجدول 2. الشكل 2. أداء حساب ما للوضع موديسما الشكل 3. أداء حساب ما للوضع موديما الشكل 4.أداء حساب ما للوضع موديسما الشكل 5. أداء حساب ما للوضع مودلوما من المثير للاهتمام مقارنة أداء الحساب من منصتين: ميتاترادر ​​4 و ميتاترادر ​​5. وترد النتائج في الجدول 2، حالة 0 (MQL4) والحالة 2 (MQL5). ولتحقيق ذلك، يتيح الجمع بين نتائج حساب مؤشر إما القياسي في مخطط وجدول منفصلين (انظر الشكل 6). يتم عرض الوقت حساب الاختبار في المحاور Y. الشكل 6: الرسم البياني المقارن لأداء ميتاتريدر 4 حساب ميتاتريدر 5 إن منصة ميتاتريدر 5 الجديدة هي 40 أسرع من منصة ميتاترادر ​​السابقة 4. وقد تم تحقيق أسرع أداء في نماذج سما و إما و سما (الحالة 6)، بالنسبة لوما (الحالات 2 و 5). وفيما يتعلق بحالات الاختبار، عند استعمال المعيار إما القياسي، يكون أداء حساب النماذج المختلفة متماثلا عمليا. ليس صحيحا لوظائف مكتبة MoveingAvisions. mqh. بالنسبة لنماذج مختلفة يختلف الأداء عن طريق أمر تقريبا (0،00023 0،0045). النتائج المعروضة يتوافق مع بداية الباردة، لا يوجد أي بيانات بريكالكولاتد في ذاكرة التخزين المؤقت العالمية من محطة العميل. 4. دراسات الحالة لاختبار الأداء الحسابي للمتوسطات المتحركة، بيتر لاستخدام البرنامج النصي. لأنه قادر على أداء جميع الحسابات دون انتظار الأحداث (على سبيل المثال، حدث القراد الجديد، وما إلى ذلك). ليس من الضروري إنشاء برنامج عالمي منفصل لجميع حالات الاختبار، وبالتالي فإننا سوف إنشاء برنامج نصي منفصل لكل حالة من حساب ما. لذلك، دعونا نأخذ في الاعتبار بالتفصيل كل حالة من حسابات المتوسط ​​المتحرك. 4.1. الحالة 0 في هذه الحالة، قمنا بقياس أداء حساب إما للمؤشر الفني ل MQL4. الحسابات هي بيرفوميد في MetaTrader4 وتنفيذها على جميع البيانات. ملحوظة. لقد خططنا لاستخدام عدة أنواع من البيانات في المصفوفة، ولكن بالنسبة للبساطة، استخدمنا مجموعة واحدة فقط مع بيانات أسعار وثيقة (لا يؤثر على أداء العمليات الحسابية). 5. مخرجات النتائج لانتاج النتائج والتحقق من المتوسطات المتحركة، اعتدت على وظيفة برينتتيست: يمكن استدعاؤها كما يلي (موقف الشريط ومصفوفة البيانات هي معلمات الدالة): ملاحظة، أن الصفيف فهرسة تختلف قبل وبعد الحسابات. مهم . يتم تعيين علامة أسسيريز إلى فالس أثناء الحسابات ويتم تعيينها إلى ترو عند طباعة النتائج. 6. تحقيقات إضافية للإجابة على سؤال حول تأثير المعلمات الأولية على أداء الحساب، وقد أجريت بعض القياسات الإضافية. كما نتذكر، فإن القضية 6 لديها أفضل أداء، لذلك سوف نستخدمه. الجدول 3. تحقيقات إضافية شفرة المصدر من الاختبارات: للحصول على اختبارات إضافية سوف نستخدم برنامج أوتوتست، ويرد واجهة المستخدم الرسومية في الشكل 7. الشكل 7. برنامج أوتوتست للاختبار أورتوماتد النتائج. (X) محاور X لها مقياس زمني لوغاريتمي) الشكل 8. أداء الإطار الزمني (Y) ومتوسطات الحركة الحسابية (X) الشكل 9. أداء فترة الحساب (Y) ومتوسطات الحركة الحسابية (X) استنتاجات نتائج تحقيقات إضافية: معلمة الإطار الزمني ليست مهمة، فإنه لا يؤثر على أداء الحساب (انظر الشكل 8). وهذه الفترة ليست معلمة هامة لأداء حساب المتوسطات المتحركة للنماذج سما و إما و سما. ولكن في المقابل، فإنه بشكل ملحوظ (من 0،00373 ثانية إلى 0،145 ثانية) يبطئ الحسابات لنموذج لوما (انظر الشكل 9). الاستنتاج إن الخوارزمية الخاطئة لمتوسطات الخوارزمية المتحركة قادرة على تقليل الأداء الحسابي لبرامجك. حاليا أنا بصدد تطوير نظام لد بياني لعرض درجات الحرارة والتدفقات والفولتية والطاقة والطاقة في نظام المضخات الحرارية. استخدام لد الرسم يعني أن نصف بلدي سرام و 75 من بلدي فلاش تم استخدامها حتى من قبل المخزن المؤقت الشاشة وسلاسل. أنا حاليا عرض أرقام مينماكسافيراج للطاقة في منتصف الليل عندما يعيد الرقم اليومي، يتحقق النظام إذا كان الاستهلاك لهذا اليوم هو أعلى أو أقل من الحد الأدنى السابق أو الحد الأقصى، ويخزن القيمة. ويحسب المتوسط ​​بقسمة الاستهلاك التراكمي للطاقة على عدد الأيام. أود عرض المعدل اليومي على مدار الأسبوع والشهر الأخيرين (4 أسابيع للبساطة)، أي متوسط ​​المتداول. ويشمل هذا حاليا الحفاظ على مجموعة من القيم لآخر 28 يوما وحساب متوسط ​​على كامل المصفوفة للأيام الشهرية والأخيرة 7 أيام للأسبوعية. في البداية كنت أفعل ذلك باستخدام مجموعة من العوامات (والطاقة في شكل 12.12kWh)، ولكن هذا كان يستخدم 28 4 بايت 112 بايت (5.4 من سرام). أنا لا أمانع وجود سوى نقطة عشرية واحدة من القرار، لذلك أنا تغيرت إلى استخدام uint16t وضرب الرقم 100. وهذا يعني أن 12.12 يمثل 1212، وأنا تقسيم بنسبة 100 لأغراض العرض. حجم صفيف الآن إلى 56 بايت (أفضل بكثير). ليس هناك طريقة تافهة للحد من الرقم وصولا إلى uint8t أن أرى. يمكن أن أتسامح مع فقدان مكان عشري (12.1kWh بدلا من 12.12kWh)، ولكن الاستهلاك هو في كثير من الأحيان أعلى من 25.5kWh (255 كونها أعلى قيمة يمثلها عدد صحيح 8 بت غير موقعة). كان الاستهلاك أبدا أقل من 10.0kWh أو أعلى 35.0kWh، لذلك يمكن تصور يمكنني طرح 10 من الأرقام المخزنة، ولكن أنا أعلم أن يوم واحد سوف تتجاوز هذه الحدود. ثم اختبرت رمز لحزم القيم 9 بت في صفيف. وهذا يعطي مجموعة من 0-51.2kWh ويستخدم 32 بايت في المجموع. ومع ذلك، والوصول إلى صفيف مثل هذا بطيء جدا، وخصوصا عندما يكون لديك لتكرار على جميع القيم لحساب متوسط. لذلك سؤالي هو - هل هناك طريقة أكثر كفاءة لحساب المتوسط ​​المتحرك مع ثلاثة نوافذ - مدى الحياة، 28 يوما و 7 أيام الكفاءة يعني أصغر من حيث استخدام سرام، ولكن من دون عقوبة رمز ضخم. هل يمكنني تجنب تخزين جميع القيم طلب مارس 7 14 في 8:32 I39ve كان التفكير وكنت على حق. بحيث يجعل من الناحية الفنية بلدي الجواب غير صحيح. I39m استثمار بعض الوقت أكثر والصبر في ذلك. ربما شيء من خارج منطقة الجزاء. I39ll تتيح لك معرفة ما إذا كنت تأتي مع شيء. نحن نفعل شيئا من هذا القبيل كثيرا في مكان عملي. اسمحوا لي أن أسأل حولها. آسف للارتباك. نداش أديتيا سوماني 8 مارس 14 في 17:15 هناك طريقة أكثر كفاءة لحساب المتوسط ​​المتحرك مع. 28 يوما و 7 أيام. التي تحتاج إلى تذكر 27 يوما من التاريخ. قد تحصل على وثيقة بما فيه الكفاية تخزين 11 القيم بدلا من 28 القيم، وربما شيء من هذا القبيل: وبعبارة أخرى، بدلا من تخزين كل التفاصيل من كل يوم على مدى 27 يوما الماضية، (أ) مخزن 7 أو نحو ذلك القيم من المعلومات اليومية التفصيلية عن الماضي 7 أو نحو ذلك من الأيام، وأيضا (ب) تخزين 4 أو نحو ذلك تلخيص القيم من إجمالي أو متوسط ​​المعلومات لكل من 4 أسابيع أو نحو ذلك أسابيع. العلماء والمهندسين دليل لمعالجة الإشارات الرقمية التي كتبها ستيفن W. سميث، دكتوراة. وهناك ميزة هائلة لمرشح المتوسط ​​المتحرك هو أنه يمكن تنفيذه بخوارزمية سريعة جدا. لفهم هذه الخوارزمية، تخيل تمرير إشارة الدخل، x، من خلال سبع نقاط مرشح المتوسط ​​المتحرك لتشكيل إشارة الإخراج، y. ننظر الآن في كيفية حساب نقطتي خرج متجاورتين، y 50 و y 51: هذه هي نفس نقاط الحساب تقريبا x 48 إلى x 53 يجب أن تضاف إلى y 50، ومرة ​​أخرى y y 51. إذا تم حساب y 50 بالفعل ، الطريقة الأكثر فعالية لحساب ذ 51 هو: مرة واحدة تم العثور على 51 باستخدام y 50، ثم y 52 يمكن حسابها من عينة ذ 51، وهلم جرا. بعد حساب النقطة الأولى في y، كل من النقاط الأخرى يمكن العثور عليها مع إضافة واحدة فقط والطرح لكل نقطة. ويمكن التعبير عن ذلك في المعادلة: لاحظ أن هذه المعادلة تستخدم مصدرين للبيانات لحساب كل نقطة في المخرجات: نقاط من المدخلات والنقاط المحسوبة سابقا من المخرجات. وهذا ما يسمى المعادلة المتكررة، وهذا يعني أن نتيجة حساب واحد يستخدم في الحسابات المستقبلية. (المصطلح العودية له أيضا معان أخرى، وخاصة في علوم الكمبيوتر). يناقش الفصل 19 مجموعة متنوعة من الفلاتر العودية بمزيد من التفصيل. كن على علم بأن المرشح المتكرر للمتوسط ​​المتحرك يختلف كثيرا عن المرشحات العودية النموذجية. على وجه الخصوص، فإن معظم المرشحات التكرارية لديها استجابة الاندفاع طويلة بلا حدود (إير)، تتألف من الجيوب الأنفية والأسي. والاستجابة النبضية للمتوسط ​​المتحرك هي نبضة مستطيلة (الاستجابة النبضية المحدودة، أو منطقة معلومات الطيران). هذه الخوارزمية أسرع من المرشحات الرقمية الأخرى لعدة أسباب. أولا، هناك حسابين فقط لكل نقطة، بغض النظر عن طول نواة الفلتر. ثانيا، الجمع والطرح هي العمليات الرياضيات الوحيدة المطلوبة، في حين أن معظم المرشحات الرقمية تتطلب الضرب تستغرق وقتا طويلا. ثالثا، مخطط الفهرسة بسيط جدا. كل مؤشر في إق. يتم العثور على 15-3 عن طريق إضافة أو طرح الثوابت الصحيحة التي يمكن حسابها قبل بدء التصفية (أي p و q). رابعا، يمكن تنفيذ خوارزمية كاملة مع تمثيل صحيح. اعتمادا على الأجهزة المستخدمة، يمكن أن تكون الأعداد الصحيحة أكثر من أمر من حجم أسرع من نقطة العائمة. والمثير للدهشة أن التمثيل الصحيح يعمل بشكل أفضل من النقطة العائمة مع هذه الخوارزمية، بالإضافة إلى كونها أسرع. خطأ الجولة من الحساب العائم نقطة يمكن أن تنتج نتائج غير متوقعة إذا لم تكن حذرا. على سبيل المثال، تخيل إشارة عينة 10000 يتم تصفيتها باستخدام هذه الطريقة. وتحتوي العينة الأخيرة في الإشارة التي تمت تصفيتها على الخطأ المتراكم البالغ 000 10 إضافة و 000 10 طرح. يظهر هذا في إشارة الإخراج كإزاحة الانجراف. إنتيجرز لا تملك هذه المشكلة لأنه لا يوجد خطأ جولة في الحساب. إذا كنت يجب استخدام نقطة عائمة مع هذه الخوارزمية، البرنامج في الجدول 15-2 يوضح كيفية استخدام تراكم الدقة المزدوجة للقضاء على هذا الانجراف.

No comments:

Post a Comment