June 25, 2019

إطلاق النسخة الجديدة باين سكريبت v4!

 

 v4!تعَرّف على النسخة الجديدة من لغة البرمجة باين سكريبت

التي تشمل عدداً لا بأس به من الميزات الجديدة. قمنا بتحسين بنية اللغة وأصلحنا عدة مشاكل. ومع ذلك، فإن الميزة الأكثر أهمية والتي طال انتظارها هي دعم الكائنات الرسومية.

سنذكر بإيجاز الميزات الجديدة في منشور المدونة هذا. يرجى الاطلاع على وثائق البرنامج والدليل المرجعي إذا كنت ترغب في معرفة التفاصيل (لاحظ أنه يمكنك الانتقال مباشرة إلى قسم وصف الكائنات الرسومية).

كائنات رسم الملصقات

تتيح لك رسم الملصقات على الرسم البياني بما في ذلك تلك التي تحتوي على نص كيفي. فيما يلي مثال على نص برمجي يرسم ملصقاً يُظهر سعر إغلاق آخر عم  label.new  الدالة

//@version=4

study(“Last Bar Price”, overlay=true)

 l = label.new(bar_index, na, ‘last price is ‘+tostring(close),

   color=close >= open ? color.green : color.red,

   textcolor=color.white,

  style=label.style_labeldown, yloc=yloc.abovebar)

label.delete(l[1])

label.* يمكنك تعديل وحذف كائن الملصق بعد إنشائه باستخدام مجموعة الدوال

. فيما يلي مثال على نص برمجي أكثر تعقيدًا باستخدام الملصق – النقاط المحورية أعلى/أدنى.

كائنات رسم الخطوط

 line.new الدالة

تسمح لك برسم خطوط على الرسم البياني. فيما يلي مثال على نص برمجي بسيط يرسم خطًا يربط بين أعلى سعر العمود الحالي وأدنى سعر مسجل على العمود العاشر قبله:

//@version=4

study(“Line”, overlay=true)

l = line.new(bar_index, high, bar_index[10], low[10], width = 4)

line.delete(l[1])

 line.*. كائنات الخطوط يمكن تعديلها وحذفها باستخدام مجموعة الدوال المناسبة

  (Zig Zag). فيما يلي مثال على نص برمجي أكثر تعقيدًا باستخدام كائنات الخطوط – الخط المتعرج

يرجى ملاحظة أنه يمكننا حاليًا عرض ما يقرب من 50 إلى 55 رسماً من نوع واحد (ملصق أو خط) لكل نص برمجي على الرسم البياني. هذا الحد المقصود مصمم لمنع الاستخدام المفرط للخادم.

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

سلاسل الحروف

نحن ندعم الآن المتغيرات المكونة من سلاسل الحروف كصنف من أصناف البيانات. فيما يلي مثال على استخدام سلاسل الحروف في الملصقات:

//@version=4

study(“Series string”, overlay = true)

draw_label(title) =>

   label.new(bar_index, high, text=title)

t = close >= open ? “green” : “red”

draw_label(t)

الكلمة المفتاحية Var

Var  يتم إعادة تهيئة المتغير الذي تم التصريح به بالطريقة المعتادة في كل مرة يتم فيها تنفيذ النص البرمجي. يفرض هذا على النص البرمجي توليد القيمة السابقة للمتغير بشكل صريح. الكلمة المفتاحية

تصرح عن متغير مع تهيئته مرة واحدة فقط. يسمح ذلك بحفظ قيمة المتغير تلقائيًا بين الأعمدة بدءًا من لحظة التهيئة أو آخر تعيين. فيما يلي مثال على نص برمجي يحسب عدد الأعمدة الخضراء على الرسم البياني:

//@version=4

study(“My Script”)

var s = 0.0if close >= open

 s := s + 1

plot(s)

 ، بواحد. يمكن أن تكون قيمة التهيئة أي تعبير حسابي. s تزداد قيمة المتغيّر close >= open في كل مرة يتم فيها استيفاء الشرط

 s := nz(s[1], s) يُجنّب استخدام النص البرمجي التالي Var بناء جملة التصريح بالمتغيرات باستخدام الكلمة المفتاحية

