Scribunto

From binaryoption
Jump to navigation Jump to search
Баннер1
  1. Scribunto

Scribunto هي محرك نصوص برمجة مضمن في MediaWiki يسمح بتوسيع وظائف القوالب والوحدات باستخدام لغة برمجة Lua. تُعد Scribunto أداة قوية للغاية للمطورين الذين يرغبون في إنشاء قوالب ووحدات أكثر تعقيدًا ومرونة من تلك التي يمكن إنشاؤها باستخدام parser functions التقليدية. هذا المقال موجه للمبتدئين ويهدف إلى تقديم فهم شامل لـ Scribunto، بما في ذلك تركيبها، ومفاهيمها الأساسية، وكيفية استخدامها لإنشاء حلول قوية في بيئة MediaWiki.

ما هي Scribunto ولماذا نستخدمها؟

قبل Scribunto، كان تطوير القوالب المعقدة في MediaWiki محدودًا للغاية بسبب قيود parser functions. كانت هذه الوظائف بطيئة، وغير مرنة، وتقدم صعوبة في التعامل مع المنطق المعقد. Scribunto حلت هذه المشكلات من خلال تقديم القدرة على كتابة كود Lua مباشرة داخل قوالب ووحدات MediaWiki.

  • الأداء: كود Lua يتم تنفيذه بشكل أسرع بكثير من parser functions، مما يؤدي إلى تحسين الأداء العام للقوالب التي تستخدم Scribunto.
  • المرونة: Lua هي لغة برمجة كاملة الميزات، مما يسمح للمطورين بتنفيذ منطق معقد بسهولة.
  • القابلية للتوسع: Scribunto تسمح بإنشاء وحدات قابلة لإعادة الاستخدام، مما يقلل من تكرار الكود ويجعل الصيانة أسهل.
  • الأمان: Scribunto يتم تشغيلها في بيئة معزولة (sandbox)، مما يمنع الكود الضار من التأثير على بقية نظام MediaWiki.

المتطلبات الأساسية

قبل البدء في استخدام Scribunto، تأكد من أن لديك:

  • وصول إلى MediaWiki 1.23 أو أحدث: Scribunto مدمجة في MediaWiki منذ الإصدار 1.23.
  • فهم أساسي لـ HTML وCSS: فهم هذه التقنيات سيساعدك على تنسيق الإخراج من قوالب ووحدات Scribunto.
  • معرفة بـ Lua: على الرغم من أنك لست بحاجة إلى أن تكون خبيرًا في Lua، إلا أن معرفة أساسية باللغة ستكون مفيدة جدًا. تعتبر Lua لغة سهلة التعلم نسبيًا.
  • بيئة تطوير: محرر نصوص أو بيئة تطوير متكاملة (IDE) لكتابة كود Lua.

تثبيت Scribunto

في معظم الحالات، Scribunto مثبتة بالفعل على خوادم MediaWiki. ومع ذلك، إذا لم يكن الأمر كذلك، ستحتاج إلى تثبيتها. تعتمد عملية التثبيت على نظام التشغيل الخاص بك. راجع manual:Extension installation للحصول على تعليمات مفصلة.

المفاهيم الأساسية

  • الوحدات (Modules): الوحدات هي ملفات Lua تحتوي على كود قابل لإعادة الاستخدام. يتم تخزينها في مساحة اسم "Module" في MediaWiki. على سبيل المثال، `Module:MyModule`.
  • القوالب (Templates): يمكن للقوالب استدعاء وظائف من الوحدات لتنفيذ منطق معقد.
  • الإطارات (Frames): الإطار هو كائن Lua يمثل سياق استدعاء القالب أو الوحدة. يتضمن معلومات حول المعلمات التي تم تمريرها إلى القالب أو الوحدة، والصفحة التي تم استدعاء القالب أو الوحدة منها.
  • المكتبات (Libraries): Scribunto توفر مجموعة من المكتبات المدمجة التي توفر وظائف إضافية، مثل الوصول إلى بيانات MediaWiki.

كتابة أول وحدة Scribunto

لنبدأ بإنشاء وحدة بسيطة تعرض رسالة ترحيب.

1. إنشاء صفحة الوحدة: قم بإنشاء صفحة جديدة في مساحة اسم "Module" باسم `Module:HelloWorld`. 2. أضف الكود التالي إلى الصفحة:

```lua local p = {}

function p.helloWorld()

 return "أهلاً بالعالم!"

end

return p ```

  • شرح الكود:
   *   `local p = {}`:  يقوم بإنشاء جدول Lua فارغ يسمى `p`.  سيحتوي هذا الجدول على وظائف الوحدة.
   *   `function p.helloWorld()`:  يعرف وظيفة تسمى `helloWorld`.  هذه الوظيفة لا تأخذ أي معلمات وتعيد سلسلة نصية.
   *   `return "أهلاً بالعالم!"`:  تعيد سلسلة نصية تحتوي على رسالة الترحيب.
   *   `return p`:  تعيد الجدول `p`، الذي يحتوي على وظائف الوحدة.

استخدام الوحدة في قالب

الآن، لنستخدم الوحدة التي أنشأناها في قالب.

1. إنشاء صفحة القالب: قم بإنشاء صفحة جديدة باسم `Template:HelloWorld`. 2. أضف الكود التالي إلى الصفحة:

```wiki {{#invoke:HelloWorld|helloWorld}} ```

  • شرح الكود:
   *   `{{#invoke:`:  يبدأ استدعاء Scribunto.
   *   `HelloWorld`:  اسم الوحدة التي نريد استدعاءها.
   *   `helloWorld`:  اسم الوظيفة التي نريد استدعاءها داخل الوحدة.
   *   `}}`:  ينهي استدعاء Scribunto.

