مؤسسة الكندي للإستشارات المالية

مؤسسة الكندي للإستشارات المالية (http://www.alkindyfx.org/vb/index.php)
-   منتدى البرمجيات و المؤشرات والإكسبرتات ( Software ) (http://www.alkindyfx.org/vb/forumdisplay.php?f=5)
-   -   ورشة مفتوحة لطرح الاسئلة البرمجية للغة mql4 (http://www.alkindyfx.org/vb/showthread.php?t=32251)

dahmanesoft 08-09-2013 06:57 PM

ورشة مفتوحة لطرح الاسئلة البرمجية للغة mql4
 
http://im38.gulfup.com/UK9b2.jpg

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

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

ابو احمد 08-09-2013 08:36 PM

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

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

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

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

ابو احمد 08-09-2013 09:51 PM

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

[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++)
{



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

ابو احمد 08-09-2013 10:16 PM

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

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


اي


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


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


خالص تحياتي

ابو احمد 12-09-2013 03:18 PM

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

dahmanesoft 14-09-2013 08:58 AM

اقتباس:

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

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

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

dahmanesoft 14-09-2013 09:41 AM

اقتباس:

المشاركة الأصلية كتبت بواسطة ابو احمد (المشاركة 308991)
السلام عليكم
شرط عدد الاوامر المفتوحة صفر

[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) { هنا نكتب الأوامر التي نريد تنفيدها عند حدوث الشرط}
وفي الأخير تكون النتيجة هكذا
http://im37.gulfup.com/FXxzZ.jpg

dahmanesoft 14-09-2013 10:33 AM

شرح الوظيفة 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 14-09-2013 11:05 AM

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); 
}

إلى هنا نكون قد إنتهينا من شرح الوظيفة وسأقوم إن شاء الله في المشاركات القادمة بتوضيح نماذج أخر لوظائف أخرى
من أجل معرفة الفرق بينهم

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

ابو احمد 14-09-2013 01:55 PM

اقتباس:

المشاركة الأصلية كتبت بواسطة dahmanesoft (المشاركة 309869)
السلام عليكم أبو أحمد

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

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

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

dahmanesoft 14-09-2013 04:09 PM

اقتباس:

المشاركة الأصلية كتبت بواسطة ابو احمد (المشاركة 309881)
وعليكم السلام ورحمة الله وبركاته
يعلم الله اني اجتهد في اسئلتي لتكون عامة ولتفيد من يريد التعلم

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

اهلا أخي ابو احمد
بالنسبة لسؤال الذي يراودك لا لست انا انا لا أكتب في مواضيع البرمجة إلا في هذا المنتدى

belkacem1966 15-09-2013 12:43 AM

اقتباس:

المشاركة الأصلية كتبت بواسطة dahmanesoft (المشاركة 309883)
اهلا أخي ابو احمد
بالنسبة لسؤال الذي يراودك لا لست انا انا لا أكتب في مواضيع البرمجة إلا في هذا المنتدى

السلام عليكم يا مشرف البرمجة ممكن نظرة في موضوعي استراتيجية صبح صبح
شكرا لك مسبقا
لو مشغول اسمحنا

dahmanesoft 15-09-2013 01:24 AM

اقتباس:

المشاركة الأصلية كتبت بواسطة belkacem1966 (المشاركة 309910)
السلام عليكم يا مشرف البرمجة ممكن نظرة في موضوعي استراتيجية صبح صبح
شكرا لك مسبقا
لو مشغول اسمحنا

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

mahdi 15-09-2013 07:21 PM

يا اخي شكرا جزيلا لك و انا اعتذر عن الالحاح
وجودكم هما اضافة كبيرة للمنتدى
شكرا مرة اخرى

mahdi 15-09-2013 07:24 PM

يا اخي شكرا جزيلا لك و انا اعتذر عن الالحاح
وجودكم هما اضافة كبيرة للمنتدى
شكرا مرة اخرى

ابو احمد 19-09-2013 08:49 PM

للاسف فشلت كل محاولاتي لتنفيذ الشرح
هل ممكن الكود البرمجي كامل على نفس المثال ؟
حتى اتعلم اين نضع الاضافات بالتحديد

شاكر كل مجهوداتكم

ياسين المغربي 23-09-2013 12:32 AM

السلام عليكم
اريد اعرف ما معنى هدا الخطا
عندما اقوم بعمل باكتست
كود PHP:

2013.09.22 20:27:10    2013.04.09 03:12  yassine signal GBPUSD,H1OrderSend error 4062 

et merci infiniment khouya

dahmanesoft 23-09-2013 06:47 PM

اقتباس:

المشاركة الأصلية كتبت بواسطة ياسين المغربي (المشاركة 310849)
السلام عليكم
اريد اعرف ما معنى هدا الخطا
عندما اقوم بعمل باكتست
كود PHP:

2013.09.22 20:27:10    2013.04.09 03:12  yassine signal GBPUSD,H1OrderSend error 4062 

et merci infiniment khouya


السلام عليكم أخي ياسين

معنى هذا الخطأ أن الإكسبريت لم يتكمن من فتح الأمر أي أن الوظيفة OrderSend المسؤولة عن فتح الأوامر حدث بها خطأ
والخطأ هو مشكلة في الإعدادات النصية الموجودة داخل الوظيفة OrderSend

وهذا الجدول يبين معنى بعض الأخطاء التي تحدث في عدد من الوظائف

http://im34.gulfup.com/Nsu4K.jpg

ياسين المغربي 24-09-2013 02:32 AM

اقتباس:

المشاركة الأصلية كتبت بواسطة dahmanesoft (المشاركة 310959)
السلام عليكم أخي ياسين

معنى هذا الخطأ أن الإكسبريت لم يتكمن من فتح الأمر أي أن الوظيفة OrderSend المسؤولة عن فتح الأوامر حدث بها خطأ
والخطأ هو مشكلة في الإعدادات النصية الموجودة داخل الوظيفة OrderSend

وهذا الجدول يبين معنى بعض الأخطاء التي تحدث في عدد من الوظائف

http://im34.gulfup.com/Nsu4K.jpg

شكرا اخي الكريم على الرد
انا قمت بالثالي
كود PHP:

            OrderSend(NULL,OP_BUY,Lots,Ask,3,SL,TP,"yassine trader EA",MagicNumber,0,Red);
             
PlaySound("Alert.wav"); 

و

كود PHP:

            OrderSend(NULL,OP_SELL,Lots,Bid,3,SL,TP,"yassine trader EA",MagicNumber,0,Green); 
             
PlaySound("Alert.wav"); 


ابو احمد 25-09-2013 03:32 AM

اقتباس:

المشاركة الأصلية كتبت بواسطة ابو احمد (المشاركة 310572)
للاسف فشلت كل محاولاتي لتنفيذ الشرح
هل ممكن الكود البرمجي كامل على نفس المثال ؟
حتى اتعلم اين نضع الاضافات بالتحديد

شاكر كل مجهوداتكم


للتذكرة ؟؟؟

dahmanesoft 28-09-2013 11:22 AM

اقتباس:

المشاركة الأصلية كتبت بواسطة ابو احمد (المشاركة 310572)
للاسف فشلت كل محاولاتي لتنفيذ الشرح
هل ممكن الكود البرمجي كامل على نفس المثال ؟
حتى اتعلم اين نضع الاضافات بالتحديد

شاكر كل مجهوداتكم

السلام عليكم أبو أحمد
بالنسبة للإضافة التي سنطبقها ستكون على الإكسبريت الذي قمنا بتصميمه EA_MA14_MA28
ماهي الإضافة الجديدة ؟؟؟
سوف نجعل الإكسبريت يقوم بفتح أوامر جديدة كلما عكس عدد محدد من النقاط نقوم نحن بتحديده (التبريد)
نضيف خاصية إمكانية التحكم في العدد الإجمالي التي يسمح الإكسبريت بفتحها

1-نقوم بتغير قيمة الستوب لوس إلى 0
2-نقوم بإضافة متغير خارجي بإسم pip لتحكم في عدد نقاط الإنعكاس (التبريد)
3-نقوم بإضافة متغير خارجي بإسم MaxOrders لتحكم في عدد الأوامر التي يسمح الإكسبريت بفتحها


يصبيح الكود كما يلي

كود:


extern int TakeProfit    =25;
extern int StopLoss      =0;   
extern double Lots      =0.01;
      int MagicNumber  =123456789;
      double TP,SL;
      double MA14_0,MA28_0,MA14_1,MA28_1;
 extern int pip = 25;
 extern int MaxOrders = 10;


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

كود:

if( MyRealOrdersTotal()<=MaxOrders)
{
جميع شروط الأخرى  تكون هنا

}

وكذلك نقوم بإضافة شرط جديد في حالة البيع يكون كما يلي
كود:

if(MyRealOrdersTotal()>0&&Bid>=(OrderOpenPrice()+pip*Point))
      {
        if(StopLoss==0){SL=0;}else{SL=Bid+StopLoss*Point;}
        if(TakeProfit==0){TP=0;}else{TP=Bid-TakeProfit*Point;}
        OrderSend(Symbol(),OP_SELL,Lots,Bid,3,SL,TP,"dahmanesoft",MagicNumber,0,Red);
      }

وفي حالة الشراء يكون

كود:


 if(MyRealOrdersTotal()>0&&Ask<=(OrderOpenPrice()-pip*Point))
     
        {
        if(StopLoss==0){SL=0;}else{SL=Ask-StopLoss*Point;}
        if(TakeProfit==0){TP=0;}else{TP=Ask+TakeProfit*Point;}
        OrderSend(Symbol(),OP_BUY,Lots,Ask,3,SL,TP,"dahmanesoft",MagicNumber,0,Red);
      }

وفي النهاية يكون كود الإكسبريت النهائي كما يلي


كود:


//+------------------------------------------------------------------+
//|                                                EA_MA14_MA28.mq4 |
//|                                        Copyright 2013, alkindyfx |
//|                                                www.alkindyfx.org |
//+------------------------------------------------------------------+
#property copyright "Copyright 2013, alkindyfx"
#property link      "www.alkindyfx.org"


extern int TakeProfit    =25;
extern int StopLoss      =0;   
extern double Lots      =0.01;
      int MagicNumber  =123456789;
      double TP,SL;
      double MA14_0,MA28_0,MA14_1,MA28_1;
 extern int pip = 25;
 extern int MaxOrders = 10;
//+------------------------------------------------------------------+
//| expert initialization function                                  |
//+------------------------------------------------------------------+
int init()
  {

  return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                |
//+------------------------------------------------------------------+
int deinit()
  {

  return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
  MA14_0 =iMA(Symbol(),0,14,0,MODE_SMA,PRICE_CLOSE,0);
  MA28_0 =iMA(Symbol(),0,28,0,MODE_SMA,PRICE_CLOSE,0);
  MA14_1 =iMA(Symbol(),0,14,0,MODE_SMA,PRICE_CLOSE,1);
  MA28_1 =iMA(Symbol(),0,28,0,MODE_SMA,PRICE_CLOSE,1);
 
  if( MyRealOrdersTotal()<=MaxOrders){
 
      if(MyRealOrdersTotal()==0&&MA14_1>MA28_1&&MA14_0<MA28_0)
        {
        if(StopLoss==0){SL=0;}else{SL=Bid+StopLoss*Point;}
        if(TakeProfit==0){TP=0;}else{TP=Bid-TakeProfit*Point;}
        OrderSend(Symbol(),OP_SELL,Lots,Bid,3,SL,TP,"dahmanesoft",MagicNumber,0,Red);
      }
      if(MyRealOrdersTotal()>0&&Bid>=(OrderOpenPrice()+pip*Point))
      {
        if(StopLoss==0){SL=0;}else{SL=Bid+StopLoss*Point;}
        if(TakeProfit==0){TP=0;}else{TP=Bid-TakeProfit*Point;}
        OrderSend(Symbol(),OP_SELL,Lots,Bid,3,SL,TP,"dahmanesoft",MagicNumber,0,Red);
      }
     
    if(MyRealOrdersTotal()==0&&MA14_1<MA28_1&&MA14_0>MA28_0)
        {
        if(StopLoss==0){SL=0;}else{SL=Ask-StopLoss*Point;}
        if(TakeProfit==0){TP=0;}else{TP=Ask+TakeProfit*Point;}
        OrderSend(Symbol(),OP_BUY,Lots,Ask,3,SL,TP,"dahmanesoft",MagicNumber,0,Red);
      }
      if(MyRealOrdersTotal()>0&&Ask<=(OrderOpenPrice()-pip*Point))
     
        {
        if(StopLoss==0){SL=0;}else{SL=Ask-StopLoss*Point;}
        if(TakeProfit==0){TP=0;}else{TP=Ask+TakeProfit*Point;}
        OrderSend(Symbol(),OP_BUY,Lots,Ask,3,SL,TP,"dahmanesoft",MagicNumber,0,Red);
      }
     
      }
  return(0);
  }
//+------------------------------------------------------------------+
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); 
}



الساعة الآن 04:00 PM.

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

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