• لوحة التحكم
  • مشاركات اليوم
  • تسجيل الخروج

ضــع اعــلانك هنا

انشاء حساب جديد


  مؤسسة الكندي للإستشارات المالية > المنتدى الخاص > الأقسام الأخرى .. > منتدى البرمجيات و المؤشرات والإكسبرتات ( Software )
ورشة مفتوحة لطرح الاسئلة البرمجية للغة mql4
اضافة رد
صفحة 1 من 3 1 23 >

 
أدوات الموضوع انواع عرض الموضوع

  رقم المشاركة : [ 1  ]
قديم 08-09-2013, 06:57 PM
dahmanesoft
http://www.alkindyfx.org/vb/alqab/marl7la-2.png

الصورة الرمزية dahmanesoft

رقم العضوية : 242
بلد الإقامة : الجزائر
تاريخ التسجيل : Oct 2011
عدد المشاركات : 448

dahmanesoft is on a distinguished road
غير متواجد
 
افتراضي ورشة مفتوحة لطرح الاسئلة البرمجية للغة mql4
 



السلام عليكم ورحمة الله وبركاته

ستكون هذه الورشة مفتوحة لطرح جميع الأسئلة المتعلقة ببرمجة الإكسبرتات والمؤشرات وأي سؤال برمجي متعلق بلغة mql4

 

 

 

 

 

 



توقيع dahmanesoft
لاإله إلا الله

 

 



Facebook Twitter
  • اقتباس
dahmanesoft
مشاهدة ملفه الشخصي
البحث عن المشاركات التي كتبها dahmanesoft
  رقم المشاركة : [ 2  ]
قديم 08-09-2013, 08:36 PM
ابو احمد

رقم العضوية : 2013
بلد الإقامة : امام التشارت
تاريخ التسجيل : Feb 2012
عدد المشاركات : 74

ابو احمد is on a distinguished road
غير متواجد
 
افتراضي
 

الاخ والاستاذ dahmanesoft

اتشرف بأن تكون اولى مشاركاتي معكم هنا

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

وارجو التأكيد على ان يتسع صدرك لكثرة الاسئلة
المشاركات القادمة بها الاسئلة ان شاء الله
خالص التحية والتقدير

 

 

 

 

 

 



Facebook Twitter
  • اقتباس
ابو احمد
مشاهدة ملفه الشخصي
البحث عن المشاركات التي كتبها ابو احمد
  رقم المشاركة : [ 3  ]
قديم 08-09-2013, 09:51 PM
ابو احمد

رقم العضوية : 2013
بلد الإقامة : امام التشارت
تاريخ التسجيل : Feb 2012
عدد المشاركات : 74

ابو احمد is on a distinguished road
غير متواجد
 
افتراضي
 

السلام عليكم
شرط عدد الاوامر المفتوحة صفر

[CODE
int MyRealOrdersTotal()
{

int c=0;
int total = OrdersTotal();

for (int cnt = 0 ; cnt < total ; cnt++)
{

OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol() && (OrderType()==OP_BUY || OrderType()==OP_SELL))
{
c++;
}
}
return(c);
}






][/CODE]

اين نضع المتغير 10 بدلا من صفر
اي انه يفتح صفقة بالرغم من وجود 10 صفقات مفتوحة


وما معنى الاختصارات التالية بالتفصيل الممل من فضلك
حتى نفهم الاوامر ولو فهما بسيطا



