شغّل اختبارات PineScript التاريخية بدون اتصال، على بياناتك الخاصة
PineForge يحوّل PineScript v6 إلى C++ أصلي ويُشغّله على جهازك المحلّي عبر Docker. محلّي أوّلاً، قابل للاستنساخ على مستوى البايت، يعمل أينما يعمل Docker. أحضر OHLCV CSV الخاص بك.
لماذا بدون اتصال؟
الاختبار التاريخي عبر المتصفّح رائع للتكرار على جانب الرسم البياني. الاختبار التاريخي بدون اتصال هو ما تلجأ إليه حين تكون الخطوة التالية شحن أموال خلف الاستراتيجية: حين تحتاج مسار تدقيق، حين يجب أن تحرس CI كل commit، حين يجب أن تُعاد نتيجة من شهرين بِتاً ببِت اليوم.
تشغيل الاختبارات التاريخية بدون اتصال يمنحك ما لا تستطيع المختبِرات عبر المتصفّح تقديمه: النتائج قابلة للاستنساخ على مستوى البايت — نفس المدخل، نفس المخرج، في كل مرّة. تثبّت إصدار المحرّك، تُلزم النتائج في مستودع، تقارن قوائم الصفقات بين commits، وتُشغّل كل شيء بدون رأس في خط CI. ملف CSV الذي تُغذّيه ملكك؛ الثنائي الذي تشغّله محلّي؛ التقرير الذي تستلمه قابل للتدقيق.
القائمة العملية لما يُفتحه التشغيل بدون اتصال: محرّكات مثبَّتة الإصدار حتى يُنتج commit من شهرين نفس قائمة الصفقات اليوم؛ استيعاب بيانات مخصّص حتى تختبر مقابل إعادات بناء ticks لبورصتك، أو أسعار أسهم نقطية من بائع البيانات لديك، أو أي تغذية بيانات بديلة يمكنك تسلسلها إلى OHLCV؛ تكامل CI حتى تُسقط الانحدارات البناء قبل أن تصل الإنتاج؛ وقابلية النقل بين وسطاء متعدّدين لأنّ منطق استراتيجيتك ليس مقفلاً على منصّة — بل ملف.
إذا احتجت يوماً مشاركة نتيجة اختبار تاريخي مع زميل وأدركت أنّ الطريقة الوحيدة لـ «المشاركة» هي أخذ لقطة شاشة لرسم بياني — التشغيل بدون اتصال هو ما ينقصك.
آلية العمل
ثلاث خطوات. سير العمل الكامل من مصدر Pine إلى تقرير صفقات JSON يستغرق أقلّ من دقيقتين في المرّة الأولى وأقلّ من ثلاثين ثانية لكل تشغيل لاحق.
الخطوة 1 — احصل على مفتاح codegen API مجاني. اشترك في نموذج الوصول المبكّر أدناه. المفتاح يُرسل إليك فوراً ولديه باقة مجانية سخيّة — كافية لسير عمل أي quant فردي.
الخطوة 2 — أرسل POST لمصدر Pine إلى codegen API. API يُحوّل PineScript v6 إلى C++ ويُرجع كائناً مشتركاً مُجمَّعاً. لا يعمل أي مفسّر Pine في وقت التشغيل — المخرج كود آلة أصلي.
curl -s https://api.pineforge.io/v1/codegen \
-H "Authorization: Bearer $PINEFORGE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"source": "'"$(cat my_strategy.pine | jq -Rs .)"'"}' \
| jq -r '.artifact_url' \
| xargs curl -sL -o strategy.soالخطوة 3 — docker run. اسحب صورة runtime PineForge وثبّت OHLCV CSV الخاص بك بجانب القطعة المُجمَّعة. المحرّك يقرأ ملف البيانات، ينفّذ الاستراتيجية شمعةً بشمعة، ويكتب تقرير JSON إلى stdout.
docker run --rm \ -v "$(pwd)/strategy.so":/strategy.so \ -v "$(pwd)/ohlcv.csv":/data.csv \ ghcr.io/pineforge/runtime:latest \ run /strategy.so --data /data.csv --output json
مخرجات JSON تتضمّن قائمة صفقات كاملة بأسعار الدخول والخروج وفهارس الشموع وأحجام المراكز، وكتلة ملخّص بصافي PnL وأقصى تراجع وإجمالي الصفقات وعامل الربح ونسبة Sharpe. كل الحقول مستقرّة عبر إصدارات patch من نفس الإصدار الرئيسي — آمنة للتحليل في السكربتات.
هذا هو سير العمل بأكمله. بلا واجهة رسومية، بلا إعادة مصادقة حساب، بلا تحميل رسم بياني. إن كنت تستطيع تشغيل Docker، تستطيع تشغيل اختبارات PineForge التاريخية بدون اتصال.
ما يمكنك اختباره تاريخياً
الإجابة القصيرة: أي شيء يمكنك تسلسله إلى OHLCV. PineForge غير متّصل بأي مزوّد بيانات سوق. أنت تُحضر البيانات؛ المحرّك يُشغّل الاستراتيجية.
العملات الرقمية من بورصتك. اسحب بيانات الصفقات الخام من Binance أو Bybit أو Kraken أو أي بورصة لديها REST أو WebSocket API. جمّعها إلى أي إطار زمني تستخدمه استراتيجيتك. غذِّ CSV مباشرةً. اختبر على نفس تركيبة الزوج-والمكان التي ستتداول عليها.
الأسهم من بائع البيانات لديك. Polygon، Norgate، BarChart، Tiingo — اختر مصدرك، صدّر أسعاراً معدَّلة نقطية، شغّل اختبارات تاريخية بتنفيذاتك الفعلية وكونك الفعلي الخالي من تحيّز البقاء.
إعادات بناء الـ ticks. إذا كان لديك بيانات Level 2 وتريد الاختبار على شموع 1 ثانية تركيبية مُعاد بناؤها من ticks، تستطيع. ولّد OHLCV من بيانات tick الخاصة بك ومرّرها. المحرّك لا يعرف ولا يهتمّ من أين أتت الشموع.
البيانات البديلة. درجات المشاعر، مقاييس on-chain، معدّلات التمويل، انحراف الخيارات — إن استطعت التعبير عنها كسلسلة زمنية مُحاذاة لفهرس الشموع، تستطيع دمجها في Pine عبر أعمدة بيانات مخصّصة واختبارها بدون اتصال.
حزمة 167 استراتيجية المرجعية في المعرض اخْتُبرت تاريخياً مقابل صادرات TradingView CSV (للتحقّق من المطابقة) ومجموعات بيانات CSV مخصّصة (لاختبار الانحدار). 165 من الـ 167 وصلت إلى مرتبة الصارم-الممتاز المعتمدة (انحراف PnL ≤ 0.5% عبر نافذة المقارنة)؛ الاثنتان المتبقّيتان مطابقتان كاملتان صفقةً بصفقة في مرتبة القوي (انحراف بين 0.5% و1%، ضمن تسامح الاستنساخ لتحديد حجم الإنتاج). اختبار إضافي واحد — اختبار ضغط على هامش حقوق الملكية 1× — مُستثنى من المسح الرئيسي؛ يكشف عدم حتميّة في محاكي وسيط TV لا يمكننا نمذجتها من حالة Pine العامّة.