يمكن أن يكون مفيداً للغاية عند العمل بالرسومات. var  التصريح بالمتغيرات باستخدام مُعدِّل

إعادة تسمية القيم الثابتة والمتغيرات والدوال المدمجة

في باين سكريبت v4، تمت إعادة تسمية القيم الثابتة، والمتغيرات والدوال المدمجة التالية:

  1.   القيم الثابتة للألوان (على سبيل المثال أحمر) تم نقلها إلى مساحة الاسم * (على سبيل المثال
  2. دالة اللون colorتمت تغيير تسميها إلى new.
  3. القيم الثابتة لأنواع المدخلات (على سبيل المثال عدد صحيح) تم نقلها إلى مساحة الاسم * (على غرار input.integer).
  4. القيم الثابتة لنمط الرسومات (نمط مخطط المدرج الإحصائي مثلاً) تم نقلها إلى مساحة الاسم  style_ *(على سبيل المثال plot.style_histogram).
  5. نمط القيم الثابتة للدالة hline(الخط المُنقط  مثلاً) تم نقله إلى مساحة الاسم style_ * (على سبيل المثال hline.style_dotted).
  6. القيم الثابتة لأيام الأسبوع (على سبيل المثال الأحد) تم نقلها إلى  مساحة الاسم *(على سبيل المثال  dayofweek.sunday).
  7. متغيرات الإطار الزمني الحالي للرسم البياني (على سبيل المثال الفترة الزمنية، isintraday) تم نقلها إلى مساحة الاسم * (على سبيل المثال timeframe.periodو timeframe.isintraday).
  8. تم تغيير اسم المتغير interval إلى multiplier.
  9. تم تغيير تسمية المتغيرين ticker وtickerid إلى ticker وsyminfo.tickerid على التوالي.
  10. تم تغيير المتغيّر nالذي يحتوي على قيمة فهرس العمود إلى bar_index.

السبب وراء إعادة تسمية كل ما سبق هو هيكلة أدوات اللغة القياسية وجعل العمل بالنصوص البرمجية أسهل. تم تجميع الأسماء الجديدة وفقًا لنوع التعيين تحت البادئات الشائعة. على سبيل المثال، سترى قائمة بكل القيم الثابتة للألوان المتاحة إذا قمت بكتابة “لون” في المحرر وضغطت على “Ctrl + Space“.

التصريح بنوع متغير صريح

في باين سكريبت v4، لم يعد من الممكن إنشاء متغيرات بنوع بيانات غير معروف عن التصريح بها (انظر القيم غير المعروفة na value). تم القيام بذلك لتجنب عدد من المشكلات التي تنشأ عندما يتغير نوع المتغير بعد تهيئته بالقيمة na. من الآن فصاعدًا، يلزمك تحديد نوع القيم بوضوح باستخدام الكلمات المفتاحية أو دوال الفصيلة (مثلاً: float) عند التصريح بالمتغيرات ذات القيمة na:

//@version=4

study(“NA”, overlay=true)

float a = naa := if close >= open

       high

else

       low

plot(a)

جرّب النسخة الجديدة باين سكريبت v4! لقد جرب بعض المستخدمين الميزات الجديدة بالفعل وكتبوا عدة نصوص برمجية مثيرة للإعجاب باستخدام الرسومات.

فمثلاً، ريكاردو سانتوس كتب سلسلة من النصوص التي يمكنك رؤيتها أدناه:

 

يوريس دويك كتب نصاً برمجياً عن خطوط الاتجاه ، مع توضيح إمكانيات رسم الخطوط.

نأمل أن تلهمك هذه الأمثلة! يمكنك طرح الأسئلة ومناقشة المشكلات ومشاركة التعليقات في قسم الدردشة. نريد أن نشكر جميع Pinescripters أفراد شبكتنا الذين شاركوا في الاختبار التجريبي وساعدونا كثيرًا! يمكنك أيضًا طرح الأسئلة المتعلقة بالنص البرمجي على صفحة Stack Overflow الخاصة بنا.