int MyRealOrdersTotal()
{

int c=0;
int total = OrdersTotal();

for (int cnt = 0 ; cnt < total ; cnt++)
{



مع خالص الشكر والتقدير

 

 

 

 

 

 



Facebook Twitter
  • اقتباس
ابو احمد
مشاهدة ملفه الشخصي
البحث عن المشاركات التي كتبها ابو احمد
  رقم المشاركة : [ 4  ]
قديم 08-09-2013, 10:16 PM
ابو احمد

رقم العضوية : 2013
بلد الإقامة : امام التشارت
تاريخ التسجيل : Feb 2012
عدد المشاركات : 74

ابو احمد is on a distinguished road
غير متواجد
 
افتراضي
 

قمت بالتغيير التالي

for (int cnt = 10 ; cnt < total ; cnt++)
وكانت النتيجة انه يفتح العدد الذي اريده بالفعل ولكن من نفس النقطة
فكيف نجعل العدد صفر يكون 10 ولكن لا يتم الفتح من نفس النقطة
وانما من نقاط تقاطعات متتالية


اي


يفتح صفقة مع كل تقاطع حتى عدد 11 صفقة عند 11 تقاطع


فكيف يتم ذلك ؟؟؟


خالص تحياتي

 

 

 

 

 

 



Facebook Twitter
  • اقتباس
ابو احمد
مشاهدة ملفه الشخصي
البحث عن المشاركات التي كتبها ابو احمد
  رقم المشاركة : [ 5  ]
قديم 12-09-2013, 03:18 PM
ابو احمد

رقم العضوية : 2013
بلد الإقامة : امام التشارت
تاريخ التسجيل : Feb 2012
عدد المشاركات : 74

ابو احمد is on a distinguished road
غير متواجد
 
افتراضي
 

اخشى ان تكون استفسارتي ليست على المستوى المطلوب
ارجو ان يكون المانع خير

 

 

 

 

 

 



Facebook Twitter
  • اقتباس
ابو احمد
مشاهدة ملفه الشخصي
البحث عن المشاركات التي كتبها ابو احمد
  رقم المشاركة : [ 6  ]
قديم 14-09-2013, 08:58 AM
dahmanesoft
http://www.alkindyfx.org/vb/alqab/marl7la-2.png

الصورة الرمزية dahmanesoft

رقم العضوية : 242
بلد الإقامة : الجزائر
تاريخ التسجيل : Oct 2011
عدد المشاركات : 448

dahmanesoft is on a distinguished road
غير متواجد
 
افتراضي
 


المشاركة الأصلية كتبت بواسطة ابو احمد

اخشى ان تكون استفسارتي ليست على المستوى المطلوب
ارجو ان يكون المانع خير
السلام عليكم أبو أحمد

هههههه لا والله إسئل ماتريد بل بالعكس من خلال أسئلتك هناك أشخاص أخرين يستفيد

 

 

 

 

 

 



توقيع dahmanesoft
لاإله إلا الله

 

 



Facebook Twitter
  • اقتباس
dahmanesoft
مشاهدة ملفه الشخصي
البحث عن المشاركات التي كتبها dahmanesoft
  رقم المشاركة : [ 7  ]
قديم 14-09-2013, 09:41 AM
dahmanesoft
http://www.alkindyfx.org/vb/alqab/marl7la-2.png

الصورة الرمزية dahmanesoft

رقم العضوية : 242
بلد الإقامة : الجزائر
تاريخ التسجيل : Oct 2011
عدد المشاركات : 448

dahmanesoft is on a distinguished road
غير متواجد
 
افتراضي
 


المشاركة الأصلية كتبت بواسطة ابو احمد

السلام عليكم
شرط عدد الاوامر المفتوحة صفر

[CODE
int MyRealOrdersTotal()
{

int c=0;
int total = OrdersTotal();

for (int cnt = 0 ; cnt < total ; cnt++)
{

OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol() && (OrderType()==OP_BUY || OrderType()==OP_SELL))
{
c++;
}
}
return(c);
}






][/CODE]

اين نضع المتغير 10 بدلا من صفر
اي انه يفتح صفقة بالرغم من وجود 10 صفقات مفتوحة


وما معنى الاختصارات التالية بالتفصيل الممل من فضلك
حتى نفهم الاوامر ولو فهما بسيطا



int MyRealOrdersTotal()
{

int c=0;
int total = OrdersTotal();

for (int cnt = 0 ; cnt < total ; cnt++)
{



مع خالص الشكر والتقدير
بالنسبة لشرط عدد الأوامر لا يكون التعديل داخل الوظيفة بالكامل وإنما فقط يكون بإستدعاء الوظيفة وذلك بكتابة إسمها بالشكل التالي
كود:
MyRealOrdersTotal()
ولنكن على علم أن هذه الوظيفة تقوم بحساب الأوامر المفتوحة من طرف الإكسبريت فقط وسأشرحها بالتفصيل في المشاركة الموالية

وبعدها نقوم بتطبيق العمليات عليها مثلا

إذا أردنا أن يقوم الإكسبريت بفتح أوامر جديدة بشرط أن يكون عدد الأومر الحالية يساوي 0 يكون الشرط كالتالي
كود:
if (MyRealOrdersTotal() ==0) { هنا نكتب الأوامر التي نريد تنفيدها عند حدوث الشرط}
فمثلا إذا كنا نريد وضع شرط محدد للإكسبريت مثلا أن يسمح بفتح عدد محدد من الأوامر وليكن مثلا 10

يكون الشرط كالتالي
كود:
if (MyRealOrdersTotal() <=10) { هنا نكتب الأوامر التي نريد تنفيدها عند حدوث الشرط}
وهذا الشرط يعني إذا كان عدد الأوامر المفتوحة من طرف الإكسبريت أقل من أو يساوي 10 نقوم بـ .......... (حسب الأوامر التي نريد اي نتيجة الشرط )

وحتى تكون الأمور بسيطة التعامل دون أن نضطر كل مرة لتعديل في عدد الأوامر نقوم بإستبدال القيمة ( مثلا 10) بمتغير خارجي يسمح لنا بتعديلها كما نريد والطريقة كما يلي

في أعلى الكود البرمجي نقوم بتعريف متغير خارجي
كود:
extern int  MaxOrders =10;
اما كتابة الشرط فتكون هكذا
كود:
if (MyRealOrdersTotal() <=MaxOrders) { هنا نكتب الأوامر التي نريد تنفيدها عند حدوث الشرط}
وفي الأخير تكون النتيجة هكذا

 

 

 

 

 

 



توقيع dahmanesoft
لاإله إلا الله

 

 



Facebook Twitter
  • اقتباس
dahmanesoft
مشاهدة ملفه الشخصي
البحث عن المشاركات التي كتبها dahmanesoft
  رقم المشاركة : [ 8  ]
قديم 14-09-2013, 10:33 AM
dahmanesoft
http://www.alkindyfx.org/vb/alqab/marl7la-2.png

الصورة الرمزية dahmanesoft

رقم العضوية : 242
بلد الإقامة : الجزائر
تاريخ التسجيل : Oct 2011
عدد المشاركات : 448

dahmanesoft is on a distinguished road
غير متواجد
 
افتراضي
 

شرح الوظيفة MyRealOrdersTotal

ماسنشرحه في هذه الوظيفة سنجده في عدد كبير من الوظائف التي نستعملها ولذالك ستكون هذه الوظيفة نموذج عام

كود:
int MyRealOrdersTotal()  
{  
  int c=0;  
  int total  = OrdersTotal();  
  for (int cnt = 0 ; cnt < total ; cnt++)  
  {  
     OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);  
    if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol() && (OrderType()==OP_BUY || OrderType()==OP_SELL))  
    {  
      c++;  
    }  
  }  
  return(c);  
}
كما نعلم جميعا أننا عندما نقوم بفتح الصفقات في منصة الميتاتريد تظهر في البوابة Trade
و كل أمر يظهر أمامه رقم تسلسلي (OrderTicket)
هذا الرقم يميز كل صفقة نقوم بفتحها عن جميع الصفقات المفتوحة على سيرفور الشركة وهو يظهر لنا على المنصة

"" لذالك عندما يحدث مشكلة ما في أي صفقة يطلب منك الدعم تحديد رقم تكيت الصفقة من أجل تميزها عن جميع الصفقات المفتوحة من طرف الوسيط"

اما بنسب للمنصة فكل أمر نقوم بفتحه يأحذ رقم تسلسلي يبدأ من 1 .. وهو لا يظهر على المنصة

هذه الأرقام هي الوسيلة لتعرف على الصفقات المفتوحة بصفة عامة

أما الأن كيف نفرق بين الأوامر التي نفتحها يدويا والأوامر التي يقوم الإكسبريت بفتحها وكيف للإكسبريت أن يتعرف للأوامر التي فتحها هو دون أن يخلطها مع أوامر قام إكسبريت أخر بفتتحها
كل هذا يكون عن طريق مدخل واحد يعرف بـ

الرقم السحري MagicNumber

هذا الرقم هو الذي يسمح لنا التميز بين الصفقات التي تقوم الإكسبريتات بفتحها
وهو وسيلتنا لتعرف على أي صفقة نريد تعديلها أو تنفيذ أي أمر عليها

نعود الأن لشرح وظيفة MyRealOrdersTotal

1- إسم الوظيفة : أنت حر في التسمية التي تريد بشرط أن تكون حرفها غير مفصولة عن بعضها البعض
كود:
int MyRealOrdersTotal()   
{

}
2-القيمة الإبتدائية للوظيفة c=0 وهي القيمة التي تعودبها الوظيفة في الأخير return

كود:
int MyRealOrdersTotal()  
{  
  int c=0;  
  

  return(c);  
}

 

 

 

 

 

 



توقيع dahmanesoft
لاإله إلا الله

 

 



Facebook Twitter
  • اقتباس
dahmanesoft
مشاهدة ملفه الشخصي
البحث عن المشاركات التي كتبها dahmanesoft
  رقم المشاركة : [ 9  ]
قديم 14-09-2013, 11:05 AM
dahmanesoft
http://www.alkindyfx.org/vb/alqab/marl7la-2.png

الصورة الرمزية dahmanesoft

رقم العضوية : 242
بلد الإقامة : الجزائر
تاريخ التسجيل : Oct 2011
عدد المشاركات : 448

dahmanesoft is on a distinguished road
غير متواجد
 
افتراضي
 

3- الحلقة التي تمر على جميع الأوامر الموجودة على المنصة ( العداد)

بالنسبة للوظيفة OrdersTotal هي وظيفة محجوزة في لغة mql4 تعود لنا بعدد الأوامر المفتوحة على المنصة وهي تظهر باللون البنفسجي عند كتابتها

كود:
int MyRealOrdersTotal()  
{  
  int c=0;  
  int total  = OrdersTotal();  
  for (int cnt = 0 ; cnt < total ; cnt++)  
  {  
     
 
  }  
  return(c);  
}
الحلقة For تمر على جميع الأوامر المفتوحة

4- تحديد الأوامر التي نحتجها عن طريق الوظيفة OrderSelect

هذه الوظيفة تحتوي على 3 إعدادات هي
1- الفهرس وهي الأرقام التي تمر عليها الحلقة for
2- SELECT_BY_POS وهو الرقم التسلسلي الذي تحددنا عليه في بداية المشاركة ويمكن أو إختيار كذلك رقم التكت
SELECT_BY_TICKET
3- MODE_TRADES ونقصد به الجزء TRADE الموجودة في المنصة

5- شروط تحديد الصفقة المعنية وهي أهم شيئ

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

كود:
int MyRealOrdersTotal()  
{  
  int c=0;  
  int total  = OrdersTotal();  
  for (int cnt = 0 ; cnt < total ; cnt++)  
  {  
     OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);  
    if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol() && (OrderType()==OP_BUY || OrderType()==OP_SELL))  
    {  
      c++;  
    }  
  }  
  return(c);  
}
إلى هنا نكون قد إنتهينا من شرح الوظيفة وسأقوم إن شاء الله في المشاركات القادمة بتوضيح نماذج أخر لوظائف أخرى
من أجل معرفة الفرق بينهم

