تداول الخيارات مع الثعبان
التداول مع بيثون.
السبت، 20 مايو 2017.
ياهو ميت، يعيش ياهو!
ملاحظة: يبدو أن البيانات المقدمة يتم تعديلها بسبب الانقسامات، ولكن ليس لتوزيعات الأرباح.
السبت 20 فبراير 2018.
وهناك ميزة إحصائية بسيطة في سبي.
حدث لي أن معظم الوقت الذي تحدث فيه الكثير من وسائل الإعلام حول تحطم السوق (بعد خسائر كبيرة على مدى عدة أيام من الزمن)، تماما انتعاش كبير يتبع في بعض الأحيان.
في الماضي كنت قد ارتكبت اثنين من الأخطاء عن طريق إغلاق مواقف بلدي لخفض الخسائر قصيرة، لمجرد تفويت الانتعاش في الأيام التالية.
بعد فترة من الخسائر المتتالية، فإن العديد من التجار تصفية مواقفهم من الخوف على خسارة أكبر. ويخضع الكثير من هذا السلوك للخوف بدلا من المخاطر المحسوبة. يأتي التجار أكثر ذكاء في ذلك الحين للمساومات.
بعد كونسكتيوتيف 3 أو أكثر من الخسائر، تذهب طويلة. اخرج من الإغلاق التالي.
هذا لا تبدو سيئة على الإطلاق! وبالنظر إلى نسب شارب، فإن الإستراتيجية تدل على النسب 2.2 مقابل 0.44 ل B & أمب؛ H. هذا هو في الواقع جيدة جدا! (لا تحصل على متحمس جدا على الرغم من أنني لم حساب لتكاليف لجنة، الانزلاق الخ).
في حين أن الاستراتيجية أعلاه ليست شيئا أود أن التجارة ببساطة بسبب فترة طويلة، نظرية نفسها تثير أفكارا أكثر ثراء التي يمكن أن تنتج شيئا مفيدا. إذا كان نفس المبدأ ينطبق على البيانات اللحظية، ويمكن بناء شكل من أشكال استراتيجية سلخ فروة الرأس. في المثال أعلاه لقد تبسيطا في العالم قليلا من خلال عد فقط * عدد * من الأيام السفلية، دون الالتفات إلى عمق السحب. أيضا، موقف الخروج هو مجرد الأساسية "في اليوم التالي إغلاق". هناك الكثير مما ينبغي تحسينه، ولكن الجوهر في رأيي هو:
الاثنين، 17 نوفمبر 2018.
تداول فس مع أقرب الجيران التنبؤ.
تعريفي لهذين هو:
تقلب قسط = فيكس-أدركسيفول دلتا (المنحدر هيكل المدى) = فيكس-فكسف.
كان الجمع بين قسط ودلتا في نموذج واحد تحديا بالنسبة لي، ولكن أردت دائما أن تفعل تقريب إحصائي. في جوهرها، لمزيج من (دلتا، قسط)، أود أن تجد كل القيم التاريخية التي هي الأقرب إلى القيم الحالية وجعل تقدير العوائد المستقبلية على أساس لهم. بضع مرات لقد بدأت كتابة بلدي خوارزميات الاستكمال الداخلي أقرب الجيران، ولكن في كل مرة اضطررت للتخلي عنها. حتى جئت عبر سكيت أقرب الجيران الانحدار. لقد مكنني من بناء بسرعة متنبأ على أساس اثنين من المدخلات والنتائج هي جيدة جدا، وأنا قلق قليلا بأنني ارتكبت خطأ في مكان ما.
إنشاء مجموعة بيانات من [دلتا، بريميوم] - & غ؛ [فكس عودة اليوم التالي] (في عينة) إنشاء أقرب الجيران التنبؤ استنادا إلى مجموعة البيانات أعلاه استراتيجية التجارة (خارج العينة) مع القواعد: يذهب طويلا إذا توقعت العودة & غ؛ 0 انتقل قصير إذا كان متوقعا العودة & لوت؛ 0.
في المؤامرتين الأخيرتين، يبدو أن الاستراتيجية تؤدي نفس العينة داخل وخارج العينة. نسبة شارب حوالي 2.3.
أنا مسرورة جدا مع النتائج، ولدي شعور بأنني كنت فقط خدش سطح ما هو ممكن مع هذه التقنية.
الأربعاء، 16 يوليو، 2018.
وحدة باكتستينغ بسيطة.
بحثي عن أداة باكتستينغ مثالية (تعريفي ل 'مثالية' وصفها في السابق 'باكتستينغ المعضلات' المشاركات) لم يؤدي إلى شيء ما يمكنني استخدامها على الفور. ومع ذلك، ساعدت مراجعة الخيارات المتاحة لي على فهم أفضل ما أريد حقا. من الخيارات التي نظرت إليها، كان بيباكتيست واحد أحببت أكثر بسبب بساطته وسرعته. بعد الذهاب من خلال شفرة المصدر، لقد حصلت على بعض الأفكار لجعله أكثر بساطة وأكثر قليلا أنيقة. من هناك، كان مجرد خطوة صغيرة لكتابة بلدي باكتستر، وهو متاح الآن في المكتبة ترادينغويثبيثون.
العثور على الدخول والمخارج - & غ؛ حساب بنل وجعل المؤامرات مع باكتستر - & غ؛ بيانات استراتيجية ما بعد العملية.
السبت، 7 يونيو، 2018.
تعزيز الأداء مع سيثون.
5K عينات كبيانات الاختبار. هنا يأتي النسخة الأصلية من بلدي وظيفة السحب (كما يتم تنفيذه الآن في مكتبة ترادينغويثبيثون)
هم 1.2 ثانية ليست سريعة جدا لمثل هذه وظيفة بسيطة. هناك بعض الأشياء هنا التي يمكن أن يكون سحب كبير للأداء، مثل قائمة * هيتواترمارك * التي يتم إلحاقها على كل تكرار حلقة. الوصول إلى سلسلة من خلال فهرسهم يجب أن تشمل أيضا بعض المعالجة التي ليست نيسيزاري بدقة. دعونا نلقي نظرة على ما يحدث عند إعادة كتابة هذه الوظيفة للعمل مع البيانات نومبي.
حسنا، هذا هو أسرع بكثير من وظيفة الأصلي، ما يقرب من 40x زيادة السرعة. لا يزال هناك مجال كبير للتحسين من خلال الانتقال إلى التعليمات البرمجية المترجمة مع سيثون الآن إعادة كتابة وظيفة د من فوق، ولكن باستخدام نصائح التحسين التي وجدت على البرنامج التعليمي سيثون. لاحظ أن هذا هو أول محاولة لي من أي وقت مضى في تحسين وظائف مع سيثون.
نجاح باهر، وهذا الإصدار يعمل في 122 ثانية الصغرى، مما يجعلها عشرة آلاف مرة أسرع من النسخة الأصلية! يجب أن أقول أنني معجب جدا بما حققته فرق سيثون و إبيثون! سرعة مقارنة مع سهولة الاستخدام هو مجرد رهيبة!
ملاحظة اعتدت أن تفعل كود التحسينات في ماتلاب باستخدام C النقي و. ميكس التفاف، كان كل ألم فقط في الحمار مقارنة مع هذا.
الثلاثاء، 27 مايو، 2018.
معضلات الاختبار الخلفي: مراجعة بيالغوتريد.
الانطباع الأول: وضعت بنشاط، وثائق جيدة جدا، أكثر من كافية فيوتشرز (مؤشرات تا، أمثلية الخ). تبدو جيدة، لذلك ذهبت مع التثبيت الذي ذهب أيضا بسلاسة.
البرنامج التعليمي يبدو أن قليلا من التاريخ، كما الأمر الأول yahoofinance. get_daily_csv () يلقي خطأ حول وظيفة غير معروفة. لا تقلق، والوثائق هي حتى الآن، وأجد أن وظيفة مفقودة والآن تسميته إلى yahoofinance. download_daily_bars (رمز، سنة، كسفيل). المشكلة هي أن هذه الوظيفة فقط بتحميل البيانات لمدة سنة واحدة بدلا من كل شيء من ذلك العام إلى التاريخ الحالي. جميلة جدا عديمة الفائدة.
بعد تحميل البيانات نفسي وحفظها إلى كسف، كنت بحاجة إلى ضبط أسماء الأعمدة لأنه يبدو بيالغوتراد يتوقع تاريخ، إغلاق إغلاق، إغلاق، عالية، منخفضة، فتح، المجلد ليكون في رأس. هذا هو كل مشكلة بسيطة.
بعد ذلك إلى اختبار الأداء على استراتيجية سما التي يتم توفيرها في البرنامج التعليمي. تتكون مجموعة البيانات الخاصة بي من 5370 يوما من سبي:
هذا هو في الواقع جيدة جدا للإطار القائم على الحدث.
ولكن بعد ذلك حاولت البحث في الوثائق عن الوظائف اللازمة ل باكتست ينتشر ومحافظ الأصول متعددة و فقط لا يمكن العثور على أي. ثم حاولت أن تجد وسيلة لتغذية الباندا داتافريم كمدخلات لاستراتيجية ويحدث أن يكون غير ممكن، والذي هو مرة أخرى خيبة أمل كبيرة. لم أشر إلى أنه شرط في الوظيفة السابقة، ولكن الآن أتيت إلى إدراك أن دعم الباندا أمر لا بد منه لأي إطار يعمل مع البيانات سلسلة زمنية. الباندا كان سببا في التحول من ماتلاب إلى بيثون، وأريد أبدا أن أعود.
خاتمة بيالوتغراد لا يلبي ريكوريمنت للمرونة. يبدو أنه تم تصميمه مع تا الكلاسيكية في الاعتبار وتداول أداة واحدة. لا أرى أنها أداة جيدة لاستراتيجيات الاختبار المسبق التي تنطوي على أصول متعددة، والتحوط وما إلى ذلك.
الاثنين، 26 مايو، 2018.
معضلات باكتستينغ.
يكون تقريب جيد من العالم الحقيقي. هذا هو بالطبع أهم شرط. السماح بمرونة غير محدودة: الأدوات لا ينبغي أن تقف في طريق اختبار الأفكار من خارج المربع. وينبغي أن يكون كل ما يمكن قياسه كميا. يكون من السهل لتنفيذ & أمب؛ الحفاظ. هو كل شيء عن الإنتاجية والقدرة على اختبار العديد من الأفكار للعثور على واحد أن يعمل. السماح للمسح الضوئي المعلمة، المشي إلى الأمام الاختبار والتحسينات. وهذا مطلوب للتحقيق في أداء الاستراتيجية والاستقرار اعتمادا على معايير الاستراتيجية. وتتمثل المشكلة في استيفاء جميع المتطلبات أعلاه في أن الرقمين 2 و 3 متضاربين. لا توجد أداة يمكن أن تفعل كل شيء دون تكلفة عالية التعقيد (= مينتينابليتي منخفضة). عادة، فإن أداة نقطة ونقطة طرف ثالث سوف تحد بشدة من الحرية لاختبار مع إشارات مخصصة والمحافظ الفردية، بينما في الطرف الآخر من الطيف حل دي مرمزة مخصصة تتطلب عشرات أو أكثر من ساعات لتنفيذ مع فرص كبيرة من تنتهي مع رمز تشوش وغير قابل للقراءة. حتى في محاولة للجمع بين أفضل من كلا العالمين، دعونا نبدأ سومويهير في الوسط: استخدام إطار باكتستينغ القائمة والتكيف مع ذوقنا.
في الوظائف التالية أنا & # 8217؛ ليرة لبنانية النظر في ثلاثة مرشحين ممكن I & # 8217؛ وجدت:
زيبلين هو معروف على نطاق واسع و هو المحرك وراء كوانتوبيان بيالغوتراد ويبدو أن تكون وضعت بنشاط و بيباكتست موثقة جيدا هو الإطار القائم على ناقلات خفيفة الوزن مع التي قد تكون مثيرة للاهتمام بسبب بساطته والأداء. أنا سوف تبحث في ملاءمة هذه الأدوات قياسها ضد استراتيجية التداول الافتراضية. إذا لم يكن أي من هذه الخيارات يناسب متطلبات بلدي سوف تضطر إلى أن تقرر ما إذا كنت ترغب في الاستثمار في كتابة الإطار الخاص بي (على الأقل من خلال النظر في الخيارات المتاحة أنا & # 8217؛ ليرة لبنانية معرفة ما لا يعمل) أو عصا مع رمز مخصص لكل إستراتيجية.
أول واحد للتقييم هو زيبلين.
انطباعي الأول عن زيبلين و كوانتوبيان هو واحد إيجابي. ويدعم زيبلين من قبل فريق من المطورين ويتم اختبارها في الإنتاج، لذلك نوعية (البق) يجب أن تكون كبيرة. هناك وثائق جيدة على الموقع ومثال على الكمبيوتر المحمول جيثب.
للحصول على تعليق منه، وأنا تحميل دفتر إكسامب وبدأ اللعب معها. لخيبة أمل سرعان ما واجهت مشكلة في المثال الأول أبسط خوارزمية زيبلين: شراء أبل. مجموعة البيانات لديها 3028 يوما فقط، ولكن تشغيل هذا المثال استغرق للتو إلى الأبد. هنا هو ما قمت بقياسه:
لم أكن أتوقع أداء ممتاز كما زيبلين هو باكتستر القائم على الحدث، ولكن دقيقة تقريبا ل 3000 عينات هو مجرد سيئة للغاية. هذا النوع من الأداء سيكون باهظا لأي نوع من المسح الضوئي أو التحسين. وهناك مشكلة أخرى قد تنشأ عند العمل مع مجموعات البيانات الكبيرة مثل البيانات اللحظية أو الأوراق المالية متعددة، والتي يمكن أن تحتوي بسهولة مئات الآلاف من العينات.
لسوء الحظ، سوف تضطر إلى إسقاط زيبلين من قائمة باكتسترس صالحة للاستعمال لأنها لا تلبي متطلبات بلدي رقم 4 بهامش الدهون.
في المنصب التالي سأبحث في بيالغوتراد.
ملاحظة: النظام الحالي هو بضع سنوات من العمر، تشغيل أمد أثلون إي X2 @ 2800MHZ مع 3GB من ذاكرة الوصول العشوائي. مع باكتستينغ القائم على ناقلات I & # 8217؛ م تستخدم لحساب مرات أقل من ثانية واحدة باكتست ودقيقة أو اثنين لمسح المعلمة. وهناك اختبار المشي إلى الأمام الأساسية مع 10 خطوات والمسح الضوئي المعلمة لشبكة 20X20 من شأنه أن يؤدي إلى الديك 66 ساعة مع زيبلين. أنا & # 8217؛ م ليس بيتينت.
الأربعاء، 15 يناير، 2018.
بدء إبيثون دفتر من إكسيلورر ملف ويندوز.
الاثنين، 13 يناير، 2018.
صناديق الاستثمار المتداولة في عام 2018، أين هو الانحلال الخاص بك الآن؟
ومع العلم بسلوك إتف المرتفع، أتوقع أن يتفوق إتفس المستقر على المؤشر المعياري، وبالتالي فإن الإستراتيجية التي تحاول الربح من الاضمحلال ستفقد المال.
بمجرد تطبيع الأسعار إلى 100 $ في بداية فترة باكتست (250 يوما) من الواضح أن 2x إتف يتفوق 1x إتف.
شفرة المصدر الكامل للحسابات متاح للمشتركين في التداول مع بيثون بالطبع. نوتيبوك # 307.
الخميس، 2 يناير 2018.
وضع سعر على توتر.
السعر المستمد من قيمة المستخدم.
توتر حاليا أكثر قيمة لكل مستخدم أن فب أو لكد. هذا ليس منطقيا حيث أن كلا المنافسين لديهم بيانات شخصية أكثر قيمة تحت تصرفهم. وقد تفوقت غوغ في استخراج أرباح الإعلانات من مستخدميها. للقيام بذلك، لديها مجموعة من عروض متنوعة للغاية، من محرك البحث إلى جوجل، محرر المستندات و غميل. توتر ليس له شيء يشبه ذلك، في حين أن قيمته لكل مستخدم أقل بنسبة 35٪ فقط من قيمة غوغل. وتوتر لديها غرفة محدودة لتنمو قاعدة المستخدمين لأنها لا تقدم منتجات مماثلة ل فب أو غوغ العروض. وقد توتر حول لمدة سبع سنوات الآن ومعظم الناس الذين يريدون الحصول على فرصة حصلت على فرصتهم. والباقي فقط لا يهمني. قاعدة المستخدمين توتر متقلبة ومن المرجح أن تتحرك إلى الشيء الساخن المقبل عندما تصبح متاحة.
السعر المستمد من الأرباح المستقبلية.
استنتاج.
الخميس، 19 سبتمبر، 2018.
التداول مع دورة بايثون المتاحة!
الأحد، 18 أغسطس، 2018.
إستراتيجية قصيرة فس.
في عالم مثالي، إذا كنت تحمل ذلك لفترة طويلة بما فيه الكفاية، ويضمن الربح الناتجة عن تسوس الوقت في العقود الآجلة وإعادة التوازن إتن، ولكن على المدى القصير، وكنت قد للذهاب من خلال بعض السحب الثقيلة جدا. مجرد إلقاء نظرة إلى الوراء في صيف عام 2018. لقد كان من المؤسف (أو حمقاء) ما يكفي لعقد موقف فس قصيرة قبل أن ارتفع فيكس. لقد تقريبا في مهب حسابي من قبل ثم: 80٪ تراجع في بضعة أيام مما أدى إلى تهديد هامش الدعوة من قبل وسيط بلدي. نداء الهامش يعني صرف الخسارة. هذه ليست حالة أود أن أكون في مرة أخرى. كنت أعرف أنه لن يكون من السهل للحفاظ على رئيس بارد في جميع الأوقات، ولكن تعاني من الضغط والضغط من الوضع كان شيئا مختلفا. لحسن الحظ كنت أعرف كيف فس تميل إلى التصرف، لذلك لم أكن الذعر، ولكن تحولت إلى الرابع عشر لتجنب مكالمة الهامش. القصة تنتهي بشكل جيد، بعد 8 أشهر حافظت محفظتي مرة أخرى في قوة ولقد تعلمت درسا قيمة جدا.
بعد أن قلت ذلك، دعونا نلقي نظرة على استراتيجية تقلل بعض المخاطر من خلال تقصير فس فقط عندما يكون ذلك مناسبا.
يظهر الرسم البياني أعلاه بيانات فيكس-فكسف منذ يناير 2018. تظهر نقاط البيانات من العام الماضي باللون الأحمر.
لقد اخترت استخدام تناسب من الدرجة الثانية بين اثنين، تقريب فسف = f (فيكس). يتم رسم f (فيكس) كخط أزرق.
وتمثل القيم فوق الخط حالة عندما تكون العقود الآجلة أقوى من كونتانغو العادي. الآن أنا أعرف مؤشر دلتا، وهو الانحراف عن صالح: دلتا = فكسف-f (فيكس).
ومن الواضح أن المناطق الخضراء تتوافق مع عوائد سلبية في فس.
شورت فس عند دلتا & غ؛ 0 رأس المال الثابت (الرهان على كل يوم هو 100 $) أي انزلاق أو تكاليف المعاملات.
الحصول على حجم قصير من باتس.
الخميس، 15 أغسطس، 2018.
بناء مؤشر من البيانات قصيرة الحجم.
نحن بحاجة إلى مزيد من المعلومات إضافية إلى ما يتضمن السعر لجعل تخمين أكثر استنارة حول ما سيحدث في المستقبل القريب. ويمكن العثور على مثال ممتاز للجمع بين جميع أنواع المعلومات إلى تحليل ذكي على الجانب القصير من بلوق طويلة. إنتاج هذا النوع من التحليل يتطلب قدرا كبيرا من العمل، وأنا ببساطة لم يكن لديك الوقت وأنا التجارة فقط بدوام جزئي.
لذلك أنا بنيت بلدي 'لوحة القيادة السوق' التي تجمع تلقائيا المعلومات بالنسبة لي ويعرضها في شكل سهل الهضم. في هذا المنصب سوف أشرح كيفية بناء مؤشر يعتمد على بيانات الحجم القصير. وستوضح هذه الوظيفة عملية جمع البيانات ومعالجتها.
يوفر تبادل باتس بيانات حجم اليومية مجانا على موقعهم.
يتم تضمين بيانات حجم قصيرة من تبادل باتس في ملف نصي مضغوط. كل يوم لديه ملف مضغوط خاص به. بعد تحميل وفك ملف تكست، وهذا هو ما في الداخل (أول عدة أسطر):
هذه البيانات تحتاج إلى بعض العمل قبل أن يمكن تقديمها بطريقة هادفة.
ما أريد حقا ليس فقط البيانات ليوم واحد، ولكن نسبة من حجم قصير إلى الحجم الكلي للسنوات القليلة الماضية، وأنا لا أشعر حقا مثل تحميل الملفات المضغوطة زيب ونسخ ولصق لهم في التفوق يدويا.
لحسن الحظ، أتمتة كاملة ليست سوى بضعة خطوط رمز بعيدا:
أولا نحتاج إلى إنشاء عنوان ورل حيوي يتم تنزيل الملف منه:
الخطوة الخامسة: إنشاء مخطط:
الأحد، 17 مارس، 2018.
التداول مع دورة بايثون - تحديث الحالة.
ابتداء من اليوم سأقوم بإعداد موقع جديد على شبكة الإنترنت والمواد اللازمة للدورة، والتي ستبدأ في الأسبوع الثاني من أبريل.
الخميس، 12 يناير، 2018.
إعادة بناء فس من كبو الآجلة البيانات.
النصوص أدناه أتمتة هذه العملية. أول واحد، downloadVixFutures. py، يحصل على البيانات من كبو، يحفظ كل ملف في دليل بيانات ثم يجمع بينهما في ملف كسف واحد، vix_futures. csv.
يقوم البرنامج النصي الثاني ريكونستروكشيون VXX. py بتحليل vix_futures. csv، ويحسب العوائد اليومية ل فس ويحفظ النتائج على إعادة الإنشاء VXX. csv.
للتحقق من الحسابات، لقد قارنت النتائج المحاكاة بلدي مع بيانات مؤشر سبفستر، وهما يتفق بشكل جيد جدا، انظر الرسوم البيانية أدناه.
رمز لإعادة بناء فس.
الاثنين، 26 ديسمبر، 2018.
هوتو: نمط المراقب.
فئة المستمع يمكن أن يكون من أي نوع، وهنا أصنع حفنة من الطبقات إكسامبلليستينر، واسمه بوب، ديف & أمب؛ تشارلي. كل منهم لديهم طريقة، وهذا هو الذي اشتركت في المرسل. الشيء الخاص الوحيد حول طريقة الاشتراك هو أنه يجب أن تحتوي على ثلاثة معلمات: المرسل، الحدث، رسالة. المرسل هو مرجع فئة فئة المرسل، لذلك المستمع يعرف من الذي أرسل الرسالة. الحدث هو معرف، والذي عادة ما استخدم سلسلة. اختياريا، رسالة هي البيانات التي تم تمريرها إلى وظيفة.
وهناك تفصيل لطيف هو أنه إذا كان أسلوب المستمع يلقي استثناء، يتم إلغاء الاشتراك تلقائيا من أحداث أخرى.
الأربعاء، 14 ديسمبر، 2018.
التآمر مع غيكوت.
داتا أكيسيتيون: إبي & أمب؛ TradingWithPython. lib. yahooData - تحقق.
حاوية البيانات: باندا & أمب؛ سكليت - الاختيار.
مكتبة التآمر: ماتبلوتليب - إهم. لا.
ولكن كما يحدث في كثير من الأحيان مع بيثون، شخص ما، في مكان ما قد كتب بالفعل ركلة الحمار الأدوات التي هي مجرد مثالية لهذا المنصب. ويبدو أن غيكوت هو مجرد ذلك. الرسوم البيانية التفاعلية هي مجرد بضعة خطوط رمز بعيدا الآن، نلقي نظرة على مثال هنا: إنشاء الحوار منحنى. لهذا أنا استخدم غيكوت رمز المثال مع بعض التعديلات طفيفة.
. إذا كنت أعرف فقط كيفية تعيين التواريخ على المحور س.
الجمعة، 4 نوفمبر 2018.
كيفية إعداد بيئة تطوير بيثون.
2. تثبيت السلحفاة سفن. هذه أداة تحتاج إلى سحب شفرة المصدر من غوغل كود.
3. تثبيت الباندا (مكتبة سلسلة زمنية)
للحصول على التعليمات البرمجية، استخدم 'سفن تشيكوت' ويندوز قائمة السياق المستكشف الذي يتوفر بعد تثبيت السلحفاة سفن. الخروج مثل هذا (تغيير تشيكوت الدليل إلى الموقع الذي تريد، ولكن يجب أن ينتهي مع ترادينغويثبيثون):
حسنا، كل ذلك، الآن يمكنك تشغيل الأمثلة من \ كوكبوك دير.
الجمعة، 28 أكتوبر، 2018.
الكونغ فو الباندا سوف يحل مشاكل البيانات الخاصة بك.
منذ بعض الوقت لقد جئت عبر مجموعة أدوات تحليل البيانات الباندا مناسبة خاصة للعمل مع البيانات المالية. بعد خدش سطح سطح قدراته أنا بالفعل في مهب ما يسلم. ويجري تطوير الحزمة بنشاط من قبل ويس ماكيني وطموحه هو خلق أقوى وأداة مرنة مفتوحة المصدر تحليل البيانات / التلاعب المتاحة. حسنا، أعتقد أنه على ما يرام!
في ما يلي النتيجة:
رجل، وهذا يمكن أن ينقذني طن من الوقت! ولكن لا يزال سيساعدني في المستقبل، وأنا سوف تستخدم كائن داتافريم كقاعدة في أعمالي أخرى.
QUANTLABS.
الموارد الكمية للتجار.
مقدمة إلى بلدي في المستقبل وخيارات التداول الصيغ بيثون النصي.
إدخال بلدي صيغ المستقبل والخيارات التداول بيثون النصي.
لقد جعلت كاملة بيثون التداول النصي الذي سيركز على العشرات من الصيغ للتجارة الأساسية مع الخيارات والعقود الآجلة. وكما أشرت إليه في الماضي، فإن هذا أصبح الآن قشرة مرحلتي الثانية في ماي & # 8220؛ الأعمال التجارية المستقلة ألغو التجارية في بيثون & # 8221؛ سلسلة بالطبع التي بدأناها للتو الأسبوع الماضي.
وسيتم جعل هذا البرنامج النصي بيثون متاحة لجميع أعضاء بلدي كوانت النخبة على الفور.
استخدام كفتك لبيانات العقود الآجلة التاريخية والالتزام المفتوح الفائدة من التداول.
وأخيرا، هل تعلم عن شيء يسمى التزام من تقارير التداول؟ ويمكن توفيرها مجانا لقياس الفائدة المفتوحة في جميع السلع الرئيسية المتداولة في جميع أنحاء الولايات المتحدة. يستخدم العديد من التجار المحترفين هذا كوسيلة لقياس اتجاه السوق كل يوم ثلاثاء عندما تأتي هذه التقارير. أيضا، نتوقع أن نرى هذه في مرحلتي 3 على استخدام الفوركس لقياس ظروف الاقتصاد الكلي الحكومية.
هناك تذهب، تيدبيت آخر من الخير التجارة حيث أحاول أن تساعد على جعل لكم ناجحة في التداول الخاص بك. أعني على محمل الجد، أفعل هذا الآن تقريبا 2 مرات في الأسبوع يعيش الآن لكل من بلدي أعضاء كوانت النخبة وأعضاء ميتوب المجموعة الأخرى.
سماع جميع خيارات التسعير لدوراتي التي مؤخرا للوصول إلى ما سبق.
مطلوب أن يكون & # 8216؛ عضو كوانت إليت & # 8217؛ للوصول إلى كل ما سبق.
ملاحظة I الآن نشر بلدي التنبيهات التداول في بلدي الفيسبوك الشخصية حساب وتويتر. لا تقلق وأنا لا تنشر أشرطة الفيديو القط غبي أو ما أكله!
خيارات مفصل.
خيارات التداول للمتعة، الربح، وارتفاع ضغط الدم.
التقلب الضمني مع C ++ و بيثون بت. 1.
دعونا نأخذ استراحة جدارة من التفكير في البيانات والحصول على بعض التعليمات البرمجية.
التقلب الضمني في الكلمات.
التقلب هو عنصر حاسم لخيارات التسعير. لسوء الحظ هو كمية كامنة (أو غير مرصودة). لذا يحتاج تجار الخيارات إلى طريقة لفهم ما يقوله السوق حول التقلب. سوف ينظر التجار في سعر السوق للخيار واستخدام نموذج التسعير لمعرفة ما هو التقلب يجب أن يكون المدخلات في نموذج لتتناسب مع السعر لوحظ في السوق. وأيا كان هذا التقلب ينتهي الأمر يسمى التقلب الضمني. وبعبارة أخرى، فإن التقلبات التي تنطوي عليها أسعار السوق.
خيارات مصادر البيانات المتاحة.
سأكون باستخدام نهاية اليوم خيارات البيانات لنظام باكتستينغ. سأبقيه عاما بما فيه الكفاية لاستخدام بيانات الخيارات اللحظية في المستقبل، والتي ينبغي أن تكون سهلة إلى حد ما باستخدام الباندا، لكنه لن يكون التركيز الأولي. وهنا أقدم ملخصا لبعض مصادر بيانات الخيارات التي بحثتها واستخدمتها في الماضي. هذه ليست قائمة شاملة ولكنها تغطي المصادر التي استخدمتها في الماضي.
اعتبارات البيانات الخلفية.
الآن بعد أن لدينا نظرة عامة على مستوى عال من باكتستينغ، وسوف نناقش الاعتبارات البيانات الخلفية. سنواجه على الأرجح مشكلات جودة البيانات على طول الطريق، وسوف نحتاج إلى تحديد البيانات وتنظيفها قبل استخدامها في النظام. وفيما يلي مناقشة بعض القضايا وكيف يمكنني حلها. في الوظائف اللاحقة سوف نناقش مصادر البيانات وتكنولوجيات تخزين البيانات. وأخيرا، سيتم استكشاف خط أنابيب البيانات المحتملة التي تقوم بأتمتة عملية الاستحواذ والتنظيف والتخزين.
مقدمة باكتستينغ.
هناك كتب كاملة ومشاركات بلوق ممتازة مخصصة باكتستينغ. لن أجدد المحتوى من هذه الموارد، ولكن أود إضافة بعض السياق إلى هذا المشروع. وسوف استعراض بعض أساسيات باكتستينغ لمسة على النقاط التي سوف تصبح مهمة وأنا بناء خيارات باكتستينغ النظام.
خيارات خيارات التداول استراتيجيات التداول.
إن اختبار استراتيجية التداول أمر بالغ الأهمية في التداول. عدد لا يحصى من المدونات والكتب والأوراق مناقشة فن باكتستينغ. ويركز معظمها على أسواق الأسهم والعقود الآجلة باستخدام برمجيات جاهزة مثل محطة التجارة. هناك عدد متساو من المناقشات حول المفاضلة بين شراء البرامج الجاهزة والكتابة الخاصة بك. ما يبدو أنه أقل مناقشة هو باكتستينغ استراتيجيات تداول الخيارات. هناك بالطبع استثناءات ملحوظة ولكن بشكل كبير، ليس هناك الكثير.
خيارات مفصل.
هذا بلوق هو عن رحلتي في بناء نظام الخيارات باكتستينغ استراتيجية. وكان هذا المشروع قد توقف وبدأ على مر السنين. آمل أن التدوين تقدمي سوف تساعد في الانتهاء في نهاية المطاف من النظام.
على طول الطريق، وسوف نناقش باكتستينغ، تداول الخيارات، والتمويل الكمي والبرمجة والتكنولوجيا.
الاقسام.
باكتستينغ (2) كود (3) بيانات (2) نمذجة (1)
أكتوبر 2018 (1) مايو 2018 (3) أبريل 2018 (1)
عطلة نهاية الاسبوع القراءة.
كوبيرايت & كوبي؛ خيارات مفصل. كل الحقوق محفوظة.
خوارزمية خيارات التداول 1.
على الرغم من العديد من الميزات المثيرة للاهتمام من الخيارات، التجار الخاص نادرا ما الاستفادة منها (بالطبع أنا & # 8217؛ م يتحدث هنا من الخيارات الجادة، وليس الخيارات الثنائية). ربما خيارات لا تحظى بشعبية بسبب سمعتها من كونها معقدة. أو بسبب عدم وجود دعم من قبل معظم أدوات البرمجيات التجارية. أو بسبب علامات الأسعار من الأدوات القليلة التي تدعمها والبيانات التاريخية التي تحتاجها للتداول حسابي. واتيفر & # 8211؛ قمنا مؤخرا بعدة عقود برمجة لأنظمة تداول الخيارات، وفوجئت أنه حتى الأنظمة البسيطة بدا أنها تنتج أرباحا متسقة نسبيا. تبدو خيارات البيع بشكل خاص أكثر ربحا من التداول & # 8216؛ التقليدية & # 8217؛ الصكوك. هذه المقالة هي الأولى من سلسلة مصغرة عن كسب المال مع تداول الخيارات الحسابية.
الخيارات 101.
يتم شرح الخيارات على العديد من المواقع وفي العديد من الكتب التجارية، لذلك هنا & # 8217؛ مجرد لمحة سريعة. والخيار هو عقد يمنح صاحبه الحق في شراء (خيار خيار البيع) أو بيع (خيار البيع) أصلا ماليا (السعر الأساسي) بسعر ثابت (سعر الإضراب) في أو قبل تاريخ محدد (تاريخ انتهاء الصلاحية) . إذا كنت تبيع قصير (كتابة) خيارا، يمكنك & # 8217؛ أخذ الجانب الآخر من التجارة. حتى تتمكن من إدخال موقف في 4 طرق مختلفة: شراء مكالمة، شراء وضع، بيع قصيرة مكالمة، بيع قصيرة وضعت. وهذا مع كل مزيج ممكن من أسعار الإضراب وتاريخ انتهاء الصلاحية.
قسط هو السعر الذي تدفعه أو جمع لشراء أو بيع خيار. وهو أقل بكثير من سعر الأسهم الأساسية. أسواق الخيارات الرئيسية عادة ما تكون سائلة، حتى تتمكن من شراء أي وقت، كتابة، أو بيع خيار مع أي سعر الإضراب معقول وتاريخ انتهاء الصلاحية. إذا كان السعر الحالي الحالي (السعر الفوري) لخيار المكالمة فوق سعر الإضراب، فإن الخيار هو في المال؛ وإلا فإنه & # 8217؛ ق من المال. العكس هو الصحيح لخيارات وضع. في-- المال هو جيد بالنسبة للمشتري وسيئة للبائع. ويمكن ممارسة الخيارات في المال ويتم بعد ذلك تبادل للالأساسية في سعر الإضراب. الفرق بين البقعة والإضراب هو أرباح المشتري وخسارة البائع. يمكن ممارسة خيارات النمط الأمريكي في أي وقت، خيارات النمط الأوروبي فقط عند انتهاء الصلاحية.
لا يمكن ممارسة الخيارات خارج المال، على الأقل ليس في الربح. لكنها لا قيمة لها، لأنها لا تزال لديها فرصة للسير في المال قبل انتهاء الصلاحية. وتعتمد قيمة الخيار على تلك الفرصة، ويمكن حسابها للخيارات الأوروبية من السعر الفوري، والإضراب، والانتهاء، ومعدل العائد الخالي من المخاطر، ومعدل توزيعات الأرباح، والتقلب الأساسي مع صيغة بلاك سكولز الشهيرة. هذه القيمة هي أساس علاوة الخيار. قد ينحرف قسط حقيقي قليلا بسبب العرض والطلب، ومحاولات لاستباق اتجاه السعر الأساسي & # 8217؛ s.
عن طريق عكس الصيغة مع عملية تقريب، ويمكن حساب التقلب من قسط الحقيقي. هذا التقلب الضمني هو كيف تتوقع السوق أن تتذبذب الكامنة في المرة القادمة. والمشتقات الجزئية لقيمة الخيار هي الإغريق (دلتا، فيغا & # 8211؛ دون & # 8217؛ ر معرفة ما هي الرسالة اليونانية أن & # 8217؛ s من المفترض أن يكون & # 8211؛ وثيتا). أنها تحدد في أي اتجاه، ومدى قوة، سوف تتغير القيمة عندما تتغير معلمة السوق.
هذا كل المعلومات الأساسية اللازمة لخيارات التداول. بالمناسبة، انها مثيرة للاهتمام لمقارنة أداء استراتيجيات من الكتب التجارية. في حين أن الفوركس أو أنظمة تداول الأسهم الموصوفة في تلك الكتب هي في الغالب بطابقين وتفقد بالفعل في باكتست بسيط، فإنه ليس كذلك مع أنظمة الخيار. وغالبا ما يفوزون في الاختبارات الخلفية. وهذا على الرغم من أنني & # 8217؛ م متأكد من أن ما يقرب من أي مؤلف قد باكتستد حقا لهم. هل مؤلفو كتاب تداول الخيارات أكثر ذكاء من مؤلفي الكتاب التجاريين الآخرين؟ ربما، ولكننا & # 8217؛ سوف نرى أن هناك تفسير بديل.
لماذا خيارات التداول على الإطلاق؟
فهي أكثر تعقيدا وأكثر صعوبة في التجارة، وتحتاج إلى صيغة نوبل الحائز على جائزة لحساب القيمة التي بخلاف ذلك سيكون ببساطة اختلافا في سعر الدخول والخروج. على الرغم من كل هذا، خيارات توفر العديد من المزايا الرائعة على الأدوات المالية الأخرى:
رافعة مالية عالية. مع 100 $ يمكنك شراء سوى عدد قليل من الأسهم، ولكن خيارات عدة مئات من الأسهم. المخاطر الخاضعة للمراقبة. يمكن لموقف قصير في سهم مسح حسابك. مواقف في خيارات يمكن أن تكون ذكية مجتمعة للحد من المخاطر في أي طريقة المرجوة. وعلى عكس وقف الخسارة انها & # 8217؛ ق حد المخاطر الحقيقية. أبعاد إضافية. أرباح الأسهم تعتمد فقط على ارتفاع أو انخفاض الأسعار. ويمكن تحقيق أرباح الخيار مع ارتفاع التقلب، وتقلب الانخفاض، وتحرك الأسعار في نطاق، من نطاق، أو أي سلوك آخر يمكن تخيله. النار وننسى. تنتهي صلاحية الخيارات، لذلك لا تحتاج إلى خوارزمية لإغلاقها (إلا إذا كنت ترغب في بيعها أو ممارستها في ظروف خاصة). وأنت تدفع أي لجنة الخروج لخيار انتهت صلاحيته. ميزة البائع. بسبب قسط، يمكن للخيارات لا تزال تنتج ربحا للبائع حتى لو التحركات الأساسية في الاتجاه الخاطئ.
تتطلب أخلاقيات القراصنة أنك لا تدعي شيئا ما فحسب، بل تثبت ذلك. للحصول على دراية الخيارات، واسمحوا & # 8217؛ ق وضع المطالبة الأخيرة، ميزة البائع، للاختبار:
هذا هو بسيط جدا نظام التداول الخيار. فإنه يكتب عشوائيا الدعوة أو وضع خيارات ويبقي المواقف مفتوحة حتى تنتهي. بسبب وضع / الدعوة العشوائية هو الاتجاه الملحد. قبل النظر في تفاصيل الرمز، فقط تشغيله في وضع [اختبار] بضع مرات (أنت & # 8217؛ سوف تحتاج زورو الإصدار 1.53 أو أعلى). ستلاحظ أن النتيجة مختلفة في أي وقت، ولكنها غالبا ما تكون إيجابية من السلبية، على الرغم من طرح العمولة من الربح. نتيجة نموذجية:
يمكنك أن ترى أن معظم الصفقات الفوز، ولكن عندما يخسرون، فإنها تفقد كبيرة. الآن عكس الاستراتيجية وشراء الخيارات بدلا من بيعها: استبدال إنتيرشورت () من إنتيرلونغ (). تشغيله مرة أخرى بضع مرات (السيناريو يحتاج حوالي 3 ثوان ل باكتست). سترى الآن أن النتيجة غالبا ما تكون سلبية & # 8211؛ في الواقع تقريبا أي وقت.
يبدو أن الخيارات، على الأقل اختبار تجسس العقود، في الواقع صالح البائع. هذا يشبه إلى حد ما التوقعات الإيجابية للمراكز الطويلة في الأسهم، صناديق الاستثمار المتداولة، أو مؤشر الآجلة، ولكن الخيار خيارات البائع هو أقوى ومستقلة عن اتجاه السوق. قد يفسر جزء كبير من النتائج الإيجابية لأنظمة الخيارات في تداول الكتب. لماذا هناك المشترين الخيار ثم على الإطلاق؟ وغالبا ما يتم شراء الخيارات ليس من أجل الربح، ولكن كتأمين ضد اتجاهات الأسعار غير المواتية من الكامنة. ولماذا هو ميزة البائع لا المحجوبة بعيدا عن أسماك القرش السوق؟ ربما بسبب عدم وجود تداول خوارزمي مع خيارات كثيرة، ولأن هناك على أي حال المزيد من الحيتان من أسماك القرش في الأسواق المالية.
وظائف للخيارات.
يمكننا أن نرى أن تداول الخيارات و باكتستينغ يتطلب بضع وظائف أكثر من مجرد تداول الكامنة. وبدون خيارات، سيتم تخفيض نفس نظام التداول العشوائي إلى هذا السيناريو القصير:
تتطلب الخيارات (على الأقل) ثلاث وظائف إضافية:
يقوم داتالود (1، & # 8221؛ SPY_Options. t8 & # 8243؛، 9) بتحميل بيانات الخيارات التاريخية من الملف & # 8220؛ SPY_Options. t8 & # 8221؛ في مجموعة بيانات. تتضمن بيانات الخيارات ليس فقط أسعار الطلب والعطاء، ولكن أيضا سعر الإضراب، وتاريخ انتهاء الصلاحية، ونوع & # 8211؛ وضع أو الاتصال، الأمريكية أو الأوروبية & # 8211؛ من أي خيار، وبعض نادرا ما تستخدم بيانات إضافية مثل الفائدة المفتوحة. وعلى عكس بيانات الأسعار التاريخية، تكون بيانات الخيارات مكلفة عادة. يمكنك شرائه من البائعين مثل إيفولاتيليتي. ولكن هناك & # 8217؛ s وسيلة بديلة للحصول عليه مجانا، والتي سوف & # 8217 سوف تصف أدناه.
يسرد العمود المركزي أسعار إضراب مختلفة وتواريخ انتهاء الصلاحية، والأجزاء اليمنى واليسرى هي أسعار الطلب والعطاء وأحجام طلبات الشراء للدعوات المخصصة لهم (يسار) ووضع الخيارات (يمين). الأسعار للسهم الواحد. فإن عقد الخيار يغطي دائما عددا معينا من الأسهم، وعادة 100. لذلك يمكنك أن ترى في القائمة أعلاه أنك سوف تحصل على 15 $ قسط عند كتابة خيار دعوة سبي تنتهي في الأسبوع المقبل (03 فبراير 2017) مع 230 $ سعر الإضراب. إذا فاز سبي & # 8217؛ ر فوق $ 230 حتى ذلك التاريخ، و $ 15 هي الربح الخاص بك. If it rised to $230 and 10 cents and the option is exercised (happens automatically when it expires in the money), you still keep $5. But if it suddenly soared to $300 (maybe Trump announced new walls all around the US, all paid by himself), you have to bear a $6985 loss.
The image displays 54 contracts, but this is only a small part of the option chain, since there are many more expiry dates and strike prices available. The SPY option chain can contain up to 10,000 different options. They all are downloaded to the PC with the above contractUpdate function, which can thus take a couple seconds to complete .
contract(Type,30,priceClose()) selects a particular option from the previously downloaded option chain. The type ( PUT or CALL ), the days until expiration ( 30 ), and the strike ( priceClose() is the current price of the underlying) are enough information to select the best fitting option. Note that for getting correct strike prices in the backtest, we downloaded the underlying price data with the UNADJUSTED flag. Strike prices are always unadjusted.
Once a contract is selected, the next enterLong() or enterShort() buys or sells the option at market. The if() clause checks that the contract is available and its expiry date is different to the previous one (for ensuring that only different contracts are traded). Entry, stop, or profit limits would work as usual, they now only apply to the option value, the premium, instead of the underlying price. The backtest assumes that when an option is exercised or expires in the money, the underlying is immediately sold, and the profit is booked into the buyer’s account and deducted from the seller’s account. If the option expires out of the money, the position just vanishes. So we don’t care about exiting positions in this strategy. Apart from those differences, trading options works just as trading any other financial instrument.
Backtesting option strategies.
Here’s an easy way to get rich. Open an IB account and run a software that records the options chains and contract prices in one-minute intervals. That’s what some data vendors did in the last 5 years, and now they are dear selling their data treasures. Although you can easily pay several thousand dollars for a few year’s option chains of major stocks, I am not sure who really owns the copyright of this data – the vendor, the broker, the exchange, or the market participants? This might be a legal grey area. Anyway, you need historical data for developing options strategies, otherwise you could not backtest them.
Here’s a method to get it for free and without any legal issues:
This script is a bit longer than the usual Zorro scripts that I post here, so I won’t explain it in detail. It generates artificial option chains for any day from 2018-2017, and stores them in a historical data file. The option prices are calculated from the underlying price, the volatility, the current risk free interest rate, and the dividend rate of the underlying. It uses three ranges of strike prices, and expiry dates at any Friday of the next 180 days. You need R installed for running it, and also the RQuantlib package for calculating option values. All functions are described in the Zorro manual. The yield() function returns the current yield rate of US treasury bills, and contractVal() calculates the premium by solving a differential equation with all option parameters. The source code of both functions can be found in the contract. c include file.
Due to the slow differential equation solver and the huge number of options, the script needs several hours to complete. Here’s a comparison of the generated data with real SPY options data:
The blue line are the artificial option prices, the black line are the real prices purchased from an options data vendor, both for 3-weeks SPY contracts with 10 points spot-strike distance. You can see that the prices match quite well. There are some tiny differences that might be partially random, partially caused by anomalies in supply and demand. For strategies that exploit those anomalies – that includes all strategies based on implied volatility – you’ll need real historical options prices. For option strategies that exploit only price or volatility changes of the underlying, the artificial data will most likely do. See, reading this article up to the end already saved you a couple thousand dollars.
استنتاج.
Options and option combinations can be used to create artificial financial instruments with very interesting properties. Option strategies, especially options selling, are more likely to be profitable than other strategies. Algorithmic option strategies are a bit, but not much more complex than strategies with other financial instruments.
I’ve included all scripts in the 2017 script repository, and also a historical data set with the yield rates (otherwise you needed the Quandl bridge or Zorro S for downloading them). You’ll need Zorro 1.53 or above, which is currently available under the “Beta” link of the Zorro download page. The error message from the free Zorro version about the not supported Quandl bridge can be ignored, due to the included yield rates the script will run nevertheless.
In the next article we’ll look more closely into option values and into methods to combine options for limiting risk or trading arbitrary price ranges. Those combinations with funny names like “Iron Condor” or “Butterfly” are often referred to as option strategies, but they are not – they are just artificial financial instruments. How you trade them is up to the real strategy. Some simple, but consistently profitable option strategies will be the topic of the third article of this mini-series.
49 thoughts on “Algorithmic Options Trading 1”
Very interesting article! I have one option automatic trading system created by Zorro developers (great job by the way) and it’s quite interesting to see, that my strategy generates similar results as your strategy “random”. I am looking forward for the next articles of this mini-series.
I would like to ask, do you have any idea if your book will be translated into English anytime soon? Would love to read the book.
I’m totally interested in this mini series articles. Please let me know the next one of the series.
شكرا & # 8211؛ yes, an English book version is planned, I just must find some time for reviewing the raw translation. Andrés: you can enter your email in the subscribe field on the right.
Nice article, I would like to ask you what are good books or where I can learn to trade with options. شكر.
Am I right, rhat those artificial and real prices relate to a kind of a “synthetic” option made as a rolled-over series of real options with nearest expiration date and dynamically changed strike (depending on the underlying price)?
Investopedia and Tastytrade have some tutorials and videos about options. - It’s no rolled over series, but an option chain with different strikes and expiry dates, just as in real life. Otherwise the backtest would not be realistic.
When you’re comparing the artificial prices with the real prices, are you using ATM strike? The whole point, for me, of backtesting an option trading strategy vs. real option data is that at the wings the implied vols will be much much higher than those generated artificially.
The strikes used were about 10 points ITM.
Thanks for publishing this interesting article. May I know when the other two articles of this mini-series will be published?
When I get some time… 🙂
What a nice article! The results of the random trading system look similar to CBOE S&P 500 PutWrite Index and it makes sense.
Thank you so much for this article! Was just thinking about this the other day.
I like this blog’s articles very much. I am currently trading 1 year expiry call options of specific stocks.
My biggest problem with “seller advantage” that it contradicts to “controlled risk” بيان.
“Something that often confuses investors is whether or not being short a call and long a put are the same. بشكل حدسي، وهذا قد يجعل بعض الشعور، منذ المكالمات ويضع العقود المقابلة تقريبا، ولكن يجري قصيرة مكالمة وطويلة وضع ليست هي نفسها. عندما كنت طويلة وضعت، لديك لدفع قسط وأسوأ حالة سيؤدي إلى فقدان فقط قسط. However, when you are short a call, you collect the option premium, but you are exposed to a large amount of risk”
So when you write (naked) calls your risk is unlimited. The short expiry time period(30 days) is saves you in most cases, but this is a self-delusion. This method is very similar to scam trading bots, where 99,5% of the time bots are winning little(e. g. call premium) amount of money, however when you loose, you risk large amount of your money.
Long call or put traders risk is limited and they choose out-of-the-money options to multiply their winnings and parallel they reduce their winning chance.
I would be interested in LEAPS (1+ year expiry long/put options) backtest.
Just do it. Download Zorro 1.54 from the user forum, and backtest a system with LEAPS. For this you need to increase the “DaysMax” variable in the options data generating script above to 1 year (365) or 2 years (2*365) for including long-term contracts. The script will then need a bit more time for the data generation.
Since trading options is a new Zorro feature, I’m wondering if the Broker API part of the manual (zorro-trader/manual/en/brokerplugin. htm) has been sufficiently updated to account for handling options.
I’m asking because I’m trying to write a DLL plugin for TradeKing (soon to be renamed to Ally Invest). They have stocks, ETFs, and options contracts. Very low barrier-to-entry broker as well ($0 required to get API access).
For options, implement the basic API functions plus 5 BrokerCommand functions: GET_POSITION, GET_OPTIONS, GET_UNDERLYING, SET_SYMBOL, and SET_MULTIPLIER.
Fantastic Article, thanks for sharing, I tried out the code and downloaded the options data via the script, it all seemed to download OK and make me a 48mb T8 file for SPY but when I run the random script I don’t get any trades. Its the first time I have ran zorro (I’m on the latest version downloaded 2-3 days ago) so really unsure what I’m doing wrong.
Any help would be appreciated and I really look forward to the next episode in this enthralling series 😉
here is the log output:
Test OptionsSellRandom SPY.
Simulated account AssetsIB.
Bar period 24 hours (avg 2233 min)
Test period 12.01.2018-01.06.2018 (1270 bars)
Lookback period 80 bars (16 weeks)
Simulation mode Realistic (slippage 5.0 sec)
Spread 2.0 pips (roll 0.00/0.00)
Contracts per lot 1.0.
Gross win/loss 0.00$ / -0.00$ (-1p)
Average profit 0.00$/year, 0.00$/month, 0.00$/day.
Max drawdown -0.00$ -1% (MAE -0.00$ -1%)
Total down time 0% (TAE 0%)
Max down time 0 minutes from Sep 2018.
Max open margin 0.00$
Max open risk 0.00$
Trade volume 0.00$ (0.00$/year)
Transaction costs 0.00$ spr, 0.00$ slp, 0.00$ rol.
Capital required 0$
Number of trades 279 (52/year, 1/week, 1/day)
Percent winning 0.0%
Max win/loss 0.00$ / –0.00$
Avg trade profit 0.00$ -1.$p (+0.0p / -1.$p)
Avg trade slippage 0.00$ 1.$p (+0.0p / -1.$p)
Avg trade bars 23 (+0 / -23)
Max trade bars 26 (5 weeks)
Time in market 506%
Max open trades 6.
Max loss streak 279 (uncorrelated 279)
Annual return 0%
Sharpe ratio 0.00.
Kelly criterion 0.00.
R2 coefficient 1.000.
Confidence level AR DDMax Capital.
Portfolio analysis OptF ProF Win/Loss Wgt%
and a snippet of the log file…
[1338: Fri 13.05.16 19:00] +0 +0 6/271 (206.21)
[SPY::SC1272] Call 20180513 204.0 0@3.5713 not traded today!
[SPY::SC1272] Expired 1 Call 20180513 204.0 0@207: +0.00 at 19:00:00.
[1339: Mon 16.05.16 19:00] +0 +0 5/272 (204.96)
[1340: Tue 17.05.16 19:00] +0 +0 5/272 (206.46)
[1341: Wed 18.05.16 19:00] +0 +0 5/272 (204.44)
[1342: Thu 19.05.16 19:00] +0 +0 5/272 (204.06)
[SPY::SC4278] Write 1 Call 20180624 205.0 0@3.4913 at 19:00:00.
[1343: Fri 20.05.16 19:00] +0 +0 6/272 (204.92)
[SPY::SP1773] Put 20180520 208.0 0@4.2851 not traded today!
[SPY::SP1773] Expired 1 Put 20180520 208.0 0@204: +0.00 at 19:00:00.
[1344: Mon 23.05.16 19:00] +0 +0 5/273 (205.51)
[1345: Tue 24.05.16 19:00] +0 +0 5/273 (206.17)
[1346: Wed 25.05.16 19:00] +0 +0 5/273 (208.67)
[1347: Thu 26.05.16 19:00] +0 +0 5/273 (209.44)
[SPY::SC4779] Write 1 Call 20180701 209.0 0@3.7358 at 19:00:00.
[1348: Fri 27.05.16 19:00] +0 +0 6/273 (209.53)
[SPY::SP2274] Put 20180527 208.0 0@3.3622 not traded today!
[SPY::SP2274] Expired 1 Put 20180527 208.0 0@209: +0.00 at 19:00:00.
[1349: Tue 31.05.16 19:00] +0 +0 5/274 (210.56)
[SPY::SC2775] Cover 1 Call 20180531 207.0 0@2.2309: +0.00 at 19:00:00.
[SPY::SC3276] Cover 1 Call 20180531 205.0 0@5.1843: +0.00 at 19:00:00.
[SPY::SP3777] Cover 1 Put 20180531 206.0 0@0.8602: +0.00 at 19:00:00.
[SPY::SC4278] Cover 1 Call 20180531 205.0 0@4.9463: +0.00 at 19:00:00.
[SPY::SC4779] Cover 1 Call 20180531 209.0 0@2.8347: +0.00 at 19:00:00.
[1350: Wed 01.06.16 19:00] +0 +0 0/279 (209.12)
I see that the positions are all opened with zero volume, as if you had set the number of contracts to 0. Have you used the unmodified script from the repository?
I’m using the OptionsSimulate. c file straight from the Zip file.
I installed R and the Quantlib libraries and the R bridge seemed to work fine as well.
The top of the file.
string FileName = “History\\SPY_SimOptions. t8”;
var StrikeMax[3] = ; // 3 strike ranges with different steps.
var StrikeStep[3] = ; // stepwidths for the 3 ranges.
int DaysMax = 180;
var BidAskSpread = 2.5; // Bid/Ask spread in percent.
var Dividend = 0.02;
int Type = 0; // or EUROPEAN, or FUTURE.
LookBack = 21; // for volatility.
I’m sorry for the n00b questions, its really interesting tools and systems and I was wanting to try out some vertical credit spreads using this code as a basis on the SPY and perhaps some other instruments!
It is not a noob question, it is in fact my fault. I just see that I’ve forgotten to set the options multiplier in the script. That did not matter with the previous Zorro version since the multiplier was 100 by default, but it must now be set because options can have very different multipliers.
I’ve corrected the script above. Thanks for notifying me!
Yes that was it!
Getting back results now, thanks so much for your help jcl.
I’m now off to put $1mm in an account and trade this baby 😉
Do you have any idea when you will get to work on the rest of the articles in this series?
Looks like the code below is not working anymore.
The CSV file SPY. csv get filled with this content:
QECx05,The url you requested is incorrect. Please use the following url instead: /api/v3/datasets/:database_code/:dataset_code.
Sorry, actually that file was from Quandl, and need a paid subscription.
From Yahoo I get the error Can’t download SPY from Yahoo.
Anyone having the same problem ?
I guess all are having the same problem, as Yahoo changed their protocol last week. If you run into issues like that, look for a solution not only on my blog, but first on the Zorro forum:
Thank you for this helpful information on automated trading systems!
I’m pretty new to this but I think this is a much bigger deal than you make it sound:
وGT. There are some tiny differences that might be partially random, partially caused by anomalies in supply and demand. For strategies that exploit those anomalies you’ll need real historical data.
Having accurate volatility is essential. Without it, you’re not just writing a strategy that doesn’t exploit those anomalies, you’re writing one that totally ignores them. It’s comparable to generating a stock’s price by picking a random number based on the probability distribution of the previous weeks’ prices or smoothing out all the biggest moves.
Options prices are based on expectations about the future but (unless I misunderstand your code), you’re pricing them based on the past. The differences will be more pronounced on underlyings other than SPY, particularly around earnings time (say AAPL, MSFT or GOOG).
I also find it hard to think of a strategy that doesn’t exploit the difference between implied and actual volatility. Even a 16/5 delta put spread on SPY only works as well as it does because IV is much much higher than it should be.
Yes, option price changes due to expectation of volatility, maybe when company news approach, belongs to the mentioned anomalies. The general rule is: for anomalies that have also an effect on the underlying you can use the artificial prices. For anomalies that only affect options, but not the underlying, you’ll need to purchase real historical options data.
how good will the simulated data be if I will change BarPeriod =1440 to be BarPeriod = 1 ?
Theoretically, as good or bad as the daily data, since the priciple is the same. But I haven’t yet made tests with 1-minute options data. That’s an awful lot of data.
“Due to the slow differential equation solver and the huge number of options, the script needs several hours to complete.”
How much faster do you think this could be if the R / Quantmod stuff were replaced with C/C++? I’m thinking of generating lots of synthetic data.
I believe it _is_ C++, at least the underlying Quantlib is programmed in C++. The R overhead is probably negligible. The problem is not the code, but the math. Numerically solving differential equations is slow. Black-Scholes is much faster, but for European options only. If you have really lots of data to generate, it might make sense to check the speed of different approximation methods for American options.
I notice volatility is fixed at 20 in the above script for generating synthetic option prices. Might there not be an argument for volatility to be a rolling 30 days and calculated programatically from the underlying?
What do you mean with “a rolling 30 days”? 20 is the usual volatility period in financial calculations, since it is roughly equivalent to one month. 30 would probably not make much difference.
You use a one time estimate of Volatility I think: eg 16 for the S&P. But on a rolling basis it will very widely which is of course part of the reason why option prices change so much: as volatility rises so does the price of the option. If therefore you use a rolling 20 (or 30) day moving average of volatility you will obtain more accurate synthetic option prices than simply assuming a one time flat 16 for the S&P when sometimes actual might be 10 , sometimes 30. I have not looked at the architecture of zorro and so don’t now whether its mostly vector, or look or what. Either way it would be possible to include the relevant day’s moving average of the volatility of the underlying instrument rather than a fixed figure.
But there again that is what you do perhaps? HistVolOV = VolatilityOV(20) – maybe this is 20 days? Not 20%?
A question not a statement.
Anyway it looks a wonderful piece of software. Just going to plough my way through the manual.
Yep, looks like Vol is a time series. Sorry to bother you.
Yes, it’s annualized volatility from the last 20 days. If it were 20%, I would have written: HistVolOV = 0.2.
كلا. It doesn’t cut it. You can’t use a single measure of historic volatility for everything from a one month option to an expiry 24 months out. Perhaps the whole scheme is invalid. For instance IV for an SPX two year maturity is currently 15%+ while an option expiring in the next few days is 5% ish.
It may be invalid to use manufactured data at all. Except if you treat it as a sort of Monte Carlo test: this is what may/could have happened / might happen.
Anthony, the script is calculating the current price of an option. The current price depends on current volatility. Not on volatility from 24 months ago.
You calculate the value of European options with the Black Scholes formula, and American options, as in the script above, with an approximation method. Both methods normally use 20 days volatility. The volatility sampling method can differ, but the 20 days are pretty common to all options trading software that I know. And you can see from the comparison with real prices above that this period works rather well.
No, you can not calculate the current price of an option on any given day in that way. There is no way to accurately reproduce implied volatility hence price on any given date in the past. And it is the implied volatility we are interested in, not the historic. I totally agree on Black Scholes of course and its uses but it is cart before horse to expect to plug in 20 day volatility as at 3rd January 1985 and expect it to come up with an accurate price as traded at the close on that day for the SPX for any given strike or expiry.
It’s looking at it the wrong way around.
What you can try is to play around with different methods of estimating what the implied vol/ price MAY have been on 3rd Jan 1985 for a given strike and expiry of an SPX option.
For instance you might use 5 day historic volatility for an option expiring in a week and 252 day volatility for an option expiring in a year. Or you might imply volatilities by looking at the term structure of VIX futures contracts from 2004. Or at least use the VIX index itself going back to 1986 as input for 30 day volatility.
Whatever you do you won’t really be producing anything like what was actually traded on the day. Or at least not consistently and accurately over all expiries and strikes.
I believe that the process you describe does have a value but that the outcome of both the prices produced and the back tests resulting therefrom will be more akin to a random moet carlo process than to a back test on actual traded price data.
I believe it is a valuable process but that what is produced is a series of parallel universes: what might have happened to a given strategy over a given period of time using implied volatilities which may or may not have been traded.
Sorry to be long winded and I am an admirer of both your product and your script above. I would not have thought of generating fake option prices had I not seen your excellent article.
But in my opinion at least you need to rethink your input into the BS formula as far as volatility is concerned.
Incidentally please be well aware that I admire your product and your thoughts. Don’t imagine I am being difficult. Equally please don’t imagine I believe I am “right”!
I am just enjoying the journey and the dialogue with you and hoping together we can improve each other’s understanding of the topic.
Mine is limited!
Say the date you are looking atis 7th January 1987. On that day historic SPX volatility calculated over 20 trading days was 15.23. Historic volatility on that day for the past 252 days was 14.65.
For 5 days it was 18.
Now say I am trying to “calculate” (guess) a price (which might have been traded on 7th January 1987) for an option expiring in 5 days, 20 days and 252 days. Lets assume ATM.
My suspicion is that it would not be helpful to use 15.23 for all three expiries.
Thank you for your kind words. Finance is complex. My knowledge is even more limited and I’m daily surprised by some results that I didn’t expect. & # 8211؛ In your example, the 15.23% volatility is the correct value. If you used a higher volatility period for higher expiration, then it depends on whether it’s still annualized volatility or just volatility of a longer time. In the latter case the results are off by some factor, in the former case they are based on too old volatility and thus not up to date. & # 8211؛ You’re right about the implied volatility, since it is affected by the difference of theoretical and real option value. So you cannot use the script above for getting it. Otherwise you would just get back some approximation of the current volatility. You need real option prices for IV.
I hope that it’s alright that I discuss this with just a few of my clientele, this will assist.
Options trading with python
سحب طلبات 0.
تاريخ جيثب اليوم.
جيثب هي موطن لأكثر من 20 مليون مطورين يعملون معا لاستضافة ومراجعة التعليمات البرمجية، وإدارة المشاريع، وبناء البرمجيات معا.
استنساخ مع هتبس.
استخدام جيت أو الخروج مع سفن باستخدام ورل على شبكة الإنترنت.
I have Created code for Options Trading based on Various Trading Technical Indicators.
Volatility Index (VIX) based Strategy Put / Call Ratio (PCR) based Strategy Trading Index (TRIN) based Strategy Turtle Trading based Strategy.
Still working on more advanced Strategies based on Black Scholes Merton Option Pricing . Next I will work on incorporating Time Series and Neural Networks (RNNs to be specific) to improve accuraacy (Decrease Standard Deviation from current models) and Perfomance.
LSTMs have gave me promosing results and now I am exploring advance LSTM like MD-LSTM and MiD-LSTM for better prediction and more feature inclusion.
&نسخ؛ 2018 جيثب، Inc. شروط الخصوصية تعليمات حالة الأمان.
لا يمكنك تنفيذ هذا الإجراء في الوقت الحالي.
لقد سجلت الدخول باستخدام علامة تبويب أو نافذة أخرى. أعد التحميل لتحديث الجلسة. لقد سجلت الخروج في علامة تبويب أو نافذة أخرى. أعد التحميل لتحديث الجلسة.
Comments
Post a Comment