• 12:57 مساءاً




طلب كود لاكسبرت

إضافة رد
عضو جديد
تاريخ التسجيل: Dec 2013
المشاركات: 5
معدل تقييم المستوى: 0
azizhaddad is on a distinguished road
19 - 12 - 2013, 11:10 PM
  #1
azizhaddad غير متواجد حالياً  
Question طلب كود لاكسبرت
السلام عليكم و رحمة الله و بركاته
أنا الان بصدد عمل مؤشر لكنواجهتني بعض المشاكل يا ريت تساعدني لو سمحت أخي الفاضل
أولا أرغب في الكود الذي يجعل المؤشر يعمل في وقت معين مثلا الساعة 18:05
كما أحتاج الى كود تغيير الاستوبلوز الى 5 نقاط ربح في حالة بلغ الربح العائم 20 نقطة
و أخيرا كود يقفل الصفقة في وقت معين لو لم يصل السعر الى الاستوب لوز أم أخذ الأرباح
وشكرا مسبقا أخي
رد مع اقتباس

الصورة الرمزية خالد شحاتة
مشرف قسم المؤشرات والاكسبرتات
الصورة الرمزية خالد شحاتة
 
تاريخ التسجيل: Jun 2012
الدولة: مصر
المشاركات: 1,562
خبرة السوق: 5 الى 10 سنوات
معدل تقييم المستوى: 13
خالد شحاتة is on a distinguished road
افتراضي رد: طلب كود لاكسبرت
2#
20 - 12 - 2013, 03:10 AM
اقتباس:
المشاركة الأصلية كتبت بواسطة azizhaddad مشاهدة المشاركة
السلام عليكم و رحمة الله و بركاته
أنا الان بصدد عمل مؤشر لكنواجهتني بعض المشاكل يا ريت تساعدني لو سمحت أخي الفاضل
أولا أرغب في الكود الذي يجعل المؤشر يعمل في وقت معين مثلا الساعة 18:05
كما أحتاج الى كود تغيير الاستوبلوز الى 5 نقاط ربح في حالة بلغ الربح العائم 20 نقطة
و أخيرا كود يقفل الصفقة في وقت معين لو لم يصل السعر الى الاستوب لوز أم أخذ الأرباح
وشكرا مسبقا أخي
وعليكم السلام ورحمة الله وبركاته
من الواضح انك تقصد اكسبرت وليس مؤشر
اولا كود الوقت
ستحجز متغيرين فى الجلوبال اريا لوقت البدء ووقت الانتهاء

كود:
extern string Time_Start="00:00";
extern string Time_End="23:59";
ثم تضع تعريف الوقت فى دالة ستارت

كود:
double hour=Hour()+Minute()/100.0;
  datetime start= StrToTime(TimeToStr(TimeCurrent(), TIME_DATE) + " " + Time_Start);
  datetime end= StrToTime(TimeToStr(TimeCurrent(), TIME_DATE) + " " + Time_End);
  bool time=(Time[0]>=start && Time[0]<=end); 
  bool end_time=(Time[0]>=end);
ثانيا كود الستوب لوز
ستحتاج الى كود البريك ايفن
ستحجز متغير فى الجلوبل اريا
كود:
extern int BreakEven=0;
ثم تعريف الكود اسفل دالة ستارت

كود:
void MoveBreakEven()
{
   int cnt,total=OrdersTotal();
   for(cnt=0;cnt<total;cnt++)
   {
      OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
      if(OrderType()<=OP_SELL&&OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
      {
         if(OrderType()==OP_BUY)
         {
            if(BreakEven>0)
            {
               if(NormalizeDouble((Bid-OrderOpenPrice()),Digits)>BreakEven*pt)
               {
                  if(NormalizeDouble((OrderStopLoss()-OrderOpenPrice()),Digits)<0)
                  {
                     OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(OrderOpenPrice()+movestopto*pt,Digits),OrderTakeProfit(),0,Blue);
                  
                  }
               }
            }
         }
         else
         {
            if(BreakEven>0)
            {
               if(NormalizeDouble((OrderOpenPrice()-Ask),Digits)>BreakEven*pt)
               {
                  if(NormalizeDouble((OrderOpenPrice()-OrderStopLoss()),Digits)<0)
                  {
                     OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(OrderOpenPrice()-movestopto*pt,Digits),OrderTakeProfit(),0,Red);
               
                  }
               }
            }
         }
      }
   }
}
واخيرا تضع شرط اغلاق الصفقه وفقا لشروط الاغلاق التى تريدها
وتضع متغير الاغلاق اسفل دالة ستارت

كود:
void CloseDeleteAll()
{
    int total  = OrdersTotal();
      for (int cnt = total-1 ; cnt >=0 ; cnt--)
      {
         OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
       
         if(OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES)) 
         {
         if(OrderSymbol()==Symbol()&&MagicNumber==OrderMagicNumber()){
            switch(OrderType())
            {
               case OP_BUY       :
               {
                  if(!OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),0,Violet))
                     return(false);
               }break;                  
               case OP_SELL      :
               {
                  if(!OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),0,Violet))
                     return(false);
               }break;
            }             
         
            
            if(OrderType()==OP_BUYSTOP || OrderType()==OP_SELLSTOP || OrderType()==OP_BUYLIMIT || OrderType()==OP_SELLLIMIT)
               if(!OrderDelete(OrderTicket()))
               { 
                  Print("Error deleting " + OrderType() + " order : ",GetLastError());
                  return (false);
             }  }
          }
      }
      return (true);
هذا على حد علمى البسيط
وننتظر تعليق الاستاذ سمير

خالد شحاتة غير متواجد حالياً  
رد مع اقتباس


إضافة رد

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


جديد مواضيع منتدى المؤشرات و الاكسبرتات

المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
موضوع جديد لاكسبرت قديم !! arabianmatrix منتدى المؤشرات و الاكسبرتات 7 09 - 09 - 2013 02:50 AM
طلب عاجل لاكسبرت بسيط sakana منتدى المؤشرات و الاكسبرتات 10 22 - 06 - 2013 01:13 PM
طلب تحويل مؤشر لاكسبرت mahmoudh7 منتدى المؤشرات و الاكسبرتات 9 25 - 03 - 2013 03:19 AM
طلب إضافة ال trailing stop لاكسبرت Onewhen منتدى المؤشرات و الاكسبرتات 13 25 - 02 - 2013 12:49 AM
مطلوب عمل باك تست 99% او 90% لاكسبرت margin call منتدى المؤشرات و الاكسبرتات 0 15 - 08 - 2012 09:52 AM


12:57 PM