قارئ لا استبدال نصّي
الكود يُقرأ إلى شجرة نحوية ثم يُترجَم منها. البحث والاستبدال ينهار عند أوّل شرط متداخل أو دالّة يعرّفها المؤلّف بنفسه؛ الشجرة تنجو منهما.
ما يمنع المتداول من الانتقال ليس المنصّة الجديدة، بل مجلّد مؤشرات كتبها بنفسه في القديمة. الصق كود Pine أو MQL، وخذ مؤشراً يعمل هنا — كوداً مقروءاً تملكه وتعدّله، لا صندوقاً مغلقاً.
الكود يُقرأ إلى شجرة نحوية ثم يُترجَم منها. البحث والاستبدال ينهار عند أوّل شرط متداخل أو دالّة يعرّفها المؤلّف بنفسه؛ الشجرة تنجو منهما.
تخرج بملفّ جافاسكربت مقروء بأسماء متغيّراتك وتعليقاتك حيثما أمكن — يفتح في المحرّر ويُشغَّل ويُعدَّل، ولا يبقى مرتبطاً بالأصل.
الترجمة الصامتة لشيء إلى «أقرب شبيه» أسوأ من رفضه: مؤشر يعمل بمنطق مختلف قليلاً يكلّفك صفقات. كل تعذّر يظهر تعليقاً في مكانه من الكود.
سواء حوّلته اليوم بالمسار الموصوف أسفله أو بالزرّ المدمج لاحقاً، المبدأ واحد: الكود لا يُستبدَل نصّاً، بل يُقرأ ويُطابَق نداءً بنداء.
أمثلة من أكثر ما يتكرّر في المؤشرات المكتوبة بلغتين مختلفتين. الفكرة الجامعة: مصدر السعر يمرّ من دالّة واحدة، والرسم يُرجَع من compute بدل أن يُستدعى سطراً بسطر.
| في المصدر | عندنا | ملاحظة |
|---|---|---|
| ta.sma(close, 20) | TA.sma(TA.src(c), 20) | المصفوفة أقصر بطول النافذة؛ TA.align يجسر ذلك. |
| input.int(14, minval=1) | { type:'int', def:14, min:1 } | يظهر حقلاً في لوحة الإعدادات. |
| plot(x, color=color.red) | { type:'line', color:'#F23645' } | يُرجَع من compute لا يُستدعى. |
| box.new(...) / label.new(...) | { kind:'box' } / { kind:'label' } | ضمن رسم من نوع shapes. |
| ta.crossover(a, b) | TA.crossover(a, b) | مطابق — يعمل على مصفوفات كاملة الطول. |
| iMA(_Symbol, 0, 20, ...) | TA.sma / TA.ema | MQL: وسائط الرمز والفريم تُسقَط، فالسياق من الشارت. |
| SetIndexBuffer / ObjectCreate | return [...] | MQL: لا مخازن ولا كائنات — المخرج قيمة واحدة تُعاد. |
لكل منصّة أشياء تخصّها وحدها، وبعضها لا معنى له خارجها. هذه الحدود معروفة قبل أن تكتب سطراً، فلا تكتشفها بعد ساعة من التصحيح.
التحويل متاح اليوم ولا ينتظر شيئاً، وكل ما يلزمك ملفّان ترفعهما إلى Claude أو ChatGPT: مرجع المحرّك بصيغة .md (نزّله من الزرّ أسفله)، وملفّ نصّي .txt تضع فيه كود مؤشرك القديم كما هو — Pine أو MQL. ثم اكتب جملة واحدة: «حوّل المؤشر المرفق إلى مؤشر Sovereign Chart حسب المرجع». يتكفّل النموذج بالباقي في ثوانٍ: يقرأ المرجع، ويطابق كل دالّة بمقابلها، ويخرج بكود كامل. انسخه، افتح محرّر المؤشرات، الصقه، واضغط «حفظ وتفعيل» — يعمل على شارتك فوراً.
ما سبق يعمل اليوم، وهو ما نستعمله نحن. الخطوة التالية أن يصير التحويل زرّاً داخل المحرّر بلا ملفّات ولا محادثة خارجية — نبنيه ولا نعد بتاريخ لأننا لا نعرفه. ولن يغيّر ذلك شيئاً في المخرج: كود مقروء تملكه، بنفس الخريطة وبنفس الحدود المذكورة أعلاه.
لا، والادّعاء بذلك سيكون كذباً. مؤشرات الرسم والحساب — وهي الأغلبية الساحقة — نعم. أمّا ما يعتمد على وسوم الاستراتيجيات أو نداءات الوسيط فيُعلَّم ولا يُخمَّن.
لا. التحويل يجري في متصفّحك، تماماً كما يجري تنفيذ المؤشرات. ما تلصقه لا يغادر جهازك ما لم تنشره أنت في مكتبة المجتمع.
المحوّل أداة تعمل على ما تملكه أنت. تحويل كودك الذي كتبته أو كودٍ رخصته تسمح بذلك أمرك؛ أمّا نسخ عمل غيرك المحميّ فمسؤوليّتك وحدك، وشرط النشر في مكتبتنا أن يكون ما تنشره لك.
المخرج كود مقروء لا صندوق مغلق — تفتحه في المحرّر وتصلحه سطراً واحداً. وهذا سببٌ آخر لأن يكون المخرج جافاسكربت لا تمثيلاً داخلياً.
افتح الشارت في المتصفّح وجرّب المميزة على السوق الحيّ.
افتح الشارت