Tuesday 23 January 2018

بيثون الأسهم خيارات


أنا مهتم في إجراء تحليل الاقتصاد القياسي على المشتقات المالية. الشنق الرئيسي الذي واجهته هو أنه لا توجد موارد مجانية جيدة (على الأقل أن أعرف من) لبيانات الخيارات التاريخية. لهذا السبب أريد أن إنشاء بلدي قاعدة بيانات شخصية من أسعار الخيارات التاريخية. لقد كسرت هذا المشروع وصولا الى ثلاثة عقبات رئيسية: معرفة كيفية الحصول على بيانات الخيارات من داخل بيثون اختيار تنسيق تخزين البيانات أتمتة جمع البيانات اليومية الحصول على بيانات الخيارات في الثعبان خلال الصيف كان لي بعض وقت الفراغ وتعاونت مع بلدي أبي لإنشاء نموذج الاستثمار. في حين أنه هو نموذج بسيط جدا، هذا المنصب هو حول بناء قاعدة بيانات لذلك أنا لن تذهب في التفاصيل هنا. يكفي أن أقول أنني بحاجة إلى إيجاد وسيلة للحصول على خيارات البيانات من ياهو المالية. كان هذا تحديا فريدا لأنه على عكس بيانات الإنصاف أو البيانات من مصادر أخرى مثل فريد، خيارات البيانات لا يكون تنزيل مريحة لزر كسف في أي مكان على الموقع. في ذلك الوقت كنت أقرأ كتاب ممتاز بيثون لتحليل البيانات من قبل ويس ماكيني وحصلت على فكرة عن كيفية تنفيذ الزاحف الويب الأساسي لتحليل هتمل على ياهو وإعادة البيانات في شكل ودية بيثون. قصة قصيرة قصيرة، كتبت بعض التعليمات البرمجية للقيام بذلك فقط، وأنها جعلت طريقها إلى الإصدار 0.9 من مكتبة الباندا (إذا كنت أرينت مألوفة مع الباندا وكنت تعمل مع البيانات في الثعبان يجب عليك بالتأكيد التحقق من ذلك). الآن هناك حاجة فقط هذه الأوامر القليلة للحصول على بيانات الخيارات من ياهو المالية: المكالمات ويضع الكائنات هي الباندا داتافرامس التي تحتوي على نفس المعلومات التي سوف تجد على الصفحة المالية ياهو لشركة أبل Inc. الخيارات. اختيار تنسيق الملف في اختيار تنسيق ملف كان لدي اعتبارات رئيسية اثنين: حجم الملف والسرعة التي يمكن أن يكتب بها. لاختبار هذا من أنا كتبت النصي بسيطة التي ولدت عشوائية 4000 4000 صفيف نومبي وظائف محددة لكتابة وقراءة تلك البيانات في تنسيقات الملفات المختلفة. التنسيقات التي اخترتها للعمل مع كسف و hdf5 (.h5) و ماتلاب (.mat). وفيما يلي النص البرمجي اعتدت لتشغيل الاختبار: بعد أن كان هذا الرمز أنا ببساطة أطلقت إبيثون وركض الملف (filetest. py) واستخدام السحر الوقت لنرى كم من الوقت استغرق كل من الطرق الثلاث للقراءة والكتابة البيانات. يتم تلخيص نتائج التوقيت، جنبا إلى جنب مع أحجام الملفات النهائية في الجدول أدناه: فمن السهل أن نرى أن نوع ملف hdf5 هو أفضل واحد للاختيار لأغراض بلدي. أود أن أشير هنا أن سبب تنسيق ملف hdf5 هو 12 حجم الملف. mat، لأن دتيب في ملف. h5 هو تعويم 32 بت في حين أن. mat دتيب هو تعويم 64 بت. ومع ذلك، بالنسبة لخيارات الأسهم نحن الرعاية العامة فقط حول البيانات من اثنين من المنازل العشرية بحيث دقة 32 بت هو الكثير. أتمتة استرجاع البيانات الخطوة الأخيرة في بدء تشغيل قاعدة البيانات هذه هي أتمتة عملية استرجاع البيانات. للقيام بذلك اعتدت شعبية كرون أداة أونيكس جدولة. أنا تشغيل أوسك 10.8 الجبل الأسد، وبشكل افتراضي في 10.8 يتم تعطيل أداة كرون. لإصلاح هذا أنا ببساطة ركض الأمر التالي في المحطة: هذا الأمر بإنشاء ملف إتكرونتاب (إذا لم يكن موجودا بالفعل) ويحصل على استعداد للاستخدام من قبل كرون. أنا لن أعطي شرحا مفصلا لكيفية استخدام كرون هنا (وأنا لا تزال جديدة إلى حد ما في نفسي)، ولكن غوغلينغ لذلك سوف تعطيك الكثير من الأمثلة والدروس. لكنني أعطي الخط في ملف كرونتاب الذي ينفذ النص: الخطوة التالية كانت كتابة السيناريو الذي كان لي أن أجري مكالمة كرون. يظهر هذا أدناه. لدي كرون تشغيل هذا البرنامج النصي في وقت محدد كل أسبوع في اليوم وملء ملف hdf5. سيكون للملف الناتج هيكل متداخل مثل هذا: الترميز كتيكم-ي يقف على خيار الاتصال (C)، شريط معين (تيك)، وانتهاء الخيار (مم-ي). داخل كل من مجموعات البيانات هناك ثلاثة أعمدة: سعر الإضراب، آخر سعر على عقد الخيار، والحجم في آخر يوم تداول. بعد تشغيل هذا البرنامج النصي ليلة واحدة، كان ملف البيانات hdf5 الناتجة 7.648648 مب. إذا كنت أريد السماح لهذا الملف بتشغيل كل يوم عمل لمدة عام، فسيكون حجم الملف النهائي أقل من 2 غيغابايت. ليس سيئا إذا كنت ترغب في مزيد من المعلومات حول كيفية جمع أسماء شريط أو ما هي وظيفة الخيارات في الباندا 0.10 أو في وقت سابق ترك تعليق و إل بذل قصارى جهدي للرد. رهيبة لقد كنت تريد أن تفعل شيئا من هذا القبيل، لأنني أيضا أريد أن باكتست بعض من استراتيجيات بلدي. من المحتمل أن تقوم بتغيير 39 من الخيارات إيمبورت options39 إلى 39 من pandas. io. data إيمبورت 39، ولكن بخلاف أن النص البرمجي الخاص بك يعمل بشكل رائع. هل تكون على استعداد لتبادل البيانات الخيار you39ve التي تم جمعها حتى الآن أنا يمكن أن تبادل صالح من خلال العمل كنسخ احتياطي لتشغيل البرنامج النصي في حال كنت تفقد أي وقت مضى الاتصال لبضعة أيام. كنت أفكر تقريبا اختبار باستخدام أسعار ولدت باستخدام Black8211Scholes، ولكن البيانات الحقيقية هو أفضل من الواضح. سعيد كنت مثل السيناريو. أنا فعلا توقفت عن تشغيل الملف كل ليلة لذلك أنا don39t لديها الكثير من البيانات. وإلا I39d تكون سعيدة لمشاركتها معك. فيما يتعلق ببيانات الاستيراد. أنا مؤلف فئة الخيارات في الباندا. في وقت كتابة هذا بلوق وظيفة بعض الوظائف التي استخدمتها في البرنامج النصي hadn39t تم دمجها في إصدار صدر من الباندا، لذلك دعوت بلدي الإصدار المحلي (في ملف اسمه الخيارات) التي استندت على نسخة الباندا لمعلوماتك: هناك هي في الواقع بعض التغييرات أبي يحدث مع فئة الخيارات داخل الباندا الآن. إذا كانت التغييرات تحدث بالطريقة التي اقترحها أحد المساهمين الآخرين، فقد يكون الكثير من الشفرة في هذا النص البرمجي عفا عليها الزمن. على الأقل يجب أن لا يزال الحصول على الناس بدأت أنا في عملية إنشاء قاعدة بيانات المشتقات الكبيرة. التحليل من الروابط الإلكترونية جاهز. حيث أنا خسر قليلا هو كيفية إنشاء قاعدة بيانات من جميع الخيارات الفردية في مثل هذه الطريقة التي تمكن الحسابات مثل سكيو، الخ دون يدويا اختيار الخيارات الفردية في كل مرة للقيام الحساب. كيفية جعل مثل هذه المراجع العامة. أنا قليلا فقدت هنا ويريد فرز ذلك أولا قبل المضي قدما في إنشاء البيانات. وأعتقد أن الترتيب الصحيح في عودة توضع يضع، يدعو aapl. getoptionsdata (). يا مارتن، أنت على حق. عندما قمت في البداية بإضافة خيارات جمع رمز إلى الباندا، كان لي جيتوبتيونسداتا عودة المكالمات أولا. لست متأكدا عند تغيير شخص ما. قمت بتحديث التعليمات البرمجية في آخر لاستخدام الصحيح يضع، يدعو يأمر الآن. أنا على الرغم من أن هذا سيكون من المفيد جدا أن تكون قادرة على تحميل أسعار الخيارات. للبدء مع كنت أستخدم النص البرمجي الذي قدمته أعلاه (إلى حد كبير). لدي الباندا 0.13.1، ولكن يبدو مكسورة تماما. تحدث أخطاء مع السطر التالي: راوالكز option. getforwarddata (month100، كالترو، بوتفالز، نيرفالس، فوقbelow6). منذ أريد الحصول على جميع البيانات الخيار أعتقد أن لدي لاستخدام طريقة جيتفوروارداتا. ويبدو أن الطرق الأخرى تدعم فقط الحصول على شهر معين. الخطأ طويل جدا ولكن الخطين الأخيرين هما: ملف quusrlocallibpython2.7dist-packagepandasioparsers. pyquot، خط 1653، في نكستلين رفع ستوبتيراشيون ستوبتيراشيون هل أحد يعرف كيفية إصلاح هذا أيضا أنا تشغيل أوبونتو لينكس. أعتقد أن الإصدار 0.11 من بانداس كان يعمل إلى حد ما، على الرغم من أنه لن تحصل على جميع أسعار الخيارات. أنا لست متأكدا من كيفية استخدام نقطة إلى خفضه في هذه المرحلة إما أنني ربما عالقة في محاولة للحصول على الإصدار 0.13.1 العمل. يا مجهول (آسف don39t تعرف اسمك، أو إذا كان مجهول - وهذا أمر رائع) آسف أن هذه الوظائف aren39t تعمل بشكل صحيح. كتبت هذا الرمز منذ عام تقريبا، وفي ذلك الوقت عملت دون أي مشاكل. الباندا هو قيد التطوير الثقيل ويبدو أنه منذ الوقت الذي كتبت هذا الرمز، وقد ذهب المعهد إلى الحوض الصغير بعض التغييرات كسر. للأسف، أنا don39t لديهم الوقت الآن للذهاب من خلال وتغيير التعليمات البرمجية من هذا المنصب بحيث يعمل مع 0.13. أستطيع أن أقول أن كافة الوظائف الموضحة في هذه المشاركة لا تزال موجودة مع v0.13، ولكن بعض التوقيعات الأسلوب قد تغيرت. وأعتقد أن دوكسترينغز لكل طريقة من فئة الخيارات يجب أن تكون مفصلة بما فيه الكفاية لتعطيك فكرة جيدة حول ما يحتاج إلى تغيير. يمكنك العثور عليها هنا: githubpydatapandasblobmasterpandasiodata. pyL545-L905 إذا كنت تشعر بذلك، والقيام في نهاية المطاف إجراء التغييرات اللازمة، واسمحوا لي أن أعرف وأنا سوف تحديث رمز هنا لتعكسها. ملاحظة إذا كنت محاولة إعطائها وهي تواجه وقتا عصيبا، آخر هنا مرة أخرى و I39ll في محاولة لإعطاء بعض التوجيه. لقد كنت مشغولا مع مشروع آخر، ولكن في الأساس أنا مجرد إجراء تغييرات زوجين للحصول على الامور قيد التشغيل. للتبسيط، أجريت للتو التغييرات على data. py. وأعتقد أن مؤشرات إنمونث و إينيار تم حساب خاطئ. أيضا، في بعض الحالات عوائد الإطار لا شيء. إطار العودة لا شيء تسبب الحادث. إذا كان لدى أحد الأشخاص الوقت اللازم لتحديث التعليمات البرمجية فقط للاستعلام عن بيانات الخيارات الموجودة بالفعل في نطاق الشهر الذي تم تمريره فيه. لست متأكدا من كيفية تحليل هذه المعلومات من هتمل. الحق الآن سوف الاستعلام ياهو عن كل شهر من البيانات حتى عندما لا تكون هناك خيارات المتاحة لهذا الشهر شهرية لطريقة جيتفوروارداتا. هنا هو الناتج لينكس ديف للتغييرات التي أجريتها: ديف pandasiodata. py pandas.01iodata. py 25d24 لوت ديبوغ صحيح 538،541d536 لوت لوت إذا (لين (البيانات) 0): لوت ريتورن لا شيء لوت 590،595c585 لوت محاولة: لوت الذاتي. الرمز (رمز). (لتر) باستثناء: لوت مسغ كوتسيمبول يجب أن تكون قيمة صحيحة لوت ريس فالويرور (مسغ) لوت --- غ self. symbol icons. upper () 860،866c850،861 لوت لوت إينيرس لوت فور i، m إن إنوميرات (إنمونثس): لوت يارس (m-1) 12 لوت مون m - years12 لوت inyears. append (يارسكوريار) لوت إنمونثسيمون --- غ إينيرس كوريار (أشهر 1) غ غ معرفة عدد العناصر في إنمونثس تذهب الماضي 12 غ توتشانج 0 غ ل i في المدى (أشهر): غ إذا إنمونثسي غ 12: غ إنمونثسي - 12 غ توشانج 1 غ غ تغيير العناصر المقابلة في قائمة إينيرس. غ ل i في النطاق (1، توشانج 1): غ إنيارس-i 1 875،878c870،873 لوت في i في المدى (أشهر): لوت m2 إنمونثسي لوت y2 إنيرسي لوت إذا ديبوغ: برينت كوتغتينغ s: سكوت (self. symbol، M2، y2) --- غ ل مون في المدى (أشهر): غ m2 إنمونثسمون غ y2 إنيرسمون غ 892،895d886 لتر إذا الإطار لا يوجد: لوت إذا ديبوغ: طباعة 39. لا توجد بيانات 39 لوت الاستمرار مرحبا، شكرا لعملك العظيم . يبدو وكأنه مكسور حاليا - ربما تغيير لايوتسشيما على ياهو (it39s أن تابلوك 13 في الدعوة إلى جيتوبتيونداتا ()) I39ll التصحيح أنه عندما يكون لدي الوقت، هنا 39s التفاصيل حتى الآن: متصلة بيديف المصحح (بناء 135.1057) تراسيباك (آخر مكالمة الأخيرة): ملف quusrsharepycharmhelperspydevpydevd. pyquot، خط 1733، في debugger. run (setup39file39، لا شيء، لا شيء) ملف quusrsharepycharmhelperspydevpydevd. pyquot، سطر 1226، في تشغيل pydevimports. execfile (ملف، غلوبالس، السكان المحليين) تنفيذ البرنامج النصي ملف quothomechrisdevelopsrctradingoptions. pyquot، السطر 5، في يضع، يدعو aapl. getoptionsdata (إكسيريديت (2015، 1، 16)) ملف quusrlibpython2.7dist-packagepandasiodata. pyquot، خط 630، في getoptionsdata self. getcalldata) ملف quusrlibpython2.7dist-packagepandasiodata. pyquot ، خط 748، في جيتبوتداتا عودة self. getoptiondata (شهر، سنة، انتهاء الصلاحية، 13، 39puts39) ملف quusrlibpython2.7dist-packagepandasiodata. pyquot، خط 673، في جيتوبتيونداتا كوت findquot. format (تابلوك، نت أبليس)) إندكسيرور: موقع الجدول 13 غير صالح، 3 جداول تم العثور عليها من استيراد pandas. io. data خيارات من تاريخ الاستيراد داتيتيمي أابل الخيارات (39AAPL39، كوتاهوكوت) يضع، ويدعو aapl. getoptionsdata (إكسيريديت (2015، 1، 16)) In3: استيراد الباندا in4: pandas. version خارج 4: 390.13.139 مرحبا، شكرا للتعليق. تم كسر هذا الرمز الآن بسبب التغييرات في واجهة برمجة تطبيقات ياهو المالية. أعتقد أن المطورين الباندا لديها رمز الأصلي أعطيتهم. انظر المناقشة ذات الصلة هنا: githubpydatapandaspull8631 مرحبا سبنسر الاعتذار عن السؤال المجهول ولكن، عندما ركض هذا البرنامج لكل مؤشر في قائمة نسداق ورموز مدينة نيويورك، كم من الوقت كان وقت التشغيل لتكرار كامل مجهول - لا توجد مشكلة. يستغرق هذا الروتين وقتا طويلا للتشغيل. ربما على أمر من 6-8 ساعات. يمكن أن يتم تمريرها قليلا جدا من خلال تقديم طلبات متعددة في وقت واحد باستخدام وحدات الترابط و قائمة انتظار الوحدات النمطية في المكتبة القياسية. لدي مثال على القيام بذلك مع بيانات الأسهم العادية هنا: gist. githubspencerlyon28a90d9fdffd15e3ecddb سبنسر - أنا جديدة جدا لبيثون والبرمجة بشكل عام ولكن تجد أنها قوية ورائعة مع القليل من البحوث التي قمت بها. حتى الآن وضعت معا برنامج بسيط جدا للقيام بشيء مماثل. هذا هو ما لدي حتى الآن: استيراد داتيتيم كما دت استيراد الباندا كما بد استيراد نومبي كما نب من استيراد pandas. io. data خيارات من استيراد الباندا استيراد داتافريم h5py كما h5 الأسطوانات 0 newdatapd. DataFrame () بينما نوم لوت tickers. size: حاول: خيارات itickers39Symbol39num خيارات (i، كوتاهوكوت) data. getoptionsdata () newdatanewdata. append (البيانات) باستثناء: تمرير نوم numumum1 في قائمة شريط بلدي لدي 6280 رموز أو نحو ذلك، ووجدت أن جيتوبتيونسداتا ينفذ أسرع بكثير من جيتالداتا. الآن هذا يعمل في حوالي 3 ساعات. هدفي هو خفض ذلك بحلول 16. وهي لا تزال في المراحل الأساسية جدا ولكنها تعمل وتجمع البيانات عن الأشرطة التي تحتوي عليه. إذا كان لديك أي نصائح أو اقتراحات لتحسين I39m الأداء جميع الأذنين. أنا أعرف بنية حلقة قد لا تكون الأكثر كفاءة ولكن كل شيء بالنسبة لي هو التجربة والخطأ. إذا كان هذا تافهة أندور سؤال سخيفة أعتذر، مرة أخرى، I39m جديد والتعلم. وأود أن أتخيل أن عنق الزجاجة (أبطأ جزء) من هذا البرنامج هو استرداد البيانات من شبكة الإنترنت. استخدام قائمة الانتظار وأدوات التخييط في المكتبة القياسية كما فعلت في المثال أنا نشرت رابط إلى ربما هو أفضل وسيلة لتسريع هذا الجزء. وثمة خيار بسيط نسبيا للقيام استرجاع البيانات موازية هو أن يكتب وظيفة التي تحصل على البيانات لقائمة واحدة. ثم يمكنك استخدام شيء مثل إبيثون موازية لتعيين وظيفة على قائمة من القوائم بالتوازي. مثال على استخدام الخريطة في موازاة يمكن العثور عليها هنا: ipython. orgipython-doc2parallelparalleldemos. html بالمناسبة، حلقة واحدة هنا هو بالتأكيد ليس ما يأخذ هذا الرمز وقتا طويلا لتشغيل - حتى don39t تقلق بشأن ذلك. I39m آسف، ولكن أنا haven39t زار هذا الرمز خاصة في أكثر من 2 سنوات. الباندا يتحرك بسرعة إلى حد ما، لذلك فإنه ليس من المستغرب أن التعليمات البرمجية في هذا المنصب لا يعمل. أنا don39t لديها حاليا الوقت لتصحيح البرنامج النصي، ولكن أود أن أقترح النظر في وثائق الباندا لسعر الخيار الحالي كشط الميزات. يمكنك العثور عليه هنا pandas. pydata. orgpandas-docsstableremotedata. htmlyahoo-فينانس-أوبتيونس. لقوائم شريط. كنت الحصول عليها من هذين عناوين المواقع: أنا don39t أعرف الكثير عن البرمجة ولكن لقد حصلت على الكثير من الملفات رمز سنوي من intradata. co ولكن أحتاج أن يكون على سبيل المثال العام 2012-2015 في ملف واحد ونفس. لأنني أريد أن رسمها في برنامجي مثل مخطط موسع هو أن من الممكن القيام به مع هذا سكريبتياهو التمويل 1.4.0 الحصول على بيانات الأسهم مثال: ياهو Inc. (يهو) تحديث البيانات من السوق أكثر قراءة الناتج :) جيتبريس () جيتشانج () جيتتبنتشانج () جيتفولتشار () جيتتبنتشانج () جيتفولوم () جيتابريفكلوس () جيتابوكفولوم () جيتافوكسيليفشانج () جيتافوكسيكسشانج () جيتابوكتشانج () جيتيارلو () ) get50daymovingavg () جيتبريسنتشانجفروميارهيو () جيتشانجنسفرومييارلو () جيتشانجفروميارلو () جيتشانجفروميارهيو () جيتشانجفروميارهيو () getpercentchangefrom200daymovingaverage () getchangefrom200daymovingaverage () getpercentchangefrom50daymovingaverage () getchangefrom50daymovingaverage () جيتبسستيماتينكستكار () جيتيبسستيماتينكتيار () جيتيبسستيماتيكورنيتيار () جيتريبسيبستستيماتينكستيار () جيتريبسيبستستيماتينكتيار () جيتونيتارجتارجيتبريس () جيت جيتيفيردجتبايتش () جيتديفيدندبايديت () جيتكريندبيديديت () جيتلاسترادويثتيمي () جيتيرانجانج () جيتيرانج () احصل على بيانات العملة مثال: وربلن (وربلنكس) تحديث البيانات من ماركيتبيثون مكتبة التداول الخوارزمية بيالغوتريد هي مكتبة بيثون خوارزمية التداول مع التركيز على باكتستينغ ودعم تداول الورق والتجارة الحية. دعونا نقول لديك فكرة عن استراتيجية التداول وكنت ترغب في تقييمه مع البيانات التاريخية ونرى كيف يتصرف. بيالغوتريد يسمح لك أن تفعل ذلك مع الحد الأدنى من الجهد. الميزات الرئيسية موثقة بالكامل. الحدث مدفوعة . يدعم السوق، والحد، وإيقاف أوامر ستوبليميت. يدعم ياهو المالية، جوجل المالية و نينجاترادر ​​ملفات كسف. يدعم أي نوع من البيانات سلسلة الوقت في تنسيق كسف، على سبيل المثال كواندل. دعم التداول بيتكوين من خلال بيتستامب. المؤشرات والفلاتر الفنية مثل سما، وما، إما، رسي، بولينجر باند، هورست أس وغيرها. مقاييس الأداء مثل نسبة شارب وتحليل السحب. التعامل مع أحداث تويتر في الوقت الحقيقي. ملف تعريف الحدث. تا-ليب التكامل. من السهل جدا لتوسيع نطاق أفقيا، وهذا هو، باستخدام جهاز كمبيوتر واحد أو أكثر ل باكتست استراتيجية. بيالغوتريد مجاني، مفتوح المصدر، ومرخص تحت رخصة أباتشي، الإصدار 2.0.

No comments:

Post a Comment