بدائل Pine Script: Python وMQL5 وNinjaScript وEasyLanguage ومتى يكون كل منها الخيار الصحيح

يعتمد بديل Pine Script على سبب تقييد Pine لك. للبحث والإحصاءات وتعلّم الآلة أو البيانات الخارجية، يكون البديل هو Python (backtesting.py وvectorbt وBacktrader؛ وواجهات API الخاصة بالوسطاء للتنفيذ). ولوضع الأوامر، يكون البديل لغة منصتك: MQL5 على MetaTrader، وNinjaScript على NinjaTrader، وEasyLanguage على TradeStation وMultiCharts. وللمؤشرات على منصات أخرى، استخدم thinkScript أو AFL. احتفظ بـ Pine للفكرة والتنبيهات.
Pine Script هي أسهل لغة تداول موجودة، وهي أيضًا الأكثر تقييدًا، وعاجلًا أم آجلًا يصطدم كل مبرمج جاد على TradingView بأحد حدودها: لا بيانات خارجية، ولا تنفيذ أوامر، ومختبِر رجعي محدود، ومنصة واحدة. تسرد هذه الصفحة تلك الحدود، وتقارن اللغات التي تزيل كل حد منها — Python وMQL5 وNinjaScript وEasyLanguage وthinkScript وAFL وبناة no-code — وتنتهي بأداة تختار الخيار الصحيح بناءً على ما تبنيه.
مؤشرات تثبت نفسها أمام الجميع.
محرك واحد، وأربع أدوات دقيقة: Gold (XAU) Scalper، وGravity Zone المؤسسي، ومذبذب الزخم Zeno، وZeno Stocks للأسهم.
القائمة المختصرة
يبحث الناس عن بدائل Pine Script لأربعة أسباب مختلفة، والبديل الصحيح يعتمد على السبب الخاص بك. إذا كان Pine يبدو مقيدًا لأنه لا يستطيع استيراد مكتبة، أو استدعاء API، أو تشغيل اختبار walk-forward حقيقي، فالبديل هو Python. وإذا كان مقيدًا لأنه لا يستطيع وضع الأوامر، فالبديل هو لغة المنصة التي ستنفذ ذلك — MQL5 على MetaTrader، وNinjaScript على NinjaTrader، وEasyLanguage على TradeStation وMultiCharts — أو Python مقابل API وسيط.
إذا كنت على منصة مختلفة وتريد مؤشرًا فقط، فالبديل هو لغة تلك المنصة — thinkScript على thinkorswim، وAFL على AmiBroker. وإذا كانت المشكلة أنك لا تستطيع البرمجة إطلاقًا، فالبديل هو منشئ no-code للنسخة الأولى وPine للنسخة الثانية، لأن Pine لا يزال أسهل لغة في هذه الصفحة.
ما لا يمنحك إياه أي بديل هو TradingView نفسه: الرسم البياني، والتنبيهات، وwebhooks، وأكبر مكتبة سكربتات عامة في التداول. لهذا فالإجابة الصادقة لمعظم المتداولين ليست "استبدل Pine"، بل "أضف Python للجزء الذي لا يستطيع Pine فعله". تقارن بقية هذه الصفحة الخيارات، وتوضح تكلفة كل خيار عليك، وتمنحك أداة تختار واحدًا بناءً على ما تبنيه.
ما الذي لا يستطيع Pine Script فعله؟
Pine لغة مخصصة لمجال معين: تعمل داخل بيئة TradingView المعزولة، سكربت واحد لكل رسم بياني، وعلى البيانات التي يقدمها TradingView. هذا التصميم هو سبب سهولتها، وهو يضع حدودًا صارمة لا تزيلها أي نسخة من Pine — بما في ذلك v6:
- لا بيانات خارجية ولا مكتبات خارجية. لا طلبات HTTP، ولا استيرادات خارج مكتبات Pine، ولا تدفقات تدفق الأوامر، ولا أساسيات خارج ما يعرضه TradingView كدوال مدمجة.
- لا تنفيذ أوامر. تستطيع استراتيجية Pine إطلاق تنبيه بحمولة JSON إلى webhook؛ لكن شيئًا آخر يجب أن يضع الصفقة.
- إحصاءات اختبار رجعي محدودة. يملأ مختبر الاستراتيجيات الصفقات افتراضيًا عند إغلاق الشمعة، ولا يملك walk-forward أو Monte Carlo، ويحد التاريخ حسب الخطة. يشرح دليل الاختبار الرجعي في TradingView ما يستطيع وما لا يستطيع إخبارك به.
- حدود التنفيذ. حجم السكربت، ومراجع التاريخ، واستدعاءات security()، وكائنات الرسم لها سقوف؛ ولا تناسبها منطق الرموز المتعددة الثقيل أو منطق تعلّم الآلة.
- مرتبطة بمنصة واحدة. يعمل كودك على TradingView ولا يعمل في أي مكان آخر. إذا غادرت، يبقى هناك.
- مصائد إعادة الرسم للمبتدئين. ليست حدًا في اللغة، لكنها سبب يدفع الناس للبحث في مكان آخر بعد أن يتضرروا؛ يشرح دليل عدم إعادة الرسم كيف تتجنبها داخل Pine.
إذا لم يزعجك أي من ذلك، فأنت لا تحتاج إلى بديل. وإذا أزعجك أحدها، يوضح القسم التالي أي لغة تزيله.
كيف تقارن بدائل Pine Script؟

