Kusto Query Language Documentation
```wiki
لغة استعلام Kusto: دليل شامل للمبتدئين
لغة استعلام Kusto (KQL) هي لغة استعلام قوية ومرنة مصممة لاستكشاف البيانات وتحليلها. تُستخدم على نطاق واسع في خدمات Microsoft Azure Data Explorer، Azure Monitor Logs، Azure Sentinel، و Microsoft Defender for Cloud. هذا المقال يهدف إلى تقديم مقدمة شاملة للمبتدئين، تغطي المفاهيم الأساسية، بناء الجملة، والتقنيات المستخدمة في KQL. سوف نركز على كيفية تطبيق هذه اللغة في سياق تحليل بيانات الخيارات الثنائية، على الرغم من أن KQL قابلة للتطبيق على نطاق واسع من أنواع البيانات.
ما هي لغة استعلام Kusto؟
KQL ليست مجرد لغة استعلام؛ إنها لغة بيانات كاملة. تسمح لك بالبحث عن البيانات، وتصفيتها، وتجميعها، وتحويلها، وتصورها. تتميز KQL ببساطة بناء الجملة وسهولة تعلمها، مما يجعلها خيارًا مثاليًا للمحللين، ومهندسي البيانات، وأي شخص يحتاج إلى العمل مع كميات كبيرة من البيانات.
المفاهيم الأساسية
- الجداول (Tables): البيانات في KQL منظمة في جداول. كل جدول يتكون من صفوف وأعمدة. في سياق الخيارات الثنائية، قد يكون لديك جداول لتسجيل الصفقات، بيانات السوق، إشارات التداول، إلخ.
- الأعمدة (Columns): تمثل سمات البيانات. مثال: سعر الإغلاق، وقت التداول، حجم التداول، ربح/خسارة.
- الصفوف (Rows): تمثل سجلات فردية من البيانات. مثال: صفقة شراء خيار شراء على سهم Apple في وقت معين.
- عوامل التشغيل (Operators): تستخدم لتصفية البيانات، وتجميعها، وتحويلها. أمثلة: `where`, `summarize`, `project`, `join`.
- الدوال (Functions): تستخدم لإجراء عمليات حسابية أو منطقية على البيانات. أمثلة: `avg()`, `count()`, `max()`, `min()`, `strlen()`.
بناء الجملة الأساسي
يتبع KQL بناء جملة pipeline-based. هذا يعني أن الاستعلام يتكون من سلسلة من العوامل (operators) التي تعمل على البيانات بالتسلسل. الشكل العام للاستعلام هو:
```kusto Table | operator1 | operator2 | operator3 ... ```
- Table: اسم الجدول الذي تبدأ منه الاستعلام.
- |: رمز الـ pipe. يرسل نتائج العامل السابق إلى العامل التالي.
- operator: عملية يتم تطبيقها على البيانات.
العوامل الأساسية
- where: لتصفية الصفوف بناءً على شرط معين.
```kusto Trades | where Instrument = "AAPL" and TradeType = "Buy" ```
هذا الاستعلام يختار جميع الصفقات على سهم Apple التي هي من نوع شراء. يمكن استخدامه لتصفية الصفقات بناءً على استراتيجية مارتينجال أو استراتيجية فيبوناتشي.
- project: لتحديد الأعمدة التي تريد عرضها.
```kusto Trades | project Time, Instrument, Price ```
هذا الاستعلام يعرض فقط الأعمدة `Time`, `Instrument`, و `Price` من جدول `Trades`. يمكن استخدامه لعرض البيانات ذات الصلة بتحليل حجم التداول.
- summarize: لتجميع البيانات بناءً على عمود واحد أو أكثر.
```kusto Trades | summarize Count = count() by Instrument ```
هذا الاستعلام يحسب عدد الصفقات لكل أداة. يمكن استخدامه لتحديد الأدوات الأكثر تداولاً، وهو أمر مهم في تحليل الاتجاهات.
- count: لحساب عدد الصفوف.
```kusto Trades | count ```
هذا الاستعلام يحسب العدد الإجمالي للصفوف في جدول `Trades`.
- distinct: لإرجاع قيم فريدة من عمود معين.
```kusto Trades | distinct Instrument ```
هذا الاستعلام يرجع قائمة بالأدوات الفريدة التي تم تداولها.
- sort: لترتيب النتائج بناءً على عمود معين.
```kusto Trades | sort by Time asc ```
هذا الاستعلام يرتب النتائج بترتيب تصاعدي حسب الوقت. مفيد في تحليل أنماط الشموع اليابانية.
- top: لإرجاع أعلى N صفوف بناءً على عمود معين.
```kusto Trades | top 5 by Profit desc ```
هذا الاستعلام يرجع أعلى 5 صفقات من حيث الربح.
- extend: لإضافة أعمدة جديدة إلى الجدول.
```kusto Trades | extend Profit = Price * Quantity ```
هذا الاستعلام يضيف عمودًا جديدًا يسمى `Profit` يحسب الربح بناءً على السعر والكمية. ضروري لحساب مؤشرات مثل مؤشر القوة النسبية (RSI).
- join: لدمج جدولين بناءً على عمود مشترك.
```kusto Trades | join (MarketData) on Instrument ```
هذا الاستعلام يدمج جدول `Trades` مع جدول `MarketData` بناءً على عمود `Instrument`. يمكن استخدامه لربط بيانات الصفقات ببيانات السوق في الوقت الحقيقي.
الدوال المدمجة
KQL يوفر مجموعة واسعة من الدوال المدمجة للعمل مع البيانات. بعض الدوال المفيدة تشمل:
- avg() لحساب المتوسط.
- count() لحساب العدد.
- max() لإيجاد القيمة القصوى.
- min() لإيجاد القيمة الدنيا.
- sum() لحساب المجموع.
- strlen() لحساب طول سلسلة نصية.
- todatetime() لتحويل سلسلة نصية إلى تاريخ ووقت.
- datetime_diff() لحساب الفرق بين تاريخين ووقتين.
أمثلة عملية في سياق الخيارات الثنائية
1. حساب معدل الفوز:
```kusto Trades | where TradeType = "BinaryOption" | summarize Wins = countif(Profit > 0), Losses = countif(Profit < 0) by Strategy | extend WinRate = Wins / (Wins + Losses) ```
هذا الاستعلام يحسب معدل الفوز لكل استراتيجية تداول مستخدمة.
2. تحديد الأصول الأكثر ربحية:
```kusto Trades | where TradeType = "BinaryOption" | summarize TotalProfit = sum(Profit) by Instrument | sort by TotalProfit desc | top 10 ```
هذا الاستعلام يحدد أعلى 10 أصول من حيث الربح الإجمالي.
3. تحليل أداء الاستراتيجية مع مرور الوقت:
```kusto Trades | where TradeType = "BinaryOption" and Strategy = "MovingAverage" | summarize ProfitPerDay = sum(Profit) by Date | render timechart ```
هذا الاستعلام يعرض الربح اليومي استراتيجية المتوسط المتحرك.
4. تحديد أوقات التداول الأكثر ربحية:
```kusto Trades | where TradeType = "BinaryOption" | summarize ProfitPerHour = sum(Profit) by Hour | sort by ProfitPerHour desc | top 10 ```
هذا الاستعلام يحدد أفضل 10 ساعات من حيث الربح.
5. تحليل العلاقة بين حجم التداول والربحية:
```kusto Trades | where TradeType = "BinaryOption" | summarize AverageProfit = avg(Profit), TotalVolume = sum(Volume) by Instrument | project Instrument, AverageProfit, TotalVolume ```
هذا الاستعلام يحلل العلاقة بين متوسط الربح وحجم التداول لكل أصل، وهو مفيد في تقييم تقلبات الأسعار.
التعامل مع البيانات الزمنية
KQL ممتاز في التعامل مع البيانات الزمنية. يمكنك استخدام دوال مثل `datetime_diff`، `bin`، و `render timechart` لتحليل الاتجاهات الزمنية.
- bin: لتجميع البيانات في فترات زمنية محددة (مثل ساعات، أيام، أسابيع).
- render timechart: لتصور البيانات الزمنية كرسوم بيانية.
نصائح وأفضل الممارسات
- استخدم التعليقات: اشرح ما يفعله كل جزء من الاستعلام.
- استخدم التنسيق: اجعل استعلاماتك سهلة القراءة عن طريق استخدام المسافات والأسطر الجديدة.
- اختبر استعلاماتك: تأكد من أن استعلاماتك تعمل بشكل صحيح قبل استخدامها في الإنتاج.
- استفد من الوثائق الرسمية: [1](https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/)
موارد إضافية
- تحليل فني
- تحليل حجم التداول
- مؤشرات التداول
- استراتيجيات إدارة المخاطر
- التحليل الأساسي
- استراتيجية الاختراق
- استراتيجية الارتداد
- استراتيجية سكالبينج
- استراتيجية التداول المتأرجح
- استراتيجية تداول الأخبار
- مؤشر الماكد (MACD)
- مؤشر بولينجر باندز
- مؤشر ستوكاستيك
- مؤشر ADX
- مؤشر RSI
- مفهوم التنويع
- مفهوم الرافعة المالية
- مفهوم الإيداع
- مفهوم السحب
- مفهوم العائد على الاستثمار (ROI)
- مفهوم تقلبات الأسعار
- مفهوم السيولة
- مفهوم الانتشار
- مفهوم أمر الإيقاف
- مفهوم أمر الحد
الخلاصة
لغة استعلام Kusto هي أداة قوية لتحليل البيانات. من خلال فهم المفاهيم الأساسية، وبناء الجملة، والعوامل المتاحة، يمكنك استخلاص رؤى قيمة من بيانات الخيارات الثنائية واتخاذ قرارات تداول مستنيرة. تذكر أن الممارسة المستمرة والاستفادة من الموارد المتاحة هما مفتاح إتقان KQL. ```
ابدأ التداول الآن
سجّل في IQ Option (الحد الأدنى للإيداع 10 دولار) افتح حساباً في Pocket Option (الحد الأدنى للإيداع 5 دولار)
انضم إلى مجتمعنا
اشترك في قناة Telegram الخاصة بنا @strategybin لتصلك: ✓ إشارات تداول يومية ✓ تحليلات استراتيجية حصرية ✓ تنبيهات اتجاهات السوق ✓ مواد تعليمية للمبتدئين