صفحة 335 من 689 الأولىالأولى ... 235285325329330331332333334335336337338339340341345385435 ... الأخيرةالأخيرة
النتائج 5,011 إلى 5,025 من 10335
  1. #5011
    الصورة الرمزية Jmeel
    Jmeel غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Sep 2008
    الإقامة
    في أرض الله
    المشاركات
    7,609

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة al-hashmy74 مشاهدة المشاركة
    السلام عليكم

    الكود التالي يدخل شراء اذا افتتاح الشمعه الحالية اعلى من افتتاح الشمعة السابقة ويدخل لمرة واحدة فقط
    ما هوه التعديل لكي يدخل في كل شمعه تحقق الشرط
    int start()
    {
    //----
    if (iOpen(0,0,0)>iOpen(0,0,1)&& OrdersTotal()==0)
    OrderSend(Symbol(),OP_BUY,0.1,Ask,30,0,0,"",1234,0 ,Green);
    //----
    return(0);
    }
    وعليكم السلام

    تفضل شرط الشراء وتعكس الأشارة للبيع الى >
    كود PHP:
    if(iOpen(Symbol(),0,0)>Open[1] && Time>0/// {Time=0; Buy;} 
    توقيع العضو
    اعتذر لمن لن أتمكن من تنفيذ طلبه بسبب عدم قناعتي بالفكرة

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

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة al-hashmy74 مشاهدة المشاركة
    ممكن كود يحسب ارباح صفقات الشراء فقط ويغلقها على ربح محدد
    ويحسب ارباح صفقات البيع فقط ويغلقها على ربح محدد

    وشكرا جزيلا مقدما
    تفضل الكود للشراء وعدل للبيع
    كود PHP:
    double profitvc(){double c;for(int i=0;i<OrdersTotal();i++){if(OrderSelect(iSELECT_BY_POSMODE_TRADES)==true)if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNo && OrderType()==OP_BUY){c=c+OrderProfit();} }return(c);} 
    ثم المقارنة
    if(profitvc()>20) // CloseBuy();
    توقيع العضو
    اعتذر لمن لن أتمكن من تنفيذ طلبه بسبب عدم قناعتي بالفكرة

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

    افتراضي

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

    تفضل الدالة
    كود PHP:
    double profitvc(){double c;for(int i=0;i<OrdersHistoryTotal();i++){if(OrderSelect(iSELECT_BY_POSMODE_HISTORY)==true)if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNo){c=c+OrderProfit();} }return(c);} 
    توقيع العضو
    اعتذر لمن لن أتمكن من تنفيذ طلبه بسبب عدم قناعتي بالفكرة

  4. #5014
    الصورة الرمزية first_knight
    first_knight غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Mar 2014
    الإقامة
    المملكة العربية السعودية
    المشاركات
    170

    افتراضي

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


    //اعدادات الموفينج السريع
    extern string Setting_1 = "Fast Moving Average Setting"; // Fast Moving Average Setting
    extern int FastMA_Period = 9;
    extern int FastMA_Shift = 0;
    extern int FastMA_Method = 1;
    extern int FastMA_AppliedPrice = 0;

    //اعدادات الموفينج البيطئ
    extern string Setting_2 = "Slow Moving Average Setting"; // Slow Moving Average Setting
    extern int SlowMA_Period = 30;
    extern int SlowMA_Shift = 0;
    extern int SlowMA_Method = 1;
    extern int SlowMA_AppliedPrice = 0;

    //اخذ الربح ووقف الخسارة وحجم العقد
    extern string Setting_3 = "EA Management";
    extern int TakeProfit = 4;
    extern int Stoploss = 60;
    extern double Lot = 0.01;


    extern int MagicNumber = 12345; // رقم الماجيك للاكسبيرت

    double T; //متغير قيمة النقطة
    //+------------------------------------------------------------------+
    //| Expert initialization function |
    //+------------------------------------------------------------------+
    int OnInit()
    {
    //---
    double Ticksize = MarketInfo (Symbol(),MODE_TICKSIZE); //كود حساب قيمة النقطة
    if(Ticksize == 0.00001 || 0.001)
    T = Ticksize*10;
    else
    T = Ticksize;
    //---
    return(INIT_SUCCEEDED);
    }
    //+------------------------------------------------------------------+
    //| Expert deinitialization function |
    //+------------------------------------------------------------------+
    void OnDeinit(const int reason)
    {
    //---

    }
    //+------------------------------------------------------------------+
    //| Expert tick function |
    //+------------------------------------------------------------------+
    void OnTick()
    {
    //---
    double FastMA_1 = iMA(Symbol(), 0, FastMA_Period, FastMA_Shift, FastMA_Method, FastMA_AppliedPrice, 1); // قيمة الموفينج السريع للشمعة رقم 1
    double FastMA_2 = iMA(Symbol(), 0, FastMA_Period, FastMA_Shift, FastMA_Method, FastMA_AppliedPrice, 2); // قيمة الموفينج السريع للشمعة رقم 2

    double SlowMA_1 = iMA(Symbol(), 0, SlowMA_Period, SlowMA_Shift, SlowMA_Method, SlowMA_AppliedPrice, 1); // قيمة الموفينج البطيئ للشمعة رقم 1
    double SlowMA_2 = iMA(Symbol(), 0, SlowMA_Period, SlowMA_Shift, SlowMA_Method, SlowMA_AppliedPrice, 2); // قيمة الموفينج البطيئ للشمعة رقم 2



    if(FastMA_1>SlowMA_1 && FastMA_2<SlowMA_2) //شروط الشراء
    if(OrdersTotal() == 0)

    OrderSend(Symbol(),OP_BUY,Lot,Ask,3,Ask-(Stoploss*T),Ask+(TakeProfit*T),"Abukareem",MagicN umber,0,Blue); // امر شراء

    if(FastMA_1<SlowMA_1 && FastMA_2>SlowMA_2) // شروط البيع
    if(OrdersTotal() == 0)

    OrderSend(Symbol(),OP_SELL,Lot,Bid,3,Bid+(Stoploss *T),Bid-(TakeProfit*T),"Abukareem",MagicNumber,0,Red); // امر بيع



    }
    //+------------------------------------------------------------------+
    الملفات المرفقة الملفات المرفقة

  5. #5015
    الصورة الرمزية kira-h
    kira-h غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Oct 2011
    الإقامة
    المغرب
    المشاركات
    1,334

    افتراضي

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

    تفضل الدالة
    كود PHP:
    double profitvc(){double c;for(int i=0;i<OrdersHistoryTotal();i++){if(OrderSelect(iSELECT_BY_POSMODE_HISTORY)==true)if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNo){c=c+OrderProfit();} }return(c);} 
    جزاك الله خيرا أستاذ جميل
    جاري التجربة وشكرا جزيلا

  6. #5016
    الصورة الرمزية kira-h
    kira-h غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Oct 2011
    الإقامة
    المغرب
    المشاركات
    1,334

    افتراضي

    السلام عليكم ورحمة الله وبركاته
    تحية طيبة أساتذتي الكرام
    محاولات يائسة لاختصار دوال اكسبيرت كبير الحجم
    نفترض لدينا 200 كائن عبارة عن خطوط أفقية: 100 خط فوق السعر باسم B1 ; B2 .... B100 و 100 خط أسفل السعر باسم S1; S2 .... S100
    شرط الدخول إفتتاح الشمعة1 أسفل الخط وإغلاق الشمعة1 فوق الخط = شراء والعكس بالنسبة للبيع
    الاكسبيرت سليم 100% ويفتح الصفقات لكن عند العمل على سلة العملات يحصل تهنج للمنصة وثقل للكمبيوتر... وأول حل قمت به هو تخفيض كمية هيستوري
    لكن الحل الأمثل هو أن يتم اختصار الشروط الكثيرة... وحتى أيضا أتمكن من عمل التعديلات بسهولة مع سرعة المعالجة بالكمبيوتر ...
    الدالة الخاصة بصفقة البيع (واختصرت فقط على 20 خط فما بالكم بـ 200 خط !!!!) كالتالي:
    كود PHP:
    void TechnicalAnalysis1()
    {
    double LineB1=ObjectGet("B1",OBJPROP_PRICE1); 
    double LineS1=ObjectGet("S1",OBJPROP_PRICE1);
    double LineB2=ObjectGet("B2",OBJPROP_PRICE1); 
    double LineS2=ObjectGet("S2",OBJPROP_PRICE1);
    double LineB3=ObjectGet("B3",OBJPROP_PRICE1); 
    double LineS3=ObjectGet("S3",OBJPROP_PRICE1);
    double LineB4=ObjectGet("B4",OBJPROP_PRICE1); 
    double LineS4=ObjectGet("S4",OBJPROP_PRICE1);
    double LineB5=ObjectGet("B5",OBJPROP_PRICE1); 
    double LineS5=ObjectGet("S5",OBJPROP_PRICE1);
    double LineB6=ObjectGet("B6",OBJPROP_PRICE1); 
    double LineS6=ObjectGet("S6",OBJPROP_PRICE1);
    double LineB7=ObjectGet("B7",OBJPROP_PRICE1); 
    double LineS7=ObjectGet("S7",OBJPROP_PRICE1);
    double LineB8=ObjectGet("B8",OBJPROP_PRICE1); 
    double LineS8=ObjectGet("S8",OBJPROP_PRICE1);
    double LineB9=ObjectGet("B9",OBJPROP_PRICE1); 
    double LineS9=ObjectGet("S9",OBJPROP_PRICE1);
    double LineB10=ObjectGet("B10",OBJPROP_PRICE1); 
    double LineS10=ObjectGet("S10",OBJPROP_PRICE1);
    double LineB11=ObjectGet("B11",OBJPROP_PRICE1); 
    double LineS11=ObjectGet("S11",OBJPROP_PRICE1);
    double LineB12=ObjectGet("B12",OBJPROP_PRICE1); 
    double LineS12=ObjectGet("S12",OBJPROP_PRICE1);
    double LineB13=ObjectGet("B13",OBJPROP_PRICE1); 
    double LineS13=ObjectGet("S13",OBJPROP_PRICE1);
    double LineB14=ObjectGet("B14",OBJPROP_PRICE1); 
    double LineS14=ObjectGet("S14",OBJPROP_PRICE1);
    double LineB15=ObjectGet("B15",OBJPROP_PRICE1); 
    double LineS15=ObjectGet("S15",OBJPROP_PRICE1);
    double LineB16=ObjectGet("B16",OBJPROP_PRICE1); 
    double LineS16=ObjectGet("S16",OBJPROP_PRICE1);
    double LineB17=ObjectGet("B17",OBJPROP_PRICE1); 
    double LineS17=ObjectGet("S17",OBJPROP_PRICE1);
    double LineB18=ObjectGet("B18",OBJPROP_PRICE1); 
    double LineS18=ObjectGet("S18",OBJPROP_PRICE1);
    double LineB19=ObjectGet("B19",OBJPROP_PRICE1); 
    double LineS19=ObjectGet("S19",OBJPROP_PRICE1);
    double LineB20=ObjectGet("B20",OBJPROP_PRICE1); 
    double LineS20=ObjectGet("S20",OBJPROP_PRICE1);
         if((
    Open[1]>LineB1&&Close[1]<LineB1)
         ||(
    Open[1]>LineS1&&Close[1]<LineS1)
         ||(
    Open[1]>LineB2&&Close[1]<LineB2)
         ||(
    Open[1]>LineS2&&Close[1]<LineS2)
         ||(
    Open[1]>LineB3&&Close[1]<LineB3)
         ||(
    Open[1]>LineS3&&Close[1]<LineS3)
         ||(
    Open[1]>LineB4&&Close[1]<LineB4)
         ||(
    Open[1]>LineS4&&Close[1]<LineS4)
         ||(
    Open[1]>LineB5&&Close[1]<LineB5)
         ||(
    Open[1]>LineS5&&Close[1]<LineS5)
         ||(
    Open[1]>LineB6&&Close[1]<LineB6)
         ||(
    Open[1]>LineS6&&Close[1]<LineS6)
         ||(
    Open[1]>LineB7&&Close[1]<LineB7)
         ||(
    Open[1]>LineS7&&Close[1]<LineS7)
         ||(
    Open[1]>LineB8&&Close[1]<LineB8)
         ||(
    Open[1]>LineS8&&Close[1]<LineS8)
         ||(
    Open[1]>LineB9&&Close[1]<LineB9)
         ||(
    Open[1]>LineS9&&Close[1]<LineS9)
         ||(
    Open[1]>LineB10&&Close[1]<LineB10)
         ||(
    Open[1]>LineS10&&Close[1]<LineS10)
         ||(
    Open[1]>LineB11&&Close[1]<LineB11)
         ||(
    Open[1]>LineS11&&Close[1]<LineS11)
         ||(
    Open[1]>LineB12&&Close[1]<LineB12)
         ||(
    Open[1]>LineS12&&Close[1]<LineS12)
         ||(
    Open[1]>LineB13&&Close[1]<LineB13)
         ||(
    Open[1]>LineS13&&Close[1]<LineS13)
         ||(
    Open[1]>LineB14&&Close[1]<LineB14)
         ||(
    Open[1]>LineS14&&Close[1]<LineS14)
         ||(
    Open[1]>LineB15&&Close[1]<LineB15)
         ||(
    Open[1]>LineS15&&Close[1]<LineS15)
         ||(
    Open[1]>LineB16&&Close[1]<LineB16)
         ||(
    Open[1]>LineS16&&Close[1]<LineS16)
         ||(
    Open[1]>LineB17&&Close[1]<LineB17)
         ||(
    Open[1]>LineS17&&Close[1]<LineS17)
         ||(
    Open[1]>LineB18&&Close[1]<LineB18)
         ||(
    Open[1]>LineS18&&Close[1]<LineS18)
         ||(
    Open[1]>LineB19&&Close[1]<LineB19)
         ||(
    Open[1]>LineS19&&Close[1]<LineS19)
         ||(
    Open[1]>LineB20&&Close[1]<LineB20)
         ||(
    Open[1]>LineS20&&Close[1]<LineS20))
        {
            
    LimitOpenOrdersB();
        }

    اختصرتها بهذا الشكل و لم يفتح صفقات
    كود PHP:
    void TechnicalAnalysis1()
    {
      for (
    int i=1i>=20i++)
      {
        
    double LineB=ObjectGet("Bi",OBJPROP_PRICE1); 
        
    double LineS=ObjectGet("Si",OBJPROP_PRICE1);
      }
      if((
    Open[1]>LineB&&Close[1]<LineB)||(Open[1]>LineS&&Close[1]<LineS))
      {
         
    LimitOpenOrdersB();
      }

    ثم بهذا الشكل لم يفتح صفقات
    كود PHP:
    void TechnicalAnalysis1()
    {
      for (
    int i=1i>=20i++)
      {
        
    double LineB=ObjectGet("Bi"+i,OBJPROP_PRICE1); 
        
    double LineS=ObjectGet("Si"+i,OBJPROP_PRICE1);
      }
      if((
    Open[1]>LineB&&Close[1]<LineB)||(Open[1]>LineS&&Close[1]<LineS))
      {
         
    LimitOpenOrdersB();
      }

    و بهذا الشكل أيضا لم يفتح صفقات
    كود PHP:
    void TechnicalAnalysis1()
    {
      for (
    int i=1i>=20i++)
      {
        
    double LineB=ObjectGet("B"+i,OBJPROP_PRICE1); 
        
    double LineS=ObjectGet("S"+i,OBJPROP_PRICE1);
      }
      if((
    Open[1]>LineB&&Close[1]<LineB)||(Open[1]>LineS&&Close[1]<LineS))
      {
         
    LimitOpenOrdersB();
      }

    أرجو المساعدة بارك الله فيكم تعبت من التعديلات على 400 سطر برمجي !!!
    آخر تعديل بواسطة kira-h ، 29-03-2014 الساعة 09:10 PM

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

    افتراضي

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


    //اعدادات الموفينج السريع
    extern string Setting_1 = "Fast Moving Average Setting"; // Fast Moving Average Setting
    extern int FastMA_Period = 9;
    extern int FastMA_Shift = 0;
    extern int FastMA_Method = 1;
    extern int FastMA_AppliedPrice = 0;

    //اعدادات الموفينج البيطئ
    extern string Setting_2 = "Slow Moving Average Setting"; // Slow Moving Average Setting
    extern int SlowMA_Period = 30;
    extern int SlowMA_Shift = 0;
    extern int SlowMA_Method = 1;
    extern int SlowMA_AppliedPrice = 0;

    //اخذ الربح ووقف الخسارة وحجم العقد
    extern string Setting_3 = "EA Management";
    extern int TakeProfit = 4;
    extern int Stoploss = 60;
    extern double Lot = 0.01;


    extern int MagicNumber = 12345; // رقم الماجيك للاكسبيرت

    double T; //متغير قيمة النقطة
    //+------------------------------------------------------------------+
    //| Expert initialization function |
    //+------------------------------------------------------------------+
    int OnInit()
    {
    //---
    double Ticksize = MarketInfo (Symbol(),MODE_TICKSIZE); //كود حساب قيمة النقطة
    if(Ticksize == 0.00001 || 0.001)
    T = Ticksize*10;
    else
    T = Ticksize;
    //---
    return(INIT_SUCCEEDED);
    }
    //+------------------------------------------------------------------+
    //| Expert deinitialization function |
    //+------------------------------------------------------------------+
    void OnDeinit(const int reason)
    {
    //---

    }
    //+------------------------------------------------------------------+
    //| Expert tick function |
    //+------------------------------------------------------------------+
    void OnTick()
    {
    //---
    double FastMA_1 = iMA(Symbol(), 0, FastMA_Period, FastMA_Shift, FastMA_Method, FastMA_AppliedPrice, 1); // قيمة الموفينج السريع للشمعة رقم 1
    double FastMA_2 = iMA(Symbol(), 0, FastMA_Period, FastMA_Shift, FastMA_Method, FastMA_AppliedPrice, 2); // قيمة الموفينج السريع للشمعة رقم 2

    double SlowMA_1 = iMA(Symbol(), 0, SlowMA_Period, SlowMA_Shift, SlowMA_Method, SlowMA_AppliedPrice, 1); // قيمة الموفينج البطيئ للشمعة رقم 1
    double SlowMA_2 = iMA(Symbol(), 0, SlowMA_Period, SlowMA_Shift, SlowMA_Method, SlowMA_AppliedPrice, 2); // قيمة الموفينج البطيئ للشمعة رقم 2



    if(FastMA_1>SlowMA_1 && FastMA_2<SlowMA_2) //شروط الشراء
    if(OrdersTotal() == 0)

    OrderSend(Symbol(),OP_BUY,Lot,Ask,3,Ask-(Stoploss*T),Ask+(TakeProfit*T),"Abukareem",MagicN umber,0,Blue); // امر شراء

    if(FastMA_1<SlowMA_1 && FastMA_2>SlowMA_2) // شروط البيع
    if(OrdersTotal() == 0)

    OrderSend(Symbol(),OP_SELL,Lot,Bid,3,Bid+(Stoploss *T),Bid-(TakeProfit*T),"Abukareem",MagicNumber,0,Red); // امر بيع



    }
    //+------------------------------------------------------------------+
    وعليكم السلام ورحمة الله وبركاته
    يمكنك عمل دالة تقوم بإغلاق الصفقات المفتوحه
    مثال
    كود PHP:
    void CloseOrders(int type)
    {
     for(
    int i=OrdersTotal()-1;i>=0;i--)
     {
      
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      if(
    OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber&&OrderType()==type)
      {
       if(
    OrderType()==OP_BUY)OrderClose(OrderTicket(),OrderLots(),Bid,3);
       if(
    OrderType()==OP_SELL)OrderClose(OrderTicket(),OrderLots(),Ask,3);
      }
     }

    ثم ستضيف هذا الكود عند فتح الصفقه سواء البيع أو الشراء
    مثل
    كود PHP:
     if(FastMA_1>SlowMA_1 && FastMA_2<SlowMA_2)    
       {          
    //شروط الشراء
       
    CloseOrders(OP_SELL);
        if(
    OrdersTotal() == 0)  
                                          
        
    OrderSend(Symbol(),OP_BUY,Lot,Ask,3,Ask-(Stoploss*T),Ask+(TakeProfit*T),"Abukareem",MagicNumber,0,Blue); // امر شراء
       
    }
       if(
    FastMA_1<SlowMA_1 && FastMA_2>SlowMA_2)    
       {        
    // شروط البيع
        
    CloseOrders(OP_BUY);
        if(
    OrdersTotal() == 0)    
                                        
        
    OrderSend(Symbol(),OP_SELL,Lot,Bid,3,Bid+(Stoploss*T),Bid-(TakeProfit*T),"Abukareem",MagicNumber,0,Red); // امر بيع
       

    مرفق الإكسبرت معدل
    الملفات المرفقة الملفات المرفقة

  8. #5018
    الصورة الرمزية first_knight
    first_knight غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Mar 2014
    الإقامة
    المملكة العربية السعودية
    المشاركات
    170

    افتراضي

    بارك الله فيك مستر دولار وجعله الله في ميزان حسناتك
    وغفر الله لك ولوالديك وجميع اهلك

  9. #5019
    الصورة الرمزية first_knight
    first_knight غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Mar 2014
    الإقامة
    المملكة العربية السعودية
    المشاركات
    170

    افتراضي

    السلام عليكم اعضاء ومشرفين ومبرمجين هذا المنتدى الجميل
    في هذا الاكسبيرت اريد ان يكون التيك بروفت نقطة واحدة وذلك في جميع حالات تغير الاسبريد سواء بالزيادة اوالنقصان
    فقمت بعمل متغير وسميتة S واضفتة للتيك بروفت في معادلة الشراء والبيع
    فهل ما قمت به صح ام خطاء .بارك الله فيكم جميعا وتقبل منا ومنكم صالح الاعمال
    كود PHP:
     //+------------------------------------------------------------------+
    //|                                                  Ahmed 1.mq4 |
    //|                        Copyright 2014, MetaQuotes Software Corp. |
    //|                                              http://www.mql5.com |
    //+------------------------------------------------------------------+
    #property copyright "Copyright 2014, MetaQuotes Software Corp."
    #property link      "http://www.mql5.com"
    #property version   "1.00"
    #property strict



    extern string Setting_1            "Fast Moving Average Setting";  
    extern int    FastMA_Period       9;
    extern int    FastMA_Shift        0;
    extern int    FastMA_Method       1;
    extern int    FastMA_AppliedPrice 0;


    extern string Setting_2            "Slow Moving Average Setting"
    extern int    SlowMA_Period       30;
    extern int    SlowMA_Shift        0;
    extern int    SlowMA_Method       1;
    extern int    SlowMA_AppliedPrice 0;


    extern string Setting_3            "EA Management";  
    extern int    TakeProfit          1;
    extern int    Stoploss            10;
    extern double Lot                 0.01;


    extern int    MagicNumber         25478;         

    double T;
    double S;
                                              
    //+------------------------------------------------------------------+
    //| Expert initialization function                                   |
    //+------------------------------------------------------------------+
    int OnInit()
      {
    //----Ticksize
       
    double Ticksize MarketInfo (Symbol(),MODE_TICKSIZE);   
       if(
    Ticksize == 0.00001 || 0.001)
       
    Ticksize*10;
       else
       
    Ticksize
       
       
       
    double Spreedsize MarketInfo (Symbol(),MODE_SPREAD);
       if(
    Spreedsize == 0.00001 || 0.001)
       
    Spreedsize*10;   
    //---
       
    return(INIT_SUCCEEDED);
      }
    //+------------------------------------------------------------------+
    //| Expert deinitialization function                                 |
    //+------------------------------------------------------------------+
    void OnDeinit(const int reason)
      {
    //---
       
      
    }
    //+------------------------------------------------------------------+
    //| Expert tick function                                             |
    //+------------------------------------------------------------------+
    void OnTick()
      {
    //---
       
    double FastMA_1  iMA(Symbol(), 0FastMA_PeriodFastMA_ShiftFastMA_MethodFastMA_AppliedPrice1);  
       
    double FastMA_2  iMA(Symbol(), 0FastMA_PeriodFastMA_ShiftFastMA_MethodFastMA_AppliedPrice2);  
       
       
    double SlowMA_1  iMA(Symbol(), 0SlowMA_PeriodSlowMA_ShiftSlowMA_MethodSlowMA_AppliedPrice1); 
       
    double SlowMA_2  iMA(Symbol(), 0SlowMA_PeriodSlowMA_ShiftSlowMA_MethodSlowMA_AppliedPrice2); 
      
       
       
       if(
    FastMA_1>SlowMA_1 && FastMA_2<SlowMA_2)             
       if(
    OrdersTotal() == 0)  
                                          
       
    OrderSend(Symbol(),OP_BUY,Lot,Ask,3,Ask-(Stoploss*T),Ask+(TakeProfit*T)+S,"Ahmed",MagicNumber,0,Blue);
      
       if(
    FastMA_1<SlowMA_1 && FastMA_2>SlowMA_2)           
       if(
    OrdersTotal() == 0)    
                                        
       
    OrderSend(Symbol(),OP_SELL,Lot,Bid,3,Bid+(Stoploss*T),Bid-(TakeProfit*T)+S,"Ahmed",MagicNumber,0,Red);
       
          
      
      }
    //+------------------------------------------------------------------+ 
    الملفات المرفقة الملفات المرفقة

  10. #5020
    الصورة الرمزية kira-h
    kira-h غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Oct 2011
    الإقامة
    المغرب
    المشاركات
    1,334

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة kira-h مشاهدة المشاركة
    السلام عليكم ورحمة الله وبركاته
    تحية طيبة أساتذتي الكرام
    محاولات يائسة لاختصار دوال اكسبيرت كبير الحجم
    نفترض لدينا 200 كائن عبارة عن خطوط أفقية: 100 خط فوق السعر باسم B1 ; B2 .... B100 و 100 خط أسفل السعر باسم S1; S2 .... S100
    شرط الدخول إفتتاح الشمعة1 أسفل الخط وإغلاق الشمعة1 فوق الخط = شراء والعكس بالنسبة للبيع
    الاكسبيرت سليم 100% ويفتح الصفقات لكن عند العمل على سلة العملات يحصل تهنج للمنصة وثقل للكمبيوتر... وأول حل قمت به هو تخفيض كمية هيستوري
    لكن الحل الأمثل هو أن يتم اختصار الشروط الكثيرة... وحتى أيضا أتمكن من عمل التعديلات بسهولة مع سرعة المعالجة بالكمبيوتر ...
    الدالة الخاصة بصفقة البيع (واختصرت فقط على 20 خط فما بالكم بـ 200 خط !!!!) كالتالي:
    كود PHP:
    void TechnicalAnalysis1()
    {
    double LineB1=ObjectGet("B1",OBJPROP_PRICE1); 
    double LineS1=ObjectGet("S1",OBJPROP_PRICE1);
    double LineB2=ObjectGet("B2",OBJPROP_PRICE1); 
    double LineS2=ObjectGet("S2",OBJPROP_PRICE1);
    double LineB3=ObjectGet("B3",OBJPROP_PRICE1); 
    double LineS3=ObjectGet("S3",OBJPROP_PRICE1);
    double LineB4=ObjectGet("B4",OBJPROP_PRICE1); 
    double LineS4=ObjectGet("S4",OBJPROP_PRICE1);
    double LineB5=ObjectGet("B5",OBJPROP_PRICE1); 
    double LineS5=ObjectGet("S5",OBJPROP_PRICE1);
    double LineB6=ObjectGet("B6",OBJPROP_PRICE1); 
    double LineS6=ObjectGet("S6",OBJPROP_PRICE1);
    double LineB7=ObjectGet("B7",OBJPROP_PRICE1); 
    double LineS7=ObjectGet("S7",OBJPROP_PRICE1);
    double LineB8=ObjectGet("B8",OBJPROP_PRICE1); 
    double LineS8=ObjectGet("S8",OBJPROP_PRICE1);
    double LineB9=ObjectGet("B9",OBJPROP_PRICE1); 
    double LineS9=ObjectGet("S9",OBJPROP_PRICE1);
    double LineB10=ObjectGet("B10",OBJPROP_PRICE1); 
    double LineS10=ObjectGet("S10",OBJPROP_PRICE1);
    double LineB11=ObjectGet("B11",OBJPROP_PRICE1); 
    double LineS11=ObjectGet("S11",OBJPROP_PRICE1);
    double LineB12=ObjectGet("B12",OBJPROP_PRICE1); 
    double LineS12=ObjectGet("S12",OBJPROP_PRICE1);
    double LineB13=ObjectGet("B13",OBJPROP_PRICE1); 
    double LineS13=ObjectGet("S13",OBJPROP_PRICE1);
    double LineB14=ObjectGet("B14",OBJPROP_PRICE1); 
    double LineS14=ObjectGet("S14",OBJPROP_PRICE1);
    double LineB15=ObjectGet("B15",OBJPROP_PRICE1); 
    double LineS15=ObjectGet("S15",OBJPROP_PRICE1);
    double LineB16=ObjectGet("B16",OBJPROP_PRICE1); 
    double LineS16=ObjectGet("S16",OBJPROP_PRICE1);
    double LineB17=ObjectGet("B17",OBJPROP_PRICE1); 
    double LineS17=ObjectGet("S17",OBJPROP_PRICE1);
    double LineB18=ObjectGet("B18",OBJPROP_PRICE1); 
    double LineS18=ObjectGet("S18",OBJPROP_PRICE1);
    double LineB19=ObjectGet("B19",OBJPROP_PRICE1); 
    double LineS19=ObjectGet("S19",OBJPROP_PRICE1);
    double LineB20=ObjectGet("B20",OBJPROP_PRICE1); 
    double LineS20=ObjectGet("S20",OBJPROP_PRICE1);
         if((
    Open[1]>LineB1&&Close[1]<LineB1)
         ||(
    Open[1]>LineS1&&Close[1]<LineS1)
         ||(
    Open[1]>LineB2&&Close[1]<LineB2)
         ||(
    Open[1]>LineS2&&Close[1]<LineS2)
         ||(
    Open[1]>LineB3&&Close[1]<LineB3)
         ||(
    Open[1]>LineS3&&Close[1]<LineS3)
         ||(
    Open[1]>LineB4&&Close[1]<LineB4)
         ||(
    Open[1]>LineS4&&Close[1]<LineS4)
         ||(
    Open[1]>LineB5&&Close[1]<LineB5)
         ||(
    Open[1]>LineS5&&Close[1]<LineS5)
         ||(
    Open[1]>LineB6&&Close[1]<LineB6)
         ||(
    Open[1]>LineS6&&Close[1]<LineS6)
         ||(
    Open[1]>LineB7&&Close[1]<LineB7)
         ||(
    Open[1]>LineS7&&Close[1]<LineS7)
         ||(
    Open[1]>LineB8&&Close[1]<LineB8)
         ||(
    Open[1]>LineS8&&Close[1]<LineS8)
         ||(
    Open[1]>LineB9&&Close[1]<LineB9)
         ||(
    Open[1]>LineS9&&Close[1]<LineS9)
         ||(
    Open[1]>LineB10&&Close[1]<LineB10)
         ||(
    Open[1]>LineS10&&Close[1]<LineS10)
         ||(
    Open[1]>LineB11&&Close[1]<LineB11)
         ||(
    Open[1]>LineS11&&Close[1]<LineS11)
         ||(
    Open[1]>LineB12&&Close[1]<LineB12)
         ||(
    Open[1]>LineS12&&Close[1]<LineS12)
         ||(
    Open[1]>LineB13&&Close[1]<LineB13)
         ||(
    Open[1]>LineS13&&Close[1]<LineS13)
         ||(
    Open[1]>LineB14&&Close[1]<LineB14)
         ||(
    Open[1]>LineS14&&Close[1]<LineS14)
         ||(
    Open[1]>LineB15&&Close[1]<LineB15)
         ||(
    Open[1]>LineS15&&Close[1]<LineS15)
         ||(
    Open[1]>LineB16&&Close[1]<LineB16)
         ||(
    Open[1]>LineS16&&Close[1]<LineS16)
         ||(
    Open[1]>LineB17&&Close[1]<LineB17)
         ||(
    Open[1]>LineS17&&Close[1]<LineS17)
         ||(
    Open[1]>LineB18&&Close[1]<LineB18)
         ||(
    Open[1]>LineS18&&Close[1]<LineS18)
         ||(
    Open[1]>LineB19&&Close[1]<LineB19)
         ||(
    Open[1]>LineS19&&Close[1]<LineS19)
         ||(
    Open[1]>LineB20&&Close[1]<LineB20)
         ||(
    Open[1]>LineS20&&Close[1]<LineS20))
        {
            
    LimitOpenOrdersB();
        }

    اختصرتها بهذا الشكل و لم يفتح صفقات
    كود PHP:
    void TechnicalAnalysis1()
    {
      for (
    int i=1i>=20i++)
      {
        
    double LineB=ObjectGet("Bi",OBJPROP_PRICE1); 
        
    double LineS=ObjectGet("Si",OBJPROP_PRICE1);
      }
      if((
    Open[1]>LineB&&Close[1]<LineB)||(Open[1]>LineS&&Close[1]<LineS))
      {
         
    LimitOpenOrdersB();
      }

    ثم بهذا الشكل لم يفتح صفقات
    كود PHP:
    void TechnicalAnalysis1()
    {
      for (
    int i=1i>=20i++)
      {
        
    double LineB=ObjectGet("Bi"+i,OBJPROP_PRICE1); 
        
    double LineS=ObjectGet("Si"+i,OBJPROP_PRICE1);
      }
      if((
    Open[1]>LineB&&Close[1]<LineB)||(Open[1]>LineS&&Close[1]<LineS))
      {
         
    LimitOpenOrdersB();
      }

    و بهذا الشكل أيضا لم يفتح صفقات
    كود PHP:
    void TechnicalAnalysis1()
    {
      for (
    int i=1i>=20i++)
      {
        
    double LineB=ObjectGet("B"+i,OBJPROP_PRICE1); 
        
    double LineS=ObjectGet("S"+i,OBJPROP_PRICE1);
      }
      if((
    Open[1]>LineB&&Close[1]<LineB)||(Open[1]>LineS&&Close[1]<LineS))
      {
         
    LimitOpenOrdersB();
      }

    أرجو المساعدة بارك الله فيكم تعبت من التعديلات على 400 سطر برمجي !!!
    تذكير بالمشاركة رقم 5016
    أرجو المساعدة من شخصكم الكريم، جزاكم الله خيرا

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

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة kira-h مشاهدة المشاركة
    السلام عليكم ورحمة الله وبركاته
    تحية طيبة أساتذتي الكرام
    محاولات يائسة لاختصار دوال اكسبيرت كبير الحجم
    نفترض لدينا 200 كائن عبارة عن خطوط أفقية: 100 خط فوق السعر باسم B1 ; B2 .... B100 و 100 خط أسفل السعر باسم S1; S2 .... S100
    شرط الدخول إفتتاح الشمعة1 أسفل الخط وإغلاق الشمعة1 فوق الخط = شراء والعكس بالنسبة للبيع
    الاكسبيرت سليم 100% ويفتح الصفقات لكن عند العمل على سلة العملات يحصل تهنج للمنصة وثقل للكمبيوتر... وأول حل قمت به هو تخفيض كمية هيستوري
    لكن الحل الأمثل هو أن يتم اختصار الشروط الكثيرة... وحتى أيضا أتمكن من عمل التعديلات بسهولة مع سرعة المعالجة بالكمبيوتر ...
    الدالة الخاصة بصفقة البيع (واختصرت فقط على 20 خط فما بالكم بـ 200 خط !!!!) كالتالي:
    كود PHP:
    void TechnicalAnalysis1()
    {
    double LineB1=ObjectGet("B1",OBJPROP_PRICE1); 
    double LineS1=ObjectGet("S1",OBJPROP_PRICE1);
    double LineB2=ObjectGet("B2",OBJPROP_PRICE1); 
    double LineS2=ObjectGet("S2",OBJPROP_PRICE1);
    double LineB3=ObjectGet("B3",OBJPROP_PRICE1); 
    double LineS3=ObjectGet("S3",OBJPROP_PRICE1);
    double LineB4=ObjectGet("B4",OBJPROP_PRICE1); 
    double LineS4=ObjectGet("S4",OBJPROP_PRICE1);
    double LineB5=ObjectGet("B5",OBJPROP_PRICE1); 
    double LineS5=ObjectGet("S5",OBJPROP_PRICE1);
    double LineB6=ObjectGet("B6",OBJPROP_PRICE1); 
    double LineS6=ObjectGet("S6",OBJPROP_PRICE1);
    double LineB7=ObjectGet("B7",OBJPROP_PRICE1); 
    double LineS7=ObjectGet("S7",OBJPROP_PRICE1);
    double LineB8=ObjectGet("B8",OBJPROP_PRICE1); 
    double LineS8=ObjectGet("S8",OBJPROP_PRICE1);
    double LineB9=ObjectGet("B9",OBJPROP_PRICE1); 
    double LineS9=ObjectGet("S9",OBJPROP_PRICE1);
    double LineB10=ObjectGet("B10",OBJPROP_PRICE1); 
    double LineS10=ObjectGet("S10",OBJPROP_PRICE1);
    double LineB11=ObjectGet("B11",OBJPROP_PRICE1); 
    double LineS11=ObjectGet("S11",OBJPROP_PRICE1);
    double LineB12=ObjectGet("B12",OBJPROP_PRICE1); 
    double LineS12=ObjectGet("S12",OBJPROP_PRICE1);
    double LineB13=ObjectGet("B13",OBJPROP_PRICE1); 
    double LineS13=ObjectGet("S13",OBJPROP_PRICE1);
    double LineB14=ObjectGet("B14",OBJPROP_PRICE1); 
    double LineS14=ObjectGet("S14",OBJPROP_PRICE1);
    double LineB15=ObjectGet("B15",OBJPROP_PRICE1); 
    double LineS15=ObjectGet("S15",OBJPROP_PRICE1);
    double LineB16=ObjectGet("B16",OBJPROP_PRICE1); 
    double LineS16=ObjectGet("S16",OBJPROP_PRICE1);
    double LineB17=ObjectGet("B17",OBJPROP_PRICE1); 
    double LineS17=ObjectGet("S17",OBJPROP_PRICE1);
    double LineB18=ObjectGet("B18",OBJPROP_PRICE1); 
    double LineS18=ObjectGet("S18",OBJPROP_PRICE1);
    double LineB19=ObjectGet("B19",OBJPROP_PRICE1); 
    double LineS19=ObjectGet("S19",OBJPROP_PRICE1);
    double LineB20=ObjectGet("B20",OBJPROP_PRICE1); 
    double LineS20=ObjectGet("S20",OBJPROP_PRICE1);
         if((
    Open[1]>LineB1&&Close[1]<LineB1)
         ||(
    Open[1]>LineS1&&Close[1]<LineS1)
         ||(
    Open[1]>LineB2&&Close[1]<LineB2)
         ||(
    Open[1]>LineS2&&Close[1]<LineS2)
         ||(
    Open[1]>LineB3&&Close[1]<LineB3)
         ||(
    Open[1]>LineS3&&Close[1]<LineS3)
         ||(
    Open[1]>LineB4&&Close[1]<LineB4)
         ||(
    Open[1]>LineS4&&Close[1]<LineS4)
         ||(
    Open[1]>LineB5&&Close[1]<LineB5)
         ||(
    Open[1]>LineS5&&Close[1]<LineS5)
         ||(
    Open[1]>LineB6&&Close[1]<LineB6)
         ||(
    Open[1]>LineS6&&Close[1]<LineS6)
         ||(
    Open[1]>LineB7&&Close[1]<LineB7)
         ||(
    Open[1]>LineS7&&Close[1]<LineS7)
         ||(
    Open[1]>LineB8&&Close[1]<LineB8)
         ||(
    Open[1]>LineS8&&Close[1]<LineS8)
         ||(
    Open[1]>LineB9&&Close[1]<LineB9)
         ||(
    Open[1]>LineS9&&Close[1]<LineS9)
         ||(
    Open[1]>LineB10&&Close[1]<LineB10)
         ||(
    Open[1]>LineS10&&Close[1]<LineS10)
         ||(
    Open[1]>LineB11&&Close[1]<LineB11)
         ||(
    Open[1]>LineS11&&Close[1]<LineS11)
         ||(
    Open[1]>LineB12&&Close[1]<LineB12)
         ||(
    Open[1]>LineS12&&Close[1]<LineS12)
         ||(
    Open[1]>LineB13&&Close[1]<LineB13)
         ||(
    Open[1]>LineS13&&Close[1]<LineS13)
         ||(
    Open[1]>LineB14&&Close[1]<LineB14)
         ||(
    Open[1]>LineS14&&Close[1]<LineS14)
         ||(
    Open[1]>LineB15&&Close[1]<LineB15)
         ||(
    Open[1]>LineS15&&Close[1]<LineS15)
         ||(
    Open[1]>LineB16&&Close[1]<LineB16)
         ||(
    Open[1]>LineS16&&Close[1]<LineS16)
         ||(
    Open[1]>LineB17&&Close[1]<LineB17)
         ||(
    Open[1]>LineS17&&Close[1]<LineS17)
         ||(
    Open[1]>LineB18&&Close[1]<LineB18)
         ||(
    Open[1]>LineS18&&Close[1]<LineS18)
         ||(
    Open[1]>LineB19&&Close[1]<LineB19)
         ||(
    Open[1]>LineS19&&Close[1]<LineS19)
         ||(
    Open[1]>LineB20&&Close[1]<LineB20)
         ||(
    Open[1]>LineS20&&Close[1]<LineS20))
        {
            
    LimitOpenOrdersB();
        }

    اختصرتها بهذا الشكل و لم يفتح صفقات
    كود PHP:
    void TechnicalAnalysis1()
    {
      for (
    int i=1i>=20i++)
      {
        
    double LineB=ObjectGet("Bi",OBJPROP_PRICE1); 
        
    double LineS=ObjectGet("Si",OBJPROP_PRICE1);
      }
      if((
    Open[1]>LineB&&Close[1]<LineB)||(Open[1]>LineS&&Close[1]<LineS))
      {
         
    LimitOpenOrdersB();
      }

    ثم بهذا الشكل لم يفتح صفقات
    كود PHP:
    void TechnicalAnalysis1()
    {
      for (
    int i=1i>=20i++)
      {
        
    double LineB=ObjectGet("Bi"+i,OBJPROP_PRICE1); 
        
    double LineS=ObjectGet("Si"+i,OBJPROP_PRICE1);
      }
      if((
    Open[1]>LineB&&Close[1]<LineB)||(Open[1]>LineS&&Close[1]<LineS))
      {
         
    LimitOpenOrdersB();
      }

    و بهذا الشكل أيضا لم يفتح صفقات
    كود PHP:
    void TechnicalAnalysis1()
    {
      for (
    int i=1i>=20i++)
      {
        
    double LineB=ObjectGet("B"+i,OBJPROP_PRICE1); 
        
    double LineS=ObjectGet("S"+i,OBJPROP_PRICE1);
      }
      if((
    Open[1]>LineB&&Close[1]<LineB)||(Open[1]>LineS&&Close[1]<LineS))
      {
         
    LimitOpenOrdersB();
      }

    أرجو المساعدة بارك الله فيكم تعبت من التعديلات على 400 سطر برمجي !!!
    وعليكم السلام ورحمة الله وبركاته
    آخر طريقة هي الصحيحه
    كود PHP:
     void TechnicalAnalysis1()
    {
      for (
    int i=1i>=20i++)
      {
        
    double LineB=ObjectGet("B"+i,OBJPROP_PRICE1); 
        
    double LineS=ObjectGet("S"+i,OBJPROP_PRICE1);
      }
      if((
    Open[1]>LineB&&Close[1]<LineB)||(Open[1]>LineS&&Close[1]<LineS))
      {
         
    LimitOpenOrdersB();
      } 
    لكن لديك خطأ فقط في شرط الحلقه
    الصحيح المقارنه ستكون أقل من 20 وليس أكبر من 20
    كود PHP:
    for (int i=1i<=20i++) 

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

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة first_knight مشاهدة المشاركة
    السلام عليكم اعضاء ومشرفين ومبرمجين هذا المنتدى الجميل
    في هذا الاكسبيرت اريد ان يكون التيك بروفت نقطة واحدة وذلك في جميع حالات تغير الاسبريد سواء بالزيادة اوالنقصان
    فقمت بعمل متغير وسميتة S واضفتة للتيك بروفت في معادلة الشراء والبيع
    فهل ما قمت به صح ام خطاء .بارك الله فيكم جميعا وتقبل منا ومنكم صالح الاعمال
    كود PHP:
     //+------------------------------------------------------------------+
    //|                                                  Ahmed 1.mq4 |
    //|                        Copyright 2014, MetaQuotes Software Corp. |
    //|                                              http://www.mql5.com |
    //+------------------------------------------------------------------+
    #property copyright "Copyright 2014, MetaQuotes Software Corp."
    #property link      "http://www.mql5.com"
    #property version   "1.00"
    #property strict
     
     
     
    extern string Setting_1            "Fast Moving Average Setting";  
    extern int    FastMA_Period       9;
    extern int    FastMA_Shift        0;
    extern int    FastMA_Method       1;
    extern int    FastMA_AppliedPrice 0;
     
     
    extern string Setting_2            "Slow Moving Average Setting"
    extern int    SlowMA_Period       30;
    extern int    SlowMA_Shift        0;
    extern int    SlowMA_Method       1;
    extern int    SlowMA_AppliedPrice 0;
     
     
    extern string Setting_3            "EA Management";  
    extern int    TakeProfit          1;
    extern int    Stoploss            10;
    extern double Lot                 0.01;
     
     
    extern int    MagicNumber         25478;         
     
    double T;
    double S;
                                              
    //+------------------------------------------------------------------+
    //| Expert initialization function                                   |
    //+------------------------------------------------------------------+
    int OnInit()
      {
    //----Ticksize
       
    double Ticksize MarketInfo (Symbol(),MODE_TICKSIZE);   
       if(
    Ticksize == 0.00001 || 0.001)
       
    Ticksize*10;
       else
       
    Ticksize
       
       
       
    double Spreedsize MarketInfo (Symbol(),MODE_SPREAD);
       if(
    Spreedsize == 0.00001 || 0.001)
       
    Spreedsize*10;   
    //---
       
    return(INIT_SUCCEEDED);
      }
    //+------------------------------------------------------------------+
    //| Expert deinitialization function                                 |
    //+------------------------------------------------------------------+
    void OnDeinit(const int reason)
      {
    //---
       
      
    }
    //+------------------------------------------------------------------+
    //| Expert tick function                                             |
    //+------------------------------------------------------------------+
    void OnTick()
      {
    //---
       
    double FastMA_1  iMA(Symbol(), 0FastMA_PeriodFastMA_ShiftFastMA_MethodFastMA_AppliedPrice1);  
       
    double FastMA_2  iMA(Symbol(), 0FastMA_PeriodFastMA_ShiftFastMA_MethodFastMA_AppliedPrice2);  
       
       
    double SlowMA_1  iMA(Symbol(), 0SlowMA_PeriodSlowMA_ShiftSlowMA_MethodSlowMA_AppliedPrice1); 
       
    double SlowMA_2  iMA(Symbol(), 0SlowMA_PeriodSlowMA_ShiftSlowMA_MethodSlowMA_AppliedPrice2); 
      
       
       
       if(
    FastMA_1>SlowMA_1 && FastMA_2<SlowMA_2)             
       if(
    OrdersTotal() == 0)  
                                          
       
    OrderSend(Symbol(),OP_BUY,Lot,Ask,3,Ask-(Stoploss*T),Ask+(TakeProfit*T)+S,"Ahmed",MagicNumber,0,Blue);
      
       if(
    FastMA_1<SlowMA_1 && FastMA_2>SlowMA_2)           
       if(
    OrdersTotal() == 0)    
                                        
       
    OrderSend(Symbol(),OP_SELL,Lot,Bid,3,Bid+(Stoploss*T),Bid-(TakeProfit*T)+S,"Ahmed",MagicNumber,0,Red);
       
          
      
      }
    //+------------------------------------------------------------------+ 
    وعليكم السلام ورحمة الله وبركاته
    تلقائيا لا تحتاج إلى إضافة الإسبريد إلى عدد نقاط الهدف أو الأستوب لأنك أساسا تحسب الهدف من سعر الشراء (Ask) في صفقة الشراء و سعر البيع (Bid) في صفقات البيع

  13. #5023
    الصورة الرمزية first_knight
    first_knight غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Mar 2014
    الإقامة
    المملكة العربية السعودية
    المشاركات
    170

    افتراضي

    بارك الله فيك مستر دولار . واحسن الله جوابك

  14. #5024
    الصورة الرمزية kira-h
    kira-h غير متواجد حالياً عضو نشيط
    تاريخ التسجيل
    Oct 2011
    الإقامة
    المغرب
    المشاركات
    1,334

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة MR.dollar مشاهدة المشاركة
    وعليكم السلام ورحمة الله وبركاته
    آخر طريقة هي الصحيحه
    كود PHP:
     void TechnicalAnalysis1()
    {
      for (
    int i=1i>=20i++)
      {
        
    double LineB=ObjectGet("B"+i,OBJPROP_PRICE1); 
        
    double LineS=ObjectGet("S"+i,OBJPROP_PRICE1);
      }


      if((
    Open[1]>LineB&&Close[1]<LineB)||(Open[1]>LineS&&Close[1]<LineS))
      {
         
    LimitOpenOrdersB();
      } 
    لكن لديك خطأ فقط في شرط الحلقه
    الصحيح المقارنه ستكون أقل من 20 وليس أكبر من 20
    كود PHP:
    for (int i=1i<=20i++) 
    بارك الله فيك أستاذي الغالي
    تمت التجربة ولم يعمل وعلى الـ 3 حالات، قلت ربما المشكلة في المؤشر، فاستخدمت خط أفقي يدويا بإسم B1 في الباكتيست وتحقق الشرط ولم يفتح الصفقة وهذا دليل على أن المؤشر لا دخل له في المشكلة
    فما هو الحل فضلا لا أمرا أستاذي ؟
    وشكرا جزيلا
    آخر تعديل بواسطة kira-h ، 01-04-2014 الساعة 03:42 PM

  15. #5025
    الصورة الرمزية tareef
    tareef غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Sep 2007
    الإقامة
    المملكة العربية السعودية
    المشاركات
    692

    افتراضي

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

    اضغط على الصورة لعرض أكبر

الاســـم:	CloseAllEquity based1.png
المشاهدات:	73
الحجـــم:	49.9 كيلوبايت
الرقم:	402207

    وهذا الكود:

    int start()
    {
    if(AccountEquity()-AccountBalance()>=AccountBalance()*0.1) CloseAllTrades();
    return(0);
    }

    // insert the following after int start() {} section of EA code.
    void CloseAllTrades() {
    for (int i=0; i<OrdersTotal(); i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
    if (OrderSymbol()==Symbol()) {
    if (OrderType()==OP_BUY)
    OrderClose(OrderTicket(),OrderLots(),Bid,GetSlippage(),clCloseBuy);
    if (OrderType()==OP_SELL)
    OrderClose(OrderTicket(),OrderLots(),Ask,GetSlippage(),clCloseSell);
    if (OrderType()==OP_SELLSTOP || OrderType()==OP_SELLLIMIT ||
    OrderType()==OP_BUYSTOP || OrderType()==OP_BUYLIMIT)
    OrderDelete(OrderTicket());
    }
    }
    }
    }
    توقيع العضو
    (إن الله وملائكته يصلون على النبي يا أيها الذين آمنوا صلوا عليه وسلموا تسليما)
    اللهم صلى على سيدنا محمد وعلى آله وصحبه وسلم تسليما كثيرا

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

  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