pineforge
البداية

لماذا بنيناه PineForge.

ثلاثة طرق لم نسلكها. سنتان في ملاحقة حالتي مطابقة من مرتبة قوي. أطروحة واحدة: PineScript يستحقّ runtime حقيقياً.

لماذا قابلية الاستنساخ بدون اتصال

TradingView هو المكان الذي تعيش فيه معظم استراتيجيات Pine، ولأسباب وجيهة — تكرار فوري على الرسم البياني، مجتمع ضخم، مشاركة اجتماعية. ما لا يأتي معه هو runtime بدون اتصال: لا يمكنك تثبيت إصدار المحرّك، ولا تشغيل اختبار تاريخي في CI، ولا إعادة إنتاج قائمة صفقات بِتاً ببِت على جهاز آخر.

لتصفّح أفكار الرسم البياني، لا شيء من هذا يهمّ. لبناء استراتيجية ستضع وراءها أموالاً حقيقية، كل ذلك يهمّ. الفجوة بين «أرى رقماً في متصفّح» و«أملك مسار تدقيق» هي ما انطلقنا لنُغلقه — دون التخلّي عن لغة Pine.

لماذا لم نساهم في PyneCore

PyneCore هو أكثر محرّكات PineScript مفتوحة المصدر طموحاً. نستخدمه نحن أنفسنا كمصدر رأي ثانٍ. فكّرنا في رفع كل ما بنيناه إلى المشروع الأصلي. سببان منعانا:

نتعامل مع PyneCore كمصدر ثانٍ. كل إصدار من PineForge يُشغّل مسح المطابقة مقابل كلٍّ من PyneCore وTradingView. معدّل وصول PyneCore إلى مرتبة ممتاز عالٍ بما يكفي ليكون أي اختلاف بين المحرّكين دائماً تقريباً خطأ في أحدهما — عادةً خطأنا نحن.

لماذا لم نوسّع Backtrader

Backtrader هو حصان عمل تداول الخوارزميات بـ Python. متين ومحبوب، لكنّه الشكل الخطأ لهذا العمل. هو إطار عمل اختبار تاريخي أصلي بـ Python يصادف أنّه يدعم كلاسات استراتيجيات مخصّصة. Pine لغة مختلفة بدلالات مختلفة — لا يمكنك تزييف <code>request.security()</code> lookahead، أو معالجة الأوامر داخل الشمعة، أو مجموعات خروج <code>oca_name</code> بكتابة المزيد من Python.

ومرّة أخرى: استراتيجية Backtrader هي مصدر Python، قابلة للتوزيع كمصدر Python. سوق الثنائيات المُجمَّعة يتطلّب خطوة ترجمة تُنتج قطعة قابلة للنشر. سطح Backtrader لا يكشف هذا.

ملاحقة 165/167

بدأنا بـ 9 استراتيجيات و76% مطابقة صارمة. بعد سنتين: 167 استراتيجية، 165 صارمة. الفجوة من 76 إلى 98.8% لم تُبنَ بكتابة المزيد من codegen — بل بمطاردة انحرافات بأربعة أرقام عشرية، واحدة تلو أخرى، أسابيع لكل منها.

معظم تلك الأسابيع قُضيت في مطابقة تعريفات TradingView المحدّدة لكلمات مثل «خروج»، «تنفيذ»، «trail» — وثائق Pine تصف الـ API؛ الدلالات الدقيقة لمعالجة الأوامر لا تظهر إلا حين تقارن قوائم الصفقات شمعةً بشمعة. فعلنا ذلك، وواصلنا التساؤل لماذا يختلف لدينا عن المرجع، وأذبنا الفروق واحداً تلو الآخر.

حالتا مرتبة القوي هما المثيرتان للاهتمام — حالات حافّة استغرقت أكبر قدر من الحفر وتبقى على خارطة طريقنا لإغلاقها. نتعامل معها كبحث، لا كإحراج.

ما هو قادم

Q3 2026: تكامل Optuna يُطلَق. حسِّن أي استراتيجية على أي دالة هدف من سطر واحد — Sharpe، التراجع، عامل الربح، أو lambda Python خاصّة بك. تحليل walk-forward مدمج، خارج العيّنة هو الإعداد الافتراضي لا فكرة لاحقة.

Q4 2026: Studio المستضاف يُطلَق. مساحة عمل مشروع، اختبار تاريخي، تحسين، مقارنة، تداول ورقي — كلّها في متصفّح، كلّها تعمل على نفس ‎.so الذي قد تشغّله محلّياً عبر CLI اليوم. وصول الموجة الأولى يذهب إلى قائمة الوصول المبكّر أوّلاً.

2027: السوق يُفتح. البائعون ينشرون ثنائيات ‎.so مُجمَّعة بحدود ترخيص يحدّدها البائع: الزمن، الجهاز، الوسيط، الرمز، نطاقات المدخلات. المشترون يشغّلون على بياناتهم، ولا يرون المصدر أبداً. نفس نموذج التوصيل الذي نجح مع MQL5 — لكن الاستراتيجيات مكتوبة بـ Pine، الـ runtime قابل للتدقيق، والتراخيص قابلة للإلغاء.

الـ 1% الذي لا يُكتب يدوياً

كل محرّك مطابقة قرأنا عنه يوماً بُني وهُجر من شخص ملّ عند 90%. الـ 10% الأخيرة عمل متكرّر، عالي الجهد، عديم البريق — يجب أن يقوم به أناس يتحمّسون فعلاً لشرح لماذا تختلف قائمتا صفقات بنسبة 0.0001%.

هذا هو الفريق. هذا هو الانضباط. هذا ما يجعل الـ runtime يستحقّ أن تشغّل عليه أموالك.