المقدمة
لنبدأ!
ما هي Pine Script؟
الإعداد
من السهل للغاية أن تبدأ استخدام لغة Pine Script. يتم تشغيل أي رمز نقوم بكتابته على خوادم TradingView، وبذلك يمكننا استخدام المحرر وتطوير البرامج النصية من المتصفح – دون الحاجة إلى تنزيل أو إجراء تهيئة إضافية.
من المحتمل أن يكون مخططك البياني أكثر تطوراً.
مخطط بياني كامل الميزات. يمكنك تعديل الإطار الزمني من خلال النقر على طرق العرض الموجودة أعلى علامات التبويب المميزة.
محرر Pine
study("My Script")
plot(close)
لنجرب الآن ما يلي:
//@version=4 study("My Script", overlay=true) plot(open, color=color.purple)
يفضل العديد من المتداولين مخططات حركة الأسعار حيث تمنحنا مزيد من المعلومات أكثر من الرسم البسيط مثلما فعلنا للتو. لنقم بإضافتهم فيما يلي.
//@version=4 study("My Script", overlay=true) plotcandle(open, high, low, close)
//@version=4 study("My Script", overlay=true) colors = open >= close ? color.red : color.green plotcandle(open, high, low, close)
يحدث ذلك في كل مخطط حركة أسعار فضلاً عن التحقق مما إذا كان سعر الافتتاح أكبر من سعر الإغلاق أم يعادله. في هذه الحالة، يعني ذلك أن الأسعار انخفضت على مدار فترة محددة، لذلك سيتم تلوين مخطط حركة الأسعار باللون الأحمر. بخلاف ذلك، سيتم تلوينه بالأخضر. قم بتعديل وظيفة رسم الشمعة() لإدخال نظام الألوان:
//@version=4 study("My Script", overlay=true) colors = open >= close ? color.red : color.green plotcandle(open, high, low, close, color=colors)
قم بإزالة المؤشرات الحالية إذا لم تكن قد قمت بإزالتها بالفعل، وأضف هذا المؤشر إلى المخطط البياني. يجب أن يكون لدينا شيء يمثل مخطط حركة الأسعار العادي.
رائع!
رسم المتوسطات المتحركة (MA)
المتوسط المتحرك البسيط (SMA)
قد نرسم أيضاً المتوسط المتحرك البسيط، لذلك ينبغي علينا المقارنة بينهما فيما بعد. أضف هذا الخط إلى البرنامج النصي الخاص بك:
plot(sma(close, 10))
يمثل هذا المتوسط العشرة أيام السابقة. عدّل الرقم بين الأقواس لمعرفة مدى تغيير المنحنى عند أخذ الفترات المختلفة في الاعتبار.
يستند المتوسط المتحرك البسيط إلى العشرة أيام السابقة.
المتوسط المتحرك الأسي (EMA)
قد يصعب فهم المتوسط المتحرك الأسي قليلاً، ولكن لا داعي للقلق. دعونا نتناول المعادلة بالتفصيل:
EMA = (Close - Previous Day’s EMA) * Multiplier - Previous Day’s EMA
فما الذي يخبرنا به ذلك؟ حسناً، يتم حساب المتوسط المتحرك الجديد لكل يوم بناءً على المتوسط المتحرك في اليوم السابق. المضاعف هو ما "يزن من بيانات" على مدار أحدث فترة، ويتم حسابه من خلال المعادلة التالية:
Multiplier = 2 / (Length of EMA + 1)
بالنسبة للمتوسطات المتحركة البسيطة، نحتاج إلى تحديد الفترة التي سيستغرقها المتوسط المتحرك الأسي. من ناحية التركيب، تتشابه خاصية رسم المتوسط المتحرك الأسي مع خاصية رسم المتوسط المتحرك البسيط. ارسمه إلى جانب المتوسط المتحرك البسيط حتى تتمكن من المقارنة بينهما:
//@version=4 study("My Script", overlay=true) plot(sma(close, 10)) plot(ema(close,10))
يمكنك رؤية اختلاف طفيف بين نوعين المتوسطين المتحركين.
البرامج النصية المدمجة
لقد قمنا بكتابة الرمز يدوياً حتى الآن كي تكن على دراية به. لكن لنقدم شيء يساعد في توفير الوقت، خاصةً في حالة كتابة برامج نصية أكثر تعقيداً، ولا نرغب في القيام بذلك من البداية.
ثم قم بإضافته إلى المخطط البياني.
رسم مؤشر القوة النسبية (RSI)
إجراء اختبار رجعي
توجد طريقة تتيح لنا اختبار المؤشرات المخصصة. على الرغم من أن الأداء السابق لا يعد ضماناً للنتائج المستقبلية، فعملية إجراء اختبار رجعي للبرامج النصية تمنحنا فكرة عن مدى فعاليتها في تلقي إشارات.
فيما يلي مثال على برنامج نصي بسيط. سنقوم بوضع استراتيجية بسيطة لدخول صفقة شراء عندما ينخفض سعر عملة البيتكوين عن 11,000 دولار والخروج من الصفقة عندما يتجاوز السعر مستوى 11,300 دولار. وبذلك، يمكننا معرفة مدى ربحية هذه الاستراتيجية تاريخياً.
//@version=4 strategy("ToDaMoon", overlay=true) enter = input(11000) exit = input(11300) price = close if (price <= enter) strategy.entry("BuyTheDip", strategy.long, comment="BuyTheDip") if (price >= exit) strategy.close_all(comment="SellTheNews")
وكذلك، في حالة انخفاض السعر أو تعادله مع سعر الدخول المطلوب، سيتم تقييم التعبير على أنه صحيح، وسنقوم بفتح صفقة شراء. بمجرد تعادل السعر أو تجاوزه سعر الخروج المطلوب، سيتم تفعيل الكتلة الثانية، وكذلك إغلاق جميع الصفقات المفتوحة.
يمكنك الآن رؤية المؤشرات على المخطط البياني. قد تحتاج إلى التصغير لإلقاء نظرة.
الصفقات التي قمنا بالدخول والخروج منها.
ربط العناصر معاً
حان وقت كتابة البرنامج الخاص بنا باستخدام بعض المفاهيم الموضحة حتى الآن. سوف نقوم بجمع كل من المتوسط المتحرك الأسي ومؤشر القوة النسبية باستخدام قيمتهم بهدف تلوين مخططات حركة الأسعار والحصول على نظرة متعمقة يمكن تصورها.
لا ينبغي تفسير ذلك على أنها مشورة مالية – حيث إنه لا توجد طريقة صحيحة محددة بموضوعية لاستخدام هذا المؤشر. على غرار جميع المؤشرات الأخرى، يجب استخدام هذا المؤشر مع الأدوات الأخرى لتطوير استراتيجية الاستثمار الخاصة بك.
لنبدأ العمل على البرنامج النصي الجديد. قم بإزالة جميع المؤشرات من المخطط البياني، وإخفاء المخطط البياني بيتكوين/BUSD، أيضاً، حتى يصبح لدينا مخطط بياني فارغ لبدء العمل.
study(title="Binance Academy Script", overlay=true)
study(title="Binance Academy Script", overlay=true) emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0)
يمكننا حساب قيمة المتوسط المتحرك الأسي لكل شمعة على المخطط البياني من خلال استخدام المتغير الجديد:
study(title="Binance Academy Script", overlay=true) emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0) emaVal = ema(close, emaLength)
رائع. فيما يتعلق بمؤشر القوة النسبية RSI. سوف نقوم بإدخال الفترة بطريقة مشابهة:
study(title="Binance Academy Script", overlay=true) emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0) emaVal = ema(close, emaLength) rsiLength = input(title="RSI Length", type=input.integer, defval=25, minval=0)
والآن يمكننا حساب ذلك:
study(title="Binance Academy Script", overlay=true) emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0) emaVal = ema(close, emaLength) rsiLength = input(title="RSI Length", type=input.integer, defval=25, minval=0) rsiVal = rsi(close, rsiLength)
في هذه المرحلة، يجب أن تكون على دراية بأن ألوان مخططات حركة الأسعار تعتمد على قيم المتوسط المتحرك الأسي ومؤشر القوة النسبية. لنتناول مثال عندما (أ) يتجاوز سعر إغلاق الشمعة المتوسط المتحرك الأسي و(ب) مؤشر القوة النسبية أعلى من 50.
لذلك، يبدو السطر التالي كما يلي:
study(title="Binance Academy Script", overlay=true) emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0) emaVal = ema(close, emaLength) rsiLength = input(title="RSI Length", type=input.integer, defval=25, minval=0) rsiVal = rsi(close, rsiLength) colors = close > emaVal and rsiVal > 50 ? color.green : color.red
ثم، رسم المتوسط المتحرك الأسي:
study(title="Binance Academy Script", overlay=true) emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0) emaVal = ema(close, emaLength) rsiLength = input(title="RSI Length", type=input.integer, defval=25, minval=0) rsiVal = rsi(close, rsiLength) colors = close > emaVal and rsiVal > 50 ? color.green : color.red plot(emaVal, "EMA")
study(title="Binance Academy Script", overlay=true) emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0) emaVal = ema(close, emaLength) rsiLength = input(title="RSI Length", type=input.integer, defval=25, minval=0) rsiVal = rsi(close, rsiLength) colors = close > emaVal and rsiVal > 50 ? color.green : color.red plot(emaVal, "EMA") plotcandle(open, high, low, close, color=colors)
وهكذا تكون قد انتهيت من البرنامج النصي! أضف ذلك إلى المخطط البياني لتراه قيد التشغيل.
المخطط البياني BTC/BUSD باستخدام مؤشر المتوسط المتحرك الأسي/مؤشر القوة النسبية.
أفكار ختامية
لقد تناولنا في هذا المقال بعض الأمثلة الأساسية على ما يمكن القيام به من خلال استخدام محرر Pine الخاص بمنصة TradingView. يجب أن تكون قادراً على القيام بتعليقات بسيطة على المخطط البياني للسعر من أجل الحصول على نظرة متعمقة إضافية من المؤشرات الخاصة بك.