الانتقال من المتوسط رمز في و ج


هل من الممكن تنفيذ متوسط ​​متحرك في C دون الحاجة إلى نافذة من العينات وجدت أنه يمكنني تحسين قليلا، عن طريق اختيار حجم النافذة التي هي قوة اثنين للسماح بتغيير قليلا بدلا من تقسيم، ولكن لا تحتاج فإن المخزن المؤقت يكون لطيفا. هل هناك طريقة للتعبير عن نتيجة متوسط ​​متحرك جديد فقط كدالة للنتيجة القديمة والعينة الجديدة حدد مثالا متحركا على سبيل المثال، عبر نافذة مكونة من 4 عينات لتكون: إضافة عينة جديدة ه: يمكن تنفيذ المتوسط ​​المتحرك بشكل متكرر ، ولكن لحساب دقيق للمتوسط ​​المتحرك عليك أن تتذكر أقدم عينة المدخلات في المجموع (أي في المثال الخاص بك). وبالنسبة للمتوسط ​​المتحرك N الذي تحسبه: حيث ين هي إشارة الخرج و شن هي إشارة الدخل. مكافئ. (1) يمكن أن تكون مكتوبة بشكل متكرر كما كنت دائما بحاجة إلى تذكر العينة شن-N من أجل حساب (2). وكما أشار كونراد تيرنر، يمكنك استخدام نافذة أسي طويلة (بلا حدود) بدلا من ذلك، والتي تسمح لك بحساب الإخراج فقط من المخرجات السابقة والإدخال الحالي: ولكن هذا ليس متوسط ​​متحرك (غير مرجح) قياسي ولكن بشكل أضعافا مضاعفة (حيث على الأقل من الناحية النظرية) لا تنسى أبدا أي شيء (الأوزان فقط تحصل على أصغر وأصغر للعينات بعيدة في الماضي). أنا نفذت المتوسط ​​المتحرك دون ذاكرة البند الفردية لبرنامج تتبع غس كتبته. أبدأ مع 1 عينة وتقسيم بنسبة 1 للحصول على متوسط ​​الحالي. ثم قم بإضافة عينة أنوث وتقسيمها 2 إلى المتوسط ​​الحالي. يستمر هذا حتى يصل إلى طول المتوسط. في كل مرة بعد ذلك، أضيف في العينة الجديدة، واحصل على المتوسط ​​وأزل هذا المتوسط ​​من المجموع. أنا لست رياضياتيا ولكن هذا يبدو وكأنه وسيلة جيدة للقيام بذلك. أنا أحسب أنه من شأنه أن يحول المعدة من رجل الرياضيات الحقيقي ولكن، اتضح أنها واحدة من الطرق المقبولة للقيام بذلك. ويعمل بشكل جيد. فقط تذكر أن ارتفاع طول الخاص بك أبطأ هو اتباع ما كنت تريد أن تتبع. وهذا قد لا يهم معظم الوقت ولكن عندما تتبع الأقمار الصناعية، إذا كنت بطيئا، يمكن أن يكون درب بعيدا عن الوضع الفعلي، وسوف تبدو سيئة. هل يمكن أن يكون هناك فجوة بين جلس والنقاط زائدة. اخترت بطول 15 تحديث 6 مرات في الدقيقة الواحدة للحصول على تجانس كافية ولا تحصل بعيدا جدا عن الوضع الفعلي جلس مع نقاط درب ممهدة. أجاب 16 نوفمبر 16 في 23:03 تهيئة العدد الإجمالي 0، count0 (في كل مرة رؤية قيمة جديدة ثم إدخال واحد (سكانف)، واحد إضافة توتالنوفالو، زيادة واحدة (عدد)، واحد معدل الفجوة (توتالكونت) سيكون هذا المتوسط ​​المتحرك أكثر من جميع المدخلات لحساب المتوسط ​​فوق المدخلات الأربعة الأخيرة فقط، يتطلب 4 مدخلات، ربما نسخ كل مدخلات إلى مدخلات قديمة، ثم حساب المتوسط ​​المتحرك الجديد، حيث أن مجموع المدخلات 4، مقسوما على 4 (التحول الصحيح 2 سيكون جيد إذا كانت جميع المدخلات إيجابية لجعل متوسط ​​الحساب أجاب فب 3 15 في 4:06 وهذا في الواقع حساب المتوسط ​​الكلي وليس المتوسط ​​المتحرك. كما يحصل العد أكبر تأثير أي عينة إدخال جديدة تصبح صغيرة تتلاشى نداش هيلمر فبراير 3 15 في 13:53 إجابتك 2017 ستاك إكسهانج، إنسي يعرف هذا يمكن تحقيقه مع دفعة كما في: ولكن أنا حقا ترغب في تجنب استخدام دفعة. أنا غوغلد ولم يتم العثور على أي أمثلة مناسبة أو مقروءة. في الأساس أريد أن تتبع متحرك متوسط ​​تيار مستمر لتيار من أرقام النقاط العائمة باستخدام أحدث 1000 رقم كعينة بيانات. ما هي أسهل طريقة لتحقيق ذلك أنا جربت باستخدام صفيف دائري، المتوسط ​​المتحرك الأسي ومتوسط ​​متحرك أكثر بساطة وجدت أن النتائج من مجموعة دائرية تناسب احتياجاتي أفضل. سأل 12 يونيو 12 في 4:38 إذا احتياجاتك بسيطة، قد حاولت مجرد استخدام المتوسط ​​المتحرك الأسي. ببساطة، يمكنك إجراء متغير تراكم، وكما التعليمات البرمجية الخاصة بك ينظر في كل عينة، التعليمات البرمجية بتحديث تراكم مع القيمة الجديدة. يمكنك اختيار ألفا ثابت ما بين 0 و 1، وحساب هذا: تحتاج فقط إلى العثور على قيمة ألفا حيث تأثير عينة معينة يستمر فقط لحوالي 1000 عينة. هم، إم لا فعلا متأكد من أن هذا هو مناسب لك، والآن أن إيف وضعه هنا. المشكلة هي أن 1000 هو نافذة طويلة جدا لمتوسط ​​متحرك أسي إم غير متأكد من وجود ألفا التي من شأنها أن تنتشر المتوسط ​​على آخر 1000 أرقام، دون تدفق في حساب العائمة. ولكن إذا كنت تريد متوسط ​​أصغر، مثل 30 أرقام أو نحو ذلك، وهذا هو وسيلة سهلة جدا وسريعة للقيام بذلك. أجاب يونيو 12 12 في 4:44 1 على مشاركتك. ويمكن أن يسمح المتوسط ​​المتحرك الأسي للألفا بأن يكون متغيرا. لذلك يسمح هذا باستخدامها لحساب متوسطات قاعدة الوقت (على سبيل المثال وحدات البايت في الثانية). إذا كان الوقت منذ آخر تحديث تراكم هو أكثر من 1 ثانية، يمكنك السماح ألفا يكون 1.0. خلاف ذلك، يمكنك السماح ألفا يكون (أوسيكس منذ last1000000 الماضي). ندش ج 12 يونيو في 6:21 أساسا أريد أن تتبع المتوسط ​​المتحرك لتيار مستمر من تيار من أرقام النقطة العائمة باستخدام أحدث 1000 أرقام كعينة البيانات. لاحظ أن أدناه يقوم بتحديث المجموع كعناصر كما أددريبلاسد، وتجنب مكلفة O (N) اجتياز لحساب المجموع - اللازمة للمتوسط ​​- عند الطلب. يتم إجراء إجمالي معلمة مختلفة من T لدعم على سبيل المثال. باستخدام طويلة طويلة عندما يبلغ مجموعها 1000 ثانية s، إنت لشار s، أو ضعف إلى مجموع تعويم s. هذا هو معيب بعض الشيء في أن الأمثلة يمكن أن تذهب الماضي إنتماكس - إذا كنت تهتم يمكنك استخدام طويلة غير موقعة. أو استخدام عضو بيانات بول إضافية لتسجيل عندما يتم تعبئة الحاوية لأول مرة في حين ركوب الدراجات نامبلز حول مجموعة (أفضل ثم تسميته شيء حميدة مثل بوس). أجاب 12 يونيو 12 في 5:19 واحد يفترض أن المشغل كوتفويد (عينة T) هو في الواقع كوتيفويد أوبيراتورلتلت (عينة T) كوت. نداش أوبليس يونيو 8 14 في 11:52 أوبليس أهه. رصدت جيدا. في الواقع كنت أعني أن يكون عاملا باطلا () (عينة T) ولكن بالطبع يمكنك استخدام أي تدوين كنت أحب. سوف إصلاح، وذلك بفضل. ندش توني D يونيو 14 14 في 14: 27 أريد تطوير حساب لمتوسط ​​سعر السهم الأسهم. ولكن تم التخطيط لعملية حسابية معقدة في وقت لاحق. خطوتي الأولى لمعرفة كيفية حساب المتوسط ​​المتحرك بكفاءة. أنا بحاجة إلى معرفة كيفية اتخاذ المدخلات والعودة الانتاج بكفاءة. تعتبر مدخلات التاريخ والسعر. الناتج المتحقق التاريخ والسعر والمتوسط ​​المتحرك. إذا كان لدي 500 سجل وأريد حساب المتوسط ​​المتحرك لمدة 5 أيام ما هي الطريقة إفينت بدلا من الذهاب ذهابا وإيابا في مجموعة من التاريخ والسعر مرة أخرى يرجى سوجيست ما هو أفضل وسيلة لتلقي المدخلات (أريليست، الجدول، مجموعة الخ) والعودة الانتاج. ملاحظة: اليوم ما من 5 أيام سيكون متوسط ​​آخر 5 أيام بما في ذلك اليوم السعر. يوم أمس سوف يكون متوسط ​​5 أيام الماضية من أمس. أريد أن تبقى الأيام لتكون مرنة بدلا من 5 يمكن أن يكون 9، 14، 20 الخ الخميس، 10 أبريل 2008 3:21 م إذا كنت بحاجة إلى حساب بسيط دون جهدكم من يمكنك استخدام تا-ليب. ولكن إذا كنت تريد الحساب الخاص بك لتكون أكثر كفاءة من تا-ليب، ثم يمكنك إنشاء مؤشر التقنية الخاصة بك. تا-ليب هو عظيم، ولكن المشكلة هي أن هذه المكتبة لديها أساليب ثابتة فقط. وهذا يعني عندما تحتاج إلى حساب القيم صفيف سما على أساس 500 سعر الأشرطة، ثم سوف ترسل مجموعة كاملة من الحانات وسوف يعود صفيف قيم سما. ولكن إذا كنت تتلقى قيمة 501-ست الجديدة ثم يجب إرسال مرة أخرى مجموعة كاملة و تا-ليب مرة أخرى سوف حساب وعودة سما مجموعة من القيم. الآن تخيل أنك بحاجة إلى مثل هذا المؤشر على تغذية السعر الحقيقي، ولكل تغيير السعر تحتاج قيمة مؤشر جديد. إذا كان لديك مؤشر واحد ليست مشكلة كبيرة، ولكن إذا كان لديك مئات المؤشرات تعمل، يمكن أن يكون مشكلة الأداء. كنت في مثل هذه الحالة والبدء في تطوير مؤشرات الوقت الحقيقي التي هي فعالة والقيام بعمليات حسابية إضافية لشريط سعر جديد أو لشريط السعر تغير فقط. أونفورتوناتيلي لم أكن في حاجة إلى مؤشر سما لنظم التداول الخاصة بي، ولكن لدي مثل إما، وما، م، وغيرها. يتم نشر واحد من هذا المؤشر م على بلوق بلدي ويمكنك أن ترى من هناك ما هو الهيكل الأساسي لفئة مؤشر الوقت الحقيقي بلدي. آمل أن تحتاج إلى تغييرات صغيرة لتنفيذ مؤشر سما، لأنه هو واحد من أبسط واحد. المنطق بسيط. لحساب سما كل ما تحتاجه هو ن قيم السعر الأخير. لذلك سيكون مثيل الطبقة مجموعة من الأسعار، التي سوف تخزن الاحتفاظ فقط آخر عدد n من الأسعار كما سما هو محدد (في قضيتك 5). لذلك عندما يكون لديك شريط جديد، سوف إزالة أقدم واحد وإضافة واحدة جديدة وإنشاء حساب. الخميس، أبريل 10، 2008 4:04 بيإم جميع الردود هناك مكتبة تدعى تا-ليب التي تفعل كل ذلك بالنسبة لك، وأنها مفتوحة المصدر. لديها حوالي 50 مؤشرات أعتقد. ويف استخدامه في بيئة الإنتاج وأنها فعالة جدا و رياليبل. يمكنك استخدامه في C، جافا، C، وما إذا كنت بحاجة إلى حساب بسيط دون جهدكم مما يمكنك استخدام تا-ليب. ولكن إذا كنت تريد الحساب الخاص بك لتكون أكثر كفاءة من تا-ليب، ثم يمكنك إنشاء مؤشر التقنية الخاصة بك. تا-ليب هو عظيم، ولكن المشكلة هي أن هذه المكتبة لديها أساليب ثابتة فقط. وهذا يعني عندما تحتاج إلى حساب القيم صفيف سما على أساس 500 سعر الأشرطة، ثم سوف ترسل مجموعة كاملة من الحانات وسوف يعود صفيف قيم سما. ولكن إذا كنت تتلقى قيمة 501-ست الجديدة ثم يجب إرسال مرة أخرى مجموعة كاملة و تا-ليب مرة أخرى سوف حساب وعودة سما مجموعة من القيم. الآن تخيل أنك بحاجة إلى مثل هذا المؤشر على تغذية السعر الحقيقي، ولكل تغيير السعر تحتاج قيمة مؤشر جديد. إذا كان لديك مؤشر واحد ليست مشكلة كبيرة، ولكن إذا كان لديك مئات المؤشرات تعمل، يمكن أن يكون مشكلة الأداء. كنت في مثل هذه الحالة والبدء في تطوير مؤشرات الوقت الحقيقي التي هي فعالة والقيام بعمليات حسابية إضافية لشريط سعر جديد أو لشريط السعر تغير فقط. أونفورتوناتيلي لم أكن في حاجة إلى مؤشر سما لنظم التداول الخاصة بي، ولكن لدي مثل إما، وما، م، وغيرها. يتم نشر واحد من هذا المؤشر م على بلوق بلدي ويمكنك أن ترى من هناك ما هو الهيكل الأساسي لفئة مؤشر الوقت الحقيقي بلدي. آمل أن تحتاج إلى تغييرات صغيرة لتنفيذ مؤشر سما، لأنه هو واحد من أبسط واحد. المنطق بسيط. لحساب سما كل ما تحتاجه هو ن قيم السعر الأخير. لذلك سيكون مثيل الطبقة مجموعة من الأسعار، التي سوف تخزن الاحتفاظ فقط آخر عدد n من الأسعار كما سما هو محدد (في قضيتك 5). لذلك عندما يكون لديك شريط جديد، سوف إزالة أقدم واحد وإضافة واحدة جديدة وإنشاء حساب. الخميس، أبريل 10، 2008 4:04 بيإم أود حساب المتوسط ​​المتحرك في قاعدة البيانات عن طريق إجراء مخزن أو في مكعب. هل نظرت إلى خدمات التحليل، لديها القدرة على حساب المتوسطات المتحركة. الخميس، 10 أبريل / نيسان 2008 4:05 م نعم. تا-ليب هو جيد ولكن قد لا تكون مناسبة بالنسبة لي. عندما أضيف قيمة جديدة أو قيمة محدثة لتاريخ السجلات سأفعل الحساب في وظيفة منفصلة فقط لهذا الاقتباس الجديد وتخزينه في قاعدة البيانات. أنا أخطط لتحديث الاقتباس كل ساعة. أنا بحاجة إلى القيام حوالي 25 إلى 30 المؤشرات الفنية ل 2200 الأسهم. الخميس، 10 أبريل 2008 5:51 م يستغرق وقت تنفيذ مكالمة تا-ليب على صفيف مكون من 10000 عنصر حوالي 15 ميلي ثانية (على إنتل كور ديو 2.13 غز). هذا هو متوسط ​​جميع الوظائف. من بين أسرع، سما يأخذ أقل من 2.5 ميلي ثانية. أبطأ، هترندمود، يستغرق 450 ميلي ثانية. مع عناصر أقل هو أسرع. سما يأخذ حوالي 0.22 ميلي ثانية ل 1000 عناصر الإدخال. كسب السرعة تقريبا الخطية (النفقات العامة لأداء استدعاء وظيفة لا يكاد يذكر). في سياق التطبيق الخاص بك، تا-ليب من المستبعد جدا أن يكون عنق الزجاجة الخاصة بك لأداء السرعة. أيضا أنا عموما لا أوصي هذا الحل نكوت كوتلاست. اقرأ أدناه للحصول على التفاصيل. أولا، تصحيح لبيان بوبان. يمكن أيضا لجميع الوظائف في تا-ليب حساب قيمة مشاركة واحدة باستخدام الحد الأدنى من العناصر نكوت كوتلاست. يمكن أن يكون لديك صفيف من حجم 10000، وتهيئة البيانات فقط لأول 500 العناصر، إضافة عنصر واحد والدعوة تا-ليب لحساب سما فقط للعنصر الجديد. سوف تا-ليب ننظر إلى الوراء لا أكثر من اللازم (إذا سما من 5، ثم تا-ليب سوف حساب سما واحد باستخدام القيم 5 الماضية). هذا ممكن مع المعلمة ستارتيدكس و إنديدكس. يمكنك تحديد نطاق ليتم حسابه، أو قيمة واحدة. في هذا السيناريو سوف تجعل ستارتيدكس إنديدكس 500 لحساب العنصر 501st. لماذا هذا الحل كوتلاست نكوت يحتمل أن تكون خطرة على بعض بغض النظر عن اختيار حل بوبان. أو تا-ليب ترى أن استخدام عدد محدود صغير من البيانات السابقة لن تعمل بشكل جيد مع معظم وظائف تا. مع سما، فمن الواضح أنك تحتاج فقط عنصر n لحساب متوسط ​​أكثر من عنصر n. انها ليست بسيطة مع إما (والعديد من المهام تا أخرى). وغالبا ما تعتمد الغو على القيمة السابقة لحساب القيمة الجديدة. وظيفة عودية. وهذا يعني أن جميع القيم السابقة لها تأثير على القيم المستقبلية. إذا قررت أن كوتليميتكوت ألغو الخاص بك لاستخدام كمية صغيرة فقط من قيمة ن الماضي، فإنك لن تحصل على نفس النتيجة كشخص يحسب على عدد كبير من القيم الماضية. الحل هو حل وسط بين السرعة والدقة. لقد كثيرا ما نناقش هذا في سياق تا-ليب (أسميها فترة كوتونستابل في الوثائق والمنتدى). ولإبقائه بسيطا، فإن توصيتي العامة هي إذا كنت غير قادر على جعل الفرق بين الغو مع استجابة النبض المحدود (فير) من الغو مع استجابة النبض لانهائية (إير)، وسوف تكون أكثر أمانا لحساب على جميع البيانات لديك متاح. يحدد تا-ليب في الشفرة التي لها وظائف غير مستقرة (إير). تحرير بواسطة مفورتير الجمعة، 15 أغسطس 2008 4:25 ص الجملة الإنجليزية الصحيحة الجمعة، 15 أغسطس 2008 4:20 ص

Comments

Popular posts from this blog

المحدود مارتينجال - الفوركس تداول

الفوركس المدونين

ثنائي خيارات التداول يوتيوب