صفحة 168 من 686 الأولىالأولى ... 68118158162163164165166167168169170171172173174178218268668 ... الأخيرةالأخيرة
النتائج 2,506 إلى 2,520 من 10285
  1. #2506
    الصورة الرمزية LOveR
    LOveR غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Mar 2007
    المشاركات
    134

    افتراضي

    اتوقع حليت جزء من المشكله كانت عندي في قيمة المود

  2. #2507
    الصورة الرمزية MR.dollar
    MR.dollar غير متواجد حالياً مشرف المتداول العربي
    تاريخ التسجيل
    Jun 2009
    الإقامة
    مصر
    المشاركات
    13,851

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة LOveR مشاهدة المشاركة
    اتفضل استاذ اسامه الاكسيبيرت اصلا لموضوع تعليمي اخذت الكود وحاولت اعدل عليه ولك تحياتي استاذي الفاضل
    لديك خطأ في كود إستدعاء المؤشر
    كود PHP:
    double down1=iCustom(NULL,0,"TCCI",0,Price,Length,Displace,Filter,Color,ColorBarBack,Deviation,1,shift); 
    لاحظ أنك وضعت 0 الأولى للتايم فريم لكن لماذا وضعت صفر آخر بعد إسم المؤشر بالتالي قمت بتغيير إعدادات المؤشر وهذا ما يسبب الخطأ
    إستخدم
    كود PHP:
     double down1=iCustom(NULL,0,"TCCI",Price,Length,Displace,Filter,Color,ColorBarBack,Deviation,1,shift); 
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

  3. #2508
    الصورة الرمزية fxsmartsniper
    fxsmartsniper غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Dec 2011
    الإقامة
    مصر
    المشاركات
    556

    افتراضي رد:موضوع مخصص للأسئلة البرمجية

    اقتباس المشاركة الأصلية كتبت بواسطة MR.dollar مشاهدة المشاركة
    نعم يمكن كمثال راجع الإكسبرت المرفق
    طبعا يمكنك إضافة شروط للكود بحيث لا يغلق الصفقه إلا بنفس الماجيك نمبر التي يحملها الإكسبرت الآخر
    شكر ا جزيلا ا اسامة
    ممكن لو سمحت اضافة كود علي هذا الاكسبرت لجعلة يغلق علي ربح معين او خسارة معينة لكل صفقة بالاضافة لكود كل الصفقات(وضعة الحالي)
    الملفات المرفقة الملفات المرفقة
    آخر تعديل بواسطة fxsmartsniper ، 27-07-2012 الساعة 09:24 AM
    توقيع العضو
    استغفر الله العظيم عدد ما كان وعددما سيكون وعدد الحركات والسكون

  4. #2509
    الصورة الرمزية ahmedessam58
    ahmedessam58 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Jul 2008
    الإقامة
    مصر
    المشاركات
    493

    افتراضي رد:موضوع مخصص للأسئلة البرمجية

    السلام عليكم
    اخى مستر دولار
    معلشى حاولت اضيف شوية خصائص جديدة للاكسبيرت بتاعى زى البريك ايفن وخلافه وعزبتنى الاكواد علشان انقلها من الاكسبيرت الخاص بحضرتك بتاع الباربوليك سار والحمدلله خلصت ولكن الاكسبيرت كان بيفتح اكتر من صفقة فضت الماكس تريد بدل رقم واحد فطلع لى 3 اخطاء خاصين بال cnt فارجو علاجهم فى الكود المرفق ولك جزيل الشكر وحاولت قراءة اكسبيرت المضاعفات ولكنى لم افلح ولذلك اطلب من حضرتك اضافة المضاعفات لهذا الكود ( المضاعفات اللى اقصدها هى الدخول بالشروط الطبيعية للاكسبيرت ويكون العقد الاول ب0.10 وعند خسارته ينتظر تحقق الشروط ثم يدخل ب0.20 ولو خسر يدخل ب0.30 اذا تحققت الشروط لحد ما يكسب صفقة واحدة يروح راجع من تانى ل0.10 وهكذا ولى طلب اخير وانا عارف انى تقلت عليك بس والله هدعيلك
    وه التعديل على المؤشر ده وشكرا ليك يا استاذ/ اسامة وربنا يارب يرزقك الذرية الصالحة والخلف الصالح
    https://forum.arabictrader.com/t150074.html

    كود PHP:
     //+------------------------------------------------------------------+
     //|                                                                  |
     //|                                                                  |
     //|                                      www.arabictrader.com/vb     |
     //|                                                                  |
     //|                                          [email protected]   |
     //+------------------------------------------------------------------+
     
     #property copyright "MR.dollarEA"
     #property link      "[email protected]"

              
     
    extern bool  UseTimeFilter false;        
     
    extern int  StartHour 7;            
     
    extern int  EndHour 17
             
     
    extern string  MM_Parameters "---------- Money Management";
     
    extern int  MaxTrades 1
     
    extern double  Lots 0.10;                                           
                         
     
    extern string Ich=" Ichimoku Settings";
     
    extern int    tenkansen=9
     
    extern int    kijunsen=26
     
    extern int    senkospan=52;
     
    extern int    shift=1;
     
    extern int    shift2=26;
     
    extern int    Ichimoku_TIME_FRAME=240;
     
    extern string S5="Order Management";

    extern int BreakEven=0;
    extern int movestopto=1;
    extern int StopLoss=0;
    extern int TakeProfit=0;
    extern int TrailingStop=0;
    extern int TrailingStep=0;

     

     
    double point;
     
    int digits;
     
    extern int MagicNumber=2533;                             
     
    int init()
    {
      
        if(
    Digits<4)
       {
          
    point=0.01;
          
    digits=2;
       }
       else
       {
          
    point=0.0001;
          
    digits=4;
       }
    return(
    0);
    }

     
    //+------------------------------------------------------------------+
     //| FUNCTION DEFINITIONS    deinitialization function                |
     //+------------------------------------------------------------------+

     
    void deinit() {
        
    Comment("");
      }

     
    int orderstotal(){
     
    int cnt=0;
       for(
    int i =0;i<OrdersTotal();i++){
         
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
           if(
    OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()){
             
    cnt++;
           }
         }
        return(
    cnt);
      }

     
    //+------------------------------------------------------------------+
     //| FUNCTION DEFINITIONS   Start function                            |
     //+------------------------------------------------------------------+

     
    int start()
       {
        
    Comment("Programmed by MR.dollar"+"\n"+"منتدى المتداول العربي"+"\n"+"www.arabictrader.com/vb");
           if (
    UseTimeFilter){
           if(!((
    StartHour EndHour && TimeHour(TimeCurrent()) >= StartHour && TimeHour(TimeCurrent()) < EndHour) || (StartHour EndHour && TimeHour(TimeCurrent()) >= StartHour ||
                   
    TimeHour(TimeCurrent()) < EndHour))){
               
    Comment("Non-Trading Hours!");
               return(
    0);
             }
           }
           
    //|---------trailing stop

       
    if(TrailingStop>0)MoveTrailingStop();
       
      if(
    BreakEven>0)MoveBreakEven();
       
           
    //////////////////////////////////////////////////
    double  Tenkan=iIchimoku(NULL,0,tenkansen,kijunsen,senkospan,MODE_TENKANSEN,shift); 
    double  Kijun=iIchimoku(NULL,0,tenkansen,kijunsen,senkospan,MODE_KIJUNSEN,shift); 
    double  Senkou=iIchimoku(NULL,0,tenkansen,kijunsen,senkospan,MODE_CHINKOUSPAN,1+kijunsen); 
    double  Senkoua=iIchimoku(NULL,0,tenkansen,kijunsen,senkospan,MODE_SENKOUSPANA,shift); 
    double  Senkouaplus=iIchimoku(NULL,0,tenkansen,kijunsen,senkospan,MODE_SENKOUSPANA,shift+27);
    double  Senkoub=iIchimoku(NULL,0,tenkansen,kijunsen,senkospan,MODE_SENKOUSPANB,shift); 
    double  Senkoubplus=iIchimoku(NULL,0,tenkansen,kijunsen,senkospan,MODE_SENKOUSPANB,shift+27);
    double  Ichimoku_B=iCustom(Symbol(),0,"Ichimoku Trend Magic Histogram with Alert",1,shift);
    double  Ichimoku_S=iCustom(Symbol(),0,"Ichimoku Trend Magic Histogram with Alert",0,shift);
    double  Ichimoku_BF=iCustom(Symbol(),0,"Ichimoku Bars Filter",0,shift);
    double  Ichimoku_SF=iCustom(Symbol(),0,"Ichimoku Bars Filter",1,shift);
    double  IchimoAA=iIchimoku(NULL,Ichimoku_TIME_FRAME,9,26,52,MODE_SENKOUSPANA,shift); 
    double  IchimoBB=iIchimoku(NULL,Ichimoku_TIME_FRAME,9,26,52,MODE_SENKOUSPANB,shift); 
        
    ////////////////////////////////////////////////////
          
    double SL,TP
          
         
       
     
        
    ////////////////////////////////
       
              
        
    if((Open[1]>Tenkan)&&(Close[1]>Tenkan)&&(Tenkan>=Kijun)&&(Close[1]>Senkoub)&&(Close[1]>Senkoua)&&(Ichimoku_B==3)&&(Senkou>Senkoubplus&&Senkou>Senkouaplus)&&(Ichimoku_BF>0)&&(Close[1]>IchimoAA)&&(Close[1]>IchimoBB))
        {
    if(
    orderstotal()<MaxTrades){
            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,"MR.dollar EA",MagicNumber,0,Blue);
                 
    PlaySound("Alert.wav");
                 
            }  
           }
           
        
        
        
    /////////////////////
        
       
    if ((Open[1]<Tenkan)&&(Close[1]<Tenkan)&&(Tenkan<=Kijun)&&(Close[1]<Senkoua)&&(Close[1]<Senkoub)&&(Ichimoku_S==3)&&(Senkou<Senkoubplus&&Senkou<Senkouaplus)&&(Ichimoku_SF>0)&&(Close[1]<IchimoAA)&&(Close[1]<IchimoBB))
       {
      if(
    orderstotal()<MaxTrades){    
             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,"MR.dollar EA",MagicNumber,0,Red); 
                 
    PlaySound("Alert.wav");
                 
                 
              
           }
        }
       
    //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
    // Limiting Orders

     
    int orderstotal(){
     
    int cnt=0;
       for(
    int i =0;i<OrdersTotal();i++){
         
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
           if(
    OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()){
             
    cnt++;
           
         }
       }

       return(
    cnt);
       } 
    //+------------------------------------------------------------------+
    // OrdersHistoryTotal -- MODE_HISTORY -- Closed Orders //

     // OrdersTotal -- MODE_TRADES -- Opend Orders // 
    //+------------------------------------------------------------------+
    // lastlot & WinorLoss Functions // 
     
    double lastlot(){
     for(
    int i=0;i<OrdersHistoryTotal();i++){
     
    OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
     if(
    OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()){
     
    double lotsnumber=OrderLots();

    }


    return(
    lotsnumber);
    }

     
    double lastlot2(){
     for(
    int i=0;i<OrdersTotal();i++){
     
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
     if(
    OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()){
     
    double lotsnumber=OrderLots();

    }


    return(
    lotsnumber);
    }



    bool WinorLoss(){

    bool win=true;
     for(
    int i=0;i<OrdersHistoryTotal();i++){
     
    OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
     if(
    OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()){
     if(
    OrderProfit()>0){ 
     
    win=true;

    else{
    win=false;
    }
    }
    }
    return(
    win);
    }



     
    //+------------------------------------------------------------------+
     //| FUNCTION DEFINITIONS   TrailingStop                              |
     //+------------------------------------------------------------------+
        
        //|---------trailing stop

    void MoveTrailingStop()
    {
       
       for(
    int cnt=0;cnt<OrdersTotal();cnt++)
       {
          
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
          if(
    OrderType()<=OP_SELL&&OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
          {
             if(
    OrderType()==OP_BUY)
             {
                if(
    TrailingStop>0&&NormalizeDouble(Ask-TrailingStep*point,digits)>NormalizeDouble(OrderOpenPrice()+TrailingStop*point,digits))  
                {                 
                   if((
    NormalizeDouble(OrderStopLoss(),digits)<NormalizeDouble(Bid-TrailingStop*point,digits))||(OrderStopLoss()==0))
                   {
                      
    OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid-TrailingStop*point,digits),OrderTakeProfit(),0,Blue);
                    
                   }
                }
             }
             else 
             {
                if(
    TrailingStop>0&&NormalizeDouble(Bid+TrailingStep*point,digits)<NormalizeDouble(OrderOpenPrice()-TrailingStop*point,digits))  
                {                 
                   if((
    NormalizeDouble(OrderStopLoss(),digits)>(NormalizeDouble(Ask+TrailingStop*point,digits)))||(OrderStopLoss()==0))
                   {
                      
    OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Ask+TrailingStop*point,digits),OrderTakeProfit(),0,Red);
                    
                   }
                }
             }
          }
       }
    }



    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*point)
                   {
                      if(
    NormalizeDouble((OrderStopLoss()-OrderOpenPrice()),digits)<0)
                      {
                         
    OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(OrderOpenPrice()+movestopto*point,digits),OrderTakeProfit(),0,Blue);
                      
                      }
                   }
                }
             }
             else
             {
                if(
    BreakEven>0)
                {
                   if(
    NormalizeDouble((OrderOpenPrice()-Ask),digits)>BreakEven*point)
                   {
                      if(
    NormalizeDouble((OrderOpenPrice()-OrderStopLoss()),digits)<0)
                      {
                         
    OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(OrderOpenPrice()-movestopto*point,digits),OrderTakeProfit(),0,Red);
                   
                      }
                   }
                }
             }
          }
       }

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

  5. #2510
    الصورة الرمزية spiders101
    spiders101 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Jul 2011
    الإقامة
    مصــر
    المشاركات
    935

    افتراضي رد:موضوع مخصص للأسئلة البرمجية

    اقتباس المشاركة الأصلية كتبت بواسطة MR.dollar مشاهدة المشاركة
    أنت تريد دالة لمعرفة سعر إغلاق الشمعه السابقه للشمعه التي تم فتح الصفقه فيها
    بالنسبه للداله التي قمت بعملها
    كود PHP:
    double ClosePrice(){
    for(
    int i=0;i<OrdersHistoryTotal();i++){
    OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
    if(
    OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()){
    double ClosePrice=Close[1];     
    }

    return(
    ClosePrice);            

    أنت بحثت عن الصفقات المغلقه الموجوده في الهيستوري وهذا أول خطأ ثانيا الداله ستعود بسعر إغلاق الشمعه السابقه فقط مهما كان توقيت فتح أو إغلاق الصفقه
    ثانيا لست بحاجه إلى عمل داله لمعرفة سعر إغلاق الشمعه السابقه فيمكنك بعد فتح الصفقه تقوم بحفظ سعر الإغلاق مباشرة
    كود PHP:
    int ticket=OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(Ask,digits),5*Q,0,0," EA",MagicNumber,0,Blue);
    double buysl=Close[1]; 
    بالتالي لن تتغير هذه القيمه إلا بعد فتح صفقه جديده

    أو
    إذا أردت عمل داله فسوف تحتاج لمعرفة توقيت فتح الصفقه أولا ثم حفظ سعر الإغلاق
    كود PHP:
    double ClosePrice(){
    for(
    int i=0;i<OrdersTotal();i++){
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
    if(
    OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()){
    int bar=iBarShift(Symbol(),0,OrderOpenTime(),false);

    double ClosePrice=Close[bar+1];     
    }

    return(
    ClosePrice);            

    تم التعديل ولكن ظهر خطـأ عند إستخدام
    كود PHP:
    double buysl=Close[1
    لايتم إغلاق الصفقة على سعر إغلاق الشمعة السابقة

    وما الفرق بين وضع قيمة الـ bool بـ True بدلا من False فـ دالة iBarShift
    الملفات المرفقة الملفات المرفقة

  6. #2511
    الصورة الرمزية spiders101
    spiders101 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Jul 2011
    الإقامة
    مصــر
    المشاركات
    935

    افتراضي رد:موضوع مخصص للأسئلة البرمجية

    لدى سؤال آخر ، فـ الاكسيبرت المرفق انا قمت بوضع الشرط الخاص بوضع أوامر باى ليمت وسيل ليمت مع زيادة الاستيب والمضاعفات حسب الحلقة if
    كود PHP:
    for(int i=0;i<NumOF_Additional_LIMITSTOPLots;i++){

    if(
    OpenPrice(OP_BUY)!=&&orderstotal2(OP_BUYLIMIT)<&& NumOF_Additional_LIMITSTOP_Lots==true){
    OrderSend(Symbol(),OP_BUYLIMIT,lot*2*i,OpenPrice(OP_BUY)-Space*point*i,5*Q,NormalizeDouble(SL,digits),NormalizeDouble(TP,digits)," EA",MagicNumber,0,Blue);}

    if(
    OpenPrice(OP_SELL)!=&&orderstotal2(OP_SELLLIMIT)<&& NumOF_Additional_LIMITSTOP_Lots==true){
    OrderSend(Symbol(),OP_SELLLIMIT,lot*2*i,OpenPrice(OP_SELL)+Space*point*i,5*Q,NormalizeDouble(SL,digits),NormalizeDouble(TP,digits)," EA",MagicNumber,0,Red);}

    ولكن الاكسيبرت يفتح المضاعفات فـ هذه الحالة كالتالى 2 , 4 , 6 , ... ، وأنا أريد ان تكون المضاعفات

    2 , 4 , 8 , ....
    الملفات المرفقة الملفات المرفقة

  7. #2512
    الصورة الرمزية MR.dollar
    MR.dollar غير متواجد حالياً مشرف المتداول العربي
    تاريخ التسجيل
    Jun 2009
    الإقامة
    مصر
    المشاركات
    13,851

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة fxsmartsniper مشاهدة المشاركة
    شكر ا جزيلا ا اسامة
    ممكن لو سمحت اضافة كود علي هذا الاكسبرت لجعلة يغلق علي ربح معين او خسارة معينة لكل صفقة بالاضافة لكود كل الصفقات(وضعة الحالي)
    إستخدم الإكسبرت المرفق
    CalculateProfitForOneOrder لحساب الربح والإغلاق لكل صفقه على حده
    الملفات المرفقة الملفات المرفقة
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

  8. #2513
    الصورة الرمزية MR.dollar
    MR.dollar غير متواجد حالياً مشرف المتداول العربي
    تاريخ التسجيل
    Jun 2009
    الإقامة
    مصر
    المشاركات
    13,851

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة ahmedessam58 مشاهدة المشاركة
    السلام عليكم
    اخى مستر دولار
    معلشى حاولت اضيف شوية خصائص جديدة للاكسبيرت بتاعى زى البريك ايفن وخلافه وعزبتنى الاكواد علشان انقلها من الاكسبيرت الخاص بحضرتك بتاع الباربوليك سار والحمدلله خلصت ولكن الاكسبيرت كان بيفتح اكتر من صفقة فضت الماكس تريد بدل رقم واحد فطلع لى 3 اخطاء خاصين بال cnt فارجو علاجهم فى الكود المرفق ولك جزيل الشكر وحاولت قراءة اكسبيرت المضاعفات ولكنى لم افلح ولذلك اطلب من حضرتك اضافة المضاعفات لهذا الكود ( المضاعفات اللى اقصدها هى الدخول بالشروط الطبيعية للاكسبيرت ويكون العقد الاول ب0.10 وعند خسارته ينتظر تحقق الشروط ثم يدخل ب0.20 ولو خسر يدخل ب0.30 اذا تحققت الشروط لحد ما يكسب صفقة واحدة يروح راجع من تانى ل0.10 وهكذا ولى طلب اخير وانا عارف انى تقلت عليك بس والله هدعيلك
    وه التعديل على المؤشر ده وشكرا ليك يا استاذ/ اسامة وربنا يارب يرزقك الذرية الصالحة والخلف الصالح
    https://forum.arabictrader.com/t150074.html

    كود PHP:
     //+------------------------------------------------------------------+
     //|                                                                  |
     //|                                                                  |
     //|                                      www.arabictrader.com/vb     |
     //|                                                                  |
     //|                                          [email protected]   |
     //+------------------------------------------------------------------+
     
     #property copyright "MR.dollarEA"
     #property link      "[email protected]"

              
     
    extern bool  UseTimeFilter false;        
     
    extern int  StartHour 7;            
     
    extern int  EndHour 17
             
     
    extern string  MM_Parameters "---------- Money Management";
     
    extern int  MaxTrades 1
     
    extern double  Lots 0.10;                                           
                         
     
    extern string Ich=" Ichimoku Settings";
     
    extern int    tenkansen=9
     
    extern int    kijunsen=26
     
    extern int    senkospan=52;
     
    extern int    shift=1;
     
    extern int    shift2=26;
     
    extern int    Ichimoku_TIME_FRAME=240;
     
    extern string S5="Order Management";

    extern int BreakEven=0;
    extern int movestopto=1;
    extern int StopLoss=0;
    extern int TakeProfit=0;
    extern int TrailingStop=0;
    extern int TrailingStep=0;

     

     
    double point;
     
    int digits;
     
    extern int MagicNumber=2533;                             
     
    int init()
    {
      
        if(
    Digits<4)
       {
          
    point=0.01;
          
    digits=2;
       }
       else
       {
          
    point=0.0001;
          
    digits=4;
       }
    return(
    0);
    }

     
    //+------------------------------------------------------------------+
     //| FUNCTION DEFINITIONS    deinitialization function                |
     //+------------------------------------------------------------------+

     
    void deinit() {
        
    Comment("");
      }

     
    int orderstotal(){
     
    int cnt=0;
       for(
    int i =0;i<OrdersTotal();i++){
         
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
           if(
    OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()){
             
    cnt++;
           }
         }
        return(
    cnt);
      }

     
    //+------------------------------------------------------------------+
     //| FUNCTION DEFINITIONS   Start function                            |
     //+------------------------------------------------------------------+

     
    int start()
       {
        
    Comment("Programmed by MR.dollar"+"\n"+"منتدى المتداول العربي"+"\n"+"www.arabictrader.com/vb");
           if (
    UseTimeFilter){
           if(!((
    StartHour EndHour && TimeHour(TimeCurrent()) >= StartHour && TimeHour(TimeCurrent()) < EndHour) || (StartHour EndHour && TimeHour(TimeCurrent()) >= StartHour ||
                   
    TimeHour(TimeCurrent()) < EndHour))){
               
    Comment("Non-Trading Hours!");
               return(
    0);
             }
           }
           
    //|---------trailing stop

       
    if(TrailingStop>0)MoveTrailingStop();
       
      if(
    BreakEven>0)MoveBreakEven();
       
           
    //////////////////////////////////////////////////
    double  Tenkan=iIchimoku(NULL,0,tenkansen,kijunsen,senkospan,MODE_TENKANSEN,shift); 
    double  Kijun=iIchimoku(NULL,0,tenkansen,kijunsen,senkospan,MODE_KIJUNSEN,shift); 
    double  Senkou=iIchimoku(NULL,0,tenkansen,kijunsen,senkospan,MODE_CHINKOUSPAN,1+kijunsen); 
    double  Senkoua=iIchimoku(NULL,0,tenkansen,kijunsen,senkospan,MODE_SENKOUSPANA,shift); 
    double  Senkouaplus=iIchimoku(NULL,0,tenkansen,kijunsen,senkospan,MODE_SENKOUSPANA,shift+27);
    double  Senkoub=iIchimoku(NULL,0,tenkansen,kijunsen,senkospan,MODE_SENKOUSPANB,shift); 
    double  Senkoubplus=iIchimoku(NULL,0,tenkansen,kijunsen,senkospan,MODE_SENKOUSPANB,shift+27);
    double  Ichimoku_B=iCustom(Symbol(),0,"Ichimoku Trend Magic Histogram with Alert",1,shift);
    double  Ichimoku_S=iCustom(Symbol(),0,"Ichimoku Trend Magic Histogram with Alert",0,shift);
    double  Ichimoku_BF=iCustom(Symbol(),0,"Ichimoku Bars Filter",0,shift);
    double  Ichimoku_SF=iCustom(Symbol(),0,"Ichimoku Bars Filter",1,shift);
    double  IchimoAA=iIchimoku(NULL,Ichimoku_TIME_FRAME,9,26,52,MODE_SENKOUSPANA,shift); 
    double  IchimoBB=iIchimoku(NULL,Ichimoku_TIME_FRAME,9,26,52,MODE_SENKOUSPANB,shift); 
        
    ////////////////////////////////////////////////////
          
    double SL,TP
          
         
       
     
        
    ////////////////////////////////
       
              
        
    if((Open[1]>Tenkan)&&(Close[1]>Tenkan)&&(Tenkan>=Kijun)&&(Close[1]>Senkoub)&&(Close[1]>Senkoua)&&(Ichimoku_B==3)&&(Senkou>Senkoubplus&&Senkou>Senkouaplus)&&(Ichimoku_BF>0)&&(Close[1]>IchimoAA)&&(Close[1]>IchimoBB))
        {
    if(
    orderstotal()<MaxTrades){
            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,"MR.dollar EA",MagicNumber,0,Blue);
                 
    PlaySound("Alert.wav");
                 
            }  
           }
           
        
        
        
    /////////////////////
        
       
    if ((Open[1]<Tenkan)&&(Close[1]<Tenkan)&&(Tenkan<=Kijun)&&(Close[1]<Senkoua)&&(Close[1]<Senkoub)&&(Ichimoku_S==3)&&(Senkou<Senkoubplus&&Senkou<Senkouaplus)&&(Ichimoku_SF>0)&&(Close[1]<IchimoAA)&&(Close[1]<IchimoBB))
       {
      if(
    orderstotal()<MaxTrades){    
             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,"MR.dollar EA",MagicNumber,0,Red); 
                 
    PlaySound("Alert.wav");
                 
                 
              
           }
        }
       
    //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
    // Limiting Orders

     
    int orderstotal(){
     
    int cnt=0;
       for(
    int i =0;i<OrdersTotal();i++){
         
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
           if(
    OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()){
             
    cnt++;
           
         }
       }

       return(
    cnt);
       } 
    //+------------------------------------------------------------------+
    // OrdersHistoryTotal -- MODE_HISTORY -- Closed Orders //

     // OrdersTotal -- MODE_TRADES -- Opend Orders // 
    //+------------------------------------------------------------------+
    // lastlot & WinorLoss Functions // 
     
    double lastlot(){
     for(
    int i=0;i<OrdersHistoryTotal();i++){
     
    OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
     if(
    OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()){
     
    double lotsnumber=OrderLots();

    }


    return(
    lotsnumber);
    }

     
    double lastlot2(){
     for(
    int i=0;i<OrdersTotal();i++){
     
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
     if(
    OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()){
     
    double lotsnumber=OrderLots();

    }


    return(
    lotsnumber);
    }



    bool WinorLoss(){

    bool win=true;
     for(
    int i=0;i<OrdersHistoryTotal();i++){
     
    OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
     if(
    OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()){
     if(
    OrderProfit()>0){ 
     
    win=true;

    else{
    win=false;
    }
    }
    }
    return(
    win);
    }



     
    //+------------------------------------------------------------------+
     //| FUNCTION DEFINITIONS   TrailingStop                              |
     //+------------------------------------------------------------------+
        
        //|---------trailing stop

    void MoveTrailingStop()
    {
       
       for(
    int cnt=0;cnt<OrdersTotal();cnt++)
       {
          
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
          if(
    OrderType()<=OP_SELL&&OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
          {
             if(
    OrderType()==OP_BUY)
             {
                if(
    TrailingStop>0&&NormalizeDouble(Ask-TrailingStep*point,digits)>NormalizeDouble(OrderOpenPrice()+TrailingStop*point,digits))  
                {                 
                   if((
    NormalizeDouble(OrderStopLoss(),digits)<NormalizeDouble(Bid-TrailingStop*point,digits))||(OrderStopLoss()==0))
                   {
                      
    OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid-TrailingStop*point,digits),OrderTakeProfit(),0,Blue);
                    
                   }
                }
             }
             else 
             {
                if(
    TrailingStop>0&&NormalizeDouble(Bid+TrailingStep*point,digits)<NormalizeDouble(OrderOpenPrice()-TrailingStop*point,digits))  
                {                 
                   if((
    NormalizeDouble(OrderStopLoss(),digits)>(NormalizeDouble(Ask+TrailingStop*point,digits)))||(OrderStopLoss()==0))
                   {
                      
    OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Ask+TrailingStop*point,digits),OrderTakeProfit(),0,Red);
                    
                   }
                }
             }
          }
       }
    }



    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*point)
                   {
                      if(
    NormalizeDouble((OrderStopLoss()-OrderOpenPrice()),digits)<0)
                      {
                         
    OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(OrderOpenPrice()+movestopto*point,digits),OrderTakeProfit(),0,Blue);
                      
                      }
                   }
                }
             }
             else
             {
                if(
    BreakEven>0)
                {
                   if(
    NormalizeDouble((OrderOpenPrice()-Ask),digits)>BreakEven*point)
                   {
                      if(
    NormalizeDouble((OrderOpenPrice()-OrderStopLoss()),digits)<0)
                      {
                         
    OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(OrderOpenPrice()-movestopto*point,digits),OrderTakeProfit(),0,Red);
                   
                      }
                   }
                }
             }
          }
       }

    ولو فى اى دوال ملهاش لازمة ممكن تحذفها
    وجزاك الله خيرا
    وعليكم السلام ورحمة الله وبركاته
    كان نقصدك في الكود إضافة الأقواس فيجب أن تراعي هذه النقطه في اي تعديل
    بالنسبه لكود المضاعفات فأنت أضفته بشكل صحيح لكن كان باقي أن تضيف الشروط بداخل الداله start
    كود PHP:
    if(WinorLoss()==false)Lots=lastlot()*2
    الملفات المرفقة الملفات المرفقة
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

  9. #2514
    الصورة الرمزية ahmedessam58
    ahmedessam58 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Jul 2008
    الإقامة
    مصر
    المشاركات
    493

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة MR.dollar مشاهدة المشاركة
    وعليكم السلام ورحمة الله وبركاته
    كان نقصدك في الكود إضافة الأقواس فيجب أن تراعي هذه النقطه في اي تعديل
    بالنسبه لكود المضاعفات فأنت أضفته بشكل صحيح لكن كان باقي أن تضيف الشروط بداخل الداله start
    كود PHP:
    if(WinorLoss()==false)Lots=lastlot()*2
    الف الف شكر وجزاك الله الف خير يا اخى وسأجرب واتعلم من الاضافات
    ولكن بعد اذنك يبقى المؤشر ليكتمل عمل الاكسبيرت
    وجزاك الله خيرا

  10. #2515
    الصورة الرمزية ahmedessam58
    ahmedessam58 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Jul 2008
    الإقامة
    مصر
    المشاركات
    493

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة ahmedessam58 مشاهدة المشاركة
    الف الف شكر وجزاك الله الف خير يا اخى وسأجرب واتعلم من الاضافات
    ولكن بعد اذنك يبقى المؤشر ليكتمل عمل الاكسبيرت
    وجزاك الله خيرا
    او بدل تحويل المؤشر ... اريد كود داله الاييكستم والتى تخص المؤشر اثناء التذبذب
    بعنى انه عندما يظهر التذبذب لا يدخل الاكسبيرت فى اى صفقات
    وبالنسبة للكود اللى حضرتك عدلته اعتقد هوه ناقص دالة
    extern bool WinorLoss = false;
    ولا ايه؟
    وشكرا لك استاذى

  11. #2516
    الصورة الرمزية MR.dollar
    MR.dollar غير متواجد حالياً مشرف المتداول العربي
    تاريخ التسجيل
    Jun 2009
    الإقامة
    مصر
    المشاركات
    13,851

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة spiders101 مشاهدة المشاركة
    تم التعديل ولكن ظهر خطـأ عند إستخدام
    كود PHP:
    double buysl=Close[1
    لايتم إغلاق الصفقة على سعر إغلاق الشمعة السابقة

    وما الفرق بين وضع قيمة الـ bool بـ True بدلا من False فـ دالة iBarShift
    لا يوجد خطأ في الكود لكن إذا كنت تقصد
    Function is not referenced and will be removed
    فهذا ليس خطأ لكن لإنك لم تستخدم الداله ClosePrice داخل الكود فهو يخبرك بأن الداله سوف تم حذفها من ملف ex4 لأنها غير مستخدمه

    إذا جعلت القيمة False فهو سيعود بأقرب بار للتوقيت المحدد إذا لم يجد البار الذي تم تحديد التوقيت له
    إذا جعلت القيمه True فلن يبحث عن أقرب بار إذا لم يجد البار المحدد وسوف يعود بالقيمه -1 مباشرة
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

  12. #2517
    الصورة الرمزية MR.dollar
    MR.dollar غير متواجد حالياً مشرف المتداول العربي
    تاريخ التسجيل
    Jun 2009
    الإقامة
    مصر
    المشاركات
    13,851

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة spiders101 مشاهدة المشاركة
    لدى سؤال آخر ، فـ الاكسيبرت المرفق انا قمت بوضع الشرط الخاص بوضع أوامر باى ليمت وسيل ليمت مع زيادة الاستيب والمضاعفات حسب الحلقة if
    كود PHP:
    for(int i=0;i<NumOF_Additional_LIMITSTOPLots;i++){

    if(
    OpenPrice(OP_BUY)!=&&orderstotal2(OP_BUYLIMIT)<&& NumOF_Additional_LIMITSTOP_Lots==true){
    OrderSend(Symbol(),OP_BUYLIMIT,lot*2*i,OpenPrice(OP_BUY)-Space*point*i,5*Q,NormalizeDouble(SL,digits),NormalizeDouble(TP,digits)," EA",MagicNumber,0,Blue);}

    if(
    OpenPrice(OP_SELL)!=&&orderstotal2(OP_SELLLIMIT)<&& NumOF_Additional_LIMITSTOP_Lots==true){
    OrderSend(Symbol(),OP_SELLLIMIT,lot*2*i,OpenPrice(OP_SELL)+Space*point*i,5*Q,NormalizeDouble(SL,digits),NormalizeDouble(TP,digits)," EA",MagicNumber,0,Red);}

    ولكن الاكسيبرت يفتح المضاعفات فـ هذه الحالة كالتالى 2 , 4 , 6 , ... ، وأنا أريد ان تكون المضاعفات

    2 , 4 , 8 , ....
    ما رأيك بإضافة تعبير آخر للحلقه for
    كود PHP:
    int i,j;
       for(
    i=0,j=1;i<=NumOF_Additional_LIMITSTOPLots;i++,j+=j){ 

    if(
    OpenPrice(OP_BUY)!=&&orderstotal2(OP_BUYLIMIT)<&& NumOF_Additional_LIMITSTOP_Lots==true){ 
    OrderSend(Symbol(),OP_BUYLIMIT,lot*j,OpenPrice(OP_BUY)-Space*point*i,5*Q,NormalizeDouble(SL,digits),NormalizeDouble(TP,digits)," EA",MagicNumber,0,Blue);


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

  13. #2518
    الصورة الرمزية MR.dollar
    MR.dollar غير متواجد حالياً مشرف المتداول العربي
    تاريخ التسجيل
    Jun 2009
    الإقامة
    مصر
    المشاركات
    13,851

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة ahmedessam58 مشاهدة المشاركة
    او بدل تحويل المؤشر ... اريد كود داله الاييكستم والتى تخص المؤشر اثناء التذبذب
    بعنى انه عندما يظهر التذبذب لا يدخل الاكسبيرت فى اى صفقات
    وبالنسبة للكود اللى حضرتك عدلته اعتقد هوه ناقص دالة
    extern bool WinorLoss = false;
    ولا ايه؟
    وشكرا لك استاذى
    لأ لن تضيف متغير خارجي بإسم WinorLoss لإن المستخدمه في الشرط هي الداله نفسها الموجوده في الإكسبرت وهي تلقائيا تقوم بمعرفة آخر صفقه هل أغلقت على ربح أو خساره
    أما إذا أردت إضافة متغير خارجي لتفعيل أو تعطيل خيار المضاعفات حسب ما تريده مثلا فيمكنك إضافة متغير خارجي كما ذكرت أنت لكن تقوم بتغيير إسمه مثلا
    كود PHP:
    if(UseMultiplier){
     if(
    WinorLoss()==false)Lots=lastlot()*2;

    ثم تضيف المتغير الخارجي
    كود PHP:
    extern bool UseMultiplier 
    بالنسبه للإكسبرت فأرفق محاولتك في الموضوع الذي قمت بعمله وسوف أوضح لك التعديل وكيف تضيف شرط التذبذب
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

  14. #2519
    الصورة الرمزية ahmedessam58
    ahmedessam58 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Jul 2008
    الإقامة
    مصر
    المشاركات
    493

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة MR.dollar مشاهدة المشاركة
    لأ لن تضيف متغير خارجي بإسم WinorLoss لإن المستخدمه في الشرط هي الداله نفسها الموجوده في الإكسبرت وهي تلقائيا تقوم بمعرفة آخر صفقه هل أغلقت على ربح أو خساره
    أما إذا أردت إضافة متغير خارجي لتفعيل أو تعطيل خيار المضاعفات حسب ما تريده مثلا فيمكنك إضافة متغير خارجي كما ذكرت أنت لكن تقوم بتغيير إسمه مثلا
    كود PHP:
    if(UseMultiplier){
     if(
    WinorLoss()==false)Lots=lastlot()*2;

    ثم تضيف المتغير الخارجي
    كود PHP:
    extern bool UseMultiplier 
    بالنسبه للإكسبرت فأرفق محاولتك في الموضوع الذي قمت بعمله وسوف أوضح لك التعديل وكيف تضيف شرط التذبذب
    ههههه حاضر ثوانى

  15. #2520
    الصورة الرمزية ahmedessam58
    ahmedessam58 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Jul 2008
    الإقامة
    مصر
    المشاركات
    493

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة MR.dollar مشاهدة المشاركة
    لأ لن تضيف متغير خارجي بإسم WinorLoss لإن المستخدمه في الشرط هي الداله نفسها الموجوده في الإكسبرت وهي تلقائيا تقوم بمعرفة آخر صفقه هل أغلقت على ربح أو خساره
    أما إذا أردت إضافة متغير خارجي لتفعيل أو تعطيل خيار المضاعفات حسب ما تريده مثلا فيمكنك إضافة متغير خارجي كما ذكرت أنت لكن تقوم بتغيير إسمه مثلا
    كود PHP:
    if(UseMultiplier){
     if(
    WinorLoss()==false)Lots=lastlot()*2;

    ثم تضيف المتغير الخارجي
    كود PHP:
    extern bool UseMultiplier 
    بالنسبه للإكسبرت فأرفق محاولتك في الموضوع الذي قمت بعمله وسوف أوضح لك التعديل وكيف تضيف شرط التذبذب
    تم
    https://forum.arabictrader.com/t150074.html

المواضيع المتشابهه

  1. موضوع مخصص للاكسبيرتات اللتي يستخدمها الاعضاء على الحقيقي,,عندك اكسبيرت ممتاز ضعه هنا
    By محمد معمو in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EA
    مشاركات: 11
    آخر مشاركة: 15-12-2023, 02:03 PM
  2. عااااااااااااجل ( موضوع مخصص للفرص الفورية)!!!
    By عاشق الذبذبـة in forum توقعات وتوصيات سوق العملات
    مشاركات: 280
    آخر مشاركة: 27-08-2009, 10:30 PM

الاوسمة لهذا الموضوع


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17