وأي سؤال أخر أو أي نقطة غير مفهومة تفضلوا بطرح الأسئلة

 

 

 

 

 

 



توقيع dahmanesoft
لاإله إلا الله

 

 



Facebook Twitter
  • اقتباس
dahmanesoft
مشاهدة ملفه الشخصي
البحث عن المشاركات التي كتبها dahmanesoft
  رقم المشاركة : [ 10  ]
قديم 14-09-2013, 01:55 PM
ابو احمد

رقم العضوية : 2013
بلد الإقامة : امام التشارت
تاريخ التسجيل : Feb 2012
عدد المشاركات : 74

ابو احمد is on a distinguished road
غير متواجد
 
افتراضي
 


المشاركة الأصلية كتبت بواسطة dahmanesoft

السلام عليكم أبو أحمد

هههههه لا والله إسئل ماتريد بل بالعكس من خلال أسئلتك هناك أشخاص أخرين يستفيد
وعليكم السلام ورحمة الله وبركاته
يعلم الله اني اجتهد في اسئلتي لتكون عامة ولتفيد من يريد التعلم

وتأكد ان ما تكتبه هو مفيد لكل من يريد الاستفادة اليوم او بعد سنوات.....ههه اسأل مجرب
دعني اهضم ما تفضلت به واعود لطرح الاستفسارات
جزاكم الله خير الجزاء
سؤال يراودني هل انت س..ري ؟ كنت في منتدى الجيران

 

 

 

 

 

 



