المرئي الأساسي المتوسط المتحرك وظيفة
كوستوم أفيراج فونكتيون أدناه سوف ننظر إلى برنامج في إكسيل فبا الذي يقوم بإنشاء دالة تعريف المستخدم الذي يحسب متوسط نطاق تم اختياره عشوائيا باستثناء واحد أو أكثر من القيم التي هي القيم المتطرفة ولا ينبغي أن يكون متوسط. وظائف المستخدم المعرفة تحتاج إلى أن توضع في وحدة نمطية. 1. افتح محرر فيسوال باسيك ثم انقر فوق إدراج، وحدة نمطية. 2. قم بإضافة سطر التعليمات البرمجية التالي: فونكتيون كوستومافيراج (رنغ أس رانج، لور أس إنتيجر. العلوية أس إنتيجر) اسم الدالة هو كوستومرافيج. الجزء بين الأقواس يعني أننا نقدم إكسيل فبا نطاق واثنين من المتغيرات الصحيحة كإدخال. نحن نسمي مجموعتنا رنج، متغير واحد صحيح نطلق عليه أقل، ومتغير واحد صحيح نطلق عليه أعلى، ولكن يمكنك استخدام أي أسماء. 3. بعد ذلك، نعلن عن كائن رانج ومتغيرين من نوع إنتيجر. نحن نسمي الخلية كائن المدى. متغير واحد صحيح نطلق عليه توتال ومتغير واحد صحيح رقم نسميه. خلية خافتة كمجال، إجمالي كما صحيح. العد كما صحيح 4. نريد أن تحقق كل خلية في مجموعة مختارة عشوائيا (هذا النطاق يمكن أن يكون من أي حجم). في إكسيل فبا، يمكنك استخدام كل حلقة التالية لهذا. إضافة خطوط التعليمات البرمجية التالية: لكل خلية في رنغ ملاحظة: يتم اختيار رنغ والخلية عشوائيا هنا، يمكنك استخدام أي أسماء. تذكر الإشارة إلى هذه الأسماء في بقية الشفرة. 5. بعد ذلك، نتحقق من كل قيمة في هذا النطاق إذا كانت تقع بين القيمتين (الأدنى والعلوي). إذا كان صحيحا، ونحن زيادة مجموع قيمة الخلية ونحن زيادة عدد 1. إضافة خطوط التعليمات البرمجية التالية إلى حلقة. إذا كانت الخلية. فالو غ أقل و cell. Value لوت العلوي ثم إجمالي إجمالي الخلية. العد العد التنازلي 1 النهاية إذا 6. لإرجاع نتيجة هذه الدالة (المتوسط المطلوب)، إضافة سطر التعليمات البرمجية التالي خارج الحلقة. كوستومافريج مجموع العد 7. لا ننسى لإنهاء وظيفة. إضافة السطر: 8. الآن يمكنك استخدام هذه الوظيفة تماما مثل أي وظيفة إكسيل أخرى لحساب متوسط الأرقام التي تقع بين قيمتين. يمكنك التحقق من كل القيم التي تقل عن 10 وأعلى من 30 واستخدام الدالة المتوسطة القياسية في إكسيل لمعرفة ما إذا كان إكسيل يحسب نفس المتوسط مثل الدالة المتوسطة المخصصة. عمل الدالة متوسط مخصص ملاحظة: هذه الوظيفة متوفرة فقط في هذا المصنف. أحاول حساب متوسط باستخدام فيسوال باسيك 2010 وعرض هذا المتوسط في إطار رسالة. في حين أن تصحيح الأخطاء (التعليق على رمز ومحاولة مختلف المتغيرات التي يتم إرسالها إلى مربع الرسالة كسلسلة) حصلت على نافذة الرسالة لتظهر، ولكن مع عدم وجود البيانات التي تم إرجاعها. كما لدي رمز الآن، وأنا لا تتلقى أي أخطاء، ولكن لا أستطيع حتى الحصول على مربع رسالة لتظهر. في الأساس البرنامج لديه المستخدم إدخال عدد من الكتب التي قرأت والتي يتم استخدامها بعد ذلك لحساب مجموع نقطة على أساس كمية من الكتب قراءة. التمرين يطلب الحفاظ على متوسط جميع الكتب قراءة. طلب فامي 26 26 14 في 1: 37 أريد تطوير حساب لمتوسط سعر السهم الأسهم. ولكن تم التخطيط لعملية حسابية معقدة في وقت لاحق. خطوتي الأولى لمعرفة كيفية حساب المتوسط المتحرك بكفاءة. أنا بحاجة إلى معرفة كيفية اتخاذ المدخلات والعودة الانتاج بكفاءة. تعتبر مدخلات التاريخ والسعر. الناتج المتحقق التاريخ والسعر والمتوسط المتحرك. إذا كان لدي 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
Post a Comment