Cerrar y revertir órdenes - página 4

 

Compra y venta con brokers de 5 dígitos

Los scripts básicos de compra y venta tienen un problema con los brokers de cinco dígitos porque la variable MQL4 'Puntos' parece ser ticks en lugar de pips y por lo tanto el SL y TP son sólo una décima parte de lo esperado. Está bien si no es elegante poner 400 para 40 etc. si sólo usas cinco dígitos pero el JPY y otros gráficos que uso no lo hacen aunque estoy contento de usar el mismo SL y TP así que he añadido la comprobación de cinco dígitos a los originales con ajuste automático.

Archivos adjuntos:
 
GeoffGreaves:

Compra y venta con brokers de 5 dígitos

Los scripts básicos de compra y venta tienen un problema con los brokers de cinco dígitos porque la variable MQL4 'Puntos' parece ser ticks en lugar de pips y por lo tanto el SL y TP son sólo una décima parte de lo esperado. Está bien si no es elegante poner 400 para 40 etc. si solo usas cinco dígitos pero el JPY y otros gráficos que uso no lo hacen aunque estoy contento de usar el mismo SL y TP así que he añadido la comprobación de cinco dígitos a los originales con ajuste automático.


Los chicos han solicitado un script de cobertura que abre posiciones opuestas (del mismo tamaño) sin cerrar las órdenes abiertas actuales. Ideal para el comercio mgmt (tiempo de caos o las noticias que vienen en la cobertura de bloquear sus posiciones de beneficio / pérdida) disfrutar de este archivo adjunto.. nota: la escritura de cobertura se adjunta el par que se está negociando necesidad de cobertura
Archivos adjuntos:
 
GoodBoyFX:

chicos han solicitado la secuencia de comandos de cobertura que abre posiciones opuestas (mismo tamaño) sin cerrar las órdenes abiertas actuales. Ideal para el comercio mgmt (tiempo de caos o noticias que vienen en el bloqueo de cobertura de sus posiciones de beneficio / pérdida) disfrutar de este archivo adjunto.. nota: la escritura de cobertura se adjunta el par que se negocia necesidad de cobertura

Gracias por hacer gran Hedge_Script

¿Puedes añadirlo a esta acumulación Para este EA

extern int MagicNumber=10001;
extern double Lots =0.1;
extern double StopLoss=50;
extern double TakeProfit=50;
extern int TrailingStop=50;
extern int Slippage=3;
//+------------------------------------------------------------------+
//    expert start function
//+------------------------------------------------------------------+
int start()
{
  double MyPoint=Point;
  if(Digits==3 || Digits==5) MyPoint=Point*10;
  
  double TheStopLoss=0;
  double TheTakeProfit=0;
  if( TotalOrdersCount()==0 ) 
  {
     int result=0;
     if((iFractals(NULL,0,MODE_LOWER,0)<iBullsPower(NULL,0,13,PRICE_HIGH,0))&&(iMA(NULL,0,21,0,MODE_EMA,PRICE_CLOSE,0)>iMA(NULL,0,100,0,MODE_EMA,PRICE_CLOSE,0))) // Here is your open buy rule
     {
        result=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0,"EA Generator www.ForexEAdvisor.com",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(),NormalizeDouble(TheStopLoss,Digits),NormalizeDouble(TheTakeProfit,Digits),0,Green);
        }
        return(0);
     }
     if((iFractals(NULL,0,MODE_LOWER,0)<iBearsPower(NULL,0,13,PRICE_LOW,0))&&(iMA(NULL,0,21,0,MODE_EMA,PRICE_CLOSE,0)<iMA(NULL,0,100,0,MODE_EMA,PRICE_CLOSE,0))) // Here is your open Sell rule
     {
        result=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,0,0,"EA Generator www.ForexEAdvisor.com",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(),NormalizeDouble(TheStopLoss,Digits),NormalizeDouble(TheTakeProfit,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(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(TrailingStop>0)  
              {                 
               if((OrderOpenPrice()-Ask)>(MyPoint*TrailingStop))
                 {
                  if((OrderStopLoss()>(Ask+MyPoint*TrailingStop)) || (OrderStopLoss()==0))
                    {
                     OrderModify(OrderTicket(),OrderOpenPrice(),Ask+MyPoint*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);
}



 
eli:

A veces es necesario invertir la operación que se ha abierto. El script adjunto cerrará todas las órdenes abiertas que ya se están ejecutando y abrirá una nueva orden con el mismo tamaño de lote. El script cerrará y revertirá sólo las órdenes que el símbolo() es igual a la que el script se adjunta.

Gracias por su gran trabajo.

Por favor, ¿podría hacer un script que cierre e invierta todas las operaciones abiertas en diferentes pares en mi plataforma.

He perdido las mías cuando mi sistema se ha colapsado.

 
Por favor, alguien puede ayudar y decir cómo este trabajo de secuencias de comandos,, que sólo funcionan con teclas de acceso rápido?,, y nunca había suxcidet para ejecutar cualquier ea en mi mt4,, me muestran sólo la cara triste en el gráfico, haw puedo hacer para trabajar them.Thanks.