Bash arrays: Difference between revisions

From binaryoption
Jump to navigation Jump to search
Баннер1
(@pipegas_WP)
 
(@pipegas_WP)
 
Line 1: Line 1:
# المصفوفات في Bash
=== مصفوفات باش: دليل شامل للمبتدئين ===


المصفوفات في Bash هي هياكل بيانات قوية تسمح لك بتخزين مجموعات من القيم تحت اسم متغير واحد. تعتبر المصفوفات أداة أساسية في [[Bash (برمجة)]] لتبسيط التعامل مع البيانات المتعددة وتنظيمها، مما يجعل البرامج النصية أكثر كفاءة وقابلية للقراءة. هذا المقال موجه للمبتدئين ويهدف إلى شرح مفهوم المصفوفات في Bash بشكل شامل، مع أمثلة عملية وتطبيقات مفيدة.
'''مقدمة'''
 
مصفوفات باش (Bash Arrays) هي هياكل بيانات تسمح لك بتخزين مجموعة من القيم تحت اسم متغير واحد. تعتبر المصفوفات أداة قوية لتنظيم البيانات ومعالجتها داخل [[برامج باش]]. هذا المقال موجه للمبتدئين ويهدف إلى شرح كل ما تحتاج معرفته حول المصفوفات في باش، بدءًا من تعريفها وصولًا إلى العمليات المختلفة التي يمكنك إجراؤها عليها. فهم المصفوفات ضروري لكتابة [[برامج باش]] أكثر تعقيدًا وفعالية.


== ما هي المصفوفات؟ ==
== ما هي المصفوفات؟ ==


ببساطة، المصفوفة هي قائمة مرتبة من العناصر. في Bash، يمكن أن تحتوي المصفوفات على سلاسل نصية، أرقام، أو حتى نتائج أوامر أخرى.  تخيل أنك تريد تخزين أسماء المتداولين في سوق [[الخيارات الثنائية]]. بدلاً من تعريف متغير لكل اسم، يمكنك استخدام مصفوفة لتخزين جميع الأسماء في مكان واحد.
تخيل أنك تريد تخزين قائمة بأسماء العملات المشفرة المفضلة لديك. بدلاً من إنشاء متغير لكل اسم (مثل `currency1=Bitcoin`، `currency2=Ethereum`، إلخ)، يمكنك استخدام مصفوفة لتخزين جميع الأسماء في مكان واحد.  وبالتالي، المصفوفة هي مجموعة مرتبة من العناصر، حيث يمكن الوصول إلى كل عنصر باستخدام فهرسه (index).


== تعريف المصفوفات ==
== تعريف المصفوفات ==


هناك طريقتان رئيسيتان لتعريف المصفوفات في Bash:
هناك طريقتان رئيسيتان لتعريف مصفوفة في باش:
 
* '''الطريقة الأولى: باستخدام الأقواس'''


*  **الطريقة الأولى: باستخدام الأقواس المربعة:**
  ```bash
  my_array=(item1 item2 item3)
  ```


    ```bash
  في هذا المثال، `my_array` هو اسم المصفوفة، و `item1`، `item2`، و `item3` هي العناصر التي تحتوي عليها المصفوفة.  لاحظ أن العناصر مفصولة بمسافات.
    names=("Alice" "Bob" "Charlie")
    ```


    في هذه الطريقة، يتم إحاطة العناصر بأقواس مربعة، ويتم فصلها بمسافات.
* '''الطريقة الثانية: باستخدام الفهارس'''
*  **الطريقة الثانية: باستخدام فهرسة المصفوفة:**


    ```bash
  ```bash
    names[0]="Alice"
  my_array[0]=item1
    names[1]="Bob"
  my_array[1]=item2
    names[2]="Charlie"
  my_array[2]=item3
    ```
  ```


    في هذه الطريقة، يتم تحديد فهرس لكل عنصر في المصفوفة. يبدأ فهرس المصفوفة في Bash من الصفر.
  في هذه الطريقة، يمكنك تعيين قيم للعناصر الفردية في المصفوفة باستخدام فهرسها. تذكر أن فهرس المصفوفة يبدأ من 0.


