صفحة 262 من 689 الأولىالأولى ... 162212252256257258259260261262263264265266267268272312362 ... الأخيرةالأخيرة
النتائج 3,916 إلى 3,930 من 10335
  1. #3916
    الصورة الرمزية MR.dollar
    MR.dollar غير متواجد حالياً مشرف المتداول العربي
    تاريخ التسجيل
    Jun 2009
    الإقامة
    مصر
    المشاركات
    13,864

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

    اقتباس المشاركة الأصلية كتبت بواسطة zzeyani مشاهدة المشاركة
    هل يوجد حل لهاده المشكلة يا أخي . هو فعلا يصل إلى أكبر حد مسموح به من المضاعفات
    قم بتقسيم حجم اللوت على أكثر من صفقه
    مثال
    كود PHP:
    while(LOT>0)
    {
     if(
    LOT>MarketInfo(Symbol(),MODE_MAXLOT))
      
    newLot=MarketInfo(Symbol(),MODE_MAXLOT);
     else 
    newLot=LOT
     
    OrderSend(Symbol(),OP_BUY,newLot,Ask,3,SL,TP,"EA",MagicNumber,0,Blue);
     
    LOT-=MarketInfo(Symbol(),MODE_MAXLOT);

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

  2. #3917
    الصورة الرمزية dentist_hussein
    dentist_hussein غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Aug 2011
    الإقامة
    مصر
    المشاركات
    1,827

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

    السلام عليكم أستاذ اسامه
    ما الخطأ في هذه الأكواد لأني أريد أن يتم إغلاق صفقات البيع و الشراء عند ملامسة السعر لخط منتصف الفبولنجر
    عرفت منتصف البولنجر
    كود:
    // double bm= iBands(NULL, 0, 20, 2, 0, PRICE_CLOSE, MODE_MAIN,0);
         double bm= iMA(NULL,0,20,0,MODE_SMA,PRICE_CLOSE,0) ;
    ووضعت الشرطين داخل الداله ستارت
    كود:
    if  (orderstotal(OP_BUY)==1 && Close[0]==bm) { CloseBuyOrders() ;  }
      if (orderstotal(OP_SELL)==1 && Close[0]==bm) { CloseSellOrders() ; }
    و دوال أغلاق صفقة البيع و الشراء
    كود:
     void CloseBuyOrders()
    {
      for (int cnt = 0 ; cnt < OrdersTotal() ; cnt++)
      {
        OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
        if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol())
        {
          if (OrderType()==OP_BUY)
          {
            OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,digits),3*Q);
          }
        }
      }
      
    }  
    
    void CloseSellOrders()
    {
     for (int cnt = 0 ; cnt < OrdersTotal() ; cnt++)
      {
        OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
        if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol())
        {
          if (OrderType()==OP_SELL)
          {
           OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,digits),3*Q);
          }
         }
        }
    
       }
    و دالة تعود بعدد الصفقات بنوع الصفقه
    كود:
     int orderstotal(int type){
     int cnt=0;
       for(int i =0;i<OrdersTotal();i++){
         OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
           if(OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()&& type== OrderType()){
             cnt++;
           }
         }
        return(cnt);
      }
    و لكن لا يتم إغلاق الصفقه عند منتصف البولنجر و قد تغلق متأخر أو لا و استخدمت سعر البيد و الآسك و نفس المشكله ..
    جزاك الله كل خير
    توقيع العضو
    MetaTrader Login: 652105
    Investor Password: Z3UR9DA0

  3. #3918
    الصورة الرمزية xcv114
    xcv114 غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Oct 2010
    الإقامة
    مصر
    المشاركات
    1,022

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

    اقتباس المشاركة الأصلية كتبت بواسطة dentist_hussein مشاهدة المشاركة
    السلام عليكم أستاذ اسامه
    ما الخطأ في هذه الأكواد لأني أريد أن يتم إغلاق صفقات البيع و الشراء عند ملامسة السعر لخط منتصف الفبولنجر
    عرفت منتصف البولنجر
    كود:
    // double bm= iBands(NULL, 0, 20, 2, 0, PRICE_CLOSE, MODE_MAIN,0);
         double bm= iMA(NULL,0,20,0,MODE_SMA,PRICE_CLOSE,0) ;
    ووضعت الشرطين داخل الداله ستارت
    كود:
    if  (orderstotal(OP_BUY)==1 && Close[0]==bm) { CloseBuyOrders() ;  }
      if (orderstotal(OP_SELL)==1 && Close[0]==bm) { CloseSellOrders() ; }
    و دوال أغلاق صفقة البيع و الشراء
    كود:
     void CloseBuyOrders()
    {
      for (int cnt = 0 ; cnt < OrdersTotal() ; cnt++)
      {
        OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
        if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol())
        {
          if (OrderType()==OP_BUY)
          {
            OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,digits),3*Q);
          }
        }
      }
      
    }  
    
    void CloseSellOrders()
    {
     for (int cnt = 0 ; cnt < OrdersTotal() ; cnt++)
      {
        OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
        if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol())
        {
          if (OrderType()==OP_SELL)
          {
           OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,digits),3*Q);
          }
         }
        }
    
       }
    و دالة تعود بعدد الصفقات بنوع الصفقه
    كود:
     int orderstotal(int type){
     int cnt=0;
       for(int i =0;i<OrdersTotal();i++){
         OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
           if(OrderSymbol()==Symbol() && MagicNumber==OrderMagicNumber()&& type== OrderType()){
             cnt++;
           }
         }
        return(cnt);
      }
    و لكن لا يتم إغلاق الصفقه عند منتصف البولنجر و قد تغلق متأخر أو لا و استخدمت سعر البيد و الآسك و نفس المشكله ..
    جزاك الله كل خير
    يجب أن تجعل الشرط إللي في إستارت >= أو <= لإن == قد لا تتحقق أبدا خصوصا على منصات 5 أرقام
    كود PHP:
    if  (orderstotal(OP_BUY)>&& Close[0]<=bm) { CloseBuyOrders() ;  }
      if (
    orderstotal(OP_SELL)>&& Close[0]>=bm) { CloseSellOrders() ; } 

  4. #3919
    الصورة الرمزية dentist_hussein
    dentist_hussein غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Aug 2011
    الإقامة
    مصر
    المشاركات
    1,827

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

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


    يجب أن تجعل الشرط إللي في إستارت >= أو <= لإن == قد لا تتحقق أبدا خصوصا على منصات 5 أرقام
    كود PHP:
    if  (orderstotal(OP_BUY)>&& Close[0]<=bm) { CloseBuyOrders() ;  }
      if (
    orderstotal(OP_SELL)>&& Close[0]>=bm) { CloseSellOrders() ; } 
    تمام أخي يوسف ... جزاك الله كل خير أنت و استاذنا الكبير أسامه و كل من يساعد .
    توقيع العضو
    MetaTrader Login: 652105
    Investor Password: Z3UR9DA0

  5. #3920
    الصورة الرمزية daod
    daod غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    May 2013
    المشاركات
    246

    افتراضي

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

    اريد اعرف كيف سيكون اكسبيرت فكرتي هذه؟

    الفكره بسيطه جدا ولكن تحتاج شويه تركيز وزادكم الله تركيز فوق تركيزكم!



    مع الافتتاح لشمعه اليوم اقوم بوضع ثلاثه اوامر معلقه فوق الافتتاح اليومي من نوع باي ستوب ولكن يكون الاول على بعد 20 نقطه

    والثاني على بعد 40 نقطه والثالث على بعد 60 نقطه

    وهكذا ان اردت اضافه المزيد من الاوامر المعلقه وتكون الخساره لكل منهم 20 نقطه فقط والربح لكل منهم 40 نقطه.

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

    بنفس موضع اومكان الذي تفعل او بمعنى اصح هو اعادة الامر الذي اغلق سواء على ربح اوخساره اعادته من جديد.

    مثال للتوضيح مثلا تفعل الامر الذي على بعد 40 نقطه ثم ضرب الخساره يعني اغلق على خساره في هذه الحاله يقوم الاكسبيرت

    بوضع امر معلق اخر من نوع سل ليميت بنفس مكان الامر

    الاول وهو 40 نقطه من افتتاح شمعة اليوم ولكن اذا افترضنا انه اغلق الامر على ربح فسوف يقوم الاكبسيرت بفتح امر معلق من نوع باي

    ليميت بنفس مكان الامر المعلق الاول.

    ونفس الفكره تماما في حاله وضع اوامر معلقه من نوع سل ستوب تحت الافتتاح اليومي اي على بعد 20 و40و 60 نقطه وهكذا.


    ان شاء الله وضحت الفكره
    آخر تعديل بواسطة daod ، 29-05-2013 الساعة 02:29 PM

  6. #3921
    الصورة الرمزية wadi2012
    wadi2012 غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Aug 2012
    الإقامة
    جرين لاند
    المشاركات
    1,089

    افتراضي

    دالة
    ordercloseby()
    حسب ما فهمت من الوظيفة فهي تغلقة صفقة عن طريقة صفقة معاكسة لها من نفس الزوج ولكن الفراق يكون على الصفقة التي تغلق يعني
    فتحت عقد 1 لوت على زوج يورو دولار شراء وعندي 1 لوت على نفس الزوج ولكن بيع
    اذا اغلقت الصفقتين يدويا وكان مجموع الاغلاق يساوي -20 ولكن عند الاغلاق بالدالة السابقة يقل مجموع المحصلة فيكون 10- وسؤالي هو اذا كانت هذه الطريقة توفر نسبة خسارة فما هو العائد على البروكير او كيف يسمح البروكير بتنفيذ هذا الامر ؟؟؟
    ام هي تنفع مع بروكير ecn ؟

  7. #3922
    الصورة الرمزية waleedgadelmola
    waleedgadelmola متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Jun 2012
    الإقامة
    الكويت
    العمر
    44
    المشاركات
    365

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

    الأخ العزيز الاستاذ الفاضل أسامة ( مستر دولار ) بعد أطيب التحية لشخصكم الكريم ،،،

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

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

    وهذا متغير خارجي للحد الاقصى للوت المطلوب اغلاق جميع صفقات المنصة عند الوصول له
    كود PHP:
    extern double MaxLots=2.56
    ما تم كتابتة داخل الدالة ستارت

    كود PHP:
    int start()
      {

    if ( 
    LastOrderLots()>=MaxLots && AccountProfit()>0){while(orderstotal()>0){CloseAllOrders();}}

       return(
    0);
      } 

    تعريف دالة خارج دالة ستارات لاغلاق جميع الصفقات الموجودة على المنصة ( معلقة + مفتوحة )
    كود PHP:
     int CloseAllOrders()
    {
      for (
    int cnt cnt OrdersTotal() ; cnt++)
      {
        
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
       
          if (
    OrderType()==OP_BUY)
          {
            
    OrderClose(OrderTicket(),OrderLots(),Bid,3*D);
          }
           if (
    OrderType()==OP_SELL)
          {
           
    OrderClose(OrderTicket(),OrderLots(),Ask,3*D);
          }   
           if (
    OrderType()==OP_BUYSTOP)
          {
           
    OrderDelete(OrderTicket());
          } 
           if (
    OrderType()==OP_SELLSTOP)
          {
           
    OrderDelete(OrderTicket());
          } 
                 if (
    OrderType()==OP_BUYLIMIT)
          {
           
    OrderDelete(OrderTicket());
          } 
           if (
    OrderType()==OP_SELLLIMIT)
          {
           
    OrderDelete(OrderTicket());
          } 

        }
      return(
    0);



    وهذه دالة خارج ستارت لتعود لنا بقيمة اللوت للصفقات المفتوحة
    كود PHP:
    double LastOrderLots()
    {
      for (
    int cnt cnt OrdersTotal() ; cnt++)
      {
        
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
      if(
    OrderSymbol()==Symbol())
      {
       return(
    OrderLots());
      }
     }
     return(
    0);



    أرجو التكرم بالنظر في هذه الأكواد لاني بعد كتابتها الاكسبرت لا يتعامل ولا ينظر نهائيا للوت المفتوح على المنصة

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

  8. #3923
    الصورة الرمزية xcv114
    xcv114 غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Oct 2010
    الإقامة
    مصر
    المشاركات
    1,022

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

    اقتباس المشاركة الأصلية كتبت بواسطة waleedgadelmola مشاهدة المشاركة
    الأخ العزيز الاستاذ الفاضل أسامة ( مستر دولار ) بعد أطيب التحية لشخصكم الكريم ،،،

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

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

    وهذا متغير خارجي للحد الاقصى للوت المطلوب اغلاق جميع صفقات المنصة عند الوصول له
    كود PHP:
    extern double MaxLots=2.56
    ما تم كتابتة داخل الدالة ستارت

    كود PHP:
    int start()
      {

    if ( 
    LastOrderLots()>=MaxLots && AccountProfit()>0){while(orderstotal()>0){CloseAllOrders();}}

       return(
    0);
      } 

    تعريف دالة خارج دالة ستارات لاغلاق جميع الصفقات الموجودة على المنصة ( معلقة + مفتوحة )
    كود PHP:
     int CloseAllOrders()
    {
      for (
    int cnt cnt OrdersTotal() ; cnt++)
      {
        
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
       
          if (
    OrderType()==OP_BUY)
          {
            
    OrderClose(OrderTicket(),OrderLots(),Bid,3*D);
          }
           if (
    OrderType()==OP_SELL)
          {
           
    OrderClose(OrderTicket(),OrderLots(),Ask,3*D);
          }   
           if (
    OrderType()==OP_BUYSTOP)
          {
           
    OrderDelete(OrderTicket());
          } 
           if (
    OrderType()==OP_SELLSTOP)
          {
           
    OrderDelete(OrderTicket());
          } 
                 if (
    OrderType()==OP_BUYLIMIT)
          {
           
    OrderDelete(OrderTicket());
          } 
           if (
    OrderType()==OP_SELLLIMIT)
          {
           
    OrderDelete(OrderTicket());
          } 

        }
      return(
    0);



    وهذه دالة خارج ستارت لتعود لنا بقيمة اللوت للصفقات المفتوحة
    كود PHP:
    double LastOrderLots()
    {
      for (
    int cnt cnt OrdersTotal() ; cnt++)
      {
        
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
      if(
    OrderSymbol()==Symbol())
      {
       return(
    OrderLots());
      }
     }
     return(
    0);



    أرجو التكرم بالنظر في هذه الأكواد لاني بعد كتابتها الاكسبرت لا يتعامل ولا ينظر نهائيا للوت المفتوح على المنصة

    وفكرتي استاذ اسامة باختصار عمل اكسبرت يقوم بقراءة اللوت للصفقات المفتوحة على المنصة فان كان اللوت لأحد هذه الصفقات تساوت او اكبر من MaxLots فأنه يقوم بإغلاق جميع الصفقات المفتوحة والمعلقة على المنصة بشرط صافي ربح الصفقات المفتوحة اكبر من الصفر
    تقبل تحياتي
    بعد إذن أستاذ أسامة
    ----------------------

    يمكنك أن تكتفي بحلقة واحدة في دالة إستارت تقوم بالبحث ومعها دالة الإغلاق

    كود PHP:

    int start
    ()
      {
      
      if(
    OrdersTotal()>0&&AccountProfit()>0){
      
      for(
    int i=0;i<=OrdersTotal();i++){
      
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      if(
    OrderSymbol()==Symbol()&&OrderLots()>=MaxLots){
         
           
    CloseAllOrders();
        }
      }

       return(
    0);
      } 

    آخر تعديل بواسطة xcv114 ، 29-05-2013 الساعة 07:06 PM

  9. #3924
    الصورة الرمزية waleedgadelmola
    waleedgadelmola متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Jun 2012
    الإقامة
    الكويت
    العمر
    44
    المشاركات
    365

    افتراضي

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


    بعد إذن أستاذ أسامة
    ----------------------

    يمكنك أن تكتفي بحلقة واحدة في دالة إستارت تقوم بالبحث ومعها دالة الإغلاق

    كود PHP:

    int start
    ()
      {
      
      if(
    OrdersTotal()>0&&AccountProfit()>0){
      
      for(
    int i=0;i<=OrdersTotal();i++){
      
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      if(
    OrderSymbol()==Symbol()&&OrderLots()>=MaxLots){
         
           
    CloseAllOrders();
        }
      }

       return(
    0);
      } 

    شكرا أخي الكريم جاري التجربة والشكر موصول للاستاذ الغائب الحاضر مستر دولار
    جزاك الله خير أخي xcv114
    آخر تعديل بواسطة waleedgadelmola ، 29-05-2013 الساعة 07:34 PM

  10. #3925
    الصورة الرمزية waleedgadelmola
    waleedgadelmola متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Jun 2012
    الإقامة
    الكويت
    العمر
    44
    المشاركات
    365

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

    بس سؤال أخي xcv114

    هل دالة اغلاق الصفقات خارج الدالة ستارت أقوم بتعريفها كـ Void ام int
    انا قمت بتعريفها كالتالي
    كود PHP:
     void CloseAllOrders()
    {
      for (
    int cnt cnt OrdersTotal() ; cnt++)
      {
        
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
       
          if (
    OrderType()==OP_BUY)
          {
            
    OrderClose(OrderTicket(),OrderLots(),Bid,3*D);
          }
           if (
    OrderType()==OP_SELL)
          {
           
    OrderClose(OrderTicket(),OrderLots(),Ask,3*D);
          }   
           if (
    OrderType()==OP_BUYSTOP)
          {
           
    OrderDelete(OrderTicket());
          } 
           if (
    OrderType()==OP_SELLSTOP)
          {
           
    OrderDelete(OrderTicket());
          } 
                 if (
    OrderType()==OP_BUYLIMIT)
          {
           
    OrderDelete(OrderTicket());
          } 
           if (
    OrderType()==OP_SELLLIMIT)
          {
           
    OrderDelete(OrderTicket());
          } 

        }
      return(
    0);

    بانتظار الرد

  11. #3926
    الصورة الرمزية xcv114
    xcv114 غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Oct 2010
    الإقامة
    مصر
    المشاركات
    1,022

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

    اقتباس المشاركة الأصلية كتبت بواسطة waleedgadelmola مشاهدة المشاركة
    بس سؤال أخي xcv114

    هل دالة اغلاق الصفقات خارج الدالة ستارت أقوم بتعريفها كـ Void ام int
    انا قمت بتعريفها كالتالي
    كود PHP:
     void CloseAllOrders()
    {
      for (
    int cnt cnt OrdersTotal() ; cnt++)
      {
        
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
       
          if (
    OrderType()==OP_BUY)
          {
            
    OrderClose(OrderTicket(),OrderLots(),Bid,3*D);
          }
           if (
    OrderType()==OP_SELL)
          {
           
    OrderClose(OrderTicket(),OrderLots(),Ask,3*D);
          }   
           if (
    OrderType()==OP_BUYSTOP)
          {
           
    OrderDelete(OrderTicket());
          } 
           if (
    OrderType()==OP_SELLSTOP)
          {
           
    OrderDelete(OrderTicket());
          } 
                 if (
    OrderType()==OP_BUYLIMIT)
          {
           
    OrderDelete(OrderTicket());
          } 
           if (
    OrderType()==OP_SELLLIMIT)
          {
           
    OrderDelete(OrderTicket());
          } 

        }
      return(
    0);

    بانتظار الرد
    نعم أخي void هي الصحيحة وذلك لإن الدالة لا تعود بأي ناتج

    int تعني أن الدالة ستعود برقم صحيح
    double تعني أن الدالة ستعود برقم عشري
    string تعني أن الدالة ستعود بنص

    ويمكنك تخفيف الدالة لتكون أسرع بالشكل ده
    كود PHP:

     void CloseAllOrders
    ()
    {
      for (
    int cnt cnt OrdersTotal() ; cnt++)
      {
        
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
       
          if (
    OrderType()==OP_BUY)
          {
            
    OrderClose(OrderTicket(),OrderLots(),Bid,3*D);
          }
           if (
    OrderType()==OP_SELL)
          {
           
    OrderClose(OrderTicket(),OrderLots(),Ask,3*D);
          }   
           if (
    OrderType()>1)
          {
           
    OrderDelete(OrderTicket());
          } 
           

        }
      return(
    0);

    أكبر من 1 تعني كل انواع الأوامر المعلقة

  12. #3927
    الصورة الرمزية waleedgadelmola
    waleedgadelmola متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Jun 2012
    الإقامة
    الكويت
    العمر
    44
    المشاركات
    365

    افتراضي

    جزاك الله ألف شكر أخي xcv114
    معلش استحملني فأنا في خطواتي الأولى في البرمجة بـ MQL4

  13. #3928
    الصورة الرمزية wadi2012
    wadi2012 غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Aug 2012
    الإقامة
    جرين لاند
    المشاركات
    1,089

    افتراضي

    سؤال
    عندما اخزن قيمة متغير او متغيرات او حتى رسالة عن طريق الامر print()
    في ملف ال log هل من الممكن ان اظهرها مرة أخرى على الشارت ؟
    يعني لنفرض انني خزنت قيمة
    static x= 10
    ثم تم تغيير القيمة الى 30 مثلا
    وبعد غلق برنامج التداول وفتحه سوف ترجع القيمة x = 10
    كما كانت ولكن اريد عندما افتح البرنامج مرة اخرى استعيد اخر قيمة ل x والمخزنة في ملف ال log فهل يمكن ان استعيد ذلك ؟

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

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

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

    اريد اعرف كيف سيكون اكسبيرت فكرتي هذه؟

    الفكره بسيطه جدا ولكن تحتاج شويه تركيز وزادكم الله تركيز فوق تركيزكم!



    مع الافتتاح لشمعه اليوم اقوم بوضع ثلاثه اوامر معلقه فوق الافتتاح اليومي من نوع باي ستوب ولكن يكون الاول على بعد 20 نقطه

    والثاني على بعد 40 نقطه والثالث على بعد 60 نقطه

    وهكذا ان اردت اضافه المزيد من الاوامر المعلقه وتكون الخساره لكل منهم 20 نقطه فقط والربح لكل منهم 40 نقطه.

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

    بنفس موضع اومكان الذي تفعل او بمعنى اصح هو اعادة الامر الذي اغلق سواء على ربح اوخساره اعادته من جديد.

    مثال للتوضيح مثلا تفعل الامر الذي على بعد 40 نقطه ثم ضرب الخساره يعني اغلق على خساره في هذه الحاله يقوم الاكسبيرت

    بوضع امر معلق اخر من نوع سل ليميت بنفس مكان الامر

    الاول وهو 40 نقطه من افتتاح شمعة اليوم ولكن اذا افترضنا انه اغلق الامر على ربح فسوف يقوم الاكبسيرت بفتح امر معلق من نوع باي

    ليميت بنفس مكان الامر المعلق الاول.

    ونفس الفكره تماما في حاله وضع اوامر معلقه من نوع سل ستوب تحت الافتتاح اليومي اي على بعد 20 و40و 60 نقطه وهكذا.


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

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

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

    اقتباس المشاركة الأصلية كتبت بواسطة wadi2012 مشاهدة المشاركة
    دالة
    ordercloseby()
    حسب ما فهمت من الوظيفة فهي تغلقة صفقة عن طريقة صفقة معاكسة لها من نفس الزوج ولكن الفراق يكون على الصفقة التي تغلق يعني
    فتحت عقد 1 لوت على زوج يورو دولار شراء وعندي 1 لوت على نفس الزوج ولكن بيع
    اذا اغلقت الصفقتين يدويا وكان مجموع الاغلاق يساوي -20 ولكن عند الاغلاق بالدالة السابقة يقل مجموع المحصلة فيكون 10- وسؤالي هو اذا كانت هذه الطريقة توفر نسبة خسارة فما هو العائد على البروكير او كيف يسمح البروكير بتنفيذ هذا الامر ؟؟؟
    ام هي تنفع مع بروكير ecn ؟
    حاليا أغلب البروكرات لا تسمح بإستخدام هذه الميزه وهي في الأساس كانت موجوده في نفس النافذة التي تقوم بفتح الصفقه منها سوف تجد خيار CloseBy إذا كان البروكر يسمح بهذه الميزه وبالتأكيد هي لن تفسد إلا إذا كان لديك صفقتين عكسيتين تريد إغلاقهم وليس شرط أن يكون حجم اللوت متساوي من الممكن أن يكون لديك صفقة بحجم لوت أكبر من الأخرى .
    أما ما الفائده التي ستعود على البروكر لا يوجد فائده حسب علمي وبالتالي سوف تجد أغلب البروكرات قامت بإلغاء هذه الخاصيه
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

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

  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