النتائج 1 إلى 4 من 4
  1. #1
    الصورة الرمزية 1982MohamedHamed
    1982MohamedHamed غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Apr 2017
    الإقامة
    السعودية
    المشاركات
    3

    افتراضي مطلوب كود لتنفيذ الإشارة مرة واحدة

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

    أنا كان عندي فكرة إكسيبرت ينفذ شراء عند تقاطع موفينج 25 لموفينج 50 لأعلى والبيع العكس

    عملت الإكسيبرت وعملت باك تيست لكن لما ينفذ الشراء مثلا ويضرب الهدف ينفذ شراء مرة أخرى

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

    شكرا

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

    افتراضي

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

    أنا كان عندي فكرة إكسيبرت ينفذ شراء عند تقاطع موفينج 25 لموفينج 50 لأعلى والبيع العكس

    عملت الإكسيبرت وعملت باك تيست لكن لما ينفذ الشراء مثلا ويضرب الهدف ينفذ شراء مرة أخرى

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

    شكرا
    وعليكم السلام ورحمة الله وبركاته
    يمكنك عمل متغير لتحديد الشمعة التي تم فتح الصفقه عندها
    مثال
    كود PHP:
    static datetime Order_Time
    ثم ستضع في شروط الدخول في الصفقه
    كود PHP:
    if(Order_Time!=Time[0])
    {
     
    // open order
     
    Order_Time=Time[0];

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

  3. #3
    الصورة الرمزية 1982MohamedHamed
    1982MohamedHamed غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Apr 2017
    الإقامة
    السعودية
    المشاركات
    3

    افتراضي

    هل المتغير سيكون بهذا الشكل
    //+------------------------------------------------------------------+


    extern int MagicNumber=10001;
    extern double Lots =0.1;
    extern double StopLoss=50;
    extern double TakeProfit=50;
    extern int TrailingStop=0;
    extern int Slippage=3;
    static datetime Order_Time;
    //+------------------------------------------------------------------+

  4. #4
    الصورة الرمزية 1982MohamedHamed
    1982MohamedHamed غير متواجد حالياً عضو المتداول العربي
    تاريخ التسجيل
    Apr 2017
    الإقامة
    السعودية
    المشاركات
    3

    افتراضي

    وشرط الدخول والخروج
    //+------------------------------------------------------------------+
    int start()
    {
    double MyPoint=Point;
    if(Digits==3 || Digits==5) MyPoint=Point*10;

    double TheStopLoss=0;
    double TheTakeProfit=0;
    if(Order_Time!=Time[0])
    {
    // open order
    Order_Time=Time[0];
    }
    if( TotalOrdersCount()==0 )
    {
    int result=0;
    if((iMA(NULL,0,50,1,MODE_SMA,PRICE_CLOSE,1)<iMA(NU LL,0,25,1,MODE_SMA,PRICE_CLOSE,1))) // Here is your open buy rule
    {
    result=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage ,0,0,"Ma",MagicNumber,0,Blue);
    if(result>0)
    {
    TheStopLoss=0;
    TheTakeProfit=0;
    if(TakeProfit>0) TheTakeProfit=Ask+TakeProfit*MyPoint;
    if(StopLoss>0) TheStopLoss=Ask-StopLoss*MyPoint;
    OrderSelect(result,SELECT_BY_TICKET);
    OrderModify(OrderTicket(),OrderOpenPrice(),Normali zeDouble(TheStopLoss,Digits),NormalizeDouble(TheTa keProfit,Digits),0,Green);
    }
    return(0);
    }
    if((iMA(NULL,0,50,1,MODE_SMA,PRICE_CLOSE,1)>iMA(NU LL,0,25,1,MODE_SMA,PRICE_CLOSE,1))) // Here is your open Sell rule
    {
    result=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippag e,0,0,"Ma",MagicNumber,0,Red);
    if(result>0)
    {
    TheStopLoss=0;
    TheTakeProfit=0;
    if(TakeProfit>0) TheTakeProfit=Bid-TakeProfit*MyPoint;
    if(StopLoss>0) TheStopLoss=Bid+StopLoss*MyPoint;
    OrderSelect(result,SELECT_BY_TICKET);
    OrderModify(OrderTicket(),OrderOpenPrice(),Normali zeDouble(TheStopLoss,Digits),NormalizeDouble(TheTa keProfit,Digits),0,Green);
    }
    return(0);
    }
    }

    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((iMA(NULL,0,50,1,MODE_SMA,PRICE_CLOSE,1)>iMA(NU LL,0,25,1,MODE_SMA,PRICE_CLOSE,1))) //here is your close buy rule
    {
    OrderClose(OrderTicket(),OrderLots(),OrderClosePri ce(),Slippage,Red);
    }
    if(TrailingStop>0)
    {
    if(Bid-OrderOpenPrice()>MyPoint*TrailingStop)
    {
    if(OrderStopLoss()<Bid-MyPoint*TrailingStop)
    {
    OrderModify(OrderTicket(),OrderOpenPrice(),Bid-TrailingStop*MyPoint,OrderTakeProfit(),0,Green);
    return(0);
    }
    }
    }
    }
    else
    {
    if((iMA(NULL,0,50,1,MODE_SMA,PRICE_CLOSE,1)<iMA(NU LL,0,25,1,MODE_SMA,PRICE_CLOSE,1))) // here is your close sell rule
    {
    OrderClose(OrderTicket(),OrderLots(),OrderClosePri ce(),Slippage,Red);
    }
    if(TrailingStop>0)
    {
    if((OrderOpenPrice()-Ask)>(MyPoint*TrailingStop))
    {
    if((OrderStopLoss()>(Ask+MyPoint*TrailingStop)) || (OrderStopLoss()==0))
    {
    OrderModify(OrderTicket(),OrderOpenPrice(),Ask+MyP oint*TrailingStop,OrderTakeProfit(),0,Red);
    return(0);
    }
    }
    }
    }
    }
    }
    return(0);
    }

    int TotalOrdersCount()
    {
    int result=0;
    for(int i=0;i<OrdersTotal();i++)
    {
    OrderSelect(i,SELECT_BY_POS ,MODE_TRADES);
    if (OrderMagicNumber()==MagicNumber) result++;

    }
    return (result);
    }


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