3. حفظ الصفحة: احفظ صفحة القالب. 4. اختبار القالب: قم بإنشاء صفحة جديدة أو تعديل صفحة موجودة وأضف الكود التالي:

```wiki Template:HelloWorld ```

يجب أن يعرض هذا الصفحة رسالة "أهلاً بالعالم!".

التعامل مع المعلمات

يمكن للقوالب تمرير معلمات إلى الوحدات. للوصول إلى هذه المعلمات داخل الوحدة، استخدم جدول `args`.

```lua local p = {}

function p.greet(name)

 if name then
   return "أهلاً بك يا " .. name .. "!"
 else
   return "أهلاً بك!"
 end

end

return p ```

في هذا المثال، تأخذ الوظيفة `greet` معلمة واحدة تسمى `name`. إذا تم تمرير اسم، فإن الوظيفة تعيد رسالة ترحيب مخصصة. وإلا، فإنها تعيد رسالة ترحيب عامة.

لاستخدام هذه الوحدة، يمكنك استدعاء القالب `Template:Greet` بالشكل التالي:

```wiki Template:Greet ```

سيؤدي هذا إلى عرض "أهلاً بك يا اسمك!". إذا استدعيت القالب بدون أي معلمات، فسيتم عرض "أهلاً بك!".

المكتبات المدمجة

Scribunto توفر العديد من المكتبات المدمجة التي توفر وظائف إضافية. بعض المكتبات الأكثر شيوعًا تشمل:

  • mw.title: يوفر وظائف للتعامل مع عناوين الصفحات.
  • mw.text: يوفر وظائف للتعامل مع النصوص.
  • mw.ustring: يوفر وظائف للتعامل مع السلاسل النصية Unicode.
  • mw.html: يوفر وظائف للتعامل مع HTML.
  • mw.site: يوفر معلومات حول الموقع الحالي.

استراتيجيات الخيارات الثنائية و Scribunto

يمكن استخدام Scribunto لإنشاء أدوات مساعدة للمتداولين في الخيارات الثنائية. إليك بعض الأمثلة:

  • حساب الأرباح والخسائر: يمكنك كتابة وحدة Scribunto تحسب الأرباح والخسائر المحتملة بناءً على حجم التداول، وسعر الإضراب، ووقت انتهاء الصلاحية.
  • تحليل الاتجاهات: يمكنك استخدام Scribunto لتحليل بيانات الأسعار التاريخية وتحديد الاتجاهات. يمكنك استخدام مؤشرات مثل Moving Average وMACD لتحديد نقاط الدخول والخروج المحتملة.
  • إدارة المخاطر: يمكنك كتابة وحدة Scribunto تساعد المتداولين على إدارة المخاطر من خلال تحديد حجم التداول الأمثل بناءً على رأس المال المتاح وتحمل المخاطر.
  • تنفيذ استراتيجيات التداول: يمكن برمجة استراتيجيات مثل 60-second strategy أو Binary options trading with news events باستخدام Scribunto.
  • مؤشرات فنية: يمكنك تنفيذ مؤشرات فنية مثل Bollinger Bands وRSI باستخدام Scribunto.
  • تحليل حجم التداول: يمكنك تحليل حجم التداول باستخدام Scribunto لتحديد قوة الاتجاهات.
  • استراتيجيات التداول بناءً على أنماط الشموع: يمكنك التعرف على أنماط الشموع مثل Engulfing pattern وDoji باستخدام Scribunto.
  • تنبيهات التداول: يمكنك إنشاء نظام تنبيهات تداول يرسل إشعارات عندما يتم استيفاء شروط معينة.
  • محاكاة التداول: يمكنك إنشاء محاكي تداول يسمح للمتداولين بممارسة استراتيجياتهم دون المخاطرة بأموال حقيقية.

أمثلة متقدمة

  • وحدة لحساب نسبة المخاطرة إلى العائد:

```lua local p = {}

function p.riskRewardRatio(profit, loss)

 if loss == 0 then
   return "غير محدد"
 else
   return profit / loss
 end

end

return p ```

  • وحدة لتحليل بيانات الشموع اليابانية: (هذا مثال أكثر تعقيدًا ويتطلب معرفة متقدمة بـ Lua و تحليل الشموع)

نصائح وأفضل الممارسات

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

الموارد الإضافية

الخلاصة

Scribunto هي أداة قوية يمكن أن تساعدك في إنشاء قوالب ووحدات أكثر تعقيدًا ومرونة في MediaWiki. من خلال فهم المفاهيم الأساسية واتباع أفضل الممارسات، يمكنك استخدام Scribunto لإنشاء حلول قوية تلبي احتياجاتك الخاصة. بالإضافة إلى ذلك، يمكن استخدام Scribunto لتطوير أدوات مساعدة للمتداولين في الخيارات الثنائية، مما يساعدهم على اتخاذ قرارات تداول أفضل.

ابدأ التداول الآن

سجّل في IQ Option (الحد الأدنى للإيداع 10 دولار) افتح حساباً في Pocket Option (الحد الأدنى للإيداع 5 دولار)

انضم إلى مجتمعنا

اشترك في قناة Telegram الخاصة بنا @strategybin لتصلك: ✓ إشارات تداول يومية ✓ تحليلات استراتيجية حصرية ✓ تنبيهات اتجاهات السوق ✓ مواد تعليمية للمبتدئين

Баннер