| اللغة / المنصة | منحنى التعلم | الاختبار الرجعي | التنفيذ المباشر | المجتمع | التكلفة | الأفضل لـ |
|---|---|---|---|---|---|---|
| Pine Script (TradingView) | الأسهل هنا | مختبر أساسي | تنبيهات وwebhooks فقط | الأكبر — أكثر من 100,000 سكربت عام | مجاني؛ خطط مدفوعة لمزيد من التنبيهات والتاريخ | المؤشرات، والتنبيهات، وفحوص الاستراتيجية السريعة |
| Python (backtesting.py, vectorbt, Backtrader, ccxt, broker APIs) | متوسط؛ حاد إذا بدأت من الصفر | الأفضل المتاح — walk-forward، وMonte Carlo، ونماذج تعبئة مخصصة | أي وسيط أو منصة تداول لديها API | ضخم، لكنه غير مخصص للتداول | مجاني؛ تدفع مقابل البيانات والخادم | البحث، والإحصاءات، وML، والأتمتة |
| MQL4 / MQL5 (MetaTrader) | شبيه بـ C؛ أصعب من Pine | مختبر استراتيجيات جيد مع تحسين | أصلي — Expert Advisors | كبير، ومتمركز حول الفوركس | مجاني مع المنصة | أتمتة الفوركس وCFD |
| EasyLanguage (TradeStation, MultiCharts) | تُقرأ مثل الإنجليزية | قوية، مستخدمة منذ عقود | أصلي | قديم لكنه عميق | اشتراك منصة أو وساطة | أنظمة العقود المستقبلية والأسهم على تلك المنصات |
| NinjaScript (NinjaTrader, C#) | برمجة حقيقية | قوي، مع إعادة تشغيل على مستوى Tick | أصلي، مع تحكم على مستوى الأمر | نشط، ومتمركز حول العقود المستقبلية | مجاني للرسم البياني؛ رخصة للتداول المباشر | أتمتة العقود المستقبلية مع DOM وتدفق الأوامر |
| thinkScript (thinkorswim) | بسيط | حد أدنى | لا يوجد | متوسط | مجاني مع حساب Schwab | مؤشرات ودراسات لمتداولي Schwab |
| AFL (AmiBroker) | متوسط | اختبارات رجعية لمحافظ بسرعة عالية جدًا | عبر إضافات الوسطاء | صغير وجاد | رخصة لمرة واحدة | بحث أنظمة المحافظ والأسهم |
| بناة no-code | لا يوجد | يختلف؛ غالبًا سطحي | بعضه، عبر وسطاء متصلين | صغير | اشتراك | النسخة الأولى من مجموعة قواعد بسيطة |
اقرأ عمود "الأفضل لـ" وستنكمش المصفوفة إلى ثلاث إجابات: Pine للرسم البياني، وPython للبحث وأي شيء خارجي، ولغة منصة التنفيذ الخاصة بك للأوامر المباشرة على تلك المنصة. دليل Pine Script v6 هو نقطة البداية إذا قررت البقاء؛ أما الأقسام أدناه فهي للأسباب الثلاثة للمغادرة.
متى تكون Python بديل Pine Script الصحيح؟
Python ليست لغة رسوم بيانية؛ إنها لغة عامة تمتلك أفضل مكتبات البيانات والإحصاء الموجودة، وهذا بالضبط سبب كونها الإجابة عندما تكون بيئة Pine المعزولة هي المشكلة. حزمة نموذجية: pandas للبيانات، ومكتبة اختبار رجعي — backtesting.py لمشروع أول، وvectorbt للسرعة عبر آلاف مجموعات المعلمات، وBacktrader للواقعية القائمة على الأحداث — وللتنفيذ، ccxt لمنصات تداول الكريبتو، أو مكتبات Interactive Brokers أو Alpaca للأسهم، أو واجهات API الخاصة بـ Tradovate وRithmic للعقود المستقبلية. تعلّم الآلة هو scikit-learn وما تشاء فوقه.
التكلفة هي خط المعالجة. Pine يعني عدّل وشاهد؛ أما Python فتعني تنزيل البيانات، وتنظيفها، وبناء الاختبار، ورسم النتيجة في مكان آخر. يوضح دليل الاختبار الرجعي لماذا ينتج خط المعالجة الأطول أرقامًا يمكنك الوثوق بها — اختبارات walk-forward، ونماذج تعبئة صادقة، وMonte Carlo على منحنى رأس المال — ويأخذ دورة التداول الخوارزمي المجانية مستخدم Pine خلال الانتقال. معظم المتداولين الذين ينجحون في ذلك ينتهون إلى الاثنين معًا: الفكرة مرسومة في Pine على الرسم البياني الذي يراقبونه، والإحصاءات في Python.
أي لغات تضع أوامر مباشرة حيث لا يستطيع Pine؟
إذا كان سبب مغادرتك Pine أنه لا يستطيع وضع الأوامر، فالبديل تحدده جهة التنفيذ. يكتب متداولو MetaTrader مستشاري Expert Advisors بلغة MQL5 (وMQL4 على المنصة الأقدم): شبيهة بـ C، موثقة جيدًا، ويدعمها كل وسيط فوركس لديه خادم MetaTrader، لذلك يعمل EA على VPS دون جسر. يكتب متداولو NinjaTrader بلغة NinjaScript في C#، وهي برمجة حقيقية لكنها تمنح تحكمًا على مستوى الأمر، وإعادة تشغيل Tick، ووصولًا إلى DOM — وهي أسباب متداول العقود المستقبلية للوجود هناك. ويكتب متداولو TradeStation وMultiCharts بلغة EasyLanguage، وهي الأكثر قابلية للقراءة من بين الثلاث، ولها عقود من الأنظمة المنشورة.
تتبادل الثلاثة الشيء نفسه للسبب نفسه: منحنى تعلم أشد من Pine مقابل أوامر تنتقل مباشرة من الكود إلى الوسيط. المسار الأوسط — احتفظ بالمنطق في Pine، وأطلق webhook من تنبيه TradingView، ودع جسرًا ينفذ — هو طريقة عمل QuantumBot وطريقة عمل معظم الأتمتة المبنية على TradingView؛ يكلفك خطوة وسيطة وطرفًا ثالثًا، لكنه يتيح لك الاحتفاظ بالرسم البياني. يقارن دليل بوتات التداول الجسور؛ وتشرح صفحة شركات التمويل التي تستخدم MT4 لماذا لا يزال عالم شركات تمويل الفوركس يعمل على MQL.
ما تكلفة كل مسار من الفكرة إلى الرسم البياني؟

الصورة هي الحجة. في Pine تتحول الفكرة إلى إشارة على الرسم البياني في ثلاث خطوات وإلى تنبيه في أربع، وكل خطوة منها تحدث داخل التبويب المفتوح لديك بالفعل. في Python تكون الفكرة نفسها خمس خطوات، اثنتان منها — الحصول على بيانات نظيفة ورسم المخرجات — أعمال يقوم بها Pine نيابة عنك، والنتيجة كود يعمل في أي مكان، ويُختبر بشكل صحيح، وينفذ مباشرة. لا أحدهما أفضل؛ إنما سعرهما مختلف. Pine يأخذ منك المرونة مقابل السرعة؛ وPython يأخذ منك الوقت مقابل الملكية. الأداة أدناه تسعر ذلك لما تبنيه فعليًا.
أي لغة تناسبك؟
اختر ما تبنيه، وأين ترسم مخططاتك، وكم تكتب من الكود، والسوق، وهل يجب أن يعمل دون مراقبة. تسمي الأداة اللغة والمنصة المناسبتين، وتخبرك بما تتخلى عنه عند اختيارهما.
بيانات مرجعية
| البند | القيمة |
|---|---|
| Pine Script | لغة TradingView المعزولة؛ النسخة الحالية v6؛ تنبيهات وwebhooks، بلا أوامر، ولا بيانات خارجية |
| مكتبات الاختبار الرجعي في Python | backtesting.py (بسيطة)، وvectorbt (سريعة وموجهة)، وBacktrader (قائمة على الأحداث)، وZipline / QuantConnect Lean (بطابع مؤسسي) |
| مكتبات التنفيذ في Python | ccxt (منصات تداول الكريبتو)، وib_insync / IBKR API، وAlpaca، وواجهات API الخاصة بـ Tradovate وRithmic |
| MetaTrader | MQL4 (MT4)، وMQL5 (MT5) — ينفذ Expert Advisors محليًا؛ ومختبر استراتيجيات مع تحسين |
| NinjaTrader | NinjaScript (C#) — مؤشرات واستراتيجيات مع تحكم على مستوى الأمر؛ وإعادة تشغيل Tick |
| TradeStation / MultiCharts | EasyLanguage — مقروءة، وناضجة، وتنفيذ أصلي |
| thinkorswim | thinkScript — مؤشرات فقط، بلا تنفيذ |
| AmiBroker | AFL — اختبار رجعي لمحافظ بسرعة عالية جدًا؛ تنفيذ عبر الإضافات |
| No-code | بناة قواعد داخل المنصات وخدمات طرف ثالث؛ جيدون للنسخة الأولى، وسطحيون في الإحصاءات |
| الحالة النهائية المعتادة | Pine على الرسم البياني للفكرة والتنبيهات؛ وPython للبحث والإحصاءات؛ ولغة منصة التنفيذ، أو جسر webhook، للأوامر |
مثال عملي: استراتيجية واحدة، ثلاث لغات
الاستراتيجية: ادخل شراء عندما تكتسح شمعة 15 دقيقة قاع اليوم السابق ثم تغلق الشمعة التالية فوقه مرة أخرى بجسم يبلغ ضعف متوسط 20 شمعة؛ وقف الخسارة أسفل الاكتساح؛ والهدف عند قمة اليوم السابق.
في Pine يكون كل شيء ثلاثين سطرًا: request.security لقاع اليومي وقمته، وشرط حجم الجسم، وstrategy.entry وstrategy.exit، وalert() مع رسالة JSON. يظهر على الرسم البياني خلال عشر دقائق، ويمنحك المختبر نسبة الصفقات الرابحة وعامل الربح، ويمكن أن يطلق تنبيهًا إلى webhook. ما لا يستطيع إخبارك به هو ما إذا كانت الميزة تصمد في ستة أشهر مختلفة أو مع تعبئة واقعية على شمعة الاكتساح.
في Python يكون ذلك مئة سطر باستخدام backtesting.py: تحميل شموع 15 دقيقة والشموع اليومية، وحساب الشروط في pandas، وتعريف التعبئة باعتبارها افتتاح الشمعة التالية زائد الفارق السعري (السبريد)، وتشغيل الاختبار، ثم تشغيله مرة أخرى على فترة لم ترها القواعد من قبل، ثم مسح مضاعف الجسم من 1.5 إلى 3 والنظر هل النتيجة هضبة أم قمة حادة. هذا عمل يوم لمن يعرف الحزمة، وأسبوعان لمن يتعلمها، وهو الفرق بين رقم واستنتاج.
في MQL5 يكون Expert Advisor من مئة وخمسين سطرًا يفعل ما تفعله نسخة Pine ويضع الأوامر أيضًا على خادم الوسيط لحظة تحقق الشرط، مع وقف الخسارة والهدف مرفقين — بلا webhook، ولا جسر، ولا حاسوب محمول. سيحسن المختبر المضاعف لك، وهذا تحديدًا ما يجب الحذر منه. ثلاث لغات، وفكرة واحدة؛ كل واحدة هي الاختيار الصحيح لسؤال مختلف عنها.
ما الأخطاء التي يرتكبها المتداولون عند مغادرة Pine؟
- المغادرة للسبب الخطأ. تُصلح إعادة الرسم والاختبارات الرجعية المحدودة بكتابة Pine أفضل، لا بتغيير اللغة.
- بدء Python من طبقة التنفيذ. ابدأ باختبار رجعي لشيء تتداوله بالفعل؛ يأتي التنفيذ أخيرًا.
- الثقة بمحسّن المنصة. سيطابق محسّنا MQL5 وNinjaTrader أي معلمة مع أي فترة؛ استخدم walk-forward وإلا فهو ليس اختبارًا.
- إعادة بناء الرسم البياني. رسومات Python للبحث؛ واصل مراقبة السوق على TradingView مع الفكرة مرسومة في Pine.
- اختيار لغة قبل اختيار وسيط. يقرر مكان الحساب التنفيذ المباشر، لا التفضيل.
- الاستهانة بخط المعالجة. البيانات النظيفة ونموذج التعبئة هما معظم العمل في Python ولا وجود لهما في Pine.
- شراء اختبار رجعي من منشئ no-code وكأنه اختبار حقيقي. الإحصاءات السطحية ذات الواجهة الجميلة تظل سطحية.
أين يقع Zeno والمؤشرات المجانية؟
كل ما يعمل على رسم بياني في هذا الموقع مكتوب بلغة Pine، وعلى الشموع المؤكدة، لأن الرسم البياني هو المكان الذي ينظر إليه المتداول وTradingView هو المكان الذي ينظر إليه معظم المتداولين. منطق هيكل Zeno وكتلة الأوامر (Order Block) وفجوة القيمة العادلة (FVG) والاكتساح هو بالضبط نوع الأشياء التي يتقنها Pine؛ والمؤشرات المجانية هي الفكرة نفسها مفتوحة لك لتقرأها وتتعلم منها.
البحث وراءها — نسب الصفقات الرابحة في السجل العام، واختبارات المعلمات — يتم بالطريقة التي توصي بها هذه الصفحة، خارج البيئة المعزولة، والتنفيذ — QuantumBot — يعمل عبر مسار webhook من تنبيه Pine. Pine للرسم البياني، وPython للإثبات، وجسر أو API وسيط للأوامر: هذه هي إجابة "بدائل Pine Script" لِكل من يسأل تقريبًا.
لا يُستبدل Pine؛ بل يُستكمل. احتفظ به لما يفعله أفضل من غيره — الفكرة مرسومة على الرسم البياني الذي تراقبه، مع التنبيهات — وأضف Python للإحصاءات والبيانات الخارجية وتعلّم الآلة الذي لا يستطيع الوصول إليه، وأضف لغة منصة التنفيذ الخاصة بك أو جسر webhook للأوامر. غادر Pine للسبب الخطأ — إعادة الرسم، أو اختبار رجعي محدود — وستحمل المشكلة إلى لغة أصعب.
◆ اختبار تفاعلي
هل تعرف أي جدار تصطدم به؟
أسئلة يطرحها المتداولون عن بدائل Pine Script
يعتمد ذلك على الحد الذي اصطدمت به. Python هي أفضل بديل للبحث والإحصاءات وتعلّم الآلة والبيانات الخارجية؛ وMQL5 وNinjaScript وEasyLanguage هي بدائل وضع الأوامر محليًا على MetaTrader وNinjaTrader وTradeStation أو MultiCharts؛ وthinkScript وAFL هما لغتا المؤشرات في thinkorswim وAmiBroker. بالنسبة لمعظم المتداولين، الإجابة هي الاحتفاظ بـ Pine للرسم البياني وإضافة Python لما لا يستطيع فعله.
بالنسبة لصرامة الاختبار الرجعي، والوصول إلى البيانات، والأتمتة، نعم — اختبارات walk-forward، ونماذج تعبئة مخصصة، وأي مصدر بيانات، وأي API وسيط. أما لوضع مؤشر على رسم بياني مع تنبيهات خلال عشر دقائق، فلا: Pine أسرع وأبسط ويعيش على المنصة التي تراقبها بالفعل. إنهما ليسا متنافسين؛ معظم مبرمجي TradingView الجادين ينتهون إلى استخدام الاثنين معًا.
ليس مباشرة. تستطيع استراتيجية Pine إطلاق تنبيه برسالة JSON إلى webhook، ثم يضع جسر أو بوت الأمر لدى الوسيط. هذه هي طريقة عمل QuantumBot ومعظم أتمتة TradingView. للتنفيذ المحلي، تحتاج إلى لغة المنصة نفسها — MQL5 أو NinjaScript أو EasyLanguage — أو Python مقابل API وسيط أو منصة تداول.
thinkScript إذا كنت على thinkorswim، وEasyLanguage إذا كنت على TradeStation، ومنشئ no-code للنسخة الأولى في أي مكان آخر. لكن Pine أسهل منها جميعًا، لذلك إذا كان سبب بحثك هو الصعوبة لا حدًا صارمًا، فالإجابة عادةً أن تبقى وتتعلم Pine v6 كما ينبغي.
Pine للمؤشرات والتنبيهات وفحوص الاستراتيجية السريعة على TradingView؛ وMQL5 لـ Expert Advisors التي تنفذ على خادم وسيط MetaTrader دون جسر. يختار متداولو Forex وCFD الذين يريدون أتمتة تعمل دون مراقبة على VPS لغة MQL5؛ أما الباقون فيحتفظون بـ Pine للرسم البياني، وإذا أتمتوا يستخدمون جسر webhook.
ليس تلقائيًا بأي طريقة موثوقة — فالدوال المدمجة، ونموذج التنفيذ شمعة بشمعة، وrequest.security لا تملك مكافئات مباشرة. إعادة كتابة استراتيجية Pine من ثلاثين سطرًا في backtesting.py أو vectorbt تستغرق بضع ساعات لشخص يعرف الاثنين، وغالبًا تكون إعادة الكتابة هي المكان الذي يظهر فيه الاستشراف الخفي في الاستراتيجية.
backtesting.py لمشروع أول (بسيطة ومقروءة)، وvectorbt للسرعة عبر عمليات مسح معلمات كبيرة، وBacktrader للواقعية القائمة على الأحداث مع تكامل الوسيط، وQuantConnect Lean أو Zipline للبحث ذي الطابع المؤسسي. وللتنفيذ: ccxt لمنصات تداول الكريبتو، وib_insync لـ Interactive Brokers، ومكتبة Alpaca للأسهم الأمريكية، وواجهات API الخاصة بـ Tradovate أو Rithmic للعقود المستقبلية.
حسّن v6 اللغة — الطلبات الديناميكية، وأنواع أفضل، والأداء — لكن حدود البيئة المعزولة موجودة بالتصميم: لا تزال بلا بيانات خارجية، ولا مكتبات خارج مكتبات Pine، ولا تنفيذ أوامر مباشر، والمختبر نفسه. إذا كان v5 لا يستطيع فعل ما تحتاج إليه، فلن يستطيع v6 أيضًا.
لا. إعادة الرسم خاصية في طريقة كتابة السكربت — استخدام شموع غير مؤكدة أو استشراف في request.security — وليست خاصية في اللغة. السكربتات المكتوبة على الشموع المؤكدة لا تعيد الرسم في Pine، والسكربت الرديء المكتوب في MQL5 أو Python يعيد الرسم بالسهولة نفسها.
Pine Script، على الشموع المؤكدة، لأن الرسم البياني هو المكان الذي ينظر إليه المتداول. البحث وراءها يتم خارج البيئة المعزولة بإحصاءات walk-forward صحيحة، وينفذ QuantumBot من تنبيهات Pine عبر webhook — الإعداد نفسه بثلاث طبقات الذي توصي به هذه الصفحة.
المراجع والأدلة ذات الصلة
اقرأ التالي
- بدء استخدام Pine Script v6
- دليل الاختبار الرجعي في TradingView
- الاختبار الرجعي لاستراتيجية تداول
- دورة التداول الخوارزمي المجانية
- مؤشرات لا تعيد الرسم
- أفضل بوتات التداول
- هل تعمل بوتات التداول؟
- التداول الخوارزمي للمبتدئين
- شركات التمويل التي تستخدم MT4
- تداول SMC الخوارزمي (Academy)
- مؤشرات مجانية — سكربتات Pine مفتوحة
- QuantumBot — التنفيذ من تنبيهات Pine