Quran 24/7 الموضوع المخصص للأسئلة البرمجية mql4 - الصفحة 242


صفحة 242 من 243 الأولىالأولى ... 142192232240241242243 الأخيرةالأخيرة
النتائج 2,411 إلى 2,420 من 2428

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

  1. #2411

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة mahmoud1111 مشاهدة المشاركة
    السلام عليكم
    ارغب بمعرفة الفرق بين دالة close ودالة i close
    شكرا لكم
    وعليكم السلام
    الفرق واضح من خلال مدخلاته
    فـ close تعمل تلقائيا على الزوج والفريم الحاليين، به مدخل وحيد تحدد فيه فقط رقم الشمعة
    أما iClose به 3 مدخلات، الأول تحدد فيه اسم الزوج، والثاني تحدد فيه الفريم، والاخير رقم الشمعة
    ويمكنك جعل iClose تلقائية على الزوج والفريم الحاليين بحيث تجعل المدخل ()Symbol يعني اسم الزوج الحالي، والمدخل الثاني 0 أو PERIOD_CURRENT يعني الفريم الحالي
    أمثلة :
    كود:
     
     Close[0]//اغلاق الشمعة الحالية بالزوج والفريم الحاليين
     iClose("EURUSD",PERIOD_D1,0)//اغلاق الشمعة الحالية بزوج اليوردولار فريم اليومي
     
     Close[0]=iClose(Symbol(),0,0)
    التعديل الأخير تم بواسطة kira-h ; 11-07-2019 الساعة 02:35 PM

  2. #2412
    عضو جديد
    تاريخ التسجيل
    Apr 2019
    المشاركات
    6

    افتراضي

    السلام عليكم اشكركم على المجهود الممتاز
    اريد ان اعرف كيف اضيف كود للاكسبيرت يحسب عدد الصفقات الخاسرة وعدد الصفقات الرابحة المغلقة وعدد صفقات البيع وعدد صفقات الشراء المغلقة انا حاولت عمل اكسبيرت بسيط لكن لم استطع اضافة حساب عدد الصفقات ولا اعلم من اين ابدأ بحثت كثيراً حتى فى المنتديات الاجنبية ولم اصل الى شئ الكود بالاسفل وشكراً جزيلا
    كود:
    double ma1,ma2,ma3;
    
    ma1=iMA(NULL,0,15,0,MODE_SMA,PRICE_CLOSE,1);
    ma2=iMA(NULL,0,15,0,MODE_SMA,PRICE_CLOSE,2);
    ma3=iMA(NULL,0,30,0,MODE_SMA,PRICE_CLOSE,1);
    
    double Speed=MathAbs(ma3-Close[1])/Point;
    Comment(Speed);
    
    double Speed2=Speed+400;
    
    double SL,TP;
    
    if ( ma1>ma3&&Close[2]<ma2&&Close[1]>ma1 ){
    
    SL=NormalizeDouble(Ask-Speed2*Point,Digits);
    TP=NormalizeDouble(Ask+Speed2/2*Point,Digits);
    
    
    
    OrderSend(Symbol(),OP_BUY,NormalizeDouble(Lot,2),A sk,3,SL,TP,"klk",MagicNumber,0,Blue);

  3. #2413

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة most مشاهدة المشاركة
    السلام عليكم اشكركم على المجهود الممتاز
    اريد ان اعرف كيف اضيف كود للاكسبيرت يحسب عدد الصفقات الخاسرة وعدد الصفقات الرابحة المغلقة وعدد صفقات البيع وعدد صفقات الشراء المغلقة انا حاولت عمل اكسبيرت بسيط لكن لم استطع اضافة حساب عدد الصفقات ولا اعلم من اين ابدأ بحثت كثيراً حتى فى المنتديات الاجنبية ولم اصل الى شئ الكود بالاسفل وشكراً جزيلا
    كود:
    double ma1,ma2,ma3;
    
    ma1=iMA(NULL,0,15,0,MODE_SMA,PRICE_CLOSE,1);
    ma2=iMA(NULL,0,15,0,MODE_SMA,PRICE_CLOSE,2);
    ma3=iMA(NULL,0,30,0,MODE_SMA,PRICE_CLOSE,1);
    
    double Speed=MathAbs(ma3-Close[1])/Point;
    Comment(Speed);
    
    double Speed2=Speed+400;
    
    double SL,TP;
    
    if ( ma1>ma3&&Close[2]<ma2&&Close[1]>ma1 ){
    
    SL=NormalizeDouble(Ask-Speed2*Point,Digits);
    TP=NormalizeDouble(Ask+Speed2/2*Point,Digits);
    
    
    
    OrderSend(Symbol(),OP_BUY,NormalizeDouble(Lot,2),A sk,3,SL,TP,"klk",MagicNumber,0,Blue);
    وعليكم السلام
    تقصد عدد الصفقات المفتوحة وليس المغلقة بحيث تتاكد من عدم وجود صفقة قبل فتح الصفقة
    دالة عدد الصفقات المفتوحة كالتالي
    كود:
    int Orderscnt(int type=-1)
    {
     int cnt=0;
     for(int i=0;i<OrdersTotal();i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
      {
       if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber&&(OrderType()==type||type==-1))
       {
        cnt++;
       }
      }
     }
     return(cnt);
    }
    وتصبح الشروط كالتالي
    كود:
    if(Orderscnt()==0&&ma1>ma3&&Close[2]<ma2&&Close[1]>ma1)
    {
     SL=NormalizeDouble(Ask-Speed2*Point,Digits);
     TP=NormalizeDouble(Ask+Speed2/2*Point,Digits);
     bool buy=OrderSend(Symbol(),OP_BUY,NormalizeDouble(Lot,2),Ask,3,SL,TP,"klk",MagicNumber,0,Blue);
    }
    التعديل الأخير تم بواسطة kira-h ; 14-07-2019 الساعة 04:31 AM

  4. #2414
    عضو جديد
    تاريخ التسجيل
    Apr 2019
    المشاركات
    6

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة kira-h مشاهدة المشاركة
    وعليكم السلام
    تقصد عدد الصفقات المفتوحة وليس المغلقة بحيث تتاكد من عدم وجود صفقة قبل فتح الصفقة
    دالة عدد الصفقات المفتوحة كالتالي
    كود:
    int Orderscnt(int type=-1)
    {
     int cnt=0;
     for(int i=0;i<OrdersTotal();i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
      {
       if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber&&(OrderType()==type||type==-1))
       {
        cnt++;
       }
      }
     }
     return(cnt);
    }
    وتصبح الشروط كالتالي
    كود:
    if(Orderscnt()==0&&ma1>ma3&&Close[2]<ma2&&Close[1]>ma1)
    {
     SL=NormalizeDouble(Ask-Speed2*Point,Digits);
     TP=NormalizeDouble(Ask+Speed2/2*Point,Digits);
     bool buy=OrderSend(Symbol(),OP_BUY,NormalizeDouble(Lot,2),Ask,3,SL,TP,"klk",MagicNumber,0,Blue);
    }
    شكراً جزيلاً على الرد ولكنى اقصد الصفقات المغلقة وليست المفتوحة ... الصفقات الخاسرة التى اغلقت على خسارة والتى اغلقت على ربح فى تاريخ صفقات الاكسبيرت هل يمكن ان نحسبها ام انه غير ممكن؟

  5. #2415

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة most مشاهدة المشاركة
    شكراً جزيلاً على الرد ولكنى اقصد الصفقات المغلقة وليست المفتوحة ... الصفقات الخاسرة التى اغلقت على خسارة والتى اغلقت على ربح فى تاريخ صفقات الاكسبيرت هل يمكن ان نحسبها ام انه غير ممكن؟
    دالة عدد الصفقات الخاسرة كالتالي
    كود:
    int LossOrders(int type=-1)
    {
     int cnt=0;
     for(int i=0;i<OrdersHistoryTotal();i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
      {
       if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber&&OrderType()<=OP_SELL&&OrderProfit()<0)
       {
        if(OrderType()==type||type==-1)cnt++;
       }
      }
     }
     return(cnt);
    }
    دالة عدد الصفقات الرابحة كالتالي
    كود:
    int ProfitOrders(int type=-1)
    {
     int cnt=0;
     for(int i=0;i<OrdersHistoryTotal();i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
      {
       if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber&&OrderType()<=OP_SELL&&OrderProfit()>=0)
       {
        if(OrderType()==type||type==-1)cnt++;
       }
      }
     }
     return(cnt);
    }

  6. #2416
    عضو
    تاريخ التسجيل
    Mar 2018
    المشاركات
    101

    افتراضي

    السلام عليكم ورحمه اللة وبركاته
    اخي حسن بارك الله فيك
    اريد دالة او وظيفه تمنع من تكرار الشراء او البيع في حال كانت كل الشروط محققة واريد فتح امر واحد فقط
    انا لا اتكلم عن شمعة واحدة ولكن اتكلم عن تقاطعين للموفنق افرج
    فمثلا اذا حدث تقاطع للموفنق تعتبر هذه بدايه الحالة وينفذ امر واحد فقط قد يكون التنفيذ في الشمعة الثالثة او الاخيرة على حسب الشروط الاخرى حتى يحدث التقاطع الثاني وهي نهاية الحاله وبداية حاله اخرى
    وتسلم وبارك الله فيك

  7. #2417
    عضو جديد
    تاريخ التسجيل
    Jul 2019
    المشاركات
    3

    افتراضي

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

  8. #2418

    افتراضي

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

  9. #2419

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة احمد مشاهدة المشاركة
    السلام عليكم ورحمه اللة وبركاته
    اخي حسن بارك الله فيك
    اريد دالة او وظيفه تمنع من تكرار الشراء او البيع في حال كانت كل الشروط محققة واريد فتح امر واحد فقط
    انا لا اتكلم عن شمعة واحدة ولكن اتكلم عن تقاطعين للموفنق افرج
    فمثلا اذا حدث تقاطع للموفنق تعتبر هذه بدايه الحالة وينفذ امر واحد فقط قد يكون التنفيذ في الشمعة الثالثة او الاخيرة على حسب الشروط الاخرى حتى يحدث التقاطع الثاني وهي نهاية الحاله وبداية حاله اخرى
    وتسلم وبارك الله فيك
    وعليكم السلام
    يمكنك عمل الشروط بالشمعة المحددة مع نفس الشروط بالشمعة التي قبلها
    مثال
    كود:
      double f1=iMA(Symbol(),0,10,0,0,0,1);
      double s1=iMA(Symbol(),0,20,0,0,0,1);
      double f2=iMA(Symbol(),0,10,0,0,0,2);
      double s2=iMA(Symbol(),0,20,0,0,0,2);
      if(f1>s1&&f2<=s2)//buy
    للمزيد يمكنك مراجعة المثال الثالي
    -
    مثال تطبيقي لعمل اكسبيرت تقاطع موفينجين مع الستوكاستيك

  10. #2420
    عضو جديد
    تاريخ التسجيل
    Jul 2019
    المشاركات
    3

    افتراضي

    السلام عليكم
    اخ حسن
    هذ الاكسبيرت كما طلبت ارجو ان تعتمد الملف
    expointamar.rar وتهمل profammarxm1.rar و
    عند تجربت الاكسبيرت ارجو ان تجربة على عدة شارتات بنفس الوقت انا جربته على eurusd و usdjpy و usdchf
    الملفات المرفقة الملفات المرفقة
    التعديل الأخير تم بواسطة ammar ; 15-07-2019 الساعة 11:04 AM

صفحة 242 من 243 الأولىالأولى ... 142192232240241242243 الأخيرةالأخيرة

العلامات المرجعية

العلامات المرجعية

ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •