صفحة 1 من 2 12 الأخيرةالأخيرة
النتائج 1 إلى 15 من 16
  1. #1
    الصورة الرمزية abdull1996
    abdull1996 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Nov 2010
    المشاركات
    88

    افتراضي سؤال برمجي بسيط

    السلام عليكم ورحمة الله و بركاته
    عندي مشكلة بما اني مبرمج جديد,
    كيف اجعل الاكسبيرت يفتح order واحد فقط عند ظهور العلامة؟ لان العلامة تبقى الى نهاية الاشارة سواءا كانت بيع او شراء
    فماذا اضيف هنا؟
    كود PHP:
    if (B1>10000){
          
          
    OrderSend(Symbol(),OP_SELL,Lots,Bid,SlipPage,StopLoss,TakeProfit,"Abdu EA",MagicNumber,0,Red); //int OrderSend( string symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, string comment=NULL, int magic=0, datetime expiration=0, color arrow_color=CLR_NONE)
          
    OrderClose(OrderTicket(),Lots,Bid,SlipPage,Blue); //bool OrderClose( int ticket, double lots, double price, int slippage, color Color=CLR_NONE) 
          
    PlaySound("Alert.wav");  //To Play A Sound When Opening an Order
          
    GetLastError( );
        
    //Alert (GetLastError()); // Error message 
          
    if(AccountFreeMarginCheck(Symbol(),OP_BUY,Lots)<=|| GetLastError()==134) return;
          
            
                   } 
    في انتظاركم و شكرا

  2. #2
    الصورة الرمزية abdull1996
    abdull1996 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Nov 2010
    المشاركات
    88

    افتراضي رد: سؤال برمجي بسيط

    متاسف هذا هو الكود في ابسط ما يمكن
    كود PHP:
    if (B1>10000){
          
          
    OrderSend(Symbol(),OP_SELL,Lots,Bid,SlipPage,StopLoss,TakeProfit,"Abdu EA",MagicNumber,0,Red);
          
    OrderClose(OrderTicket(),Lots,Bid,SlipPage,Blue); 
          
    PlaySound("Alert.wav"); 
          
    GetLastError( );
          if(
    AccountFreeMarginCheck(Symbol(),OP_BUY,Lots)<=|| GetLastError()==134) return;
            
                   } 

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

    افتراضي رد: سؤال برمجي بسيط

    اقتباس المشاركة الأصلية كتبت بواسطة abdull1996 مشاهدة المشاركة
    متاسف هذا هو الكود في ابسط ما يمكن
    كود PHP:
    if (B1>10000){
          
          
    OrderSend(Symbol(),OP_SELL,Lots,Bid,SlipPage,StopLoss,TakeProfit,"Abdu EA",MagicNumber,0,Red);
          
    OrderClose(OrderTicket(),Lots,Bid,SlipPage,Blue); 
          
    PlaySound("Alert.wav"); 
          
    GetLastError( );
          if(
    AccountFreeMarginCheck(Symbol(),OP_BUY,Lots)<=|| GetLastError()==134) return;
            
                   } 
    قم بتعريف متغير Time0 من نوع datetimeخارج الداله start
    كود PHP:
    datetime Time0
    ثم ستصبح الشروط
    كود PHP:
    if (B1>10000&&Time0!=Time[0]){
          
          
    OrderSend(Symbol(),OP_SELL,Lots,Bid,SlipPage,StopLoss,TakeProfit,"Abdu EA",MagicNumber,0,Red);
          
    Time0=Time[0];
          
    OrderClose(OrderTicket(),Lots,Bid,SlipPage,Blue); 
          
    PlaySound("Alert.wav"); 
          
    GetLastError( );
          if(
    AccountFreeMarginCheck(Symbol(),OP_BUY,Lots)<=|| GetLastError()==134) return;
            
                   } 
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

  4. #4
    الصورة الرمزية abdull1996
    abdull1996 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Nov 2010
    المشاركات
    88

    افتراضي رد: سؤال برمجي بسيط

    شكرا جزيلا يا مستر دولار, ولكن عتدي مشكلة اخرى.
    من المفروض ان عندما تاتي اشارة معاكسة يغلق الصفقة الحالية للعملة, ولكنه لا يغلقها و لكنه يفتح الجديدة.
    كود PHP:
    if (B1>10000&&Time0!=Time[0]){
          
          
    OrderSend(Symbol(),OP_SELL,Lots,Bid,SlipPage,StopLoss,TakeProfit,"Abdu EA",MagicNumber,0,Red); 
          
    Time0=Time[0];
          
    OrderClose(OrderTicket(),Lots,Bid,SlipPage,Blue); 
          
    PlaySound("Alert.wav"); 
          
    GetLastError( );
          if(
    AccountFreeMarginCheck(Symbol(),OP_SELL,Lots)<=|| GetLastError()==134) return;
            
                   } 
    اليس سطر OrderClose هو المسؤول عن هذه العملية؟ فلما هذا الخطا؟
    منتظر ردك و شكرا مجددا

  5. #5
    الصورة الرمزية abdull1996
    abdull1996 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Nov 2010
    المشاركات
    88

    افتراضي رد: سؤال برمجي بسيط

    لقد ضفت سطر اخر ولكني ما زلت بحاجة الى مساعدة
    كود PHP:
    if (B1>10000&&Time0!=Time[0]){
          
          
    OrderSend(Symbol(),OP_SELL,Lots,Ask,SlipPage,StopLoss,TakeProfit,"Abdu EA",MagicNumber,0,Red);
          
    Time0=Time[0];
          
          if(
    OrderSelect(MagicNumberSELECT_BY_POS,MODE_TRADES)==true)
      
          
    OrderClose(MagicNumber,Lots,Bid,SlipPage,Blue); 
          
    PlaySound("Alert.wav");
          
    GetLastError( );
          if(
    AccountFreeMarginCheck(Symbol(),OP_SELL,Lots)<=|| GetLastError()==134) return;
            
                                  } 
    ما زلت لم اجربه لذا لا اعرف هل سيعمل ام لا
    و كيف اجعله يغلق اشارت الشراء فقط؟ وللعملة التي يعمل عليها فقط؟

  6. #6
    الصورة الرمزية abdull1996
    abdull1996 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Nov 2010
    المشاركات
    88

    افتراضي رد: سؤال برمجي بسيط

    حسنا لقد غيرت قليلا و اظن ان هذا سيجعله يغلق الشراء او البيع فقط.
    كود PHP:
    if (B1>10000&&Time0!=Time[0]){
          
          
    OrderSend(Symbol(),OP_SELL,Lots,Ask,SlipPage,StopLoss,TakeProfit,"Abdu EA",MagicNumberSell,0,Red);
          
    Time0=Time[0];
          
          if(
    OrderSelect(MagicNumberBuySELECT_BY_POS,MODE_TRADES)==true)
      
          
    OrderClose(MagicNumberBuy,Lots,Bid,SlipPage,Blue); 
          
    PlaySound("Alert.wav");
          
    GetLastError( );
          if(
    AccountFreeMarginCheck(Symbol(),OP_SELL,Lots)<=|| GetLastError()==134) return;
            
                                  } 
    ولكن هل هنالك خطا اخر؟ اعني هل سيغلق الصفقات بنجاح؟ للمعلومات فقط عندما اضغط على Compile لا تظهر اي اخطاء او errors
    ولكن المشكلة في المؤشر انه يحتاج الى وقت كبير جدا حتى تظهر علامة اخرى. لذا اريد ان اعرف هل هذا الكود سيجعله يغلق الصفقات بالطريقة الصحيحة؟ منتظر ردك و شكرا

  7. #7
    الصورة الرمزية abdull1996
    abdull1996 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Nov 2010
    المشاركات
    88

    افتراضي رد: سؤال برمجي بسيط

    وهنالك مشكلة اخرى الاكسبيرت كان يفتح صفقات كفي كا حركة اذا يوجد free margin
    ولكن الان الاكسبيرت لا يفتح اي صفقة رغم ان لا يوجد اي صفقة مفتوحة حاليا. لماذا؟ هل ال Time0 له علاقة بهاذا؟ واذا كان له علاقة فانا اريد ان الغيه واجعل الاكسبيرت يفتح order واحد للعملة, واذا وجد order مفتوح بنفس الاتجاه فلا يفعل شيء. هل هذا ممكن؟ لان الاشارة المعاكسة ممكن تاتي في البار الحالية ففي هذه الحالة لن يفعل اي شيء و هذه مشكلة.

    اعذرني اخي لكثرة اسئلتي ولكن انا جديد في البرمجة و سمعت ان هذا افضل منتدى يساعد الجدد. في انتظار المساعدة و شكرا.

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

    افتراضي رد: سؤال برمجي بسيط

    اقتباس المشاركة الأصلية كتبت بواسطة abdull1996 مشاهدة المشاركة
    وهنالك مشكلة اخرى الاكسبيرت كان يفتح صفقات كفي كا حركة اذا يوجد free margin
    ولكن الان الاكسبيرت لا يفتح اي صفقة رغم ان لا يوجد اي صفقة مفتوحة حاليا. لماذا؟ هل ال Time0 له علاقة بهاذا؟ واذا كان له علاقة فانا اريد ان الغيه واجعل الاكسبيرت يفتح order واحد للعملة, واذا وجد order مفتوح بنفس الاتجاه فلا يفعل شيء. هل هذا ممكن؟ لان الاشارة المعاكسة ممكن تاتي في البار الحالية ففي هذه الحالة لن يفعل اي شيء و هذه مشكلة.

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

    الآن بالنسبة لإغلاق الصفقه المفتوحه فهذا الشرط خاطئ
    كود PHP:
    if(OrderSelect(MagicNumberBuySELECT_BY_POS,MODE_TRADES)==true
    بما أنك تريد إغلاق الأمر فيجب إختياره أولا بإستخدام الداله OrderSelect كما فعلت أنت لكن لو لاحظت كيفية عمل هذه الداله
    كود PHP:
     OrderSelectint indexint selectint pool=MODE_TRADES
    حيث index هو رقم الصفقه أو رقم تيكيت الصفقه في حالتك بما أنك إستخدمت الخيار SELECT_BY_POS
    فسوف تكون رقم الصفقه لذلك أولا سوف تقوم بتحديد رقم الصفقه بإستخدام الحلقه for
    كود PHP:
    if (B1>10000&&Time0!=Time[0]){
          
          
    OrderSend(Symbol(),OP_SELL,Lots,Ask,SlipPage,StopLoss,TakeProfit,"Abdu EA",MagicNumberSell,0,Red);
          
    Time0=Time[0];
          for(
    int i=0;i<OrdersTotal();i++){
          if(
    OrderSelect(iSELECT_BY_POS,MODE_TRADES)==true)
          if(
    OrderMagicNumber()==MagicNumberBuy)
          
    OrderClose(OrderTicket(),OrderLots(),Bid,SlipPage,Blue); 
          }
          
    PlaySound("Alert.wav");
          
    GetLastError( );
          if(
    AccountFreeMarginCheck(Symbol(),OP_SELL,Lots)<=|| GetLastError()==134) return;
            
                                  } 
    أيضا الأفضل بدلا من تكرار الكود في كل مره هو عمل دالة لإغلاق الصفقات مباشرة راجع الإكسبرت المرفق ولاحظ عمل الدالتين
    كود PHP:
    CloseBuyOrders();CloseSellOrders(); 
    الملفات المرفقة الملفات المرفقة
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

  9. #9
    الصورة الرمزية abdull1996
    abdull1996 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Nov 2010
    المشاركات
    88

    افتراضي رد: سؤال برمجي بسيط

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

    فقط! لقد اقتربت من الانتهاء منه. لذا انا في انتظار ردك و شكرا مجددا

  10. #10
    الصورة الرمزية abdull1996
    abdull1996 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Nov 2010
    المشاركات
    88

    افتراضي رد: سؤال برمجي بسيط

    للرفع و في انتظارك يا مستر دولار

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

    افتراضي رد: سؤال برمجي بسيط

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

    فقط! لقد اقتربت من الانتهاء منه. لذا انا في انتظار ردك و شكرا مجددا
    بما أن الإكسبرت يفتح صفقه كل شمعه بدون التقيد بشروط المؤشر التي قمت بوضعها فهذا دليل على أنه يوجد خطأ في الشرط
    B1>10000
    لذلك يجب أن تقوم بمراجعة شروط الدخول وكيفية جعل المقارنه بشكل صحيح حتى تتحقق الشروط إستخدم الأمر Print أو Comment لإظهار قيم المؤشر التي يأخذها عندما تظهر إشارة الدخول من المؤشر
    حتى تستطيع جعل المقارنه بشكل صحيح
    توقيع العضو
    بناء أنظمة تداول آلي ويدوي لفحص سوق العملات ودمجها مع التحليل الفني لإتخاذ القرارات

  12. #12
    الصورة الرمزية abdull1996
    abdull1996 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Nov 2010
    المشاركات
    88

    افتراضي رد: سؤال برمجي بسيط

    لقد فهمتني خطا, الاكسبيرت يفتح صفقات كل candle ولكن بوجود الشروط. وانا اريد ان يفتح في اول candle فقط و ينتظر الاشارة العكسية

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

    افتراضي رد: سؤال برمجي بسيط

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

  14. #14
    الصورة الرمزية abdull1996
    abdull1996 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Nov 2010
    المشاركات
    88

    افتراضي رد: سؤال برمجي بسيط

    المؤشر عبارة عن خط يظهر دائما. ممكن يتغير لونه ولمن لا يزال. على اية حال المشكلة الكبيرة حاليا في اغلاق الصفقات, عندما تحل ممكن ننظر للوقت, ولكن الاغلاق هو الاهم.
    الملفات المرفقة الملفات المرفقة

  15. #15
    الصورة الرمزية abdull1996
    abdull1996 غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Nov 2010
    المشاركات
    88

    افتراضي رد: سؤال برمجي بسيط

    اخيرا!!!!!!
    لقد تمكنت من اغلاق الصفقات.
    تبقى مشكلة واحدة فقط و سنتهي الاكسبيرت
    و هي:- فتح اوردر واحد في كل اسارة و ليس في كل candle منتظر ردك يا مستر دولار و شكرا

صفحة 1 من 2 12 الأخيرةالأخيرة

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17