صفحة 117 من 686 الأولىالأولى ... 1767107111112113114115116117118119120121122123127167217617 ... الأخيرةالأخيرة
النتائج 1,741 إلى 1,755 من 10285
  1. #1741
    الصورة الرمزية MR.dollar
    MR.dollar غير متواجد حالياً مشرف المتداول العربي
    تاريخ التسجيل
    Jun 2009
    الإقامة
    مصر
    المشاركات
    13,851

    افتراضي

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


    للأسف انا مشكلتي مع الزجزاج أكبر وراجعت الكود في المؤشر إللي في الإقتباس ومفيش فايدة

    يعني مثلا الكود ده إللي في أخر المؤشر مش فاهم منه حاجة الحاجة الوحيدة إللي فاهمها هي دالة الإستدعاء iCustom بس بارضوة مش فاهم إية السبب إنك عرفتها zz ومش فاهم N دي راجعة على إية
    كود PHP:
    double ZigZag(int start,int shift){
    int N;
    for(
    int i=start;i<Bars;i++){
    double zz=iCustom(Symbol(),0,"ZigZag",ExtDepth,ExtDeviation,ExtBackstep,0,i);
    if(
    zz!=0)N++;
    if(
    shift==N)return(zz);
     }
    return(
    0); 
    معلش أنا أسف وعارف إني تقلت عليك بس لو ممكن تشرحلنا الزجزاج ده واحدة واحدة وإزاي نعوض عن قممه وقيعانه في إكسبيرت
    --------------------------------------------------
    وكمان مش فاهم يعني إية
    كود PHP:
    ZigZag(i,1)>ZigZag(i,2
    على أي أساس القمة أو القاع إتعرفوا كده (i,1) أو (i,2)

    هل ده معناه إن أخر قمة أو قاع تشكل بياخد الرقم (i,1) وإللي قبله (i,2) وإللي قبله (i,3) .......... وهكذا ؟
    -----------------------
    وأسف مرة تانية على الأسئلة الكتيرة بس فعلا محتاج أفهمه لإن الزجزاج ده أصلا سبب إني حابب أتعلم برمجة المؤشرات والإكسبيرتات
    لماذا قمت بتعريفه zz لن تفرق طبعا ويمكنك تعريفه بأي إسم آخر
    الكود السابق ربما به بعض التعقيد سوف أشرح الفكره ببساطه
    أولا سوف أقوم بالبحث عن آخر قمه وقاع للزيجزاج لذلك سوف استخدم الحلقه for
    كود PHP:
    for(int i=start;i<Bars;i++){
        
    double zz=iCustom(Symbol(),0,"ZigZag",ExtDepth,ExtDeviation,ExtBackstep,0,i); 
    الآن الزيجزاج يأخذ قيمتين 0 في حال لم تكن هناك قمه أو قاع متكونه على الشمعه
    أو سعر القمه أو القاع في حال كان هناك قمة أو قاع متكونه
    لذلك سوف أضع الشرط
    كود PHP:
    if(zz!=0){
    return(
    zz);

    فيصبح الكود في النهاية
    كود PHP:
    double ZigZag(){
    for(
    int i=0;i<Bars;i++){
    double zz=iCustom(Symbol(),0,"ZigZag",ExtDepth,ExtDeviation,ExtBackstep,0,i);
    if(
    zz!=0){
    return(
    zz);
    }

    الكود السابق سوف يعود بقيمة آخر قمه أو قاع للزيجزاج لكن لنفرض مثلا أني أريد القمه قبل الأخيره أو القاع قبل الأخير أو أريد مثلا القمه رقم 5 .... إلخ
    فلن أستخدم هذا الشرط مباشرة
    كود PHP:
    if(zz!=0){
    return(
    zz);

    لكن سوف أضع شرط بحيث يحسب لي عدد القمم والقيعان التي مرت ثم عند رقم القمه أو القاع التي أريدها أتوقف
    لذلك وضعت هذا الشرط
    كود PHP:
    if(zz!=0)N++; 
    معناه عندما يجد أول قمه أو قاع تصبح قيمة N=1 ثم وجد قمه أو قاع أخرى تصبح N=2 ثم قمه أو قاع أخرى تصبح N=3
    ثم اريد التوقف الآن عند القمه رقم 3 مثلا سأضع الشرط
    كود PHP:
    if(N==shift)return(zz); 
    حيث shift هي رقم القمه أو القاع التي اريدها سواء 3 أو 1 أو 2 أو مهما كانت
    معنى
    كود PHP:
    ZigZag(i,1)>ZigZag(i,2
    أي أن قيمة الزيجزاج الأول أكبر من قيمه الزيجزاج الثانيه وهذا يعني أن رقم 1 هي القمه ورقم 2 هي القاع
    هذا الكود معقد قليلا نظرا لإني أستخدمه في المؤشر لكن في الإكسبرت سوف يكون الكود أبسط من ذلك
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

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

    افتراضي

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

  3. #1743
    الصورة الرمزية Ahmedmaths
    Ahmedmaths غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Nov 2011
    المشاركات
    154

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة MR.dollar مشاهدة المشاركة
    تفضل قمت بتعديله لك
    جزاك الله خيرا.....تعبناك معانا

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

    افتراضي

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

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

    افتراضي

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

    كود PHP:
    && (Open[1]>line1
    ثم هذا الكود

    كود PHP:
    && (Close[1]>line1+(33*body1)/100
    هل هذا صحيح ؟؟
    أيضا لاحظت أن الإكسبيرت يضع الستوب عند الهاي أو عند اللو بينما أردته فوق الهاي ب14 نقطه و أسفل اللو ب 14 نقطه كما في الإكسبيرت .
    الملفات المرفقة الملفات المرفقة
    توقيع العضو
    MetaTrader Login: 652105
    Investor Password: Z3UR9DA0

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

    افتراضي

    مساء الخير أستاذ أسامة
    أنا كنت بحاول أعمل إكسبيرت للموضوع ده لأخ طالبه
    https://forum.arabictrader.com/t85073.html

    بس الإكسبيرت وقف معايا فإني :
    مش عارف أعمل الدخول بعقدين شراء وبيع في نفس الوقت ويكون الإكسبيرت في نفس الوقت لا يفتح أكتر من العقدين الحاليين

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

    وطالب إن الإكسبيرت يعمل على المجنون فقط فأنا عوضت عن Symbol() بــ "GBPJPY"
    فهل يجب إني أعوض Symbol في باقي الكود كله
    ------------------------------

    من الأخر أرجو مراجعة الإكسبيرت كله وتوضيح الأخطاء
    أو تعمل للأخ الإكسبيرت في موضوعه وانا أراجعه
    من الموضوع هناك
    https://forum.arabictrader.com/t85073.html
    كود PHP:
    //+------------------------------------------------------------------+
    //|                                                 yousefnewday.mq4 |
    //|                        Copyright 2012, MetaQuotes Software Corp. |
    //|                                        http://www.metaquotes.net |
    //+------------------------------------------------------------------+
    #property copyright "Copyright 2012, MetaQuotes Software Corp."
    #property link      "http://www.metaquotes.net"


    extern int Takeprofit=30;
    extern int Stoploss=30;
    extern double Lots=1;
    int Magicnumber=584234;

    extern string S5="Order Management";

    extern int BreakEven=0;
    extern int movestopto=1;
    extern int StopLoss=0;
    extern int TakeProfit=0;
    extern int TrailingStop=0;
    extern int TrailingStep=0;


     
    double point;
     
    int digits;
     
    //+------------------------------------------------------------------+
    //| expert initialization function                                   |
    //+------------------------------------------------------------------+
    int init()
      {
      
       if(
    Digits<4)
       {
          
    point=0.01;
          
    digits=2;
       }
       else
       {
          
    point=0.0001;
          
    digits=4;
       }
     

       return(
    0);
      }
    //+------------------------------------------------------------------+
    //| expert deinitialization function                                 |
    //+------------------------------------------------------------------+
    void deinit() {
        
    Comment("");
      }

     
    int orderstotal(){
     
    int cnt=0;
       for(
    int i =0;i<OrdersTotal();i++){
         
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
           if(
    OrderSymbol()==Symbol() && Magicnumber==OrderMagicNumber()){
             
    cnt++;
           }
         }
        return(
    cnt);
        }
    //+------------------------------------------------------------------+
    //| expert start function                                            |
    //+------------------------------------------------------------------+
    int start()
      {
      
      if(
    TrailingStop>0)MoveTrailingStop();
       if(
    BreakEven>0)MoveBreakEven();
       

      
    double SL,TP;
        
    double DayClose=iClose("GBPJPY",PERIOD_D1,1);
        
    double BuyPrice=DayClose;
        
    double SellPrice=DayClose;
      
    //+----------------------------------------------------------------+
      
      
    if(Hour()==&& Minute()>10)
        
        if(
    orderstotal()<1){
              if(
    StopLoss==0){SL=0;}else{SL=Ask-StopLoss*point;}
                     if(
    TakeProfit==0){TP=0;}else{TP=Ask+TakeProfit*point;}
        
    OrderSend("GBPJPY",OP_BUY,Lots,NormalizeDouble(BuyPrice,digits),3,NormalizeDouble(SL,digits),NormalizeDouble(TP,digits),"YousefH",Magicnumber,0,Blue);
        
    PlaySound("Alert.wav");      
        }
        
        
      if(
    Hour()==&& Minute()>10)
        if(
    orderstotal()<1){
              if(
    StopLoss==0){SL=0;}else{SL=Bid+StopLoss*point;}
                     if(
    TakeProfit==0){TP=0;}else{TP=Bid-TakeProfit*point;}
                          
    OrderSend("GBPJPY",OP_SELL,Lots,NormalizeDouble(SellPrice,digits),3,NormalizeDouble(SL,digits),NormalizeDouble(TP,digits),"YousefH",Magicnumber,0,Blue);
               }
      
      
       return(
    0);
      }
      
      
    //+-----------------------------------------------------------------+

    //+------------------------------------------------------------------+
     //| FUNCTION DEFINITIONS   TrailingStop                              |
     //+------------------------------------------------------------------+
        
        //|---------trailing stop

    void MoveTrailingStop()
    {
       
       for(
    int cnt=0;cnt<OrdersTotal();cnt++)
       {
          
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
          if(
    OrderType()<=OP_SELL&&OrderSymbol()==Symbol()&&OrderMagicNumber()==Magicnumber)
          {
             if(
    OrderType()==OP_BUY)
             {
                if(
    TrailingStop>0&&NormalizeDouble(Ask-TrailingStep*point,digits)>NormalizeDouble(OrderOpenPrice()+TrailingStop*point,digits))  
                {                 
                   if((
    NormalizeDouble(OrderStopLoss(),digits)<NormalizeDouble(Bid-TrailingStop*point,digits))||(OrderStopLoss()==0))
                   {
                      
    OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid-TrailingStop*point,digits),OrderTakeProfit(),0,Blue);
                    
                   }
                }
             }
             else 
             {
                if(
    TrailingStop>0&&NormalizeDouble(Bid+TrailingStep*point,digits)<NormalizeDouble(OrderOpenPrice()-TrailingStop*point,digits))  
                {                 
                   if((
    NormalizeDouble(OrderStopLoss(),digits)>(NormalizeDouble(Ask+TrailingStop*point,digits)))||(OrderStopLoss()==0))
                   {
                      
    OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Ask+TrailingStop*point,digits),OrderTakeProfit(),0,Red);
                    
                   }
                }
             }
          }
       }
    }



    void MoveBreakEven()
    {
       
    int cnt,total=OrdersTotal();
       for(
    cnt=0;cnt<total;cnt++)
       {
          
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
          if(
    OrderType()<=OP_SELL&&OrderSymbol()==Symbol()&&OrderMagicNumber()==Magicnumber)
          {
             if(
    OrderType()==OP_BUY)
             {
                if(
    BreakEven>0)
                {
                   if(
    NormalizeDouble((Bid-OrderOpenPrice()),digits)>BreakEven*point)
                   {
                      if(
    NormalizeDouble((OrderStopLoss()-OrderOpenPrice()),digits)<0)
                      {
                         
    OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(OrderOpenPrice()+movestopto*point,digits),OrderTakeProfit(),0,Blue);
                      
                      }
                   }
                }
             }
             else
             {
                if(
    BreakEven>0)
                {
                   if(
    NormalizeDouble((OrderOpenPrice()-Ask),digits)>BreakEven*point)
                   {
                      if(
    NormalizeDouble((OrderOpenPrice()-OrderStopLoss()),digits)<0)
                      {
                         
    OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(OrderOpenPrice()-movestopto*point,digits),OrderTakeProfit(),0,Red);
                   
                      }
                   }
                }
             }
          }
       }

    آخر تعديل بواسطة xcv114 ، 13-03-2012 الساعة 10:31 PM

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

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة MR.dollar مشاهدة المشاركة
    لماذا قمت بتعريفه zz لن تفرق طبعا ويمكنك تعريفه بأي إسم آخر
    الكود السابق ربما به بعض التعقيد سوف أشرح الفكره ببساطه
    أولا سوف أقوم بالبحث عن آخر قمه وقاع للزيجزاج لذلك سوف استخدم الحلقه for
    كود PHP:
    for(int i=start;i<Bars;i++){
        
    double zz=iCustom(Symbol(),0,"ZigZag",ExtDepth,ExtDeviation,ExtBackstep,0,i); 
    الآن الزيجزاج يأخذ قيمتين 0 في حال لم تكن هناك قمه أو قاع متكونه على الشمعه
    أو سعر القمه أو القاع في حال كان هناك قمة أو قاع متكونه
    لذلك سوف أضع الشرط
    كود PHP:
    if(zz!=0){
    return(
    zz);

    فيصبح الكود في النهاية
    كود PHP:
    double ZigZag(){
    for(
    int i=0;i<Bars;i++){
    double zz=iCustom(Symbol(),0,"ZigZag",ExtDepth,ExtDeviation,ExtBackstep,0,i);
    if(
    zz!=0){
    return(
    zz);
    }

    الكود السابق سوف يعود بقيمة آخر قمه أو قاع للزيجزاج لكن لنفرض مثلا أني أريد القمه قبل الأخيره أو القاع قبل الأخير أو أريد مثلا القمه رقم 5 .... إلخ
    فلن أستخدم هذا الشرط مباشرة
    كود PHP:
    if(zz!=0){
    return(
    zz);

    لكن سوف أضع شرط بحيث يحسب لي عدد القمم والقيعان التي مرت ثم عند رقم القمه أو القاع التي أريدها أتوقف
    لذلك وضعت هذا الشرط
    كود PHP:
    if(zz!=0)N++; 
    معناه عندما يجد أول قمه أو قاع تصبح قيمة N=1 ثم وجد قمه أو قاع أخرى تصبح N=2 ثم قمه أو قاع أخرى تصبح N=3
    ثم اريد التوقف الآن عند القمه رقم 3 مثلا سأضع الشرط
    كود PHP:
    if(N==shift)return(zz); 
    حيث shift هي رقم القمه أو القاع التي اريدها سواء 3 أو 1 أو 2 أو مهما كانت
    معنى
    كود PHP:
    ZigZag(i,1)>ZigZag(i,2
    أي أن قيمة الزيجزاج الأول أكبر من قيمه الزيجزاج الثانيه وهذا يعني أن رقم 1 هي القمه ورقم 2 هي القاع
    هذا الكود معقد قليلا نظرا لإني أستخدمه في المؤشر لكن في الإكسبرت سوف يكون الكود أبسط من ذلك
    طيب معلش سؤال تاني
    مثال عشان أطبق عليه لإني فعلا تعبت من موضوع أكواد الزجزاج ده
    ------------------
    لو دلوقتي أخر قاعين في الزجزاج ذي الصورة المرفقة
    - وأنا حابب أعمل إكسبيرت يحسب الفرق بين القاعين ويضربه × 140% ( بحيث دي تكون فوق القاعين وتكون هي نقطة الشراء ) الخط الأصفر على الشارت
    - ويكون الهدف الأول نسبة 180 % ( الخط الأحمر ) ويكون الهدف التاني مثلا 190% ( الخط الأزرق )
    ( في حالة القاعين يكون الشراء والأهداف لفوق )
    ------------------------
    والعكس في حالة أخر قمتين
    يبيع من 140% ( بحيث تكون تحت القمتين ) وهدف أول 180% وهدف تاني 190%
    ( في حالة القمتين يكون البيع والأهداف لتحت )
    --------------------------

    يعني الشارت ده مثال على أخر قاعين

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

    افتراضي

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

    كود PHP:
    && (Open[1]>line1
    ثم هذا الكود

    كود PHP:
    && (Close[1]>line1+(33*body1)/100
    هل هذا صحيح ؟؟
    أيضا لاحظت أن الإكسبيرت يضع الستوب عند الهاي أو عند اللو بينما أردته فوق الهاي ب14 نقطه و أسفل اللو ب 14 نقطه كما في الإكسبيرت .
    نعم الكود صحيح
    بالنسبه للأستوب لوز فهو صحيح أيضا لكن إستخدم point التي قمت بتعريفها كما إستخدمتها في الأستوب لوز بدلا من Point حتى يعمل بشكل صحيح مع بروكر 5 أرقام
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

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

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة MR.dollar مشاهدة المشاركة
    نعم الكود صحيح
    بالنسبه للأستوب لوز فهو صحيح أيضا لكن إستخدم point التي قمت بتعريفها كما إستخدمتها في الأستوب لوز بدلا من Point حتى يعمل بشكل صحيح مع بروكر 5 أرقام

    شكرا جزيلا استاذي الكريم
    يعني يجب أن أستبدل أي كلمة ‏Point
    بكلمة point ‎‏ حتى في التعبير عن البعد أو القرب عن خط معين يعدد نقاط معينه ؟؟؟‎ ‎‏ أو الفرق بين خطين ؟؟
    وهكذا يعمل على المنصات الرباعيه و الخماسيه ؟؟
    وجزاك الله كل خير
    توقيع العضو
    MetaTrader Login: 652105
    Investor Password: Z3UR9DA0

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

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة xcv114 مشاهدة المشاركة
    مساء الخير أستاذ أسامة
    أنا كنت بحاول أعمل إكسبيرت للموضوع ده لأخ طالبه
    https://forum.arabictrader.com/t85073.html

    بس الإكسبيرت وقف معايا فإني :
    مش عارف أعمل الدخول بعقدين شراء وبيع في نفس الوقت ويكون الإكسبيرت في نفس الوقت لا يفتح أكتر من العقدين الحاليين

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

    وطالب إن الإكسبيرت يعمل على المجنون فقط فأنا عوضت عن Symbol() بــ "GBPJPY"
    فهل يجب إني أعوض Symbol في باقي الكود كله
    ------------------------------

    من الأخر أرجو مراجعة الإكسبيرت كله وتوضيح الأخطاء
    أو تعمل للأخ الإكسبيرت في موضوعه وانا أراجعه
    من الموضوع هناك
    https://forum.arabictrader.com/t85073.html
    كود PHP:
    //+------------------------------------------------------------------+
    //|                                                 yousefnewday.mq4 |
    //|                        Copyright 2012, MetaQuotes Software Corp. |
    //|                                        http://www.metaquotes.net |
    //+------------------------------------------------------------------+
    #property copyright "Copyright 2012, MetaQuotes Software Corp."
    #property link      "http://www.metaquotes.net"


    extern int Takeprofit=30;
    extern int Stoploss=30;
    extern double Lots=1;
    int Magicnumber=584234;

    extern string S5="Order Management";

    extern int BreakEven=0;
    extern int movestopto=1;
    extern int StopLoss=0;
    extern int TakeProfit=0;
    extern int TrailingStop=0;
    extern int TrailingStep=0;


     
    double point;
     
    int digits;
     
    //+------------------------------------------------------------------+
    //| expert initialization function                                   |
    //+------------------------------------------------------------------+
    int init()
      {
      
       if(
    Digits<4)
       {
          
    point=0.01;
          
    digits=2;
       }
       else
       {
          
    point=0.0001;
          
    digits=4;
       }
     

       return(
    0);
      }
    //+------------------------------------------------------------------+
    //| expert deinitialization function                                 |
    //+------------------------------------------------------------------+
    void deinit() {
        
    Comment("");
      }

     
    int orderstotal(){
     
    int cnt=0;
       for(
    int i =0;i<OrdersTotal();i++){
         
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
           if(
    OrderSymbol()==Symbol() && Magicnumber==OrderMagicNumber()){
             
    cnt++;
           }
         }
        return(
    cnt);
        }
    //+------------------------------------------------------------------+
    //| expert start function                                            |
    //+------------------------------------------------------------------+
    int start()
      {
      
      if(
    TrailingStop>0)MoveTrailingStop();
       if(
    BreakEven>0)MoveBreakEven();
       

      
    double SL,TP;
        
    double DayClose=iClose("GBPJPY",PERIOD_D1,1);
        
    double BuyPrice=DayClose;
        
    double SellPrice=DayClose;
      
    //+----------------------------------------------------------------+
      
      
    if(Hour()==&& Minute()>10)
        
        if(
    orderstotal()<1){
              if(
    StopLoss==0){SL=0;}else{SL=Ask-StopLoss*point;}
                     if(
    TakeProfit==0){TP=0;}else{TP=Ask+TakeProfit*point;}
        
    OrderSend("GBPJPY",OP_BUY,Lots,NormalizeDouble(BuyPrice,digits),3,NormalizeDouble(SL,digits),NormalizeDouble(TP,digits),"YousefH",Magicnumber,0,Blue);
        
    PlaySound("Alert.wav");      
        }
        
        
      if(
    Hour()==&& Minute()>10)
        if(
    orderstotal()<1){
              if(
    StopLoss==0){SL=0;}else{SL=Bid+StopLoss*point;}
                     if(
    TakeProfit==0){TP=0;}else{TP=Bid-TakeProfit*point;}
                          
    OrderSend("GBPJPY",OP_SELL,Lots,NormalizeDouble(SellPrice,digits),3,NormalizeDouble(SL,digits),NormalizeDouble(TP,digits),"YousefH",Magicnumber,0,Blue);
               }
      
      
       return(
    0);
      }
      
      
    //+-----------------------------------------------------------------+

    //+------------------------------------------------------------------+
     //| FUNCTION DEFINITIONS   TrailingStop                              |
     //+------------------------------------------------------------------+
        
        //|---------trailing stop

    void MoveTrailingStop()
    {
       
       for(
    int cnt=0;cnt<OrdersTotal();cnt++)
       {
          
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
          if(
    OrderType()<=OP_SELL&&OrderSymbol()==Symbol()&&OrderMagicNumber()==Magicnumber)
          {
             if(
    OrderType()==OP_BUY)
             {
                if(
    TrailingStop>0&&NormalizeDouble(Ask-TrailingStep*point,digits)>NormalizeDouble(OrderOpenPrice()+TrailingStop*point,digits))  
                {                 
                   if((
    NormalizeDouble(OrderStopLoss(),digits)<NormalizeDouble(Bid-TrailingStop*point,digits))||(OrderStopLoss()==0))
                   {
                      
    OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid-TrailingStop*point,digits),OrderTakeProfit(),0,Blue);
                    
                   }
                }
             }
             else 
             {
                if(
    TrailingStop>0&&NormalizeDouble(Bid+TrailingStep*point,digits)<NormalizeDouble(OrderOpenPrice()-TrailingStop*point,digits))  
                {                 
                   if((
    NormalizeDouble(OrderStopLoss(),digits)>(NormalizeDouble(Ask+TrailingStop*point,digits)))||(OrderStopLoss()==0))
                   {
                      
    OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Ask+TrailingStop*point,digits),OrderTakeProfit(),0,Red);
                    
                   }
                }
             }
          }
       }
    }



    void MoveBreakEven()
    {
       
    int cnt,total=OrdersTotal();
       for(
    cnt=0;cnt<total;cnt++)
       {
          
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
          if(
    OrderType()<=OP_SELL&&OrderSymbol()==Symbol()&&OrderMagicNumber()==Magicnumber)
          {
             if(
    OrderType()==OP_BUY)
             {
                if(
    BreakEven>0)
                {
                   if(
    NormalizeDouble((Bid-OrderOpenPrice()),digits)>BreakEven*point)
                   {
                      if(
    NormalizeDouble((OrderStopLoss()-OrderOpenPrice()),digits)<0)
                      {
                         
    OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(OrderOpenPrice()+movestopto*point,digits),OrderTakeProfit(),0,Blue);
                      
                      }
                   }
                }
             }
             else
             {
                if(
    BreakEven>0)
                {
                   if(
    NormalizeDouble((OrderOpenPrice()-Ask),digits)>BreakEven*point)
                   {
                      if(
    NormalizeDouble((OrderOpenPrice()-OrderStopLoss()),digits)<0)
                      {
                         
    OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(OrderOpenPrice()-movestopto*point,digits),OrderTakeProfit(),0,Red);
                   
                      }
                   }
                }
             }
          }
       }

    أولا بالنسبة لفتح عقدين فالأمر بسيط قم بوضع أمرين OrderSend
    كود PHP:
    OrderSend("GBPJPY",OP_BUY,Lots,NormalizeDouble(BuyPrice,digits),3,NormalizeDouble(SL,digits),NormalizeDouble(TP,digits),"YousefH",Magicnumber,0,Blue);
        
    OrderSend("GBPJPY",OP_BUY,Lots,NormalizeDouble(BuyPrice,digits),3,NormalizeDouble(SL,digits),NormalizeDouble(TP,digits),"YousefH",Magicnumber,0,Blue); 
    وأيضا أوامر البيع
    إغلاق جزء من الصفقه سوف تحتاج إلى عمل دالة لإغلاق جزء من الصفقه
    كود PHP:
    void PartialClose()
    {
       
       for (
    int cnt cnt OrdersTotal() ; cnt++)
      {
        
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
        
    int tick=OrderTicket();int T=OrderType();double P=OrderOpenPrice();double L=OrderLots();double p.=OrderTakeProfit();
        if (
    OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol())
        {
         if (
    T==OP_BUY&&Bid>(P+TakeProfit1*Point*Q))
          &&
    L==GlobalVariableGet("Lots"+Symbol()+Period()+tick))
          {
            
    OrderModify(tick,OrderOpenPrice(),P+StopLossAfterPartial*Point*Q,p.,0);  
            
    OrderClose(tick,NormalizeDouble(PercentClose1*GlobalVariableGet("Lots"+Symbol()+Period()+tick)/100,2),NormalizeDouble(Bid,Digits),3*Q);
          }
          if (
    T==OP_SELL&&Ask<(P-TakeProfit1*Point*Q))
          &&
    L==GlobalVariableGet("Lots"+Symbol()+Period()+tick))
           {  
            
    OrderModify(tick,P,P-StopLossAfterPartial*Point*Q,p.,0);
            
    OrderClose(tick,NormalizeDouble(PercentClose1*GlobalVariableGet("Lots"+Symbol()+Period()+tick)/100,2),NormalizeDouble(Ask,Digits),3*Q);
            
            }
    //////
           
         
    }  
      }

    ثم تضع بداخل الداله start
    كود PHP:
     if(UsePartialClose)PartialClose(); 
    الإكسبرت بعد التعديل في المرفقات
    الملفات المرفقة الملفات المرفقة
    • نوع الملف: mq4 EA1.mq4‏ (7.5 كيلوبايت, المشاهدات 89)
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

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

    افتراضي

    شكرا أستاذ أسامة
    -----------------
    طيب لو مش هتقل عليك ممكن إجابة سؤالي عن الزجزاج


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


    طيب معلش سؤال تاني
    مثال عشان أطبق عليه لإني فعلا تعبت من موضوع أكواد الزجزاج ده
    ------------------
    لو دلوقتي أخر قاعين في الزجزاج ذي الصورة المرفقة
    - وأنا حابب أعمل إكسبيرت يحسب الفرق بين القاعين ويضربه × 140% ( بحيث دي تكون فوق القاعين وتكون هي نقطة الشراء ) الخط الأصفر على الشارت
    - ويكون الهدف الأول نسبة 180 % ( الخط الأحمر ) ويكون الهدف التاني مثلا 190% ( الخط الأزرق )
    ( في حالة القاعين يكون الشراء والأهداف لفوق )
    ------------------------
    والعكس في حالة أخر قمتين
    يبيع من 140% ( بحيث تكون تحت القمتين ) وهدف أول 180% وهدف تاني 190%
    ( في حالة القمتين يكون البيع والأهداف لتحت )
    --------------------------

    يعني الشارت ده مثال على أخر قاعين

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

    افتراضي

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


    طيب معلش سؤال تاني
    مثال عشان أطبق عليه لإني فعلا تعبت من موضوع أكواد الزجزاج ده
    ------------------
    لو دلوقتي أخر قاعين في الزجزاج ذي الصورة المرفقة
    - وأنا حابب أعمل إكسبيرت يحسب الفرق بين القاعين ويضربه × 140% ( بحيث دي تكون فوق القاعين وتكون هي نقطة الشراء ) الخط الأصفر على الشارت
    - ويكون الهدف الأول نسبة 180 % ( الخط الأحمر ) ويكون الهدف التاني مثلا 190% ( الخط الأزرق )
    ( في حالة القاعين يكون الشراء والأهداف لفوق )
    ------------------------
    والعكس في حالة أخر قمتين
    يبيع من 140% ( بحيث تكون تحت القمتين ) وهدف أول 180% وهدف تاني 190%
    ( في حالة القمتين يكون البيع والأهداف لتحت )
    --------------------------

    يعني الشارت ده مثال على أخر قاعين
    داله لتحديد آخر قمه وقاع
    كود PHP:
     double ZigZag_Low(int shift){
    int N;
    for(
    int i=0;i<Bars;i++){
    double zz=iCustom(Symbol(),0,"ZigZag",ExtDepth,ExtDeviation,ExtBackstep,0,i);
    if(
    zz!=0&&zz==Low[i])N++;
    if(
    shift==N)return(zz);
     }
     
    double ZigZag_High(int shift){
    int N;
    for(
    int i=0;i<Bars;i++){
    double zz=iCustom(Symbol(),0,"ZigZag",ExtDepth,ExtDeviation,ExtBackstep,0,i);
    if(
    zz!=0&&zz==High[i])N++;
    if(
    shift==N)return(zz);
     } 
    مناطق البيع والشراء
    كود PHP:
    double Low_Diff=MathAbs(ZigZag_Low(1)-ZigZag_Low(2));
    double Buy_Price=ZigZag_Low(1)+(Low_Diff*140)/100;

    double High_Diff=MathAbs(ZigZag_High(1)-ZigZag_High(2));
    double Sell_Price=ZigZag_High(1)-(High_Diff*140)/100
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

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

    افتراضي

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



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

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

    افتراضي

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

    الله يجزيك كل خير .
    و أعانك الله علينا و على طلباتنا الكثيره .
    و الله أخي أسامه أتمنى أن أصل في البرمجه لمستوى يسمح بمساعدة الأعضاء هنا حتى نخفف عنك العبأ قليلا .
    بارك الله فيك .
    توقيع العضو
    MetaTrader Login: 652105
    Investor Password: Z3UR9DA0

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

    افتراضي

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



    الله يجزيك كل خير .
    و أعانك الله علينا و على طلباتنا الكثيره .
    و الله أخي أسامه أتمنى أن أصل في البرمجه لمستوى يسمح بمساعدة الأعضاء هنا حتى نخفف عنك العبأ قليلا .
    بارك الله فيك .
    والله يا حسين إنت أخدت الكلام إللي أنا عايز أقوله
    وأنا فعلا بحاول أساعد في قسم البرمجة على قد ما أقدر
    سواء بتعديلات بسيطة أو بعمل باك تست 99%
    ------------------

    ووالله بدعي لأخونا أسامة
    والله يعينه علينا وعلى طلباتنا

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

  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