صفحة 176 من 689 الأولىالأولى ... 76126166170171172173174175176177178179180181182186226276676 ... الأخيرةالأخيرة
النتائج 2,626 إلى 2,640 من 10335
  1. #2626
    الصورة الرمزية MR.dollar
    MR.dollar غير متواجد حالياً مشرف المتداول العربي
    تاريخ التسجيل
    Jun 2009
    الإقامة
    مصر
    المشاركات
    13,864

    افتراضي

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

    void SellOrder11()
    {
    double SL = Bid + SellStoploss11*PipValue*Point;
    if (SellStoploss11 == 0) SL = 0;
    double TP = Bid - SellTakeprofit11*PipValue*Point;
    if (SellTakeprofit11 == 0) TP = 0;
    int ticket = -1;
    if (true)
    ticket = OrderSend(Symbol(), OP_SELL, SellLots11, Bid, 3, 0, 0, "My Expert", MagicNo, 0, Red);
    else
    ticket = OrderSend(Symbol(), OP_SELL, SellLots11, Bid, 3, SL, TP, "My Expert", MagicNo, 0, Red);
    if (ticket > -1)
    {
    if (true)
    {
    OrderSelect(ticket, SELECT_BY_TICKET);
    bool ret = OrderModify(OrderTicket(), OrderOpenPrice(), SL, TP, 0, Red);
    if (ret == false)
    Print("OrderModify() error - ", ErrorDescription(GetLastError()));
    }

    }
    else
    {
    Print("OrderSend() error - ", ErrorDescription(GetLastError()));
    }
    }

    وهذا نفس الكود قبل التعديل :

    void SellOrder12()
    {
    double SL = Bid + SellStoploss12*PipValue*Point;
    if (SellStoploss12 == 0) SL = 0;
    double TP = Bid - SellTakeprofit12*PipValue*Point;
    if (SellTakeprofit12 == 0) TP = 0;
    int ticket = -1;
    if (false)
    ticket = OrderSend(Symbol(), OP_SELL, SellLots12, Bid, 3, 0, 0, "My Expert", MagicNo, 0, Red);
    else
    ticket = OrderSend(Symbol(), OP_SELL, SellLots12, Bid, 3, SL, TP, "My Expert", MagicNo, 0, Red);
    if (ticket > -1)
    {
    if (false)
    {
    OrderSelect(ticket, SELECT_BY_TICKET);
    bool ret = OrderModify(OrderTicket(), OrderOpenPrice(), SL, TP, 0, Red);
    if (ret == false)
    Print("OrderModify() error - ", ErrorDescription(GetLastError()));
    }

    }
    else
    {
    Print("OrderSend() error - ", ErrorDescription(GetLastError()));
    }
    }

    ومرفق الأكسبيرتين قبل وبعد ياريت اعرف فين الغلط لأن في شركة معينة بيقبل يشتغل عليها الأكسبيرت المعدل على ديمو ومابيقبل يشتغل على نفس المنصة حساب حقيقي .
    وعليكم السلام ورحمة الله وبركاته
    بالنسبه لكود الإكسبرت فهو صحيح لكن لي فقط بعض الملاحظات
    أولا بالنسبه للشروط
    كود PHP:
     if (true)
        
    ticket OrderSend(Symbol(), OP_SELLSellLots11Bid300"My Expert"MagicNo0Red);
        else
        
    ticket OrderSend(Symbol(), OP_SELLSellLots11Bid3SLTP"My Expert"MagicNo0Red); 
    لست بحاجة إلى أمر OrderSend الثاني لأنه لن يتحقق أبدا لأنك إستخدمت if true
    فسوف تجعله فقط
    كود PHP:
     ticket OrderSend(Symbol(), OP_SELLSellLots11Bid300"My Expert"MagicNo0Red);
        if (
    ticket > -1)
        {
            if (
    true)
            {
                
    OrderSelect(ticketSELECT_BY_TICKET);
                
    bool ret OrderModify(OrderTicket(), OrderOpenPrice(), SLTP0Red);
                if (
    ret == false)
                Print(
    "OrderModify() error - "ErrorDescription(GetLastError()));
            }
                
        } 
    سواء عدلت الشروط أو لا فهو لن يؤثر على آداء الإكسبرت لكن هي أكواد إضافية ليس لها فائدة
    حتى تستطيع معرفة سبب الخطأ فالإكسبرت يقوم بطباعة رقم الخطأ ووصفه فيجب أن تتأكد ما هو الخطأ الذي يظهر والمفروض أنه طالما يعمل على الديمو فيجب أن يعمل على الحقيقي أيضا
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

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

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة spiders101 مشاهدة المشاركة
    إذن المشكل الآن هو إنتظار إغلاق الشمعة على الفريم الأكبر مثلا اذا كان الفريم الويكلي يجب انتظار اسبوع حتى تثبت الإشارة على الفريمات الأقل !! ، ولي سؤال هل دالة iBarShift لاتساعد فـ حل مشكلة إختلاف ترتيب الشموع على الفريمات المختلفة ، وهل يوجد حل لمشكلة عدم ثبات إشارة مؤشرات الملتي تايم فريم
    نعم يجب أن تنتظر إسبوع كامل حتى تثبت الإشاره وإلا فإنك قد تجد أن الإشارة لجميع الشمعات السابقه الخاصة بالإسبوع تغيرت إشارتها لكن كحل آخر يمكنك إعتماد شمعة التايم فريم التي أغلقت
    فمثلا لو كنا نعتمد على فريم الساعه والفريم الصغير هو فريم الربع ساعه
    الطبيعي أن الساعه 3:15 و 3:30 فسوف يعتمد على شمعة الساعه 3 الحاليه على فريم الساعه فالحل أن تعتمد على شمعة الساعه 2 لوضع الإشارة الحاليه وهكذا كل شمعه ستأخذ الشمعه التي أغلقت على الفريم الكبير
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

  3. #2628
    الصورة الرمزية spiders101
    spiders101 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Jul 2011
    الإقامة
    مصــر
    المشاركات
    935

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

    اقتباس المشاركة الأصلية كتبت بواسطة MR.dollar مشاهدة المشاركة
    نعم يجب أن تنتظر إسبوع كامل حتى تثبت الإشاره وإلا فإنك قد تجد أن الإشارة لجميع الشمعات السابقه الخاصة بالإسبوع تغيرت إشارتها لكن كحل آخر يمكنك إعتماد شمعة التايم فريم التي أغلقت
    فمثلا لو كنا نعتمد على فريم الساعه والفريم الصغير هو فريم الربع ساعه
    الطبيعي أن الساعه 3:15 و 3:30 فسوف يعتمد على شمعة الساعه 3 الحاليه على فريم الساعه فالحل أن تعتمد على شمعة الساعه 2 لوضع الإشارة الحاليه وهكذا كل شمعه ستأخذ الشمعه التي أغلقت على الفريم الكبير
    انا بالفعل أعتمد على شمعة التايم فريم التي أغلقت سواء للفريم الحالي أو الفريمات الأكبر ، ولكن مازالت المشكلة موجودة والإشارة لاتثبت ، أرجو ان تتطلع على الكود التالي وتخبرني أين المشكلة لأني حاولت كثيرا ولم أعرف سبب عدم ثبات الإشارة !!
    الملفات المرفقة الملفات المرفقة
    • نوع الملف: mq4 o!!.mq4‏ (7.5 كيلوبايت, المشاهدات 75)

  4. #2629
    الصورة الرمزية spiders101
    spiders101 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Jul 2011
    الإقامة
    مصــر
    المشاركات
    935

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

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

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

    إذا إفترضنا شروط الشراء التى تم تعريف متغير تيكيت داخلها هى
    كود PHP:
    if(SAR1<Open[0]&&SAR2>Close[1]&& T!=Time[0]&&orderstotal()<0){
           
    if(
    orderstotal()<MaxTrades){
    if(
    StopLoss==0){SL=0;}else{SL=Ask-StopLoss*Point;}
    if(
    TakeProfit==0){TP=0;}else{TP=Ask+TakeProfit*Point;}
              
    int ticket=OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(Ask,digits),5*Q,0,0," EA",MagicNumber,0,Blue);
    OrderModify(ticket,OrderOpenPrice(),NormalizeDouble(SL,digits),NormalizeDouble(TP,digits),0,Blue);
    T=Time[0];
    }

    وبعدها مباشرة شروط البيع ولم يتم تعريف التيكيت بداخلها لأنها تم تعريفها مسبقـا
    كود PHP:
    if(SAR1>Open[0]&&SAR2<Close[1]&&T!=Time[0]){ 
          
    if(
    orderstotal()<MaxTrades){
    if(
    StopLoss==0){SL=0;}else{SL=Bid+StopLoss*Point;}
    if(
    TakeProfit==0){TP=0;}else{TP=Bid-TakeProfit*Point;}
               
    ticket=OrderSend(Symbol(),OP_SELL,Lots,NormalizeDouble(Bid,digits),5*Q,0,0," EA",MagicNumber,0,Red);
    OrderModify(ticket,OrderOpenPrice(),NormalizeDouble(SL,digits),NormalizeDouble(TP,digits),0,Red);
    T=Time[0];                  
    }

    الآن انا قمت بتعطيل شروط الشراء والاكسيبرت لن يفتح صفقة شراء ولن يقوم بتعريف المتغير تيكيت ، ولكن عند فتح صفقة بيع سيجد الاكسيبرت ان المتغير تيكيت لم يتم تعريفها .
    فـ هذه الحالة لماذا لا يظهر خطـأ لعدم تعريف التيكيت !!

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

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة spiders101 مشاهدة المشاركة
    انا بالفعل أعتمد على شمعة التايم فريم التي أغلقت سواء للفريم الحالي أو الفريمات الأكبر ، ولكن مازالت المشكلة موجودة والإشارة لاتثبت ، أرجو ان تتطلع على الكود التالي وتخبرني أين المشكلة لأني حاولت كثيرا ولم أعرف سبب عدم ثبات الإشارة !!
    إذا كنت ستعتمد على تايم فريم أصغر من التايم فريم الحالي لأني لاحظت أنك تستخدم 5 و 15 و 30 دقيقة كفلتر أيضا
    فهذا سيجعل المؤشر يعيد رسم الإشاره
    هذه المره ستكون المشكله عكس المشكله السابقه في كل مره تتغير إشارة التايم فريم الأصغر ستكون إشارة التايم فريم الحالي ثابته وعند المقارنه قبل إنتهاء الشمعه الحاليه قد تتغير الإشاره لأن قيم شمعة التايم فريم الأصغر قد تغيرت أكثر من مره
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

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

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة spiders101 مشاهدة المشاركة
    نعم أقصد فـ الإكسيبرتات التي نستخدم معها أمر مودفاي بعد فتح الصفقة وبالنسبة للتيكيت فـ هذه الحالة لدى سؤال

    إذا إفترضنا شروط الشراء التى تم تعريف متغير تيكيت داخلها هى
    كود PHP:
    if(SAR1<Open[0]&&SAR2>Close[1]&& T!=Time[0]&&orderstotal()<0){
           
    if(
    orderstotal()<MaxTrades){
    if(
    StopLoss==0){SL=0;}else{SL=Ask-StopLoss*Point;}
    if(
    TakeProfit==0){TP=0;}else{TP=Ask+TakeProfit*Point;}
              
    int ticket=OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(Ask,digits),5*Q,0,0," EA",MagicNumber,0,Blue);
    OrderModify(ticket,OrderOpenPrice(),NormalizeDouble(SL,digits),NormalizeDouble(TP,digits),0,Blue);
    T=Time[0];
    }

    وبعدها مباشرة شروط البيع ولم يتم تعريف التيكيت بداخلها لأنها تم تعريفها مسبقـا
    كود PHP:
    if(SAR1>Open[0]&&SAR2<Close[1]&&T!=Time[0]){ 
          
    if(
    orderstotal()<MaxTrades){
    if(
    StopLoss==0){SL=0;}else{SL=Bid+StopLoss*Point;}
    if(
    TakeProfit==0){TP=0;}else{TP=Bid-TakeProfit*Point;}
               
    ticket=OrderSend(Symbol(),OP_SELL,Lots,NormalizeDouble(Bid,digits),5*Q,0,0," EA",MagicNumber,0,Red);
    OrderModify(ticket,OrderOpenPrice(),NormalizeDouble(SL,digits),NormalizeDouble(TP,digits),0,Red);
    T=Time[0];                  
    }

    الآن انا قمت بتعطيل شروط الشراء والاكسيبرت لن يفتح صفقة شراء ولن يقوم بتعريف المتغير تيكيت ، ولكن عند فتح صفقة بيع سيجد الاكسيبرت ان المتغير تيكيت لم يتم تعريفها .
    فـ هذه الحالة لماذا لا يظهر خطـأ لعدم تعريف التيكيت !!
    لأ المتغير تم تعريفه في المره الأولى حتى لو لم تتحقق الشروط
    ما أقصده في المشاركه السابقه ليس خطأ عدم تعريف المتغير لكن خطأ أن قيمة المتغير عاد للقيمه الإفتراضيه وهي صفر
    --------
    لكن في هذا الكود الذي أرفقته فبعد فتح الصفقه مباشرة الآن قيمة ticket= رقم التيكيت للصفقه
    تم تنفيذ الأمر OrderModify للصفقه برقم التيكيت الصحيح
    عندما تنفيذ الداله start من جديد سوف يتغير رقم التيكيت ليصبح 0
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

  7. #2632
    الصورة الرمزية spiders101
    spiders101 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Jul 2011
    الإقامة
    مصــر
    المشاركات
    935

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

    اقتباس المشاركة الأصلية كتبت بواسطة MR.dollar مشاهدة المشاركة
    نعم التعديل صحيح
    بالنسبه لعمل مودفاي للأوامر
    فلديك خطأ في تحديد سعر مكان الأمر الجديد لأن أغلب البروكرات لن تسمح بوضع الأمر المعلق على بعد نقطتين بالتالي سوف يظهر خطأ 130
    ثانيا يجب تعديل الهدف والأستوب لوز الجديد بناء على السعر الجديد وتضيف له عدد نقاط الهدف والأستوب
    ثالثا إستخدام ticket2 قم بتعريفها خارج الداله start حتى لا يظهر خطأ رقم تيكيت خاطئ
    رابعا الأفضل أن تقوم بعمل داله تقوم بالبحث عن الأوامر المعلقه بالشروط التي وضعتها ويقوم بتعديلها
    مثال
    كود PHP:
    void ModifyOrders()
      {
       for(
    int i=0;i<OrdersTotal();i++){
        
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
        
    int ticket=OrderTicket();
        if(
    OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber&&OrderType()==OP_BUYSTOP){
         if(
    OrderOpenPrice()-Bid>2*point){
          
    OrderModify(ticket,Bid+2*point,Bid+2*point-StopLoss*point,Bid+2*point+TakeProfit*point);
         }
        }
       }
      } 
    قمت بعمل الدالة
    كود PHP:
    void ModifyOrders(){
       for(
    int i=0;i<OrdersTotal();i++){
        
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
        
    int ticket=OrderTicket();
        
    double SL,TP;  
        if(
    OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber&&OrderType()==OP_BUYSTOP){
         if(
    OpenPrice(OP_BUYSTOP)-Bid>30*point){
         if(
    StopLoss==0){SL=0;}else{SL=(Bid+30*point-StopLoss*point);}
         if(
    TakeProfit==0){TP=0;}else{TP=(Bid+30*point+TakeProfit*point);}
          
    OrderModify(ticket,Bid+30*point,SL,TP,0,Blue);
         }
        }
       }
      } 
    ووضع الشروط داخل ستارت ثم دالة المودفاى

    كود PHP:
    if(orderstotal3()>0&&orderstotal2(OP_BUYSTOP)<1&&Shifting_Pending_Orders==true){

    ticket2=OrderSend(Symbol(),OP_BUYSTOP,Lots*2,OpenPrice2()+20*point,5*Q,0,0," EA",MagicNumber,0,Blue);}

    ModifyOrders(); 
    وتم وضع الأوامر المعلقة وتحريكها مع السعر ولكن يظهر خطـأ

    OrderModify error 1
    الملفات المرفقة الملفات المرفقة

  8. #2633
    الصورة الرمزية LOveR
    LOveR غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Mar 2007
    المشاركات
    134

    افتراضي

    السلام عليكم كل عام والجميع بخير وتقبل الله طاعتكم

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

    اغلب الاكواد الي عندي تعتمد المضاعفه بعد تسكير العقود الاولى انا ارغب بكود يسمحلي بالمضاعفه مع بقاء العقود الاوليه

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

    والمستويات الثابته ماتفرق معاها عملية الهيدج بعكس المستويات المعتمده على مؤشر لانه تكون المضاعفه من مستويات اقرب

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

    وكل عام والجميع بخير وعاده الله عليكم بالصحه والعافيه

  9. #2634
    الصورة الرمزية مبدع فوركس
    مبدع فوركس غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    May 2011
    المشاركات
    166

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

    كل سنه وانت طيب استاذ اسامه
    لدى مشكله بسيطه بأذن الله
    اردت ان اعمل داله لغلق الصفقات بعد فتره محدده ولتكن بعد دقيقه واحده
    فكتبت الكود بهذا الشكل
    كود PHP:
    bool nowperiod(){
       for(
    int i=0;i<OrdersTotal();i++){
       
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
       if(
    OrderSymbol()==Symbol()&&OrderMagicNumber()==magicnumber){
       
    int t=TimeCurrent()-OrderOpenTime()/60;
       if (
    t>1&&closeor==true){return(true);}
       if (
    t<1&&closeor==false){return(false);}
        }} 
    وعملت داله اخرى لغلق الصفقات
    وكتبت فى شروط الدخول
    كود PHP:
    if(nowperiod()){closeorders();} 
    ولاكن المشكله فى انه يفتح الصفقه فى الباك تيست ويغلقها بعد دقيقه واحده كما اشرت له ولاكن لايفتح اى صفقات اخرى
    فأضفت متغير خارجى وهو closeor==false
    واضافته بعد ال ordersend لكى يقوم بتعطيل الداله ثم فتحها حينما تتحقق مره اخرى
    ولاكن لم يؤثر هذا
    فأريد حل لهذه المشكله تجعل الصفقات تغلق بعد وقت محدد ثم يتم فتح الصفقات بصوره طبيعيه مره اخرى اذا تحققت الشروط من جديد
    اى توضيح اترك رد لى
    وجزاك الله عنا كل خير وكنت عونا لنا دائما

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

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة spiders101 مشاهدة المشاركة
    قمت بعمل الدالة
    كود PHP:
    void ModifyOrders(){
       for(
    int i=0;i<OrdersTotal();i++){
        
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
        
    int ticket=OrderTicket();
        
    double SL,TP;  
        if(
    OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber&&OrderType()==OP_BUYSTOP){
         if(
    OpenPrice(OP_BUYSTOP)-Bid>30*point){
         if(
    StopLoss==0){SL=0;}else{SL=(Bid+30*point-StopLoss*point);}
         if(
    TakeProfit==0){TP=0;}else{TP=(Bid+30*point+TakeProfit*point);}
          
    OrderModify(ticket,Bid+30*point,SL,TP,0,Blue);
         }
        }
       }
      } 
    ووضع الشروط داخل ستارت ثم دالة المودفاى

    كود PHP:
    if(orderstotal3()>0&&orderstotal2(OP_BUYSTOP)<1&&Shifting_Pending_Orders==true){

    ticket2=OrderSend(Symbol(),OP_BUYSTOP,Lots*2,OpenPrice2()+20*point,5*Q,0,0," EA",MagicNumber,0,Blue);}

    ModifyOrders(); 
    وتم وضع الأوامر المعلقة وتحريكها مع السعر ولكن يظهر خطـأ

    OrderModify error 1
    عندما يحاول الإكسبرت عمل مودفاي لأمر لكن لا يوجد تغيير في القيم يظهر هذا الخطأ
    لذلك ضع شرط في دالة المودفاي
    كود PHP:
    if(OrderTakeProfit()!=TP||OrderStopLoss()!=SL
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

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

    افتراضي

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

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

    اغلب الاكواد الي عندي تعتمد المضاعفه بعد تسكير العقود الاولى انا ارغب بكود يسمحلي بالمضاعفه مع بقاء العقود الاوليه

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

    والمستويات الثابته ماتفرق معاها عملية الهيدج بعكس المستويات المعتمده على مؤشر لانه تكون المضاعفه من مستويات اقرب

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

    وكل عام والجميع بخير وعاده الله عليكم بالصحه والعافيه

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

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

    افتراضي

    اقتباس المشاركة الأصلية كتبت بواسطة مبدع فوركس مشاهدة المشاركة
    كل سنه وانت طيب استاذ اسامه
    لدى مشكله بسيطه بأذن الله
    اردت ان اعمل داله لغلق الصفقات بعد فتره محدده ولتكن بعد دقيقه واحده
    فكتبت الكود بهذا الشكل
    كود PHP:
    bool nowperiod(){
       for(
    int i=0;i<OrdersTotal();i++){
       
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
       if(
    OrderSymbol()==Symbol()&&OrderMagicNumber()==magicnumber){
       
    int t=TimeCurrent()-OrderOpenTime()/60;
       if (
    t>1&&closeor==true){return(true);}
       if (
    t<1&&closeor==false){return(false);}
        }} 
    وعملت داله اخرى لغلق الصفقات
    وكتبت فى شروط الدخول
    كود PHP:
    if(nowperiod()){closeorders();} 
    ولاكن المشكله فى انه يفتح الصفقه فى الباك تيست ويغلقها بعد دقيقه واحده كما اشرت له ولاكن لايفتح اى صفقات اخرى
    فأضفت متغير خارجى وهو closeor==false
    واضافته بعد ال ordersend لكى يقوم بتعطيل الداله ثم فتحها حينما تتحقق مره اخرى
    ولاكن لم يؤثر هذا
    فأريد حل لهذه المشكله تجعل الصفقات تغلق بعد وقت محدد ثم يتم فتح الصفقات بصوره طبيعيه مره اخرى اذا تحققت الشروط من جديد
    اى توضيح اترك رد لى
    وجزاك الله عنا كل خير وكنت عونا لنا دائما
    لا يوجد في الكود ما يمنع أن تفتح الصفقات مره أخرى لذلك غالبا المشكله لديك في كود آخر في الإكسبرت
    ثانيا لدي ملاحظه
    بالنسبه لدالة حساب الوقت في هذا الجزء
    كود PHP:
     int t=TimeCurrent()-OrderOpenTime()/60
    لديك خطأ فيجب أن تضع القيم بين أقواس حتى تكون القسمه على ناتج الطرح حتى تحسب الدقائق
    كود PHP:
       int t=(TimeCurrent()-OrderOpenTime())/60
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

  13. #2638
    الصورة الرمزية مبدع فوركس
    مبدع فوركس غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    May 2011
    المشاركات
    166

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

    اقتباس المشاركة الأصلية كتبت بواسطة MR.dollar مشاهدة المشاركة
    لا يوجد في الكود ما يمنع أن تفتح الصفقات مره أخرى لذلك غالبا المشكله لديك في كود آخر في الإكسبرت
    ثانيا لدي ملاحظه
    بالنسبه لدالة حساب الوقت في هذا الجزء
    كود PHP:
     int t=TimeCurrent()-OrderOpenTime()/60
    لديك خطأ فيجب أن تضع القيم بين أقواس حتى تكون القسمه على ناتج الطرح حتى تحسب الدقائق
    كود PHP:
       int t=(TimeCurrent()-OrderOpenTime())/60
    جزاك الله خيرا زعيمنا اسامه بيه
    الخطأ لسه مكتشفه حالا كان فى حلقة دالة الاغلاق كانت i-- بدلا من i++
    ولاكن يوجد مشكله فى فترات الاغلاق غير متساويه تماما على الرغم انى وضعت الاقواس التى اشرت اليها
    ولاكن لا عليك الان بهذه المشكله حتى لا اضيع وقتك سأحاول مع نفسى واذا فشلت فلا ملجأ بعد الله الا اليك

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

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

    اقتباس المشاركة الأصلية كتبت بواسطة مبدع فوركس مشاهدة المشاركة
    جزاك الله خيرا زعيمنا اسامه بيه
    الخطأ لسه مكتشفه حالا كان فى حلقة دالة الاغلاق كانت i-- بدلا من i++
    ولاكن يوجد مشكله فى فترات الاغلاق غير متساويه تماما على الرغم انى وضعت الاقواس التى اشرت اليها
    ولاكن لا عليك الان بهذه المشكله حتى لا اضيع وقتك سأحاول مع نفسى واذا فشلت فلا ملجأ بعد الله الا اليك
    أعتقد إنك المفروض تعرف المتغير t على أساس إنه رقم عشري double وليس int
    لإن ناتج طرح الوقت الحالي من وقت فتح الصفقة مقسوم ÷ 60 ستكون النواتج عشرية

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

    وأيضاً لو إنت عايزة يقفل بعد دقيقة يجب ان يكون الشرط >= و <=
    كود PHP:
    if (t>=1&&closeor==true){return(true);} 
       if (
    t<=1&&closeor==false){return(false);} 

  15. #2640
    الصورة الرمزية Fiber
    Fiber غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Sep 2011
    الإقامة
    المملكة العربية السعودية
    المشاركات
    26

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

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

    لكن المشكلة انه رغم تفعل الشروط لم يفتح اي صفقة رغم عدم وجود اي خطا واضح
    فارجو التكرم والنظر له

    الاكسبيرت في المرفقات والمشاركة السابقة في صفحة 172

    وتقبل ودي
    الملفات المرفقة الملفات المرفقة
    • نوع الملف: mq4 FIBER.mq4‏ (5.0 كيلوبايت, المشاهدات 54)

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

  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