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

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

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


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

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

  رقم المشاركة : [ 21  ]
قديم 28-09-2013, 11:22 AM
dahmanesoft
http://www.alkindyfx.org/vb/alqab/marl7la-2.png

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

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

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


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

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

شاكر كل مجهوداتكم
السلام عليكم أبو أحمد
بالنسبة للإضافة التي سنطبقها ستكون على الإكسبريت الذي قمنا بتصميمه 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);  
}

 

 

 

 

 

 



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

 

 



Facebook Twitter
  • اقتباس
dahmanesoft
مشاهدة ملفه الشخصي
البحث عن المشاركات التي كتبها dahmanesoft
اضافة رد
صفحة 3 من 3 < 12 3

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

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

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

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

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

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

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






الساعة الآن 07:03 PM.

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


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

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



أقسام الموقع

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

نبذة عنــــا

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

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

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

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