الأسي الحركة من المتوسط - الثعبان


هذا هو المجمع بايثون ل تا-ليب على أساس سيثون بدلا من سويغ. من الصفحة الرئيسية: يتم استخدام تا-ليب على نطاق واسع من قبل مطوري برامج التداول التي تتطلب إجراء تحليل تقني لبيانات السوق المالية. ويشمل 150 مؤشرات مثل أدكس، ماسد، رسي، ستوشاستيك، بولينجر باند، الخ. شمعدان التعرف على نمط مفتوحة المصدر أبي ل سيسي، جافا، بيرل، بيثون و 100 مدارة الأصلي بيثون ربط استخدام سويغ التي للأسف من الصعب تثبيت و أرينت بقدر ما يمكن أن تكون فعالة. ولذلك يستخدم هذا المشروع سيثون و نومبي لربط بكفاءة ونظيفة ل تا-ليب - إنتاج النتائج 2-4 مرات أسرع من واجهة سويغ. تثبيت تا-ليب أو قراءة المستندات كما هو الحال مع تا-ليب، توفر واجهة الوظيفة مجموعة خفيفة من مؤشرات تا-ليب المكشوفة. تقوم كل دالة بإرجاع صفيف مخرجات ولها قيم افتراضية لمعلماتها، ما لم يتم تحديدها كوسيطات للكلمات الرئيسية. عادة، هذه الوظائف سوف يكون فترة الاسترجاع الأولية (عدد المطلوب من الملاحظات قبل إنتاج الناتج) تعيين إلى نان. تستخدم كل الأمثلة التالية الدالة أبي: حساب متوسط ​​متحرك بسيط لأسعار الإغلاق: حساب نطاقات البولينجر، مع المتوسط ​​المتحرك الأسي الثلاثي: حساب الزخم لأسعار الإغلاق، مع فترة زمنية من 5: ملخص أبي البدء السريع إذا كنت مألوفة بالفعل باستخدام أبي وظيفة، يجب أن تشعر الحق في المنزل باستخدام أبي مجردة. كل وظيفة تأخذ نفس المدخلات، مرت كقاموس صفائف نومبي: يمكن إما أن يتم استيراد وظائف مباشرة أو مثبتة بالاسم: من هناك، وظائف الدعوة هي في الأساس نفس أبي وظيفة: تعرف على المزيد من الاستخدام المتقدم من تا-ليب هنا . المؤشرات المدعومة يمكننا عرض جميع وظائف تا التي تدعمها تا-ليب، إما كقائمة أو كملف تم فرزه حسب المجموعة (مثل دراسات التداخل ومؤشرات الزخم وما إلى ذلك): المجموعات الوظيفية الفصل 2: ​​أنواع البيانات والإشارة لغات البرمجة والتطبيقات تحتاج البيانات. نحدد التطبيقات للعمل مع البيانات، ونحن بحاجة إلى حاويات التي يمكن استخدامها لعقده. هذا الفصل هو كل شيء عن تعريف الحاويات واستخدامها للعمل مع بيانات التطبيق. ما إذا كانت البيانات التي نستخدمها تأتي من إدخال لوحة المفاتيح أو إذا كنا نعمل مع قاعدة بيانات، هناك حاجة إلى أن يكون وسيلة لتخزينها مؤقتا في برامجنا بحيث يمكن التلاعب بها واستخدامها. مرة واحدة we8217re عمله مع البيانات ثم هذه الحاويات المؤقتة يمكن تدميرها من أجل إتاحة مساحة للبنيات الجديدة. بداية جيدة من خلال إلقاء نظرة على أنواع البيانات المختلفة التي تقدمها لغة بايثون، ثم we8217ll متابعة من خلال مناقشة كيفية استخدام تلك البيانات مرة واحدة تم جمعها وتخزينها. وسوف نقارن ونختلف أنواع الهياكل المختلفة التي لدينا في ترسانتنا، ونقدم أيضا بعض الأمثلة على أي هياكل تستخدم للعمل مع أنواع مختلفة من البيانات. هناك العديد من المهام التي يمكن إنجازها من خلال استخدام القوائم، والقواميس، والقمم، وسوف نحاول تغطية العديد منهم. بمجرد أن تتعلم كيفية تحديد واستخدام هذه الهياكل، ثم التحدث جيدا قليلا عن ما يحدث لهم مرة واحدة أنها لم تعد هناك حاجة من قبل طلبنا. دعونا نبدأ رحلتنا إلى استكشاف أنواع البيانات والهياكل داخل لغة برمجة بايثون. هذه هي المهارات التي سوف تستخدم في كل برنامج جيثون العملي. بيثون أنواع البيانات كما ناقشنا، هناك حاجة لتخزين ومعالجة البيانات داخل البرامج. ومن أجل القيام بذلك، يجب أن يكون لدينا أيضا القدرة على إنشاء حاويات تستخدم لعقد تلك البيانات بحيث يمكن للبرنامج استخدامها. اللغة بحاجة إلى معرفة كيفية التعامل مع البيانات مرة واحدة يتم تخزينها، ويمكننا أن نفعل ذلك عن طريق تعيين نوع البيانات إلى حاويات لدينا في جافا. ومع ذلك، في بيثون ليس شرطا للقيام بذلك لأن المترجم قادر على تحديد أي نوع من البيانات التي نقوم بتخزين بطريقة ديناميكية. ويعرض الجدول 2-1 كل نوع من أنواع البيانات ويعطي وصفا موجزا للخصائص التي تحدد كل منها. الجدول 2-1. بيثون أنواع البيانات القوائم والقواميس والمجموعات، واللقائم القوائم، والقواميس، ومجموعات، والقمم كل تقدم وظائف مماثلة وسهولة الاستخدام، ولكن لديهم كل مكانة خاصة بهم في اللغة. نلجأ إلى عدة أمثلة على كل منها لأنها تلعب دورا مهما في ظل ظروف معينة. على عكس السلاسل، كل من الحاويات التي نوقشت في هذا القسم (باستثناء توبلز) هي الكائنات القابلة للتبديل، بحيث يمكن التلاعب بها بعد أن تم إنشاؤها. ولأن هذه الحاويات مهمة جدا، فتمر جيدا في نهاية هذا الفصل، مما سيتيح لك الفرصة لتجربتها بنفسك. ربما واحدة من أكثر البناءات المستخدمة في لغة برمجة بايثون هي القائمة. معظم لغات البرمجة الأخرى توفر حاويات مماثلة لتخزين ومعالجة البيانات داخل التطبيق. توفر قائمة بيثون ميزة على تلك البنيات المتشابهة المتوفرة باللغات التي تمت كتابتها بشكل ثابت. الاتجاهات الديناميكية للغة بايثون تساعد على بناء القائمة لتسخير ميزة كبيرة من وجود القدرة على احتواء قيم من أنواع مختلفة. وهذا يعني أنه يمكن استخدام قائمة لتخزين أي نوع بيانات بيثون، ويمكن خلط هذه الأنواع ضمن قائمة واحدة. في لغات أخرى، غالبا ما يتم تعريف هذا النوع من الإنشاء ككائن مطبوع، والذي يقفل البناء لاستخدام نوع بيانات واحد فقط. إنشاء واستخدام قوائم بايثون هو مجرد نفس بقية اللغة. بسيط جدا وسهل الاستعمال. ببساطة تعيين مجموعة من الأقواس المربعة فارغة إلى متغير يخلق قائمة فارغة. يمكننا أيضا استخدام القائمة المضمنة () وظيفة لإنشاء قائمة. ويمكن بناء القائمة وتعديلها كما يعمل التطبيق، أنها لم تعلن مع طول ثابت. فهي سهلة اجتياز من خلال استخدام الحلقات، ويمكن أيضا أن تستخدم الفهارس للموضع الموضعية أو إزالة عناصر معينة في القائمة. بداية جيدة من خلال عرض بعض الأمثلة على تحديد القوائم، ومن ثم تذهب من خلال كل من الطرق المختلفة التي لغة بايثون يوفر لنا للعمل مع القوائم. قائمة 2-7. تعريف القوائم كما ذكر سابقا، من أجل الحصول على القيم من قائمة يمكننا الاستفادة من الفهارس. تماما مثل صفيف في لغة جافا، واستخدام تدوين ليستيندكس تسمح لنا للوصول إلى عنصر. إذا أردنا الحصول على نطاق أو مجموعة من القيم من قائمة، يمكننا توفير فهرس البداية ومؤشر النهاية. ويعرف هذا الأسلوب أيضا باسم التقطيع. ما هو أكثر من ذلك، يمكننا أيضا إعادة مجموعة من القيم من القائمة جنبا إلى جنب مع نمط خطوة من خلال توفير مؤشر خطوة كذلك. مفتاح واحد أن نتذكر أنه أثناء الوصول إلى قائمة عن طريق الفهرسة، العنصر الأول في القائمة واردة ضمن 0 الفهرس. لاحظ أنه عند تقطيع قائمة، يتم إرجاع قائمة جديدة دائما. طريقة واحدة لإنشاء نسخة ضحلة من قائمة هو استخدام التدوين شريحة دون تحديد الحد العلوي أو السفلي. تخلف الحدود الدنيا إلى الصفر، والحد الأقصى الافتراضي الافتراضي لطول القائمة. لاحظ أن نسخة ضحلة يبني كائن مركب جديد (قائمة أو كائنات أخرى تحتوي على كائنات) ثم إدراج مراجع في ذلك إلى الكائنات الأصلية. نسخة عميقة يبني كائن مركب جديد ومن ثم إدراج نسخ في ذلك استنادا إلى الكائنات الموجودة في الأصل. قائمة 2-8. الوصول إلى قائمة تعديل قائمة هو نفسه إلى حد كبير، يمكنك استخدام الفهرس من أجل إدراج أو إزالة العناصر من موقف معين. هناك أيضا العديد من الطرق الأخرى التي يمكنك إدراج أو إزالة عناصر من القائمة. بيثون يوفر كل من هذه الخيارات المختلفة لأنها توفر وظائف مختلفة لعملياتك. يمكنك استخدام طريقة إلحاق () لإضافة عنصر إلى نهاية القائمة. تتيح لك طريقة التمديد () إضافة نسخة من قائمة كاملة أو تسلسل إلى نهاية القائمة. وأخيرا، تسمح لك طريقة إدراج () بوضع عنصر أو قائمة أخرى في موضع معين لقائمة حالية من خلال استخدام فهارس الموضع. إذا تم إدراج قائمة أخرى في قائمة موجودة، فإنه لا يتم دمجها مع القائمة الأصلية، بل أنها تعمل كبند منفصل ضمن القائمة الأصلية. سوف تجد أمثلة على كل طريقة أدناه. وبالمثل، لدينا الكثير من الخيارات لإزالة العناصر من قائمة. يمكن استخدام بيان ديل، كما هو موضح في الفصل 1، لإزالة أو حذف قائمة كاملة أو قيم من قائمة باستخدام تدوين الفهرس. يمكنك أيضا استخدام طريقة البوب ​​() أو إزالة () لإزالة قيم مفردة من قائمة. ستؤدي طريقة البوب ​​() إلى إزالة قيمة واحدة من نهاية القائمة، وستقوم أيضا بإرجاع تلك القيمة في نفس الوقت. إذا تم توفير فهرس إلى الدالة بوب ()، فإنه سيتم إزالة وإرجاع القيمة في هذا الفهرس. يمكن استخدام طريقة إزالة () لإيجاد وإزالة قيمة معينة في القائمة. وبعبارة أخرى، سيؤدي حذف () إلى حذف العنصر المطابق الأول من القائمة. إذا تطابقت أكثر من قيمة واحدة في القائمة مع القيمة التي تم تمريرها إلى دالة ريموف ()، فستتم إزالة أول واحد. ملاحظة أخرى حول الدالة ريموف () هي أن القيمة التي تمت إزالتها لا يتم إرجاعها. دعونا نلقي نظرة على هذه الأمثلة لتعديل قائمة. قائمة 2-10. تعديل قائمة الآن بعد أن نعرف كيفية إضافة وإزالة العناصر من قائمة، فقد حان الوقت لمعرفة كيفية التعامل مع البيانات داخلها. يوفر بيثون عددا من الطرق المختلفة التي يمكن استخدامها لمساعدتنا في إدارة قوائمنا. انظر الجدول 2-4 للحصول على قائمة بهذه الوظائف وما يمكن القيام به. الجدول 2-4. طرق قائمة بيثون يتيح إلقاء نظرة على بعض الأمثلة عن كيفية استخدام هذه الوظائف على القوائم. قائمة 2-11. الاستفادة من وظائف قائمة عبور وقوائم البحث يتحرك داخل قائمة بسيطة جدا. مرة واحدة يتم ملء القائمة، في كثير من الأحيان نود أن اجتياز من خلال ذلك وأداء بعض الإجراءات ضد كل عنصر الواردة فيه. يمكنك استخدام أي من بيثون حلقات يبني لاجتياز عبر كل عنصر ضمن قائمة. في حين أن هناك الكثير من الخيارات المتاحة، ل حلقة يعمل بشكل جيد بشكل خاص. ويرجع ذلك إلى بناء الجملة البسيط الذي يستخدمه بيثون للحلقة. هذا القسم سوف تظهر لك كيفية اجتياز قائمة باستخدام كل من يبني حلقات بيثون مختلفة. سترى أن كل واحد منهم لديه مزايا وعيوب. يتيح أولا إلقاء نظرة على بناء الجملة التي يتم استخدامها لاجتياز قائمة باستخدام حلقة. هذا هو إلى حد بعيد واحدة من أسهل طرق من خلال الذهاب من خلال كل القيم الواردة في القائمة. تعبر الحلقة عن عنصر عنصر واحد في المرة الواحدة، مما يسمح للمطور بتنفيذ بعض الإجراءات على كل عنصر إذا رغبت في ذلك. قائمة 2-12. عبور قائمة باستخدام حلقة ل كما ترون من هذا المثال البسيط، فمن السهل جدا أن تذهب من خلال قائمة والعمل مع كل بند على حدة. يتطلب بناء جملة الحلقة متغيرا يتم تعيين كل عنصر في القائمة لكل تمريرة من الحلقة. ومن الممكن أيضا الجمع بين تشريح مع استخدام حلقة ل. في هذه الحالة، ببساطة استخدام شريحة قائمة لاسترداد العناصر بالضبط نريد أن نرى. على سبيل المثال، ألق نظرة على التعليمات البرمجية التالية التي تجتاز من خلال العناصر الخمسة الأولى في قائمتنا. كما ترون، القيام بذلك هو سهل جدا ببساطة عن طريق الاستفادة من الميزات المضمنة التي تقدم بيثون. قائمة الفهم كما we8217ve ينظر في القسم السابق، يمكننا إنشاء نسخة من قائمة باستخدام تشريح. طريقة أخرى أكثر قوة للقيام بذلك هي عن طريق قائمة الفهم. هناك بعض الميزات المتقدمة للقوائم التي يمكن أن تساعد على جعل المطورين الحياة أسهل. ويعرف أحد هذه السمات باسم استيعاب القائمة. في حين أن هذا المفهوم قد يكون شاقة في البداية، فإنه يوفر بديلا جيدا لإنشاء العديد من قوائم منفصلة يدويا. قائمة المفاهيم تأخذ قائمة معينة، ومن ثم تكرار من خلال ذلك وتطبيق تعبير معين ضد كل من الكائنات في القائمة. قائمة 2-14. قائمة بسيطة الفهم كما ترون، وهذا يسمح للمرء أن تأخذ بسرعة قائمة وتغييره عن طريق استخدام التعبير المقدمة. وبطبيعة الحال، كما هو الحال مع العديد من الأساليب الأخرى بيثون الفهم قائمة ترجع نسخة معدلة من القائمة. ينتج عن استيعاب القائمة قائمة جديدة وتترك القائمة الأصلية دون لمس. دعونا نلقي نظرة على بناء الجملة لفهم القائمة. وهي تتألف أساسا من تعبير من نوع يليه لبيان ثم اختياريا أكثر ل أو إذا البيانات. الوظيفة الأساسية لفهم قائمة هو تكرار على بنود قائمة، ثم تطبيق بعض التعبير ضد كل من أعضاء القوائم. من الناحية التركيبية، يقرأ فهم القائمة على النحو التالي: يتغير من خلال قائمة ويؤدي اختياريا تعبيرا على كل عنصر، ثم إما إرجاع قائمة جديدة تحتوي على العناصر الناتجة أو تقييم كل عنصر نظرا لشرط اختياري. قائمة 2-15. استخدام شرط إف في قائمة الفهم يتيح إلقاء نظرة على بعض الأمثلة أكثر. مرة واحدة كنت قد رأيت قائمة الفهم في العمل كنت متأكدا من أن نفهم لهم ونرى كيف يمكن أن تكون مفيدة. قائمة 2-16. بيثون قائمة الفهم يمكن أن تجعل مفاهيم القائمة كود أكثر إيجازا وتسمح للمرء أن تطبيق التعبيرات أو وظائف لقائمة العناصر بسهولة تامة. دعونا نلقي نظرة سريعة على مثال مكتوب في جافا لأداء نفس النوع من العمل كما فهم الفهم. ومن السهل أن نرى أن فهما القائمة أكثر إيجازا. قائمة 2-17. جافا كود أن تأخذ قائمة من العصور وإضافة سنة واحدة إلى كل سن الرؤوس هي مثل الكثير من القوائم ومع ذلك، فهي غير قابلة للتغيير. مرة واحدة وقد تم تعريف توبل، فإنه لا يمكن تغييرها. أنها تحتوي على فهارس تماما مثل القوائم، ولكن مرة أخرى، لا يمكن تغييرها مرة واحدة محددة. لذلك، يمكن استخدام الفهرس في توبل لاسترداد قيمة معينة وعدم تعيين أو تعديل. في حين قد تظهر التماثيل مماثلة للقوائم، فهي مختلفة تماما في أن تلك التوائم عادة تحتوي على عناصر غير متجانسة، في حين أن القوائم في كثير من الأحيان تحتوي على العناصر التي ترتبط بطريقة أو بأخرى. على سبيل المثال، حالة الاستخدام الشائعة للالتموجات هي تمرير المعلمات إلى الدالة، الأسلوب، وهكذا. وبما أن الجماجم هي عضو في نوع التسلسل، فإنها يمكن أن تستخدم نفس مجموعة من الأساليب عمليات متاحة لجميع أنواع التسلسل. قائمة 2-18. أمثلة من التوبلز كما ذكر سابقا، يمكن أن تكون مفيدة جدا لتمرير إلى وظائف، وأساليب، والطبقات، وهلم جرا. في كثير من الأحيان، فمن الجميل أن يكون كائن غير قابل للتغيير لتمرير قيم متعددة. وستستخدم إحدى هذه الحالات طابعا لتمرير إحداثيات في نظام معلومات جغرافية أو تطبيق آخر من هذا النوع. كما أنها لطيفة لاستخدامها في الحالات التي يكون فيها كائن غير قابل للتغيير ما يبرره. لأنها غير قابلة للتغيير، وحجمها لا تنمو مرة واحدة تم تعريفها، لذلك يمكن أن تلعب أيضا دورا هاما عند تخصيص الذاكرة هو مصدر قلق. القواميس قاموس بيثون هو حاوية تخزين قيمة رئيسية. قاموس يختلف تماما عن قائمة نموذجية في بيثون كما لا يوجد مؤشر يسجل تلقائيا لأي عنصر معين داخل القاموس. عند استخدام قائمة، لا داعي للقلق بشأن تعيين فهرس لأي قيمة يتم وضعها داخله. ويسمح القاموس للمطور بتعيين فهرس أو مفتاح لكل عنصر يتم وضعه في المبنى. لذلك، يتطلب كل إدخال في القاموس قيمتين، المفتاح والعنصر. جمال القاموس هو أنه يسمح للمطور لاختيار نوع البيانات من قيمة المفتاح. لذلك، إذا أراد المرء استخدام سلسلة أو أي كائن قابل للتجزئة مثل قيمة إنت أو فلوت كمفتاح، فمن الممكن تماما. القواميس لديها أيضا العديد من الأساليب والعمليات التي يمكن تطبيقها عليها لجعلها أسهل للعمل مع. الجدول 2-5 قوائم أساليب القاموس والوظائف. قائمة 2-19. أمثلة القاموس الأساسية الجدول 2-5. طرق ومهام القاموس النطاق عبارة عن وظيفة خاصة تسمح للمرء بالتكرار بين مجموعة من الأرقام أو إدراج نطاق معين من الأرقام. ومن المفيد بشكل خاص لأداء التكرارات الرياضية، ولكن يمكن أيضا أن تستخدم لتكرار بسيط. يتضمن الشكل الخاص باستعمال دالة المدى رقم بدء اختياري، ورقم نهاية، ورقم تخطي اختياري. إذا كان محددا، يخبر رقم البدء النطاق الذي سيبدأ فيه، بينما يحدد رقم النهاية مكان انتهاء النطاق. مؤشر البداية شامل بينما مؤشر النهاية ليس كذلك. ويخبر رقم الخطوة الاختيارية مدى عدد الأرقام التي ينبغي وضعها بين كل رقم محتواها ضمن خرج النطاق. تتم إضافة رقم الخطوة إلى الرقم السابق وإذا تجاوز هذا الرقم نقطة النهاية ثم يتوقف النطاق. تنسيق المدى قائمة 2-24. استخدام الدالة رانج واحدة من الاستخدامات الأكثر شيوعا لهذه الوظيفة في حلقة. يعرض المثال التالي طريقتين لاستخدام الدالة المدى ضمن سياق حلقة. قائمة 2-25. استخدام الدالة رانج داخل a فور لوب كما ترون، يمكن استخدام نطاق لتكرار من خلال مجرد أي مجموعة عدد. سواء كان ذلك صعودا أو هبوطا، إيجابية أو سلبية في الخطوة. النطاقات هي أيضا وسيلة جيدة لإنشاء قائمة من الأرقام. من أجل القيام بذلك، ببساطة تمرير نطاق إلى قائمة () كما هو مبين في المثال التالي. قائمة 2-26. إنشاء قائمة من نطاق كما ترى، ليس فقط نطاقات مفيدة لأغراض تكرارية ولكنها أيضا وسيلة جيدة لإنشاء قوائم رقمية. مجموعات خاصة ب جيثون هناك عدد من عناصر مجموعة جيثون الخاصة المتاحة للاستخدام. معظم هذه الكائنات جمع تستخدم لتمرير البيانات إلى الطبقات جافا وهكذا دواليك، لكنها تضيف وظائف إضافية في تنفيذ جيثون من شأنها أن تساعد القادمين الجدد بايثون القادمة من عالم جافا. ومع ذلك، فإن العديد من هذه الكائنات جمع إضافية يمكن أن تكون مفيدة جدا في ظل حالات معينة. في الإصدار جيثون 2.2، أدخل التكامل التكامل جافا. وهذا يتيح تفاعل ثنائي الاتجاه بين أنواع تجميع جيثون و جافا. على سبيل المثال، جافا أريليست يمكن استيرادها في جيثون ثم استخدامها كما لو كانت جزءا من اللغة. قبل 2.2، يمكن أن تكون كائنات تجميع جافا بمثابة كائن جيثون، ولكن الكائنات جيثون لا يمكن أن تعمل كائنات جافا. على سبيل المثال، من الممكن استخدام جافا أريليست في جيثون واستخدام أساليب مثل إضافة ()، وإزالة ()، والحصول على (). سترى في المثال أدناه أن استخدام طريقة إضافة () في أريليست سيضيف عنصرا إلى القائمة ويعود منطقيا للدلالة على نجاح أو فشل الإضافة. تعمل طريقة الإزالة () على نحو مماثل، إلا أنه يزيل عنصرا بدلا من إضافته. قائمة 2-27. مثال على استخدام مجموعة جافا الموجهة في جيثون قبل دمج مجموعات جافا، كان جيثون قد نفذ أيضا الكائن جاراي الذي يسمح أساسا لبناء مجموعة جافا في جيثون. من أجل العمل مع جراي، ببساطة تحديد نوع تسلسل في جيثون وتمريره إلى الكائن جاراي جنبا إلى جنب مع نوع الكائن الواردة في تسلسل. و جاراي هو بالتأكيد مفيدة لإنشاء صفائف جافا ومن ثم تمريرها إلى الأجسام جافا، ولكنها ليست مفيدة جدا للعمل في الكائنات جيثون. وعلاوة على ذلك، يجب أن تكون جميع القيم داخل جرة من نفس النوع. إذا حاولت تمرير تسلسل يحتوي على أنواع متعددة إلى جاراي ثم ستعطى تيبيرور من نوع واحد أو آخر. انظر الجدول 2-8 للحصول على قائمة الرموز الشريطية الحرف المستخدمة مع جاراي. الجدول 2-8. الرموز البرمجية حرف للاستخدام مع جاراي ميزة أخرى مفيدة من جاراي هو أننا يمكن أن تخلق صفائف فارغة إذا أردنا باستخدام طريقة الأصفار (). طريقة الأصفار () تعمل بطريقة مماثلة إلى مجموعة () الأسلوب الذي أظهرنا بالفعل. من أجل إنشاء مصفوفة فارغة، ببساطة تمرير طول المصفوفة جنبا إلى جنب مع نوع إلى أسلوب الأصفار (). دعونا نلقي نظرة سريعة على مثال. قائمة 2-29. إنشاء صفيف منطقي فارغة قائمة 2-30. إنشاء صفيف صحيح صحيح في بعض الحالات عند التعامل مع كائنات جافا، ستحتاج إلى استدعاء أسلوب جافا يتطلب مصفوفة جافا كوسيطة. استخدام كائن جاراي يسمح لطريقة بسيطة لإنشاء صفائف جافا عند الحاجة. يتم استخدام الكائنات ملف لقراءة وكتابة البيانات إلى ملف على القرص. يتم استخدام كائن الملف للحصول على مرجع إلى الملف على القرص وفتحه للقراءة والكتابة والإلحاق، أو عدد من المهام المختلفة. إذا كنا ببساطة استخدام وظيفة فتح (اسم الملف، واسطة)، يمكننا إرجاع كائن ملف وتعيينه إلى متغير للمعالجة. إذا لم يكن الملف موجود على القرص بعد ذلك، سيتم إنشاؤه تلقائيا. يتم استخدام وسيطة الوضع لمعرفة نوع المعالجة التي نود تنفيذها على الملف. هذه الحجة اختيارية وإذا تم حذفها ثم يتم فتح الملف في وضع للقراءة فقط. انظر الجدول 2-9. الجدول 2-9. طرق العمليات لأنواع الملفات هناك الكثير من الأساليب التي يمكن استخدامها على كائنات ملف للتلاعب في محتوى الملف. يمكننا استدعاء قراءة (حجم) على ملف من أجل قراءة محتواه. الحجم هو وسيطة اختيارية هنا ويتم استخدامه لنقول كم المحتوى لقراءة من الملف. إذا تم حذف ثم يتم قراءة محتوى الملف بأكمله. يمكن استخدام طريقة ريادلين () لقراءة سطر واحد من ملف. يتم استخدام ريدلينس (سيز) لإرجاع قائمة تحتوي على كافة خطوط البيانات المضمنة في ملف. مرة أخرى، هناك معلمة حجم اختياري التي يمكن استخدامها لمعرفة عدد وحدات البايت من الملف للقراءة. إذا أردنا وضع المحتوى في الملف، فإن أسلوب الكتابة (السلسلة) يفعل ذلك تماما. يكتب أسلوب الكتابة () سلسلة إلى الملف. عند الكتابة إلى ملف في كثير من الأحيان من المهم أن نعرف بالضبط ما الموقف في الملف الذي أنت ذاهب للكتابة إلى. هناك مجموعة من الأساليب لمساعدتنا في تحديد المواقع داخل ملف باستخدام الأعداد الصحيحة لتمثيل وحدات البايت في الملف. يمكن استدعاء الأسلوب تيل () على ملف لإعطاء كائن الملف الوضع الحالي. عدد صحيح عاد في عدد من وحدات البايت وهو إزاحة من بداية الملف. طريقة البحث (تعويض، من) يمكن استخدامها لتغيير الموضع في ملف. الإزاحة هي عدد وحدات البايت في الموضع الذي ترغب في الذهاب إليه، ومن يمثل المكان في الملف الذي ترغب في حساب الإزاحة منه. وإذا كان يساوي 0، فسيتم حساب الإزاحة من بداية الملف. وبالمثل، إذا كان يساوي 1 ثم يتم احتسابه من موقف الملف الحالي، و 2 سيكون من نهاية الملف. الافتراضي هو 0 إذا تم حذف من. وأخيرا، من المهم تخصيص الموارد وإلغاء تخصيصها بكفاءة في برامجنا، أو أننا سنتحمل نفقات عامة وتسريبات. وعادة ما يتم التعامل مع الموارد بشكل مختلف قليلا بين كبيثون و جيثون لأن جمع القمامة يعمل بشكل مختلف. في كبيثون، ليس من المهم القلق بشأن إلغاء تخصيص الموارد حيث يتم إلغاء تخصيصها تلقائيا عند خروجها من النطاق. جفم لا تلاحظ جمع القمامة فورا، لذلك السليم دي-ديسيغنينغ من الموارد هو أكثر أهمية. يجب أن يتم استدعاء طريقة إغلاق () على ملف عندما نكون من خلال العمل معها. المنهجية المناسبة لاستخدامها عند العمل مع الملف هي فتح، معالجة، ثم إغلاق كل مرة. ومع ذلك، هناك طرق أكثر كفاءة لأداء مثل هذه المهام. في الفصل 7 سوف نناقش استخدام مديري السياق لأداء نفس الوظيفة بطريقة أكثر كفاءة. قائمة 2-32. ملف التلاعب في إيثيراتورس بيثون وقدم التكرار في بيثون مرة أخرى في الإصدار 2.2. انها تسمح للتكرار على حاويات بايثون. جميع الحاويات إتيرابل ديه المدمج في دعم لنوع التكرار. على سبيل المثال، الأجسام التسلسلية متكررة لأنها تسمح بالتكرار على كل عنصر ضمن التسلسل. إذا حاولت إعادة مكررة على كائن لا يدعم التكرار، سوف تتلقى على الأرجح سمة إيربورتيرور يخبرك أن إيتر لم يتم تعريف كخاصية لهذا الكائن. من المهم أن نلاحظ أن أسماء طريقة بايثون باستخدام المزدوج السفلية هي أساليب خاصة. على سبيل المثال، في بيثون يمكن تهيئة فئة باستخدام طريقة إينيت (). يشبه إلى حد كبير منشئ جافا. لمزيد من التفاصيل عن الصفوف وطرق الصف الخاص، يرجى الرجوع إلى الفصل 7. تسمح أجهزة التكرار بالوصول السهل إلى التتابعات والحاويات القابلة للتكرار الأخرى. بعض حاويات مثل القواميس لديها أساليب التكرار المتخصصة في صلبها كما رأيت في الأقسام السابقة. كائنات إيتراتور مطلوبة لدعم اثنين من الطرق الرئيسية التي تشكل بروتوكول التكرار. يتم تعريف هذه الأساليب أدناه في الجدول 2-10.لإرجاع متكرر على حاوية، مجرد تعيين container. iter () لبعض المتغير. سيصبح هذا المتغير المكرر للكائن. وهذا يتيح واحد القدرة على تمرير مرارا حولها، إلى وظائف وما شابه ذلك. ومن ثم فإن المتكرر هو نفسه متغير متغير يحافظ على حالته. يمكننا استخدام العمل مع التكرار دون التأثير على الكائن الأصلي. في حالة استخدام المكالمة التالية ()، سيستمر في إرجاع العنصر التالي ضمن القائمة حتى يتم استرجاع كافة العناصر. بمجرد حدوث ذلك، يتم إصدار استثناء ستوبيتيراشيون. الشيء المهم أن نلاحظ هنا هو أننا في الواقع إنشاء نسخة من القائمة عندما نعيد التكرار وتعيينه لمتغير. يقوم هذا المتغير بإرجاع وإزالة عنصر من تلك النسخة في كل مرة يتم استدعاء الأسلوب التالي () عليه. إذا استمر في استدعاء التالي () على متغير التكرار حتى يتم إصدار خطأ ستوبيتيراشيون، المتغير لن تحتوي على أي عناصر فارغة. على سبيل المثال، إذا أنشأنا مكررة من قائمة ثم دعا الأسلوب التالي () على ذلك حتى استرجاع جميع القيم ثم التكرار ستكون فارغة وسوف تبقى القائمة الأصلية دون لمس. قائمة 2-33. إنشاء إيتياتور من قائمة واستخدامها قائمة 2-34. التكرار عبر التسلسل وقائمة المراجع والنسخ إنشاء النسخ والعناصر المرجعية في لغة بايثون هو واضح إلى حد ما. الشيء الوحيد الذي تحتاج إلى أن نأخذ في الاعتبار هو أن التقنيات المستخدمة لنسخ الكائنات القابلة للتحويل وغير قابلة للتغيير تختلف قليلا. من أجل إنشاء نسخة من كائن غير قابل للتغيير، يمكنك ببساطة تعيينه لمتغير مختلف. المتغير الجديد هو نسخة طبق الأصل من الكائن. إذا حاولت أن تفعل الشيء نفسه مع كائن قابل للتحويل، فإنك في الواقع مجرد إنشاء مرجع إلى الكائن الأصلي. لذلك، إذا قمت بإجراء عمليات على نسخة من الأصل ثم نفس العملية سيتم فعلا أن يؤديها على الأصل. يحدث هذا لأن الإحالة الجديدة تشير إلى كائن قابل للتغيير نفسه في الذاكرة كما الأصلي. هو نوع من مثل شخص يدعوك باسم مختلف. يمكن لشخص واحد الاتصال بك باسم ميلادك وآخر قد ندعو لكم من قبل لقبك، ولكن كلا الاسمين سوف أشير لكم بالطبع. قائمة 2-35. العمل مع النسخ لإنشاء نسخة من كائن قابل للتحويل بشكل فعال، لديك خياران. يمكنك إما إنشاء ما يعرف بنسخة ضحلة أو نسخة عميقة من الكائن الأصلي. الفرق هو أن نسخة ضحلة من كائن سيخلق كائن جديد ثم تعبئته مع مراجع العناصر الموجودة في الكائن الأصلي. وبالتالي، إذا قمت بتعديل أي من هذه العناصر ثم كل كائن سوف تتأثر لأنها كل من الإشارة إلى نفس العناصر. نسخة عميقة بإنشاء كائن جديد ثم نسخ بشكل متكرر محتويات الكائن الأصلي في النسخة الجديدة. بمجرد إجراء نسخة عميقة من كائن ثم يمكنك إجراء عمليات على أي كائن الواردة في النسخة دون التأثير على الأصل. يمكنك استخدام الدالة ديبكوبي في وحدة النسخ من مكتبة بيثون القياسية لإنشاء مثل هذه النسخة. دعونا ننظر إلى بعض الأمثلة أكثر من إنشاء نسخ من أجل تعطيك فكرة أفضل عن كيفية عمل هذا. جمع القمامة هذا هو واحد من هذه الاختلافات الرئيسية بين كبيثون و جيثون. في كبيثون، كائن هو القمامة التي تم جمعها عندما تخرج من نطاق أو لم يعد هناك حاجة إليها. يحدث هذا تلقائيا ونادرا ما يحتاج إلى تعقب من قبل المطور. وراء الكواليس، يستخدم كبيثون تقنية العد المرجعي للحفاظ على الاعتماد على كل كائن الذي يحدد بشكل فعال إذا كان الكائن لا يزال قيد الاستخدام. على عكس كبيثون، جيثون لا تنفذ تقنية العد المرجعي للشيخوخة أو جمع القمامة الكائنات غير المستخدمة. بدلا من ذلك، جيثون يجعل استخدام آليات جمع القمامة التي توفر منصة جافا. عندما يصبح كائن جيثون لا يمكن الوصول إليه أو لا يمكن الوصول إليه، قد جفم أو قد لا استعادته. واحدة من الجوانب الرئيسية ل جفم التي جعلت المطورين سعيدة جدا في الأيام الأولى هو أنه لم يعد هناك حاجة للقلق حول تنظيف بعد التعليمات البرمجية الخاصة بك. في لغة البرمجة C، يجب على المرء أن يحافظ على الوعي بالأشياء التي يتم استخدامها حاليا بحيث عندما لم تعد هناك حاجة البرنامج سوف تؤدي بعض تنظيف. ليس في عالم جافا، و غ الموضوع على جفم يعتني كل جمع القمامة وتنظيف بالنسبة لك. على الرغم من أننا تحدثنا عن الطبقات بالتفصيل حتى الآن، رأيت مثالا موجزا عن كيفية لهم في الفصل 1. لقد حان الوقت أن نذكر أن بيثون يوفر آلية لتنظيف الكائن. يمكن تعريف طريقة فيناليزر في أي فئة من أجل التأكد من أن جامع القمامة يؤدي مهام محددة. يمكن وضع أي رمز تنظيف يجب تنفيذه عند خروج كائن من النطاق ضمن طريقة هذا المحرر النهائي. من المهم أن نلاحظ أن طريقة النهائية لا يمكن الاعتماد عليها كوسيلة التي سيتم استدعاء دائما عندما كائن هو عديم الجدوى. هذا هو الحال لأنه يتم استدعاء الأسلوب فينليزر من قبل سلسلة ترابط تجميع القمامة جافا، وليس هناك طريقة للتأكد متى وعندما يتم استدعاء جامع القمامة على كائن. قضية أخرى من ملاحظة مع النهائي هو أنهم يتكبدون عقوبة الأداء. إذا كنت ترميز التطبيق الذي يؤدي بالفعل سيئة ثم قد لا تكون فكرة جيدة لرمي الكثير من فيناليزرز في ذلك. وفيما يلي مثال على بيثون فينليزر. وهي طريقة المثال الذي يجب أن يكون اسمه ديل. قائمة 2-37. بيثون فيناليزر إكسامبل الجانب السلبي لاستخدام آليات جمع القمامة جفم هو أن هناك حقا أي ضمان بشأن متى وإذا كان سيتم استرجاع كائن. لذلك، عند العمل مع الأجسام كثيفة الأداء فمن الأفضل أن لا تعتمد على اللمسات الأخيرة ليتم استدعاؤها. من المهم دائما ضمان استخدام تقنيات الترميز المناسبة في مثل هذه الحالات عند العمل مع كائنات مثل الملفات وقواعد البيانات. عدم كتابة طريقة إغلاق () لملف إلى فيناليزر لأنه قد يسبب مشكلة إذا لم يتم استدعاء فينليزر. وتتمثل أفضل الممارسات في ضمان تنفيذ جميع أنشطة التنظيف الإلزامية قبل التذرع بمتلقي الخدمة النهائية. وقد تم تناول الكثير من المواد في هذا الفصل. يجب أن تكون على دراية أفضل بيثون بعد قراءة من خلال هذه المواد. بدأنا الفصل من خلال تغطية أساسيات الاحالة تعيين البيانات إلى كائنات معينة أو أنواع البيانات. تعلمت أن العمل مع كل نوع من أنواع البيانات يفتح أبواب مختلفة كما الطريقة التي نعمل بها مع كل نوع من كائن البيانات يختلف. بدأت رحلتنا في الكائنات البيانات مع الأرقام والسلاسل، وناقشنا العديد من الأساليب المتاحة للكائن سلسلة. علمنا أن السلاسل هي جزء من عائلة تسلسل الكائنات جمع بيثون جنبا إلى جنب مع القوائم والقبعات. نحن غطينا كيفية إنشاء والعمل مع القوائم، ومجموعة متنوعة من الخيارات المتاحة لنا عند استخدام القوائم. لقد اكتشفت أن مفاهيم القائمة يمكن أن تساعد في خلق نسخ من قائمة معينة والتعامل مع عناصرها وفقا لتعبير أو وظيفة. بعد مناقشة القوائم، ذهبنا لمناقشة القواميس والمجموعات والقمم. بعد مناقشة أنواع التجميع، علمنا أن جيثون لديها مجموعة خاصة بها من الكائنات التي تختلف عن تلك الموجودة في بايثون. يمكننا الاستفادة من ميزة وجود منصة جافا في متناول أيدينا واستخدام أنواع جمع جافا من داخل جيثون. انتهينا من خلال مناقشة المراجع والنسخ وجمع القمامة. إنشاء نسخ مختلفة من الكائنات لا تعطي دائما ما كنت تتوقع، وأن جمع القمامة جيثون يختلف قليلا جدا عن تلك التي من بايثون. الفصل التالي سوف يساعدك على الجمع بين بعض الموضوعات التي تعلمتها في هذا الفصل كما سوف تتعلم كيفية تعريف التعبيرات والعمل مع التحكم في التدفق. التحليل الفني في إكسيل: الجزء الأول 8211 سما، إما، بولينجر باندز في هذه الدورة ثلاثية الأبعاد، جزء أو سلسلة 8220 التحليل الفني في Excel8221 سوف نستكشف كيف يمكن للمتداولين استخدام إكسيل لتطبيق التحليل الفني (تا) على بيانات السوق التاريخية. وسيشمل ذلك حساب بعض مؤشرات التحليل الفني الأكثر شعبية وتنفيذ جدول بيانات لاستراتيجية التداول (في الجزء الثالث). وسوف تنطوي الاختبارات الخلفية على توليد إشارات شراء وبيع استنادا إلى مؤشرات المساعدة التقنية وحساب استراتيجية P038L. W8217d أود أن أشير إلى أن جميع الحسابات في هذه المقالات سيتم تنفيذها باستخدام وظائف إكسيل القياسية المتوفرة في إكسيل 2011 والإصدارات الأحدث. لن يتم استخدام أي وحدات ماكرو فباكوستم إكسيل. ويتم ذلك على الغرض للحفاظ على جداول البيانات بسيطة ووظيفية مفهومة من قبل غير المبرمجين. In the first part of this article series we will create an Excel spreadsheet where we will use formulas some common technical analysis indicators such as: Simple Moving Average, Bollinger Bands, and Exponential Moving Average. Well explain the formulas and include step-by-step instructions below. In addition, we are providing a spreadsheet we8217ve created by following steps listed in this article so that you can use it for your own market data analysis or as basis for building your own spreadsheets. Sample Excel File Excel file (download ) containing formulas for calculation of simple moving average, Bollinger Bands, and exponential moving average as described in this post. For this example weve got a CSV file with 6 months of hourly SPY data, covering Sep 3, 2013 8211 Feb 28, 2014. SPY is an ETF tracking SampP500 index. We have nearly 2000 data points in this file. The file contains OHCL price columns, volume, and timestamp column. Disclaimer: this file has been generated using IB Data Downloader . Data file: historicaldataSPY1hour20140301 (text file 8211 to download 8211 right-click and select 8220Save Linked File As8221) Simple Moving Average Basic Calculation Simple Moving Average (SMA) is simply the average price over last N number of bars. Lets calculate SMA for the close prices from our sample data file. Well be calculating a 20-day moving average based on the SPY close price (column D). Let8217s add column header SMA-20 in column G and we type in the following formula value in cell G21 (since row 21 is the first one that has enough data to calculate 20-day SMA): After hitting return to save the formula you should see value 164.57 or close to that in cell G21. In order to calculate SMA-20 for all of the remaining cells below 8211 just select cell G21, move cursor over cell and double-click the small square in the lower-right corner of that cell. You should now see values in column G calculated for the remainder of SPY prices. Generalizing SMA Calculation Now we have calculated 20-day simple moving average values in column G. Its great, but what if we want to calculate 50-day, or 200-day SMA now Updating formula values every time you want to change SMA range is pretty tedious and error-prone. Lets make our calculation more generic by adding a 8220length8221 parameter. We can start off by storing SMA range parameter in a separate cell so that we can reference it in or formula. Here are the steps we followed to implement a generic SMA calculation in our spreadsheet: Let8217s start off by creating a little table on the side where we can store some input parameter values for our indicators. In cell O1 lets type Variable Name, in cell P1 lets type Value. In cell O2 lets type name of our variable: PERIOD. In cell P2 we specify value of the PERIOD variable which well be using to specify period length for our generalized SMA calculation. Changing this variable will trigger recalculation of SMA with the current period value. Lets use value 14 for now. Lets type column header value SMA in cell H1 column H will contain values for our generic SMA indicator. In cell H2 enter this formula: Lets dissect this formula. We are now using value of our PERIOD variable from cell P2. We had to add in front of column and row numbers to freeze reference to cell P2 as we copy SMA formula to other cells in column H. Weve also replaced absolute reference to the Close column price range with the OFFSET Excel function. OFFSET returns a range of cells based on the offset in terms of number rows and columns from a given 8220reference8221 cell. First parameter is the reference cell (in our case H2 itself), second is an expression calculating the first row of the range based on the value of length parameter (P2), 3rd parameter is the column offset to the Close column (-4), negative value represents offset to the left while positive is offset to the right of the reference cell, and the last function parameter with value 1 represents the width of the range returned by OFFSET function, which in our case is just one column: D (CLOSE). Save the formula in cell in H2 and expand it to the rest of cells in column H by double-clicking the little square in lower-right corner of the cell, or dragging the formula down. Removing Formula Errors Now, you will notice that first several rows in the column have error value REF. This happens because there are not enough rows in our data set to calculate the SMA value, and the range returned by OFFSET function goes over the edge of the worksheet for some rows. There exists a number of various techniques to hide error values in excel. Some of them involve formulas which return blank or zero values if a cell value contains an error. While this is perfectly valid technique - it complicates cell formulas and makes them hard to read. Instead, well use conditional formatting to simply hide error values be changing foreground color to white. To change cells font color to white and use no error highlighting follow these instructions: Select columns H-N In Excel: Home - gt Conditional Formatting - gt Highlight Cell Rules - gt More Rules. في مربع الحوار "قاعدة التنسيق الجديد" حدد أخطاء وفي تنسيق مع تنسيق مخصص حدد، ثم عين لون التعبئة إلى اللون الأبيض والخط إلى الأبيض كذلك. Bollinger Bands Introduction Bollinger Bands is a simple but useful indicator providing valuable information on historical price volatility of a financial instrument, as well as current price deviation from a moving average. When price moves become more volatile 8211 the bands widen, in the periods of relative calm 8211 they come closer together. The relative position of the current price to the bands can also be used to estimate whether market is overbought or oversold. If the current price is close to or crossed upper band 8211 the price is considered in overbought territory, while price close tocrossed lower band 8211 underlying market is considered oversold. Basic Calculation Bollinger Bands indicator could be calculated using either simple moving average or exponential moving average as the basis. Bollinger Bands consists of three data series: moving average (simple or exponential) and two standard deviation (boundary) lines, one above, and one below the moving average, usually at 2 standard deviations from the moving average. Exponential moving average (covered below) gives more weight to the more recent price action, while Simple moving average provides a more stable and less jittery indicator. There are a total of 2 input parameters: 1) moving average period (number of bars), 2) number of standard deviations for the upper band lower bands. In this example well use simple moving average we already calculated in column H (see instructions in the section above). All thats remaining is to add columns for upper and lower bands. We are still using 14-day moving average period value. The first row that has enough data for 14-day SMA is row 15 (since row 1 is used for column header). The upper band will be in column I, so in cell I15 we type the following formula: In this formula we are simply adding two standard deviations of the Close prices from cells D2:D15 to the SMA value. Here the only difference from the previous formula is that we are subtracting two standard deviations from SMA. Excel formula STDEV() calculates standard deviation for a series of values. In this case we are multiplying value by 2 to get 2 standard deviations, and addingsubtracting the result from the moving average to generate the upperlower band values. To expand the formulas 8211 just roll over and double-click on a small square in the lower-right corner of the cell to replicate formula for the rest of the data range. Generalized Bollinger Band Computation Now. how about generalizing the Bollinger Band formula so that we dont have to update our formulas every time we want to calculate Bollinger bands for different number of standard deviations from MA or when we change moving average length. Lets add another parameter to our generic variables table on the right of the spreadsheet. Lets type Std devs: in cell O3, and 2.0 in P3. Next, let8217s add the following formula in I15: In this formula weve replaced 2 with P3 8211 which points to our variable in cell P3 containing number of standard deviations for the bands, and calculate offset based on the PERIOD variable in cell P2. The only difference from the formula in the previous step is that weve replaced after H15 with 8211 (minus), to subtract number of standard deviations from SMA, and we had to change offset to the price columnd. notice -6, instead of -5 in the cols parameter to the OFFSET function to refer to column D (CLOSE). Dont forget to copy new formulas in cells I15 and J15 to the rest of the respective column cells. You can now change values of PERIOD and Std devs variables in cells P2 amp P3, and have SMA and Bollinger Band values automatically recalculated. Bollinger Bands Chart in Excel Watch this video with instructions for adding a Bollinger Band chart to the spreadsheet we created above. Exponential Moving Average Exponential Moving Average (EMA) is type of moving average that is similar to a simple moving average, except that more weight is given to the latest data. The exponential moving average is also known as 8220exponentially weighted moving average8221. Computation Instructions Well use column K to calculate EMA. Lets set our PERIOD value to 1 (cell P2), so that we could enter formula at the top of our sheet and have some values we can see entering the formulas. We can set PERIOD to any value after we are done and have EMA (and SMA) automatically recalculated. In cell K2 we set the first value of the EMA series to be simply equal to the Close value (D2) in the same row, just because we need to seed EMA computation with some sensible value. Next, in cell K3 we enter a standard EMA formula which uses the industry-standard exponent function 2(1number of periods in MA). To better understand the math behind this refer to this page. In this formula we multiply rows Close price (D3) by the exponent function, using P2 to reference our number of periods variable, and add to the result the previous EMA value (K2), multiplied 1- the exponent. This is the standard EMA formula. Now expand the formula to the rest of the column by clicking a square in the lower right of cell K3. We can now change PERIOD value to any other number, make sure your conditional formatting rule is updated to hide error values displayed in cells that dont have enough data going back to calculate their values. Part I Conclusion In this first part of our 3-part series we calculated Simple Moving Average, Bollinger Bands, and Exponential Moving Average technical analysis indicators for our sample historical data set. In the next part well cover two of the most famous technical analysis indicators: MACD and RSI. Before you continue reading this article series we8217d like to bring your attention to a couple of books we hand-picked from a large number of volumes available on the subjects of technical analysis and trading with Microsoft Excel. We found that the selections we listed below provide invaluable fundamental information on using technical analysis and Excel-based trading idea generation, testing, and execution. Combining material described in these books will enable you to develop and test your own trading systems and take them to markets sooner and with more confidence. IB Data Downloader IB Data Downloader version 3.3 is now available Download historical data from Interactive Brokers. Stocks, Futures, ETFs, Indexes, Forex, Options, FOPs. Now supports options historical data download Runs on Windows, MacOS, Linux. Automatically handles IB API pacing violations, no restrictions on duration due to pacing limitations Supports historical data for expired futures contracts. IB Excel Trader IB Excel Trader version 1.6 is now available Trade Stocks, ETFs, Futures, and Forex directly from Excel. Implement custom trading rules using spreadsheet formulas or VBA. Program entry rules for single or bracket exit orders. Market, Stop, Limit, Stop-Limit, as well as complex algo orders are supported. Order Log sheet (new). Contains a detailed list of each order status change in a filterable Excel table. Use our Customization Service to extend IB Excel Trader and contract our programmers to develop your custom trading strategies. Interactive Brokers (IB) is a low cost provider of trade execution and clearing services for individuals, advisors, prop trading groups, brokers and hedge funds. IBs premier technology provides direct access to stocks, options, futures, forex, bonds and funds on over 100 markets worldwide from a single IB Universal account. Member NYSE, FINRA, SIPC. Visit interactivebrokers for more information. Recent Posts

Comments