== الوصول إلى عناصر المصفوفة ==
== الوصول إلى عناصر المصفوفة ==


للوصول إلى عنصر معين في المصفوفة، استخدم اسم المصفوفة متبوعًا بفهرس العنصر داخل أقواس مربعة:
للوصول إلى عنصر معين في المصفوفة، استخدم اسم المصفوفة متبوعًا بفهرسه داخل أقواس مربعة:


```bash
```bash
echo $names[0]  # سيطبع "Alice"
echo ${my_array[0]} # سيطبع item1
```
```


== الحصول على طول المصفوفة ==
لاحظ استخدام `{}` حول اسم المصفوفة والفهرس. هذا ضروري لتجنب الالتباس، خاصةً عند التعامل مع [[متغيرات باش]] أخرى.
 
== طول المصفوفة ==


يمكنك معرفة عدد العناصر الموجودة في المصفوفة باستخدام الأمر `length`:
يمكنك تحديد عدد العناصر في المصفوفة باستخدام الفهرس الخاص `*`:


```bash
```bash
echo ${#names[@]} # سيطبع "3"
echo ${#my_array[*]} # سيطبع 3
```
```


== جميع عناصر المصفوفة ==
هذا يعيد عدد العناصر الموجودة في المصفوفة.  هذه الخاصية مفيدة جدًا في [[الحلقات]] لتكرار عناصر المصفوفة.
 
== العمليات على المصفوفات ==
 
باش يوفر العديد من العمليات التي يمكنك إجراؤها على المصفوفات:


للحصول على جميع عناصر المصفوفة، استخدم الرمز `@`:
* '''إضافة عنصر إلى المصفوفة'''


```bash
  ```bash
echo ${names[@]} # سيطبع "Alice Bob Charlie"
  my_array[3]=item4
```
  ```


يمكنك أيضًا استخدام الرمز `*`، لكنه قد يؤدي إلى نتائج غير متوقعة إذا كانت العناصر تحتوي على مسافات.
  سيضيف هذا العنصر `item4` إلى نهاية المصفوفة.


== تعديل عناصر المصفوفة ==
* '''حذف عنصر من المصفوفة'''


لتعديل قيمة عنصر في المصفوفة، استخدم اسم المصفوفة وفهرس العنصر:
  ```bash
  unset my_array[1]
  ```


```bash
  سيؤدي هذا إلى حذف العنصر الموجود في الفهرس 1.
names[1]="David"
echo ${names[@]} # سيطبع "Alice David Charlie"
```


== حذف عنصر من المصفوفة ==
* '''تقطيع المصفوفة'''


لحذف عنصر من المصفوفة، قم بتعيين قيمة فارغة للفهرس الخاص به:
  تقطيع المصفوفة يسمح لك باستخراج جزء من المصفوفة كـ [[مصفوفة فرعية]].


```bash
  ```bash
unset names[1]
  my_subarray=("${my_array[@]:1:2}") # يستخرج العناصر من الفهرس 1 (شامل) إلى الفهرس 2 (غير شامل)
echo ${names[@]} # سيطبع "Alice Charlie"
  ```
```


== إضافة عنصر إلى المصفوفة ==
* '''دمج المصفوفات'''


لإضافة عنصر جديد إلى المصفوفة، قم بتعيين قيمة للفهرس التالي المتاح:
  يمكن دمج مصفوفتين في مصفوفة واحدة باستخدام بناء الجملة التالي:


```bash
  ```bash
names[3]="Eve"
  combined_array=( "${my_array[@]}" "${another_array[@]}" )
echo ${names[@]} # سيطبع "Alice Charlie Eve"
  ```
```


== استخدام المصفوفات في الحلقات التكرارية ==
== أمثلة عملية ==


يمكنك استخدام المصفوفات داخل حلقات [[For loop]] لتكرار العمليات على جميع عناصرها:
'''مثال 1: قائمة بالعملات المشفرة'''


```bash
```bash
for name in "${names[@]}"; do
currencies=(Bitcoin Ethereum Litecoin Ripple)
   echo "Hello, $name!"
echo "عدد العملات المشفرة: ${#currencies[@]}"
for i in "${!currencies[@]}"; do
   echo "العملة رقم $i: ${currencies[$i]}"
done
done
```
```


== المصفوفات التجميعية (Associative Arrays) ==
'''مثال 2: تحليل بيانات الأسعار'''


بدءًا من Bash 4، تم تقديم المصفوفات التجميعية، والتي تسمح لك باستخدام سلاسل نصية كمفاتيح بدلاً من الفهارس الرقمية. هذه مفيدة لتخزين البيانات المرتبطة بأسماء أو معرّفات.
لنفترض أن لديك بيانات أسعار عملة مشفرة في مصفوفة:


```bash
```bash
declare -A ages
prices=(100 105 110 108 112)
ages["Alice"]=30
average=$(( $(echo "${prices[*]}" | awk '{ sum = 0; for (i = 1; i <= NF; i++) sum += $i; print sum / NF }' ) ))
ages["Bob"]=25
echo "متوسط السعر: $average"
ages["Charlie"]=35
```


echo ${ages["Bob"]} # سيطبع "25"
== استخدام المصفوفات في تداول الخيارات الثنائية ==
```


== تطبيقات عملية للمصفوفات في تداول الخيارات الثنائية ==
في سياق تداول [[الخيارات الثنائية]]، يمكن استخدام المصفوفات لتخزين:


**تخزين أزواج العملات:** يمكنك استخدام مصفوفة لتخزين قائمة بأزواج العملات التي تتداولها، مثل `currencies=("EUR/USD" "GBP/USD" "USD/JPY")`.
بيانات تاريخية لأسعار الأصول.
**تخزين نقاط الدخول والخروج:**  يمكنك استخدام مصفوفة لتخزين مستويات الدخول والخروج للصفقات، مما يساعد في تنفيذ [[استراتيجيات الخروج الآلي]].
نتائج [[التحليل الفني]] (مثل مؤشرات Moving Averages).
**تخزين نتائج التداول:** يمكنك استخدام مصفوفة لتخزين نتائج التداول (ربح/خسارة) لكل صفقة، ثم تحليلها باستخدام [[التحليل الإحصائي]].
*  نتائج [[تحليل حجم التداول]].
**تخزين مؤشرات فنية:** يمكن استخدام مصفوفة لتخزين قيم مؤشرات فنية مثل [[مؤشر القوة النسبية (RSI)]] أو [[المتوسط المتحرك]].
قواعد [[إدارة المخاطر]].
**إدارة المخاطر:** يمكن استخدام مصفوفة لتخزين حجم الاستثمار لكل صفقة بناءً على استراتيجية [[إدارة المخاطر]].
نتائج [[استراتيجيات التداول]] المختلفة.


== استراتيجيات تداول متقدمة تعتمد على المصفوفات ==
== استراتيجيات تداول متقدمة باستخدام المصفوفات ==


**تداول الاختراق (Breakout Trading):**  استخدم مصفوفات لتخزين مستويات الدعم والمقاومة.
'''استراتيجية المتوسط المتحرك (Moving Average):''' يمكن استخدام مصفوفة لتخزين قيم الأسعار الأخيرة وحساب المتوسط المتحرك بناءً عليها.
*  **تداول الاتجاه (Trend Following):** استخدم مصفوفات لتخزين قيم المتوسطات المتحركة المختلفة.
'''استراتيجية مؤشر القوة النسبية (RSI):''' يمكن استخدام مصفوفة لتخزين تغيرات الأسعار وحساب مؤشر القوة النسبية.
*  **تداول العودة إلى المتوسط (Mean Reversion):** استخدم مصفوفات لتخزين الانحرافات المعيارية.
'''استراتيجية البولينجر باندز (Bollinger Bands):''' يمكن استخدام مصفوفة لتخزين الأسعار وحساب الانحراف المعياري لإنشاء نطاقات البولينجر.
*  **تداول الأنماط (Pattern Trading):** استخدم مصفوفات لتخزين نقاط الدخول والخروج لأنماط الشموع اليابانية.
'''استراتيجية كسر الدعم والمقاومة (Breakout):''' يمكن استخدام مصفوفة لتخزين مستويات الدعم والمقاومة وتحديد نقاط الدخول والخروج.
*  **تداول الأخبار (News Trading):** استخدم مصفوفات لتخزين قائمة بالأخبار الاقتصادية الهامة.
'''استراتيجية التداول بناءً على الأنماط (Pattern Trading):''' يمكن استخدام مصفوفة لتخزين الأنماط السعرية وتحديد فرص التداول.
*  **تداول الخوارزمي (Algorithmic Trading):**  تعتبر المصفوفات أساسية في بناء [[خوارزميات التداول]].
*  **تداول الحواف (Edge Trading):** استخدم مصفوفات لتحديد نقاط الدخول والخروج بناءً على تحليل [[الحافة التنافسية]].
**استراتيجيات التداول قصيرة الأجل (Scalping):**  تستخدم مصفوفات لتخزين أسعار العرض والطلب.
**استراتيجيات التداول اليومي (Day Trading):**  تستخدم مصفوفات لتخزين أهداف الربح والخسارة اليومية.
**استراتيجيات التداول المتأرجح (Swing Trading):**  تستخدم مصفوفات لتخزين مستويات الدعم والمقاومة الرئيسية.
*  **استراتيجيات التداول طويل الأجل (Position Trading):**  تستخدم مصفوفات لتخزين أهداف الربح طويلة الأجل.
*  **استراتيجيات التحوط (Hedging):**  تستخدم مصفوفات لتخزين الأصول المستخدمة في التحوط.
**استراتيجيات التداول الزوجي (Pair Trading):**  تستخدم مصفوفات لتخزين أزواج الأصول المرتبطة.
*  **استراتيجيات التداول اللحظي (Momentum Trading):**  تستخدم مصفوفات لتخزين قيم المؤشرات التي تقيس الزخم.
*  **استراتيجيات التداول بناءً على حجم التداول (Volume Spread Analysis):** استخدم مصفوفات لتخزين بيانات حجم التداول.


== التحليل الفني وحجم التداول ==
== التحليل الفني وحجم التداول ==


[[الشموع اليابانية]]
'''التحليل الفني (Technical Analysis):''' استخدام المصفوفات لتخزين بيانات الأسعار لحساب المؤشرات الفنية.
*  [[مؤشر الماكد (MACD)]]
'''تحليل حجم التداول (Volume Analysis):''' استخدام المصفوفات لتخزين بيانات حجم التداول لتحديد قوة الاتجاهات.
[[مؤشر ستوكاستيك (Stochastic Oscillator)]]
'''مؤشر الماكد (MACD):''' استخدام المصفوفات لتخزين قيم الماكد وحساب إشارات الشراء والبيع.
[[مؤشر بولينجر باندز (Bollinger Bands)]]
'''مؤشر ستوكاستيك (Stochastic Oscillator):''' استخدام المصفوفات لتخزين قيم الستوكاستيك وتحديد مناطق ذروة الشراء والبيع.
[[التحليل الحجمي]]
'''خطوط فيبوناتشي (Fibonacci Retracements):''' استخدام المصفوفات لتخزين مستويات فيبوناتشي وتحديد نقاط الدعم والمقاومة المحتملة.
*  [[مؤشر التوازن الحجمي (OBV)]]
[[مؤشر تدفق الأموال (MFI)]]
*  [[التحليل الفني]]
*  [[التحليل الأساسي]]
*  [[إدارة المخاطر في التداول]]
*  [[علم النفس التجاري]]
*  [[التحليل الفني المتقدم]]
*  [[التحليل الحجمي المتقدم]]
*  [[استراتيجيات إدارة الصفقات]]
*  [[أدوات التحليل الفني]]


== الخلاصة ==
== روابط ذات صلة ==


المصفوفات هي أداة قوية ومرنة في Bash. فهم كيفية تعريفها واستخدامها يمكن أن يبسط بشكل كبير البرامج النصية الخاصة بك ويجعلها أكثر كفاءة. سواء كنت تقوم بمعالجة البيانات، أو تنفيذ استراتيجيات تداول [[الخيارات الثنائية]]، أو أتمتة المهام، فإن المصفوفات هي جزء أساسي من مجموعة أدواتك.
*  [[متغيرات باش]]
*  [[الحلقات في باش]]
*  [[الدوال في باش]]
*  [[الأوامر الشرطية في باش]]
*  [[التعامل مع الملفات في باش]]
*  [[Bash Scripting]]
*  [[Bash Debugging]]
*  [[Bash Regular Expressions]]
*  [[Bash Arithmetic]]
*  [[Bash String Manipulation]]
*  [[Bash Command Substitution]]
*  [[Bash Arrays (Advanced)]]
[[Bash Functions]]
*  [[Bash Scripting Best Practices]]
*  [[Bash Documentation]]


[[Category:الفئة:Bash (برمجة)]]
[[Category:الفئة:برمجة_باش]]


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

Latest revision as of 19:27, 22 April 2025

مصفوفات باش: دليل شامل للمبتدئين

مقدمة

مصفوفات باش (Bash Arrays) هي هياكل بيانات تسمح لك بتخزين مجموعة من القيم تحت اسم متغير واحد. تعتبر المصفوفات أداة قوية لتنظيم البيانات ومعالجتها داخل برامج باش. هذا المقال موجه للمبتدئين ويهدف إلى شرح كل ما تحتاج معرفته حول المصفوفات في باش، بدءًا من تعريفها وصولًا إلى العمليات المختلفة التي يمكنك إجراؤها عليها. فهم المصفوفات ضروري لكتابة برامج باش أكثر تعقيدًا وفعالية.

ما هي المصفوفات؟

تخيل أنك تريد تخزين قائمة بأسماء العملات المشفرة المفضلة لديك. بدلاً من إنشاء متغير لكل اسم (مثل `currency1=Bitcoin`، `currency2=Ethereum`، إلخ)، يمكنك استخدام مصفوفة لتخزين جميع الأسماء في مكان واحد. وبالتالي، المصفوفة هي مجموعة مرتبة من العناصر، حيث يمكن الوصول إلى كل عنصر باستخدام فهرسه (index).

تعريف المصفوفات

هناك طريقتان رئيسيتان لتعريف مصفوفة في باش:

  • الطريقة الأولى: باستخدام الأقواس
  ```bash
  my_array=(item1 item2 item3)
  ```
  في هذا المثال، `my_array` هو اسم المصفوفة، و `item1`، `item2`، و `item3` هي العناصر التي تحتوي عليها المصفوفة.  لاحظ أن العناصر مفصولة بمسافات.
  • الطريقة الثانية: باستخدام الفهارس
  ```bash
  my_array[0]=item1
  my_array[1]=item2
  my_array[2]=item3
  ```
  في هذه الطريقة، يمكنك تعيين قيم للعناصر الفردية في المصفوفة باستخدام فهرسها.  تذكر أن فهرس المصفوفة يبدأ من 0.

الوصول إلى عناصر المصفوفة

للوصول إلى عنصر معين في المصفوفة، استخدم اسم المصفوفة متبوعًا بفهرسه داخل أقواس مربعة:

```bash echo ${my_array[0]} # سيطبع item1 ```

لاحظ استخدام `{}` حول اسم المصفوفة والفهرس. هذا ضروري لتجنب الالتباس، خاصةً عند التعامل مع متغيرات باش أخرى.

طول المصفوفة

يمكنك تحديد عدد العناصر في المصفوفة باستخدام الفهرس الخاص `*`:

```bash echo ${#my_array[*]} # سيطبع 3 ```

هذا يعيد عدد العناصر الموجودة في المصفوفة. هذه الخاصية مفيدة جدًا في الحلقات لتكرار عناصر المصفوفة.

العمليات على المصفوفات

باش يوفر العديد من العمليات التي يمكنك إجراؤها على المصفوفات:

  • إضافة عنصر إلى المصفوفة
  ```bash
  my_array[3]=item4
  ```
  سيضيف هذا العنصر `item4` إلى نهاية المصفوفة.
  • حذف عنصر من المصفوفة
  ```bash
  unset my_array[1]
  ```
  سيؤدي هذا إلى حذف العنصر الموجود في الفهرس 1.
  • تقطيع المصفوفة
  تقطيع المصفوفة يسمح لك باستخراج جزء من المصفوفة كـ مصفوفة فرعية.
  ```bash
  my_subarray=("${my_array[@]:1:2}") # يستخرج العناصر من الفهرس 1 (شامل) إلى الفهرس 2 (غير شامل)
  ```
  • دمج المصفوفات
 يمكن دمج مصفوفتين في مصفوفة واحدة باستخدام بناء الجملة التالي:
 ```bash
 combined_array=( "${my_array[@]}" "${another_array[@]}" )
 ```

أمثلة عملية

مثال 1: قائمة بالعملات المشفرة

```bash currencies=(Bitcoin Ethereum Litecoin Ripple) echo "عدد العملات المشفرة: ${#currencies[@]}" for i in "${!currencies[@]}"; do

 echo "العملة رقم $i: ${currencies[$i]}"

done ```

مثال 2: تحليل بيانات الأسعار

لنفترض أن لديك بيانات أسعار عملة مشفرة في مصفوفة:

```bash prices=(100 105 110 108 112) average=$(( $(echo "${prices[*]}" | awk '{ sum = 0; for (i = 1; i <= NF; i++) sum += $i; print sum / NF }' ) )) echo "متوسط السعر: $average" ```

استخدام المصفوفات في تداول الخيارات الثنائية

في سياق تداول الخيارات الثنائية، يمكن استخدام المصفوفات لتخزين:

استراتيجيات تداول متقدمة باستخدام المصفوفات

  • استراتيجية المتوسط المتحرك (Moving Average): يمكن استخدام مصفوفة لتخزين قيم الأسعار الأخيرة وحساب المتوسط المتحرك بناءً عليها.
  • استراتيجية مؤشر القوة النسبية (RSI): يمكن استخدام مصفوفة لتخزين تغيرات الأسعار وحساب مؤشر القوة النسبية.
  • استراتيجية البولينجر باندز (Bollinger Bands): يمكن استخدام مصفوفة لتخزين الأسعار وحساب الانحراف المعياري لإنشاء نطاقات البولينجر.
  • استراتيجية كسر الدعم والمقاومة (Breakout): يمكن استخدام مصفوفة لتخزين مستويات الدعم والمقاومة وتحديد نقاط الدخول والخروج.
  • استراتيجية التداول بناءً على الأنماط (Pattern Trading): يمكن استخدام مصفوفة لتخزين الأنماط السعرية وتحديد فرص التداول.

التحليل الفني وحجم التداول

  • التحليل الفني (Technical Analysis): استخدام المصفوفات لتخزين بيانات الأسعار لحساب المؤشرات الفنية.
  • تحليل حجم التداول (Volume Analysis): استخدام المصفوفات لتخزين بيانات حجم التداول لتحديد قوة الاتجاهات.
  • مؤشر الماكد (MACD): استخدام المصفوفات لتخزين قيم الماكد وحساب إشارات الشراء والبيع.
  • مؤشر ستوكاستيك (Stochastic Oscillator): استخدام المصفوفات لتخزين قيم الستوكاستيك وتحديد مناطق ذروة الشراء والبيع.
  • خطوط فيبوناتشي (Fibonacci Retracements): استخدام المصفوفات لتخزين مستويات فيبوناتشي وتحديد نقاط الدعم والمقاومة المحتملة.

روابط ذات صلة

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

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

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

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

Баннер