طريقة صناعة الاكسبيرتات الاليه
صفحة 1 من 2 12 الأخيرةالأخيرة
النتائج 1 إلى 15 من 25
  1. #1
    تاريخ التسجيل
    Sep 2004
    المشاركات
    2,010

    افتراضي طريقة صناعة الاكسبيرتات الاليه

    بسم الله الرحمن الرحيم
    (موضوع منقول للاخ الدكتور وليد سليمان نقلته لفائدة الاعضاء )

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

    ارجو التركيز من فضلكم

    نبدأ على بركة الله

    * التعرف على نموذج الكسبيرت

    //
    كود PHP:
    +------------------------------------------------------------------+ 
    كود PHP:
    [center//|                                                    My Own Expert | 
     //|                                   Copyright, created 20 may 2006 | 
     //|                                                 www.forex.com.sa | 
     //|                                            Desined by Dr. Waleed | 
     //|                                                dr_waleed@msn.com | 
     //+------------------------------------------------------------------+ 
      
     #property copyright "My Own Expert" 
     #property link      "www.forex.com.sa" 

     
    extern int  MaxTrades 1
     
    extern int  stoploss 25
     
    extern int   takeprofit 50
     
    extern double TrailingStop =10
     
    extern bool  UseHourTrade true
     
    extern int  FromHourTrade 7
     
    extern int  ToHourTrade 17
     
    extern string  MM_Parameters "---------- Money Management"
     
    extern double  Lots 1;                                            
     
    extern bool  MM true
                  
    AccountIsMicro false
     
    extern int  Risk 10
      
     
    int ID=148

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

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

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

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

     
    int start() 
       { 
           if (
    UseHourTrade){ 
            if(!(
    Hour()>=FromHourTrade&&Hour()<=ToHourTrade)){ 
               
    Comment("Non-Trading Hours!"); 
               return(
    0); 
             } 
           } 
          
          
    double EMA5crEMA5prEMA8crEMA8pr
        
           
    EMA5cr=iMA(NULL050MODE_EMAPRICE_CLOSE,0); 
           
    EMA5pr=iMA(NULL050MODE_EMAPRICE_CLOSE,1); 
           
    EMA8cr=iMA(NULL080MODE_EMAPRICE_CLOSE,0); 
           
    EMA8pr=iMA(NULL080MODE_EMAPRICE_CLOSE,1); 
        
          
    double sl,tp;  

        if(
    MMLots subLotSize(); 
         
               
        if (
    EMA5cr>EMA8cr && EMA5pr<EMA8pr){ 
           if(
    orderscnt()<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,2,sl,tp,"My Own Expert",ID,0,Blue); 
                 
    PlaySound("Alert.wav"); 
              } 
           } 
        if (
    EMA5cr<EMA8cr && EMA5pr>EMA8pr){ 
           if(
    orderscnt()<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,2,sl,tp,"My Own Expert",ID,0,Red);  
                 
    PlaySound("Alert.wav"); 
              } 
           } 
         
     
    //+------------------------------------------------------------------+ 
     //| FUNCTION DEFINITIONS   TrailingStop                              | 
     //+------------------------------------------------------------------+ 
         
        
    if(TrailingStop>0)   
            {                  
              if(
    Bid-OrderOpenPrice()>Point*TrailingStop
               { 
                if(
    OrderStopLoss()<Bid-Point*TrailingStop
                  { 
                   
    OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop
                   
    OrderTakeProfit(),0,Green); 
                   return(
    0); 
                } 
              } 
            } 
        if(
    TrailingStop>0)   
            {                  
             if((
    OrderOpenPrice()-Ask)>(Point*TrailingStop)) 
               { 
                if((
    OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0)) 
                  { 
                   
    OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop
                   
    OrderTakeProfit(),0,Red); 
                    return(
    0); 
                 } 
               } 
            }  

         return(
    0); 
       } 

     
    //+------------------------------------------------------------------+ 
     //| FUNCTION DEFINITIONS   Money Managment                           | 
     //+------------------------------------------------------------------+  

     
    double subLotSize() 
      { 
          
    double lotMM MathCeil(AccountFreeMargin() *  Risk 1000) / 100;  
           
           if(
    AccountIsMicro==false
           { 
              if(
    lotMM 0.1)                  lotMM Lots
              if((
    lotMM 0.5) && (lotMM 1)) lotMM 0.5
              if(
    lotMM 1.0)                  lotMM MathCeil(lotMM); 
              if(
    lotMM 100)                  lotMM 100
           } 
           else 
           { 
              if(
    lotMM 0.01)                 lotMM Lots
              if(
    lotMM 1.0)                  lotMM MathCeil(lotMM); 
              if(
    lotMM 100)                  lotMM 100
           } 
            
           return (
    lotMM); 
      } 

     
    //+---------------------------------------------------------------------------------+  
    *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*[/center
    كود PHP:
    [center]
    //+------------------------------------------------------------------+ 
     //|                                                    My Own Expert | 
     //|                                   Copyright, created 20 may 2006 | 
     //|                                                 www.forex.com.sa | 
     //|                                            Desined by Dr. Waleed | 
     //|                                                dr_waleed@msn.com | 
     //+------------------------------------------------------------------+ 
                                                    
     #property copyright "My Own Expert"                  
     #property link      "www.forex.com.sa"  

    [/center


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


    *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*



    ثاني جزء من الكسبيرت



    كود PHP:
    extern int  MaxTrades 1;   // ------------------ 1 


    كود PHP:
    [centerextern int  stoploss 25;      // ---------------- 2 
     
    extern int   takeprofit 50;    // --------------- 3 
     
    extern double TrailingStop =10;    // -------------- 4 
     
    extern bool  UseHourTrade true;    // ----------- 5 
     
    extern int  FromHourTrade 7;      // ------------- 6 
     
    extern int  ToHourTrade 17;      //------------- 7 
     
    extern string  MM_Parameters "---------- Money Management"
     
    extern double  Lots 1;                                            
     
    extern bool  MM true,              // ------------ 8 
                  
    AccountIsMicro false
     
    extern int  Risk 10;              // ------------- 9 
      
     
    int ID=148;                 //--------------------- 10  

    [/center

    حسنا , الأن هذه اعدادات الكسبيرت يمكنك تغير ما تشاء منها حسب القواعد التالية


    رقم 1 هو عدد الصفقات التي سيفتحها الكسبيرت في نفس الوقت لنفس العملة ولو هناك صفقة مفتوحة للعملة التي يعمل عليها الكسبيرت لن يفتح أخرى ويمكن تغييرها ل 2 او 3 او اي عدد يعجبك



    رقم 2 هو وقف الخسارة بالنقط



    رقم 3 هو الهدف بالنقط



    رقم 4 الوقف المتحرك



    رقم 5 هنا يمكنك كتابة قيمتين اما "true" او "false" ومعناها هل تريد ان تشغل خاصية الفلتر الزمني- بمعنى ان تتم المضاربة في ساعات محددة من اليوم - فأن جعلتها "true" انزل للخطوات رقم 6 ورقم 7 لتكتب من الساعة للساعة كم يتاجر هذا الكسبيرت ,

    وان جعلتها "false" فأنت الغيت الخاصية ولا تكتب شيء في الخطوات رقم 6 و رقم 7 .





    رقم 8 نفس القيمتين اما "true" او "false" وهي الخاصية التي تقوم بتشغيل ادارة راس المال اي زيادة عدد العقود اتوماتيكيا حسب راس المال الموجود في الصفقة الواحدة ( انصح بجعلها "true" كما هي)



    رقم 9 خاصة بأدارة المخاطر وهي لن تعمل الا اذا كان رقم 8 "true" وهي تقوم على نسبة كمية زيادة عدد العقود حسب راس المال المستخدم , فأنت انت شغلت خاصية ادارة راس المال في الخطوة رقم 8 سيتم فتح عقود في الصفقة الواحدة حسب ادارة المخاطر في الخطوة رقم 9 ( نصيحة لا تزيد عن رقم 15) .



    رقم 10 وهو خاص برقم الكسبيرت حتى يميز اكسبيرتك عن اي اكسبيرت اخر (optional)



    *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*



    ثالث جزء من الكسبيرت



    //
    كود PHP:
    +------------------------------------------------------------------+ 


    كود PHP:
    [center//| FUNCTION DEFINITIONS    deinitialization function                | 
     //+------------------------------------------------------------------+ 

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

     
    int orderscnt(){ 
     
    int cnt=0
       for(
    int i =0;i<OrdersTotal();i++){ 
         if(
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){ 
           if(
    OrderSymbol()==Symbol() && ID==OrderMagicNumber()){ 
             
    cnt++; 
           } 
         } 
       } 
        return(
    cnt); 
      }  
    [/
    center
    لا يتم تغيير شئ فيه بتاتا

    وهو الجزء الخاص بتعريف الميتا عملية البيع والشراء


    لن نتدخل في هذا الجزء

    *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

    رابع جزء من الكسبيرت ( ارجو التركيز)



    //
    كود PHP:
    +------------------------------------------------------------------+ 
    كود PHP:
    [center//| FUNCTION DEFINITIONS   Start function                            | 
     //+------------------------------------------------------------------+ 

     
    int start() 
       { 
           if (
    UseHourTrade){ 
            if(!(
    Hour()>=FromHourTrade&&Hour()<=ToHourTrade)){ 
               
    Comment("Non-Trading Hours!"); 
               return(
    0); 
             } 
           } 
          
          
    double EMA5crEMA5prEMA8crEMA8pr;      // --------------- 11 
        
           
    EMA5cr=iMA(NULL050MODE_EMAPRICE_CLOSE,0);  // ----- 12 
           
    EMA5pr=iMA(NULL050MODE_EMAPRICE_CLOSE,1);  // ----- 13 
           
    EMA8cr=iMA(NULL080MODE_EMAPRICE_CLOSE,0);  // ----- 14 
           
    EMA8pr=iMA(NULL080MODE_EMAPRICE_CLOSE,1);  // ----- 15  
    [/center


    هنا في هذا الجزء من الكسبيرت سيتم تعريف الميتا بالمؤشرات التي سيقوم عليها عمل الكسبيرت

    فأنت قبل ان تنشئ اكسبيرتك الخاص يجب عليك قبل البدء , تحديد المؤشرات الخاصة بك وتسميتها بأسماء لكي يميزها الكسبيرت



    سأعطي مثالا كما هو موضح في هذا الجزء



    انا الأن اريد ان استخدم المتوسطان 5 اكسبوشنال و 8 اكسيبوشنال فقط في هذا الكسبيرت وعمله سيكون قائما على تقاطعهما فقط



    ساتي للخطوة رقم 11 الموجودة في الكود اعلاه واكتب اسماء من تأليفي امام كلمة double لكل ما سأستخدمه من متوسطات وارجو الألتزام بالفواصل كما هي :



    EMA5cr خاص بالمتوسط المتحرك 5 للشمعة الحالية
    EMA5pr خاص بالمتوسط المتحرك 5 للشمعة السابقة
    EMA8cr خاص بالمتوسط المتحرك 8 للشمعة الحالية
    EMA8pr خاص بالمتوسط المتحرك للشمعة السابقة



    سيسألني سائل : لماذا يا وليد وضعت اسم المتوسطات للشموع السابقة؟ والجواب سيأتي ذكره في الجزء التالي من الكسبيرت(المعادلات) فلا تستعجلون الأن.



    ارجو ملاحظة ان الأسماء السبقة لي حرية اختيارها وهي يمكن تغييرها المهم اني التزم بها فيما سيلي ,



    الأن وبعد ان سميت المتوسطات بأسمائها امام كلمة double سأترجمها للميتا تريدر كي يعرف اي متوسطات انا استخدمها



    في الخطوات من رقم12 ل رقم 15 تعريف لكل اسم انا اخترته وبجانبه اشارة =
    هذا التعريف هو اسم مؤشرات المتوسطات كما يعرفها الميتاتريدر واعداداتها



    وهناك مكتبة لأغلب المؤشرات الموجودة في الميتا ويجب الألتزام بها كما هي والتغيير يكون في الأعدادات فقط كما سأذكره لاحقا وهي بالمرفقات باسم "مكتبة المؤشرات"



    سأذكر مثالا على التغيير في اعدادات المتوسط 5 اكسيبوشنال, كلوز للشمعة الحالية والشمعة السابقة :



    انظر للخطوة رقم 12 في الكود

    كود PHP:
    [center][center
    EMA5cr=iMA(NULL050MODE_EMAPRICE_CLOSE,0);   ----- 12 

    [/center][/center

    EMA5cr الأسم الذي سميته له في الخطوة رقم 11



    = هذه الأشارة معناها انها تقول للميتا ان هذا الأسم الذي اخترته يختص بالمؤشر المخزن في ذاكرتك واعداداته كما في التالي



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



    NULL نتركها كما هي



    0,5,0 رقم المتوسط المتحرك 5 , ان اردت استخدام المتوسط 200 مثلا يمكنك تغيير رقم 5 هنا ل 200 وهكذا سيعرف الكسبيرت انك استخدمت المتوسط 200 (ارجو ان يكون الشرح واضح)



    MODE_EMA وهو خاص بأعدادات المتوسط من ناحية simple او exponential طبعا EMA معناها اكسيبونينشيال و SMA معناها سيمبل وهكذا



    PRICE_CLOSE وهي تتعلق بأعدادات المؤشر من ناحية ان يحسب الهاي او اللو او الأوبن او الكلوز



    0 الصفر الأخير في كل المؤشرات اهم شئ في اعدادات كل المؤشرات ومعناه انه يعرف الكسبيرت ان تستخدم هذا المؤشر بقيمة الشمعة الحالية , واذا غيرنا الصفر لواحد فمعناها اننا نقصد ان قيمة المؤشر نريدها للشمعة السابقة , وقيمة 2 معناها الشمعة قبل السابقة وهكذا

    كود PHP:
    [center][center
    EMA5pr=iMA(NULL050MODE_EMAPRICE_CLOSE,1);   ----- 13 
    [/center][/center


    هنا المتوسط قيمته عند الشمعة السابقة للسعر الحالي
    كلما زاد الرقم كلما بعدنا عن الشمعة الحالية وهكذا ( ارجو ان يكون الشرح واضح ومفهوم)



    ملاحظة مهمة قبل الأنتقال للخطوات القادمة , اذا اردنا ان نضيف اغلاق الشمعة او سعر فتحها او الهاي او اللو لها فهؤلاء لهم استثاء صغير
    يكفي فقط ان نضع في المعادلات في الجزء القادم من الكسبيرت كلمة Close او Open او High او Low دون تعريفها في هذا الجزء مثل بقية المؤشرات فالميتا يعرفهم بمفرده فلا حاجة لتسميتها او تعريفها من قبلنا بل توضع في المعادلات كما هي ونغير فقط في اعداداتها كما في هذا الكود



    كود PHP:
    كود PHP:
      High[0]   // ----- 18 


    كود PHP:
    [center]Open[2]   // ----- 19 
    Close[1]   //----- 20 
    Low[1]    // ----- 21  
    [/center

    في رقم 18 نقصد الهاي للشمعة الحالية

    في الرقم 19 نقصد الأوبن للشمعة ما قبل السابقة
    في الرقم 20 نقصد كلوز الشمعة السابقة
    في الرقم 21 نقصد اقل سعر للشمعة السابقة ... وهكذا تكتب في المعادلات مباشرة دون تعريف وسيأتي ذكرها في الجزء القادم ان شاء الله



    الأن لنعود لهذا القسم من جديد بعد شرح اعدادات المؤشرات وكما لاحظتم في الخطوات من رقم 12 ل رقم 15 اني اريد من الكسبيرت استخدام الموفنج افرج 5 اكسبونينشال كلوز للشمعة الحالية وقيمته ايضا للشمعة السابقة و8 اكسبونينشال للشمعة الحالية وايضا السابقة



    الأن عرف الكسبيرت ماذا اريد ان استخدم وما هي الأدوات التي اريده فقط ان يستخدمها



    لم يبقى سوى كيف يستخدمها في عملية البيع والشراء ؟



    وهو ما سيتم شرحه في الجزء التالي



    *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*



    خامس جزء من الكسبيرت ( ارجو التركيز أكثر)



    كود PHP:
         double sl,tp


    كود PHP:
    [center]
        if(
    MMLots subLotSize(); 
         
               
        if (
    EMA5cr>EMA8cr && EMA5pr<EMA8pr){       // ------------------------- 22 
           
    if(orderscnt()<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,2,sl,tp,"My Own Expert",ID,0,Blue); 
                 
    PlaySound("Alert.wav"); 
              } 
           } 
        if (
    EMA5cr<EMA8cr && EMA5pr>EMA8pr){        // ------------------------ 23 
           
    if(orderscnt()<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,2,sl,tp,"My Own Expert",ID,0,Red);  
                 
    PlaySound("Alert.wav"); 
              } 
           }  
     [/
    center

    لن نتدخل هنا الا في السطرين رقم 22 (معادلة الشراء) ورقم 23 ( معادلة البيع)فقط .

    عملنا كله في هذا القسم سيكون في المعادلات بين القوسين ( ) بعد كلمة if



    الأن دعونا نفكر قليلا , الأن الكسبيرت عرف المؤشرات التي سيستخدمها وباقي عليه انه يعرف كيف سيستخدمها , ماذا نفعل لكي نفهمه ان يشتري او يبيع عند التقاطع ؟



    لكي نشرح للكسبيرت عملية التقاطع يلزمنا معادلات لهذا , سنشرحها بالعربي اولا وبعدها نحولها لكود



    عملية التقاطع لأعلى ( شراء) معناها ان متوسط 5 يقطع متوسط 8 لأعلى
    بمعنى أكثر دقة ان قيمة المتوسط 5 في الشمعة السابقة اقل من قيمة المتوسط 8 وبعد لحظة التقاطع انقلب الوضع وصار المتوسط خمسة حاليا اعلى من المتوسط 8 حاليا ... (وليد صار يخرف)



    بعد تحويلها لمعادلات بتكون كدا




    كود PHP:
    EMA5cr>EMA8cr && EMA5pr<EMA8pr 




    وعلامة && معناها بلغة الميتا " و " يعني لازم تحقق الشرطين اعلاه مع بعضهما , وعلامة || معناها بلغة الميتا " أو " يعني يمكن تحقق اي الشرطين



    الأن لاحظوا معي EMA5pr<EMA8pr اي ان المتوسط 5 كان في الشمعة السابقة اصغر من المتوسط 8 ,,, EMA5cr>EMA8cr اصبح المتوسط 5 حاليا اكبر من المتوسط 8



    وكتبناهم في السطر 22 اي مكان معادلات الشراء ,



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



    ونفس الكلام في معادلة البيع



    لاحظو اننا فكرنا اولا كيف نترجم عملية التقاطع للغة الميتا ,, اي ان كل شئ بدأ بالتفكير وهو ما اطلبه منكم عند التدريب على هذا النموذج



    حسنا ما ذا لو اردنا مثلا ان يشتري الكسبيرت عند صعود الRSI مثلا

    الحل هنا
    كود PHP:
      RSI1  iRSI(NULL014PRICE_CLOSE,0); 


    كود PHP:
    [center]RSI2  iRSI(NULL014PRICE_CLOSE,1);  
    [/
    center

    ونكتبها في الجزء الربع من الكسبيرت ولا ننسى ان نعرف RSI1 و RSI2 امام كلمة double في السطر رقم 11


    وبعد ذلك نفكر , كيف نترجم عملية صعود ال ار اس اي للكسبيرت ,

    سهلة , لما تكون قيمته الحالية اعلى من قيمته السابقة بيكون اكيد صاعد وما علينا الا ان نكتب المعادلة دي في السطر رقم 22 في معادلة الشراء
    كود PHP:

    كود PHP:
     (RSI1>RSI2



    او ممكن ندمجها في نفس نموذج الكسبيرت المرفق مثلا على النحو التالي
    كود PHP:
       if (EMA5cr>EMA8cr && EMA5pr<EMA8pr && RSI1>RSI2)  // ------ 22 



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




    الحل
    كود PHP:
      Open[1]>Close[1



    ولا يتم تعريفهم لأنهم استثنائيون في الجزء الرابع من الكسبيرت بل نكتفي بوضعها فقط داخل معادلة الشراء في السطر رقم 22 كما هو مبين :
    كود PHP:
      if (Open[1]>Close[1]){       // ---------- 22 
    آخر تعديل بواسطة ماجد كو ، 04-01-2008 الساعة 08:13 PM

  2. #2
    تاريخ التسجيل
    Sep 2004
    المشاركات
    2,010

    افتراضي رد: طريقة صناعة الاكسبيرتات الاليه

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

  3. #3
    تاريخ التسجيل
    Dec 2007
    المشاركات
    7,670

    افتراضي رد: طريقة صناعة الاكسبيرتات الاليه

    يعطيك ألف عافية

  4. #4
    تاريخ التسجيل
    Sep 2006
    الإقامة
    المملكة العربية السعودية
    المشاركات
    2,917

    افتراضي رد: طريقة صناعة الاكسبيرتات الاليه

    دروس الدكتور وليد هي اول دروس تعلمتها للغة mql4

    جزاك الله وجزاه كل خير

  5. #5
    تاريخ التسجيل
    May 2007
    العمر
    50
    المشاركات
    784

    افتراضي رد: طريقة صناعة الاكسبيرتات الاليه

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

    double dRSI=iRSI(NULL,60,3,PRICE_CLOSE,0);
    // double diRSI1=iRSI(NULL,60,3,PRICE_CLOSE,0);
    double EMA18cr, EMA18pr, EMA28cr , EMA28pr;
    EMA18cr=iMA(NULL, 0, 18, 0, MODE_SMMA, PRICE_CLOSE,0);
    EMA18pr=iMA(NULL, 0, 18, 0, MODE_SMMA, PRICE_CLOSE,1);
    EMA28cr=iMA(NULL, 0, 28, 0, MODE_SMMA, PRICE_CLOSE,0);
    EMA28pr=iMA(NULL, 0, 28, 0, MODE_SMMA, PRICE_CLOSE,1);

    if ((dRSI<12))
    if(EMA28cr>EMA18cr&&EMA28pr>EMA18pr){
    OpenBuy();
    return(0);
    }
    if ((dRSI>90))
    if(EMA28cr>EMA18cr&&EMA28pr>EMA18pr){
    OpenSell();
    return(0);
    }
    ما أردت برمجته هو التالي
    1- المؤشرات RSI بأعددات 3 على فريم الساعة والمستويات 12- 90
    2- الموفنج أفرج 18-28 SMOOTHED-CLOSE

    الشراء عندم يتحقق
    1- أر أس أي يلامس أو يخترق خط 13 مع وجود الموفنج أفرج18 فوق 28
    2 البيع عندما أر أس أي يلامس أو يخترق مستوى 90 والموفنج 28 فوق 18

    فهل الأعدادات التي ذكرتها صحيحة أم هناك أخطاء والرجاء تعديل الأخطاء

    مع شكري وتقديري للجميع

  6. #6
    تاريخ التسجيل
    May 2007
    العمر
    50
    المشاركات
    784

    افتراضي رد: طريقة صناعة الاكسبيرتات الاليه

    لو سمحتوا يا أخوان عندي فكرة أخرى حابب أعملها أكسبرت ولكنها لا تعتمد على المؤشرات الموجودة في الميتا تريد طيب كيف نسويها
    المؤشرات هي
    double O1,C1
    حيث أن
    (O1 = iOpen(NULL,0,i-1
    (C1 =iClose(NULL,0,i-1

    وطريقة عمل الأكسبرت
    if((O1>C1)) =SELL
    if((C1>O1)) =BUY

    يا ريت لو أحد من المبرمجين يساعدني في ضبط أكسبرت يقوم على تلك المعادلات

  7. #7
    تاريخ التسجيل
    Sep 2004
    المشاركات
    2,010

    افتراضي رد: طريقة صناعة الاكسبيرتات الاليه

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

  8. #8
    تاريخ التسجيل
    May 2007
    العمر
    50
    المشاركات
    784

    افتراضي رد: طريقة صناعة الاكسبيرتات الاليه

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

  9. #9
    تاريخ التسجيل
    Sep 2004
    المشاركات
    2,010

    افتراضي رد: طريقة صناعة الاكسبيرتات الاليه

    اخي العزيز
    اخوك ضعيف ايضا في البرمجه ، ولكن حسب ما فهمته اعتقد بان التقاطعات ليست مشكله كما قلت لبرمجتها كما ان شرط ان تكون فوق الموفينج 20 ليقوم بالشراء اعتقد ايضا ليست مشكله ولكن شمعة البوليش كيف ستحددها ؟؟ وياليت تحط سؤالك في الموضوع المثبت ايضا حتى يشوفها الاخوان المبرمجون المعروفون ونتعاون جميعا في ذلك وتسلم

  10. #10
    تاريخ التسجيل
    Sep 2006
    الإقامة
    المملكة العربية السعودية
    المشاركات
    2,917

    افتراضي رد: طريقة صناعة الاكسبيرتات الاليه

    اقتباس المشاركة الأصلية كتبت بواسطة jnene مشاهدة المشاركة
    لو سمحتوا يا أخوان عندي فكرة أخرى حابب أعملها أكسبرت ولكنها لا تعتمد على المؤشرات الموجودة في الميتا تريد طيب كيف نسويها
    المؤشرات هي
    double O1,C1
    حيث أن
    (O1 = iOpen(NULL,0,i-1
    (C1 =iClose(NULL,0,i-1

    وطريقة عمل الأكسبرت
    if((O1>C1)) =SELL
    if((C1>O1)) =BUY

    يا ريت لو أحد من المبرمجين يساعدني في ضبط أكسبرت يقوم على تلك المعادلات
    اخي الكريم

    انا مبتدأ في برمجة mql4 ولكن الشرط السابق سهل للغاية

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

    ارجو ان تستفيد منه
    الملفات المرفقة الملفات المرفقة

  11. #11
    تاريخ التسجيل
    May 2007
    العمر
    50
    المشاركات
    784

    افتراضي رد: طريقة صناعة الاكسبيرتات الاليه

    [quote=wajdyss;538821]
    اخي الكريم


    انا مبتدأ في برمجة mql4 ولكن الشرط السابق سهل للغاية

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


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

  12. #12
    تاريخ التسجيل
    Dec 2004
    الإقامة
    المملكة العربية السعودية
    المشاركات
    1,262

    افتراضي رد: طريقة صناعة الاكسبيرتات الاليه

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

    موضوع رائع ويستحق التثبيت

    بارك الله فيك وفي كل عزيز لديك ورزقك من حيث لاتحتسب رزقا طيبا واسعا

    جهد جبار يستحق الإشادة

    تقبل تقديري واحترامي

  13. #13
    تاريخ التسجيل
    Nov 2005
    المشاركات
    158

    افتراضي رد: طريقة صناعة الاكسبيرتات الاليه

    اقتباس المشاركة الأصلية كتبت بواسطة jnene مشاهدة المشاركة
    السلام عليكم ورحمة الله
    شكرا لك أخي ماجد على مجهودك المتواصل في توصيل المعلومات بشكل سهل وبسيط قدر الأمكان
    والله يا أخي لي عندك طلب ويا ريت ما تردني فيه مع أني حاولت كثيرا وبحثت لكن الى الأن لم أفلح في عمل ما أريده وذلك لنقص شديد في المعلزمت لي عندي فلو تتكرم علينا بوضع طريقة كتابة المعادلات الي رح أذكرها لك الأن حتى نفهم أكثر عن هذا الموضوع
    ما أريده هنا
    أكسبرت يعمل كالتالي
    المؤشرات المطلوبه (موفنج أفرج 20 سمبل كلوز ) ومؤشر موفنج أفرج (50 سمبل كلوز)
    وبهذه المؤشرات ما عندي مشكله بتعريفهم لأكسبرت
    الأن طريقة العمل
    ما أريده أن
    1- يفتح الأكسبرت صفقة شراء ( عندما تغلق شمعة بولش فوق الموفنج 20 وأيضا يكون الموفنج 50 فوق الموفنج 20 )وفي حالة مثلا أنه تم الأغلاق فوق ا لموفنج 20 ولكن كان الموفنج50 تحت الموفنج20 لا يفتح الأكسبرت صفقات أبدا.
    2- البيع (عندما تغلق شمعة بيريش تحت الموفنج20 وأيضا الموفنج 50 تحت الموفنج20 )
    وبدون توفر هذه الشروط لا تفتح صفقات
    طبعا على فريم الساعة
    يعني بأختصار طريقة عمل الموفنج المستعمله في الأكسبرت لا تقوم على مبدأ التقاطع وأنما ال50 يحدد أتجاه الترند بالنسبة لموقعه من الموفنج20
    والموفنج 20 هو مقاومة على الشارت بكسرها يكون العمل مع موافقة الترند
    أرجو أن أكون قد أوضحت الموضوع
    بأنتظار تعليقكم الكريم
    تحياتي للجميع
    السلام عليكم

    اخي jnene

    يمكنك تعريف الموفنق افريج 50 و 20 بالطريقة التالية :
    كود:
     
    
    double SMA50 = iMA(NULL, 0, 50, 0, MODE_SMA, PRICE_CLOSE,0); double SMA20 = iMA(NULL, 0, 20, 0, MODE_SMA, PRICE_CLOSE,0);
    أما عن شروط الدخول فسيكون عليك تغيير السطور الموضحة في الكود التالي :
    بالنسبة للشراء :
    كود:
     
    
    if (SMA50 > SMA20 && Close[0] > Open[0] && Close[0] > SMA50){ // ------------------------- 22
    بالنسبة للبيع :
    كود:
     
    
    if (SMA50 < SMA20 && Close[0] < Open[0] && Close[0] < SMA50){ // ------------------------ 23
    مشاكل هذا الكود :
    أهم مشكله في هذا الكود ولا استطيع حلها لأنني مبتدئ في البرمجة هي أنه سيقوم بفتح عقود شراء لكل اغلاق أكبر من افتتاح فوق الموفنق 50
    والعكس أيضاً بالنسبة للبيع
    ولحل هذه المشكله أقترح اقتراح قد يكون حل لهذه المشكله ولكنه ليس بالحل النهائي..
    وهو اضافة شرط أن يكون سعر الافتتاح لشمعة الدخول أقل من أو تساوي الموفنق 50
    والعكس صحيح بالنسبة للبيع

    هذا ما اعرفه,, واتمنى ان يكون ما طلبته

    تحياتي لك
    أخوك عادل الماجد
    آخر تعديل بواسطة الماجد ، 13-01-2008 الساعة 04:45 PM

  14. #14
    تاريخ التسجيل
    May 2007
    العمر
    50
    المشاركات
    784

    افتراضي رد: طريقة صناعة الاكسبيرتات الاليه

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


    اخي jnene

    يمكنك تعريف الموفنق افريج 50 و 20 بالطريقة التالية :
    كود:
     
    
    double SMA50 = iMA(NULL, 0, 50, 0, MODE_SMA, PRICE_CLOSE,0);
    double SMA20 = iMA(NULL, 0, 20, 0, MODE_SMA, PRICE_CLOSE,0);
    أما عن شروط الدخول فسيكون عليك تغيير السطور الموضحة في الكود التالي :
    بالنسبة للشراء :
    كود:
     
    
    if (SMA50 > SMA20 && Close[0] > Open[0] && Close[0] > SMA50){ // ------------------------- 22
    بالنسبة للبيع :
    كود:
     
    
    if (SMA50 < SMA20 && Close[0] < Open[0] && Close[0] < SMA50){ // ------------------------ 23
    مشاكل هذا الكود :
    أهم مشكله في هذا الكود ولا استطيع حلها لأنني مبتدئ في البرمجة هي أنه سيقوم بفتح عقود شراء لكل اغلاق أكبر من افتتاح فوق الموفنق 50
    والعكس أيضاً بالنسبة للبيع
    ولحل هذه المشكله أقترح اقتراح قد يكون حل لهذه المشكله ولكنه ليس بالحل النهائي..
    وهو اضافة شرط أن يكون سعر الافتتاح لشمعة الدخول أقل من أو تساوي الموفنق 50
    والعكس صحيح بالنسبة للبيع

    هذا ما اعرفه,, واتمنى ان يكون ما طلبته

    تحياتي لك
    أخوك عادل الماجد


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

  15. #15
    تاريخ التسجيل
    Nov 2007
    المشاركات
    156

    افتراضي رد: طريقة صناعة الاكسبيرتات الاليه

    1- يفتح الأكسبرت صفقة شراء ( عندما تغلق شمعة بولش فوق الموفنج 20 وأيضا يكون الموفنج 50 فوق الموفنج 20 )وفي حالة مثلا أنه تم الأغلاق فوق ا لموفنج 20 ولكن كان الموفنج50 تحت الموفنج20 لا يفتح الأكسبرت صفقات أبدا.
    2- البيع (عندما تغلق شمعة بيريش تحت الموفنج20 وأيضا الموفنج 50 تحت الموفنج20 )
    وبدون توفر هذه الشروط لا تفتح صفقات

    اخي عرف الموفينج للساعه السابقه للاثنين بزياده حرف قبل 50 وقبل ال20
    كود PHP:
    double SMAP20 =(null,0,50,0,MODE_SMA,Price_CLOSE,1

    واتكون معادله الشراء
    كود PHP:
    (SMAP50<SMAP20&&SMA50>SMA20&&CLOSE[1]>SMA20&&OPEN[1]<SMA20&&CLOSE[1]<SMA50
    آخر تعديل بواسطة بدر هادي ، 13-01-2008 الساعة 06:09 PM

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

  1. دورة صناعة الاكسبيرتات
    By وضاح عطار in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EA
    مشاركات: 169
    آخر مشاركة: 22-07-2019, 04:12 AM
  2. طريقه تداول للمتاجره الاليه !!
    By TRIDER in forum سوق تداول العملات الأجنبية والسلع والنفط والمعادن
    مشاركات: 10
    آخر مشاركة: 23-04-2009, 12:22 PM
  3. هل من الممكن عمل طريقة الوافي بي اكسبيرت للمتاجره الاليه؟
    By nokia8310i in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EA
    مشاركات: 3
    آخر مشاركة: 10-08-2008, 05:33 PM
  4. المجنون واشارات الدايفرجنس الاليه !!!!
    By حسن السيد in forum سوق تداول العملات الأجنبية والسلع والنفط والمعادن
    مشاركات: 181
    آخر مشاركة: 12-12-2007, 06:53 PM
  5. ماهى الاليه لوضع امر وقف الخسارة
    By bader_10 in forum سوق تداول العملات الأجنبية والسلع والنفط والمعادن
    مشاركات: 3
    آخر مشاركة: 06-03-2005, 06:35 PM

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