لكل استراتيجية Pine عدد من الخصائص التي تحدد سلوكها:
هي متوفرة في إعدادات الإستراتيجية، في علامة التبويب "الخصائص":
يمكن تغيير كل من المعلمات المحددة في خصائص الإستراتيجية عن طريق تحرير وسيطات استدعاء دالة strategy() في نص Pine النصي المقابل:
strategy(title, initial_capital, currency, default_qty_value, default_qty_type, pyramiding, commission_type, commission_value, backtest_fill_limits_assumption, slippage, process_orders_on_close, margin_long, margin_short, calc_on_order_fills, calc_on_every_tick)
دعنا نلقي نظرة على كل معلمة إدخال في قائمة الخصائص والمعلمة المقابلة لها في لغة Pine:
1 - Initial Capital (parameter: initial_capital)
يمثل مقدار الأموال المتاحة مبدئيًا للاستراتيجية للتداول ، بالعملة المحددة في العملة الأساسية. بشكل افتراضي ، هذه القيمة تساوي 100،000. قد تحتاج إلى زيادة هذه القيمة حتى تتم التداولات على رموز معينة.
2 - Base Currency (parameter: currency)
يحدد العملة المستخدمة في الحسابات. النتائج التي تظهر في علامة التبويب "اختبار الإستراتيجية" (الربح ، الخسارة ، التراجع ، إلخ) يتم التعبير عنها بهذه العملة. الخيارات المتاحة هي:
افتراضي ، USD ، EUR ، AUD ، GBP ، NZD ، CAD ، CHF ، HKD ، JPY ، NOK ، SEK ، SGD ، TRY ، ZAR. إذا تم تحديد الخيار الافتراضي ، فستستخدم الإستراتيجية العملة الافتراضية لهذا الرمز ولا يوجد تحويل عملة.
3 - Order Size (parameters: default_qty_value, default_qty_type).
هذا يتطلب قيمة وطريقة حساب. لاحظ أن القيم المحسوبة يمكن أن تخضع لقيود بسبب الحد الأدنى من الكميات القابلة للتداول للرمز:
ستدخل الإستراتيجية مع العدد المحدد من العقود / الأسهم / اللوتات.
ستدخل الإستراتيجية المبلغ المحدد بالعملة الأساسية.
سيتم احتساب أحجام المركز كنسبة مئوية من الأسهم المتاحة عند فتح .
4 - Pyramiding (parameter: pyramiding)
يحدد الحد الأقصى لعدد المدخلات المتتالية المسموح بها في نفس الاتجاه.
عندما يتم تعطيل البناء الهرمي للتداولات، يمكن للاستراتيجية فتح مركز واحد شراء أو بيع فقط ، حتى إذا تم استيفاء شروط الدخول. يؤثر البناء الهرمي فقط على الإدخالات التي تم إجراؤها باستخدام دالة Strategy.entry(). ليس له أي تأثير على الأوامر التي تم إنشاؤها باستخدام Strategy.order().
5 - Commission (parameters: commission_type, commission_value).
هو المبلغ المدفوع في رسوم التداول لكل صفقة. يجب توفير وضع القيمة والحساب. لاحظ أنه يتم تطبيق العمولة على كل من عمليات الدخول والخروج ، وأنه عند استخدام النسبة المئوية ، فإن العمولة المحسوبة ستختلف مع قيمة المعاملة:
يفرض عمولة على كل أمر تداول تساوي النسبة المئوية المحددة.
يفرض عمولة على كل عقد.
يفرض عمولة على كل أمر تداول.
6 - Verify Price For Limit Orders (parameter: backtest_fill_limits_assumption)
يجعل شروط الدخول إلى مركز باستخدام أوامر التحديد أكثر صرامة. بشكل افتراضي ، هذه القيمة هي 0 ، أي يتم ملء أوامر limit على البيانات التاريخية بمجرد الوصول إلى السعر المشار إليه في الأمر. إذا لم تكن المعلمة صفراً ، فيمكن لأوامر التحديد أن تدخل مركزًا داخل العمود البياني فقط إذا تجاوز سعر السوق مستوى أمر limit بالعدد المحدد من تيكات الأسعار
7 - Slippage (parameter: slippage)
تحدد القيمة بالنقاط لإضافتها إلى سعر تعبئة السوق أو أوامر الإيقاف. يمكن استخدامه لحساب السبريد.
8 - Margin For Long and Short Positions (parameters: margin_long, margin_short)
يحدد الهامش لكل صفقة، أي النسبة المئوية للمركز الذي يجب على المتداول تمويله. على سبيل المثال، إذا تم تعيين الهامش لصفقات الشراء على 25٪، يجب أن يكون لدى المتداول أموال كافية لتغطية 25٪ من الصفقة المفتوحة ويمكن أن ينفق ما يصل إلى 400٪ من رأس ماله في كل صفقة.
إذا تم فتح صفقة وبدأت في خسارة الأموال إلى الحد الذي لا تكفي فيه أموال المتداول لتغطية حصته من الصفقة، يحدث نداء الهامش ويؤدي إلى تصفية جزء من المركز الأصلي بالقوة. العدد الدقيق للوحدات التي سيتم تصفيتها هو 4 أضعاف الكمية اللازمة لتغطية الخسارة ببساطة. يتم حسابه من خلال الخوارزمية التالية:
1. حساب الأموال التي تم إنفاقها، مقدار المال الذي أنفقه المتداول على فتح المركز.
حجم المركز * سعر الدخول
2. حساب القيمة السوقية للأمن (MVS).
حجم المركز * السعر الحالي
3. حساب الربح المفتوح. إذا كان الصفقة بيعًا على المكشوف ، وكان الربح المفتوح رقمًا موجبًا، فيجب أن تظل النتيجة سلبية، لذلك نضرب القيمة المطلقة لحسابنا في -1.
ABS (MVS - الأموال المنفقة) * -1
4. حساب السيولة، أي الأموال المتاحة للمتداول في الوقت الحالي.
رأس المال المبدئي + صافي الربح + الربح المفتوح
5. تحويل نسبة الهامش إلى معدل الهامش.
نسبة الهامش / 100
6. حساب الهامش، أي المبلغ المحدد من المال اللازم لتغطية الجزء الخاص بهم من المركز المفتوح.
MVS * نسبة الهامش
7. حساب الأموال المتاحة، أي مبلغ الأموال المفقودة التي لا يستطيع المتداول تغطيتها برصيده الحالي.
رأس المال - الهامش
8. حساب المبلغ الإجمالي للمال الذي خسره المتداول.
الأموال المتاحة / نسبة الهامش
9. حساب عدد الوحدات التي سيحتاج المتداول إلى بيعها لتغطية الخسارة. يتم اقتطاع القيمة إلى نفس الفاصلة العشرية مثل الحد الأدنى لحجم العقد للرمز الحالي.
اقتطاع (الخطوة رقم 8 / السعر الحالي)
10. حساب عدد الوحدات التي سيبيعها الوسيط لتغطية الخسارة. يبيع الوسيط الذي تمت مضاهاته 4 أضعاف عدد الوحدات حسب الضرورة للتأكد من عدم تشغيل نداء الهامش باستمرار إذا استمرت الخسائر. ستكون هذه القيمة موجبة لصفقات البيع على المكشوف لأن الوسيط يشتري وحدات لتغطية الخسارة بدلاً من بيعها.
الخطوة رقم #9 * 4
لفحص هذا الحساب بالتفصيل، دعنا نضيف استراتيجية Supertrend المدمجة إلى الرسم البياني لشركة NASDAQ:TSLA على الإطار الزمني 1D. اضبط حجم الأمر على 300٪ من رأس المال والهامش لمراكز الشراء على 25٪.
حدث أول دخول لنا عند افتتاح العمود في 16 سبتمبر 2010. نشتري 682438 وحدة (حجم المركز) مقابل 4.43 دولار أمريكي (سعر الدخول). ثم، في 23 سبتمبر 2010، عندما كان السعر عند 3.9 (السعر الحالي)، تمت تصفية 111052 وحدة بالقوة عن طريق نداء الهامش.
1. النقود المُنفقة: 682438 * 4.43 = 3023200.34
2. MVS: 682438 * 3.9 = 2661508.2
3. أرباح المرك: -361692.14
4. رأس المال: 1000000 + 0 − 361692.14 = 638307.86
5. نسبة الهامش: 25 * 100 = 0.25
6. الهامش 2661508.2 * 0.25 = 665377.05
7. الأموال المتاحة 638307.86 - 665377.05 = -27069.19
8. الخسارة: -27069.19 * 0.25 = -108276.76
9. الأسهم لتغطية الخسارة: اقتطاع (-108276.76 / 3.9) = اقتطاع (-27763.27) = -27763
10. حجم نداء الهامش -27763 * 4 = - 111052
9 - إعادة الحساب
خيارات تحدد عدد المرات التي يجب فيها إعادة حساب الإستراتيجية. بشكل افتراضي ، تتم إعادة حساب الإستراتيجية عند إغلاق كل شريط ، ولكن باستخدام
الخيارات أدناه ، يمكن أيضًا إعادة حسابها:
يسمح للإستراتيجية بإجراء حساب إضافي لأمر داخل العمود مباشرة بعد تنفيذ الأمر. يحدث هذا الحساب الإضافي على كل من الأعمدة التاريخية والحالية.
10- دقة الاختبار العكسي: