Problem opening position

Trabajo finalizado

Plazo de ejecución 25 segundos
Comentario del Cliente
Nice job :)
Comentario del Ejecutor
Perfect

Tarea técnica

Hello,

Problem opening position

example:

When I have an order that opens either to bull or sell in the function

if(Counts () == 0

if it's a bull order and my stop loss is hit then it will go to the function

if (Counts () == 1 ect ...

what I want is when my function

if (Counts () == 2

is hit and a bull order is opened and my stop loss is hit then my function

if (Counts () == 3

will open a sell order.

and if my function

if (Counts () == 2

opens a sell order then my function

if (Counts () == 3

will open a bull command



//|                                                       test35.mq4 |
//|                                                              xxx |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "xxx"
#property link      "http://www.mql5.com"
#property version   "1.00"
#property strict
extern double  lots1          = 0.01;
extern double  lots2          = 0.03;
extern double  lots3          = 0.10;
extern double  lots4          = 0.01;
extern double  lots5          = 0.03;
extern double  lots6          = 0.10;
extern double  lots7          = 0.01;
extern double  lots8          = 0.03;
extern double  lots9          = 0.10;
extern double  lots10         = 0.01;
extern double  lots11          = 0.03;
extern double  lots12          = 0.10;





input int      TakeProfit1     =   10;
input int      StopLoss1       =   20;
input int      TakeProfit2     =   10;
input int      StopLoss2       =   20;
input int      TakeProfit3     =   10;
input int      StopLoss3       =   20;
input int      TakeProfit4     =   10;
input int      StopLoss4       =   20;
input int      TakeProfit5     =   10;
input int      StopLoss5       =   20;
input int      TakeProfit6     =   10;
input int      StopLoss6       =   20;
input int      TakeProfit7     =   10;
input int      StopLoss7       =   20;
input int      TakeProfit8     =   10;
input int      StopLoss8       =   20;
input int      TakeProfit9     =   10;
input int      StopLoss9       =   20;
input int      TakeProfit10    =   10;
input int      StopLoss10      =   20;
input int      TakeProfit11     =   10;
input int      StopLoss11       =   20;
input int      TakeProfit12     =   10;
input int      StopLoss12       =   20;








input int period=14; // Averagin period for calculation
input int period1=14; 
input int period2=14; 
input int period3=14; 
//input ENUM_APPLIED_PRICE appPrice=PRICE_HIGH; // Applied price
input int OverBought=70; // Over bought level
input int OverSold=30; // Over sold level
input int OverBought1=75; // Over bought level
input int OverSold1=25; // Over sold level
input int OverBought2=80; // Over bought level
input int OverSold2=20; // Over sold level
input int OverBought3=85; // Over bought level
input int OverSold3=15; // Over sold level
extern int     magic          = 118516;
//extern double  Level          = 1.3660;
//extern double  MaxDeviation   = 9;         // Max Deviation, points

bool RunOnce=false;


int last_order_check = false;

datetime EaStartTime=TimeCurrent();




double takeprofit1=TakeProfit1;
double stoploss1 =StopLoss1;
double takeprofit2=TakeProfit2;
double stoploss2 =StopLoss2;
double takeprofit3=TakeProfit3;
double stoploss3 =StopLoss3;
double takeprofit4=TakeProfit4;
double stoploss4 =StopLoss4;
double takeprofit5=TakeProfit5;
double stoploss5 =StopLoss5;
double takeprofit6=TakeProfit6;
double stoploss6 =StopLoss6;
double takeprofit7=TakeProfit7;
double stoploss7 =StopLoss7;
double takeprofit8=TakeProfit8;
double stoploss8 =StopLoss8;
double takeprofit9=TakeProfit9;
double stoploss9 =StopLoss9;
double takeprofit10=TakeProfit10;
double stoploss10 =StopLoss10;
double takeprofit11=TakeProfit11;
double stoploss11 =StopLoss11;
double takeprofit12=TakeProfit12;
double stoploss12 =StopLoss12;




//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()

  {
   RunOnce=false;
   MathSrand(GetTickCount());
   if(Digits==5 || Digits==3)
     {
      takeprofit1  =TakeProfit1*10;
      stoploss1    =StopLoss1*10;
      takeprofit2  =TakeProfit2*10;
      stoploss2    =StopLoss2*10;
      takeprofit3  =TakeProfit3*10;
      stoploss3    =StopLoss3*10;
      takeprofit4  =TakeProfit4*10;
      stoploss4    =StopLoss4*10;
      takeprofit5  =TakeProfit5*10;
      stoploss5    =StopLoss5*10;
      takeprofit6  =TakeProfit6*10;
      stoploss6    =StopLoss6*10;
      takeprofit7  =TakeProfit7*10;
      stoploss7    =StopLoss7*10;
      takeprofit8  =TakeProfit8*10;
      stoploss8    =StopLoss8*10;
      takeprofit9  =TakeProfit9*10;
      stoploss9    =StopLoss9*10;
      takeprofit10  =TakeProfit10*10;
      stoploss10    =StopLoss10*10;
      takeprofit11  =TakeProfit11*10;
      stoploss11    =StopLoss11*10;
      takeprofit12  =TakeProfit12*10;
      stoploss12    =StopLoss12*10;



   


      
     }
   return(INIT_SUCCEEDED);
  }
 
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnTimer()
{
OnTick();        
}
void OnDeinit(const int reason)
  {
//---
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
{

  if(IsLastOrderClose())
    {
    OnInit();
    Print("Ea Closed Manually ");
    EaStartTime=TimeCurrent();
    }
      
      double rsi=iRSI(_Symbol,PERIOD_CURRENT,period,PRICE_HIGH,1);
      double rsi1=iRSI(_Symbol,PERIOD_CURRENT,period1,PRICE_HIGH,1);
      double rsi2=iRSI(_Symbol,PERIOD_CURRENT,period2,PRICE_HIGH,1);
      double rsi3=iRSI(_Symbol,PERIOD_CURRENT,period3,PRICE_HIGH,1);
      double MA_Fast1,MA_Low1,MA_Fast2,MA_Low2;

          MA_Fast1=iMA( NULL, PERIOD_M1, 1, 0, MODE_SMA, PRICE_TYPICAL, 0); // áûñòðàÿ ÌÀ
          MA_Low1=iMA( NULL, PERIOD_M1, 20, 7, MODE_SMA, PRICE_CLOSE, 0); // ìåäëåííàÿ ÌÀ 
          MA_Fast2=iMA( NULL, PERIOD_M1, 1, 0, MODE_SMA, PRICE_TYPICAL, 1); // áûñòðàÿ ÌÀ
          MA_Low2=iMA( NULL, PERIOD_M1, 20, 7, MODE_SMA, PRICE_CLOSE, 1); // ìåäëåííàÿ ÌÀ 
          
         






   int ticet;
   int t=MathRand();
   if(CountVsego()==0)
     {
      if(t>16384)
        {
         if(Counts()==0&& (rsi<OverSold))//&&( Close[0] > High[1] ))// && (RunOnce || (Ask >=Level && Ask<=Level+(MaxDeviation*_Point) && Level !=0)))
         {
            ticet=OrderSend(Symbol(),OP_BUY,lots1,Ask,3,Bid-stoploss1*Point,Ask+takeprofit1*Point,"1",magic,0,clrGreen);
            if(ticet>0)
            {
               RunOnce=true;//OverSold
            }
         }
        }
// Partie 1 
     else if(t<16384)
        {
         if(Counts()==0&&(rsi>OverBought ))//&&( Close[0] < Low[1] ))// && (RunOnce || (Bid <=Level && Bid >= Level-(MaxDeviation*_Point) && Level !=0)))
         {
            ticet=OrderSend(Symbol(),OP_SELL,lots1,Bid,3,Ask+stoploss1*Point,Bid-takeprofit1*Point,"1",magic,0,clrRed);
            if(ticet>0)
            {
               RunOnce=true;
            }
         }
        }
     // if(t>16384)
      //  {
         if(Counts()==1&&  (rsi1<OverSold1))// && MA_Fast2<MA_Low2 ))//&&( Close[0] > High[1] ))// && (RunOnce || (Ask >=Level && Ask<=Level+(MaxDeviation*_Point) && Level !=0)))
         {
            ticet=OrderSend(Symbol(),OP_BUY,lots2,Ask,3,Bid-stoploss2*Point,Ask+takeprofit2*Point,"2",magic,0,clrGreen);
           // if(ticet>0)
          //  {
          //     RunOnce=true;
            }
       //  }
      //  }
// Partie 2 
    // else if(t<16384)
      //  {
         if(Counts()==1&&  (rsi1>OverBought1 ))// && MA_Fast2>MA_Low2   ))//&&( Close[0] < Low[1] ))// && (RunOnce || (Bid <=Level && Bid >= Level-(MaxDeviation*_Point) && Level !=0)))
         {
            ticet=OrderSend(Symbol(),OP_SELL,lots2,Bid,3,Ask+stoploss2*Point,Bid-takeprofit2*Point,"2",magic,0,clrRed);
           // if(ticet>0)
       //     {
       //        RunOnce=true;
            }
        // }
       // }
     // if(t>16384)
      //  {
         if(Counts()==2&&  (rsi2<OverSold2))// && MA_Fast4<MA_Low4 ))//&&( Close[0] > High[1] ))// && (RunOnce || (Ask >=Level && Ask<=Level+(MaxDeviation*_Point) && Level !=0)))
         {
            ticet=OrderSend(Symbol(),OP_BUY,lots3,Ask,3,Bid-stoploss3*Point,Ask+takeprofit3*Point,"3",magic,0,clrGreen);
        //    if(ticet>0)
         //   {
         //      RunOnce=true;
            }
        // }
      //  }
//Partie 3 
    // else if(t<16384)
    //    {
         if(Counts()==2&&  (rsi2>OverBought2 ))// && MA_Fast4>MA_Low4   ))//&&( Close[0] < Low[1] ))// && (RunOnce || (Bid <=Level && Bid >= Level-(MaxDeviation*_Point) && Level !=0)))
         {
            ticet=OrderSend(Symbol(),OP_SELL,lots3,Bid,3,Ask+stoploss3*Point,Bid-takeprofit3*Point,"3",magic,0,clrRed);
           // if(ticet>0)
            //{
            //   RunOnce=true;
            }
       //  }
     //   }                
      // if(t>16384)
      //  {
         if(Counts()==3&&(rsi<OverSold))//&&( Close[0] > High[1] ))// && (RunOnce || (Ask >=Level && Ask<=Level+(MaxDeviation*_Point) && Level !=0)))
         {
            ticet=OrderSend(Symbol(),OP_BUY,lots4,Ask,3,Bid-stoploss4*Point,Ask+takeprofit4*Point,"4",magic,0,clrGreen);
          //  if(ticet>0)
           // {
           //    RunOnce=true;
           // }
         }
       // }
// Partie 4 
    // else if(t<16384)
     //   {
         if(Counts()==3&&(rsi>OverBought ))//&&( Close[0] < Low[1] ))// && (RunOnce || (Bid <=Level && Bid >= Level-(MaxDeviation*_Point) && Level !=0)))
         {
            ticet=OrderSend(Symbol(),OP_SELL,lots4,Bid,3,Ask+stoploss4*Point,Bid-takeprofit4*Point,"4",magic,0,clrRed);
        //    if(ticet>0)
        //    {
        //       RunOnce=true;
            }
      //   }
      //  }
    //  if(t>16384)
     //   {
         if(Counts()==4&&  (rsi1<OverSold1))// && MA_Fast2<MA_Low2 ))//&&( Close[0] > High[1] ))// && (RunOnce || (Ask >=Level && Ask<=Level+(MaxDeviation*_Point) && Level !=0)))
         {
            ticet=OrderSend(Symbol(),OP_BUY,lots5,Ask,3,Bid-stoploss5*Point,Ask+takeprofit5*Point,"5",magic,0,clrGreen);
        //    if(ticet>0)
        //    {
        //       RunOnce=true;
            }
       //  }
       // }
// Partie 5 
  //   else if(t<16384)
    //    {
         if(Counts()==4&&  (rsi1>OverBought1 ))// && MA_Fast2>MA_Low2   ))//&&( Close[0] < Low[1] ))// && (RunOnce || (Bid <=Level && Bid >= Level-(MaxDeviation*_Point) && Level !=0)))
         {
            ticet=OrderSend(Symbol(),OP_SELL,lots5,Bid,3,Ask+stoploss5*Point,Bid-takeprofit5*Point,"5",magic,0,clrRed);
           // if(ticet>0)
          //  {
            //   RunOnce=true;
           // }
        // }
     
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int CountSELL()
  {
   int count=0;
   int i;
   for(i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==magic && OrderType()==OP_SELL)
            count++;
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int CountBUY()
  {
   int count=0;
   int i;
   for(i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==magic && OrderType()==OP_BUY)
            count++;
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
int Counts()
  {
   int count=0,i;
   
   for(i=OrdersHistoryTotal()-1;i>=0;i--)
      {
       if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
         {
          if(OrderSymbol()==Symbol() && OrderMagicNumber()==magic && OrderCloseTime()>=EaStartTime)
          {
             if(OrderProfit()>0)
             {
               if(count==0)
               {
                   OnInit();
                   EaStartTime=TimeCurrent();
               }
               return count;
             }else
             {
               count++;
             }
          }
          if(count > 11 && OrderCloseTime()>=EaStartTime) count=0;
         }
      }
   return(count);
  }  
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int CountVsego()
  {
   int Vsego;
   Vsego=CountBUY()+CountSELL();

   return(Vsego);
  }
//+------------------------------------------------------------------+
bool IsLastOrderClose()
{
bool signal = false;
for(int i=OrdersHistoryTotal()-1;i>=0;i--)
  {
   bool select = OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
   if(select && OrderSymbol()==_Symbol && OrderMagicNumber()==magic)
     {
     if(OrderType()==OP_BUY && OrderCloseTime()>=EaStartTime)
       {
       if(OrderClosePrice()>OrderStopLoss() && OrderClosePrice()<OrderTakeProfit())
         {
         signal = true;
         
         }
         break;
       }
     else if(OrderType()==OP_SELL && OrderCloseTime()>=EaStartTime)
       {
       if(OrderClosePrice()<OrderStopLoss() && OrderClosePrice()>OrderTakeProfit())
         {
         signal = true;
         
         }
         break;
       }
       break;
     }
  }
return(signal);
}

Han respondido

1
Desarrollador 1
Evaluación
(117)
Proyectos
138
41%
Arbitraje
30
7% / 77%
Caducado
17
12%
Libre
2
Desarrollador 2
Evaluación
(90)
Proyectos
136
14%
Arbitraje
43
21% / 28%
Caducado
14
10%
Libre
Ha publicado: 2 ejemplos
3
Desarrollador 3
Evaluación
(94)
Proyectos
148
59%
Arbitraje
16
38% / 13%
Caducado
25
17%
Libre
Ha publicado: 1 ejemplo
4
Desarrollador 4
Evaluación
(620)
Proyectos
680
57%
Arbitraje
25
16% / 60%
Caducado
228
34%
Libre
Solicitudes similares
take your time better make it for days and have good bot than never benefits both of us. Make the bot have zero errors and backtest it for a 2 year period
I buy EA for USDEUR or XAUUSD for FTMO with proven backtest. Send me images with backtest reports where daily max dd is 1% on 200k account. I can buy several eas if you have them with proofs. Need images of backtesting for 5 years
I am looking for an experienced developer to build a cloud-based MT5 trade copier . Requirements: One master MT5 account sends trades to multiple client MT5 accounts. Clients must not need to install an EA or run MT5/VPS themselves . Client accounts should connect using MT5 login, trading password and broker server. Copy market orders, pending orders, SL/TP changes, partial closes and full closes. Support risk/lot
I am looking for a professional and market-savvy MQL developer to build a disciplined, stable Scalping Expert Advisor (EA). The ideal developer must have a solid understanding of Trend Identification, Fibonacci Levels, and Technical Indicators , alongside strict risk management implementation. Key Focus Areas & Developer Requirements: Market & Analysis Expertise: ⚬ Deep understanding of Trend direction (Market
I need an expert Ninjatrader8 developer that can build this indicator. Can you build indicator like this? Ather https://share.google/HaxK5snnOWFR08ghd If you know you can do this send me message or bid to my proposal
i need someone that can make me an EA really easy with the martingala system?, I am looking for something that doesn't exceed 5 trades for the martingale, I think I did it, but it only works for propfirms, So i need to develop it on ninja trader I have identified a very very simple strategy but it only works on propfirms, with only two propfirm accounts, i absolutely need account A and account, And they have to open
Access and confidentiality restrictions: You will receive only a separately named copy of the Commander . Existing trading EAs, presets, account credentials, Telegram credentials and proprietary entry/exit code will not be shared. The Commander intelligence must be developed using: Defined signal/input interfaces Anonymized historical logs and replay data Mock EA signals and test harnesses Documented authority and
We are looking for an expert algorithmic trading developer to build a high-performance, fully automated Custom Expert Advisor (EA) or trading bot. The bot must integrate advanced Smart Money Concepts (SMC) , Inner Circle Trader (ICT) methodologies, and Volume Spread Analysis (VSA) with a high-frequency trading (HFT) style execution and scaling model. The core objective is to program a bot that identifies
Automatic buy and sell entries. stoploss (sl) take profit (tp) risk management and adjustable lot size. Adjustable risk percentage per trade. Trailing stop maximum number of open trades. Trading hours filter. Ability to backtest and optimize the strategy. Easy to use settings. The EA should work reliably on mt5 and provide the source code. I want the developer to test the EA and provide backtest results before
Develop an Expert Advisor for MetaTrader 5 that manages existing positions. Features Automatically detect all open positions. Apply Break-Even after price reaches a configurable profit. Partial Close: Close X% of volume at the first target. Move Stop Loss to Break-Even. ATR Trailing Stop (optional). Magic Number filter. Comment filter. Symbol filter. Trading session filter. Retry mechanism for trade operations

Información sobre el proyecto

Presupuesto
30+ USD
Plazo límite de ejecución
a 1 día(s)