النتائج 1 إلى 8 من 8

الموضوع: request mql code

  1. #1
    الصورة الرمزية deloryan
    deloryan غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Jan 2011
    المشاركات
    453

    افتراضي request mql code

    please any coder can help me
    i need code for add hidden trailingstop from broker


    thanks in advance

  2. #2
    الصورة الرمزية turkm
    turkm غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Oct 2011
    المشاركات
    1,626

    افتراضي

    أخي deloryan لا أعتقد ان ذلك ممكن

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

  3. #3
    الصورة الرمزية Jmeel
    Jmeel غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Sep 2008
    الإقامة
    في أرض الله
    المشاركات
    7,610

    افتراضي رد:request mql code

    Find it in Mr Osama EA Attached , otherways u can use close by Cents profit or loss for single trade
    الملفات المرفقة الملفات المرفقة
    توقيع العضو
    اعتذر لمن لن أتمكن من تنفيذ طلبه بسبب عدم قناعتي بالفكرة

  4. #4
    الصورة الرمزية deloryan
    deloryan غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Jan 2011
    المشاركات
    453

    افتراضي

    , is the inner trailing in the ea, data can be stored in a variable, this is for when the broker uses a stoplevel high and you can not modify orders with short stops

  5. #5
    الصورة الرمزية Jmeel
    Jmeel غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Sep 2008
    الإقامة
    في أرض الله
    المشاركات
    7,610

    افتراضي

    no need modify only u can put regular stoploss profit 0 or hi level to cover ur target then u will close via hidden point or $
    توقيع العضو
    اعتذر لمن لن أتمكن من تنفيذ طلبه بسبب عدم قناعتي بالفكرة

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

    افتراضي رد:request mql code

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

    مثال قمت بعمل دالة لحفظ أسعار الأستوب الجديده في مصفوفتين قمت بتعريفهم تحفظ رقم التيكيت وسعر الأستوب للصفقه
    بإسم
    كود PHP:
    static double SellOrdersArray[0][2];
    static 
    double BuyOrdersArray[0][2]; 
    ثم الدالة التي ستحفظ الأسعار ورقم التيكيت للصفقه
    كود PHP:
    void HiddenTrailingStop()
    {
     for(
    int i=0;i<OrdersTotal();i++)
     {
      
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      
    int ticket=OrderTicket();double SL=OrderStopLoss();double openprice=OrderOpenPrice();
      if(
    OrderSymbol()==Symbol()&&TrailingStop>0)
      {
       if(
    OrderType()==OP_BUY)
       {
        if(
    Ask>openprice+TrailingStop*point&&SL<Bid-TrailingStop*point||SL==0)
        {
         
    double newprice=Bid-TrailingStop*point;
         
    ModifyNewTrailingStop(ticket,newprice,BuyOrdersArray);
        }
       }
       if(
    OrderType()==OP_SELL)
       {
        if(
    Bid<openprice-TrailingStop*point&&SL>Ask+TrailingStop*point||SL==0)
        {
         
    newprice=Ask+TrailingStop*point;
         
    ModifyNewTrailingStop(ticket,newprice,SellOrdersArray);
        }
       }
      
      }
     }

    ثم قمت بعمل دالة ستبحث في المصفوفه فإذا كانت الصفقة برقم التيكيت مخزنه في المصفوفه يقوم بوضع الأستوب الجديد أما إذا كانت غير مخزنه فيقوم بزيادة حجم المصفوفه وتخزين الصفقه الجديده
    كود PHP:
    void ModifyNewTrailingStop(int ticket,double newprice,double& array[][])
    {
     
    int size=ArraySize(array);
     for(
    int i=0;i<size;i++)
     {
      if(array[
    i][1]==ticket)
      {
       array[
    i][0]=newprice;
       return;
      }
     }
     
     
    ArrayResize(array,size+1);
     array[
    size][0]=newprice;
     array[
    size][1]=ticket;

    ثم قمت بعمل الداله التي ستقارن سعر الأستوب بالسعر الحالي فإذا كان السعر الحالي أقل من الأستوب في حالة الشراء أو أكبر من الأستوب في حالة البيع يتم إغلاق الصفقه
    كود PHP:
    void CloseTrailingStop()
    {
     
    HiddenTrailingStop();
     
     for(
    int i=0;i<OrdersTotal();i++)
     {  
      
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      
    int ticket=OrderTicket();
      if(
    OrderSymbol()==Symbol())
      {
       if(
    OrderType()==OP_BUY)
       {
        for(
    int j=0;j<ArraySize(BuyOrdersArray);j++)
        {
         if(
    ticket==BuyOrdersArray[j][1])
         {
           if(
    Bid<BuyOrdersArray[j][0])
           {
            
    OrderClose(ticket,OrderLots(),Bid,3);
            
    CleanTheArray(j,BuyOrdersArray);
           }
           break;
         }
        }
       }
       if(
    OrderType()==OP_SELL)
       {
        for(
    j=0;j<ArraySize(SellOrdersArray);j++)
        {
         if(
    ticket==SellOrdersArray[j][1])
         {
          if(
    Ask>SellOrdersArray[j][0])
          {
           
    OrderClose(ticket,OrderLots(),Ask,3);
           
    CleanTheArray(j,SellOrdersArray);
          }
          break;    
         }     
        }
       }
       
      }  
     }

    ثم قمت بعمل دالة ستقوم بحذف مكان الصفقه في المصفوفه لأنها أغلقت وتقوم بتصغير حجم المصفوفه بما أنا أصبحت أقل
    كود PHP:
    void CleanTheArray(int index,double& array[][])
    {
     
    int size=ArraySize(array);
     for(
    int i=index+1;i<size;i++)
     {
      array[
    i][0]=array[i-1][0];
      array[
    i][1]=array[i-1][1];
     }
     
    ArrayResize(array,size-1);

    وأخيرا الشروط ستكون
    كود PHP:
      if(TrailingStop>0)CloseTrailingStop(); 
    مرفق الإكسبرت الذي قمت بإجراء التعديل عليه لتراجع الكود
    الملفات المرفقة الملفات المرفقة
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

  7. #7
    الصورة الرمزية deloryan
    deloryan غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Jan 2011
    المشاركات
    453

    افتراضي رد:request mql code

    many thanks, this is my code

    كود PHP:
    int TRAIL_virtual_2(int TrailingStopint Nexp)
    {
        
    double Tr_SL,actv,salt;
        
    Tr_SL TrailingStop Point;
          
        
    datetime openTime;
        
    double BID,ASK,SL,openPrice,PrecioMax,PrecioMin;
        
    int i,j,BarrasMINUTO,result;
        
    string NAME;
        static 
    int ORDENESant;   
      
        
    RefreshRates();
        
    int Slippage=((ASK-BID)/Point)+1;

        if( 
    ORDENESant!=OrdersTotal() ) ObjectsDeleteAll( EMPTY, OBJ_HLINE);
        
    ORDENESant=OrdersTotal();
        
    for ( 
    0OrdersTotal(); ++)
    {
    //for ( i
      
    OrderSelect(iSELECT_BY_POSMODE_TRADES);
        if( 
    OrderMagicNumber()==Nexp && OrderSymbol()==Symbol() )
         {
    //if( OrderMagicNumber()
         //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 
          
    openPrice=NormalizeDouble(OrderOpenPrice(),Digits);
          
    openTime=OrderOpenTime();
          
    SL=NormalizeDouble(OrderStopLoss(),Digits);     
          
    BarrasMINUTO = (TimeCurrent()-openTime)/60;

      
    //------  BUYs  --------------
      
    if( OrderType()==OP_BUY && TrailingStop>)
         {
           
    PrecioMax 0PrecioMin Bid*1000;
           
    NAME"Stop Loss  BUY: "+OrderTicket();
           for( 
    j=0j<=BarrasMINUTOj++ )
               { 
    // Máximo y mínimo desde que se abrio la operación. ( BarrasMINUTO )
                 
    if( iHigh(Symbol(),PERIOD_M1,j)>PrecioMax )PrecioMax=iHigh(Symbol(),PERIOD_M1,j);
                 if( 
    iLow(Symbol(),PERIOD_M1,j)<PrecioMin )PrecioMin=iLow(Symbol(),PERIOD_M1,j);
               }
               
           
    BID NormalizeDouble(MarketInfo(Symbol(),MODE_BID),Digits);
           if(  
    PrecioMax>(openPrice+Tr_SL) ) {SL=PrecioMax-Tr_SL;}

               if( 
    SL>&& BID<=SL )
                  {                             
    result=OrderClose(OrderTicket( ),OrderLots(),BID,Slippage,Red);//  Primer intento
                    
    if ( result==){Sleep(131);result=OrderClose(OrderTicket( ),OrderLots(),BID,Slippage,Red);}// Segundo intento
                    
    if ( result==){Sleep(173);result=OrderClose(OrderTicket( ),OrderLots(),BID,Slippage,Red);}// Tercer intento    
                    
    if ( result==){Sleep(191);result=OrderClose(OrderTicket( ),OrderLots(),BID,Slippage,Red);}// Cuarto intento
                    
    if ( result==){Sleep(263);result=OrderClose(OrderTicket( ),OrderLots(),BID,Slippage,Red);}// Quinto intento
                    
    if ( result==){Alert(OrderTicket(),"  BUY Cerrada."); ObjectDelete(NAME);}
                  }
                else
                  {
                    
    ObjectDelete(NAME);
                    
    ObjectCreate(NAMEOBJ_HLINE00SL );
                    
    ObjectSet(NAME,OBJPROP_WIDTH1);  
                    
    ObjectSet(NAME,OBJPROP_STYLESTYLE_DASHDOTDOT);  
                    
    ObjectSet(NAME,OBJPROP_COLORBlue);
                  }
         }
      
    //------  BUYs  --------------

      //------  SELLs  --------------
      
    if( OrderType()==OP_SELL && TrailingStop>)
         {
           
    PrecioMax =0PrecioMin Bid*1000;
           
    NAME"Stop Loss SELL: "+OrderTicket();
           for( 
    j=0j<=BarrasMINUTOj++ )
               {
    // Máximo y mínimo desde que se abrio la operación. ( BarrasMINUTO )
                 
    if( iHigh(Symbol(),PERIOD_M1,j)>PrecioMax )PrecioMax=iHigh(Symbol(),PERIOD_M1,j);
                 if( 
    iLow(Symbol(),PERIOD_M1,j)<PrecioMin )PrecioMin=iLow(Symbol(),PERIOD_M1,j);
              }
           
           
    ASK NormalizeDouble(MarketInfo(Symbol(),MODE_ASK),Digits);
           
    BID NormalizeDouble(MarketInfo(Symbol(),MODE_BID),Digits);
           
    double spread NormalizeDouble(ASK-BID,Digits);
           if( 
    PrecioMin<(openPrice-spread Tr_SL)  )  {SL PrecioMin Tr_SL;}

               if( 
    SL>&& ASK>=SL )
                  {
                                                 
    result=OrderClose(OrderTicket( ),OrderLots(),ASK,Slippage,Red); // Primer intento
                     
    if ( result==){Sleep(131);result=OrderClose(OrderTicket( ),OrderLots(),ASK,Slippage,Red);}// Segundo intento
                     
    if ( result==){Sleep(173);result=OrderClose(OrderTicket( ),OrderLots(),ASK,Slippage,Red);}// Tercer intento  
                     
    if ( result==){Sleep(191);result=OrderClose(OrderTicket( ),OrderLots(),ASK,Slippage,Red);}// Cuarto intento
                     
    if ( result==){Sleep(263);result=OrderClose(OrderTicket( ),OrderLots(),ASK,Slippage,Red);}// Quinto intento
                     
    if ( result==){Alert(OrderTicket(),"  SELL Cerrada."); ObjectDelete(NAME);}
                  }
                else
                  {
                     
    ObjectDelete(NAME);
                     
    ObjectCreate(NAMEOBJ_HLINE00SL );
                     
    ObjectSet(NAME,OBJPROP_WIDTH1);  
                     
    ObjectSet(NAME,OBJPROP_STYLESTYLE_DASHDOTDOT);  
                     
    ObjectSet(NAME,OBJPROP_COLORRed);
                  }
         }
      
    //------  SELLs  --------------

         //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@    
         
    }//if( OrderMagicNumber()
    }//for ( i
    return;


  8. #8
    الصورة الرمزية muhamd223
    muhamd223 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Jan 2017
    الإقامة
    السعودية
    المشاركات
    11

    افتراضي

    هل الاكسبيرت مضاعفات عكسية ؟؟


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