Facebook Twitter
  • اقتباس
ابو احمد
مشاهدة ملفه الشخصي
البحث عن المشاركات التي كتبها ابو احمد
اضافة رد
صفحة 1 من 3 1 23 >

مواقع النشر (المفضلة)
  • إرسال الموضوع إلى Digg Digg
  • إرسال الموضوع إلى Google Google
  • إرسال الموضوع إلى Facebook Facebook

الكلمات الدلالية (Tags)
للغةmql4, لطرح, مفتوح, ورشة, الاسئلة, البرمجية

« الموضوع السابق | الموضوع التالي »

الذين يشاهدون محتوى الموضوع الآن : 1 ( الأعضاء 0 والزوار 1)
 

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

BB code is متاحة
الابتسامات متاحة
كود [IMG] متاحة
كود HTML معطلة

قوانين المنتدى
الانتقال السريع






الساعة الآن 11:34 AM.

الاتصال بنا - مؤسسة الكندي للإستشارات المالية - الأرشيف - الأعلى


Powered by vBulletin Version 3.8.12 by vBS
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd دعم فني

جميع الحقوق محفوظة لـ منتديات الكندي للتدريب والإستشارات المالية -



أقسام الموقع

  • منتديات الكندي
  • منتديات الكندي
  • منتديات الكندي
  • منتديات الكندي
  • منتديات الكندي
  • منتديات الكندي

نبذة عنــــا

منتديات الكندي

جميع الحقوق محفوظة لمؤسسة الكندي لإحتراف الفوركس

السلام عليكم ورحمة الله وبركاته

للتواصل مع المهندس عادل الكندي نأمل منكم الاتصال على مدير مكتبه على الرقم 00212661504832 الاستاذ جمال سعداوي