Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 337

 
Tapochun:
No es el robot... Funciona sin ningún error. La estructura del resultado de la operación es MqlTradeResult, es el segundo parámetro en la función OrderSend() mira en la documentación. El código fue escrito usando OOP, no estoy familiarizado con él... Tienes que encontrar un método que envíe una solicitud de operación usando OrderSend() y después de ello llamar a Print( result.retcode ) donde result es un objeto de la estructura MqlTradeResult.

Hizo que funcionara.

Se hace así

MqlTradeResult result;

 trade.Result(result)

Print(result.retcode)

trade es un objeto de la clase CTrade.

El código devuelve 10030 ( tipo de ejecución de orden de saldo no soportado especificado)

¿Qué significa?

 
Maxi-M:

Hizo que funcionara.

Se hace así

trade es un objeto de la clase CTrade.

El código devuelve 10030 ( tipo de ejecución de orden de saldo no soportado especificado)

¿Qué significa?

¿Ha intentado abrir una cuenta de demostración en el servidor MetaQuotes-Demo? Si no es así, pruébalo y si todo está bien, escribe al Service Desk y quéjate de que la clase CTrade del Expert Advisor funciona incorrectamente en el servidor que estás utilizando. Si todavía está mal... También puedes escribir a Service Desk y decir que no puedes ejecutar el robot, que hay un error... Pero antes de nada, ¡asegúrate de probarlo en un servidor de demostración de methaqvot!
 

Ayuda, por favor.

1 Esta es la función:

 if (OrdersTotal()==1) 
   if(profit>=tp_in_money || a>0) 
   {
      closeall();
      closeall();
      closeall();
      //a++;
      //if(total()==0) a=0;

Esto significa cerrar todas las órdenes cuando se alcanza un determinado beneficio.

Y quiero que se cierren a una determinada ganancia definida MAJIKa no me dice cómo hacerlo? tal vez añadir después deOrdersTotal()cheta necesidad????Por ejemplo!=magia ?????????

Por favor, dame una pista, estoy tratando de entenderlo.

2) Poner un tope virtual del 50% del depósito, ¿estoy en lo cierto?

double BOL    =AccountBalance();
double PROS    =AccountCredit();
   if(PROS<BOL*0.5 || a>0) 
   {
      closeall();
      closeall();
      closeall();
      //a++;
      //if(total()==0) a=0;
 
CapitalUser:
Ayuda, por favor.
1 aquí es una función:
if(PedidosTotal()==1)
if(beneficio>=tp_en_dinero || a>0)
{
closeall();
closeall();
closeall();
//a++;
//if(total()==0) a=0;
Lo que quiero decir aquí es que todas las órdenes deben cerrarse una vez que se obtiene un determinado beneficio.
Y quiero que se cierren a una determinada ganancia definida MAGIC ¿puede decirme cómo hacer esto? tal vez añadir después de OrdersTotal()cheta necesidad????Por ejemplo=magia ?????????
Por favor, dígame, no puedo entenderlo.

2) Quiero un tope virtual del 50% del depósito, tengo razón:

doble BOL =Saldo de la cuenta();
doble PROS =AccountCredit();
if(PROS<BOL*0,5 || a>0)
{
closeall();
closeall();
closeall();
//a++;
//if(total()==0) a=0;

  • Un diseño dolorosamente familiar, pero bueno.

No pretendo ser perfecto.

//+------------------------------------------------------------------+
void CloseProfit(int mag,double profit)
  {

   double pro=0,pri=0;
   static bool flag=false;
   for(int i=OrdersTotal()-1; i>=0; i--)
      if(OrderSelect(i,SELECT_BY_POS))
         if(OrderSymbol()==_Symbol)
            if(OrderMagicNumber()==mag || mag==-1)
               pro+=OrderProfit()+OrderCommission()+OrderSwap();

   if(pro>=profit)flag=true;  if(pro==0)flag=false;

   for(int i=OrdersTotal()-1; i>=0; i--)
      if(OrderSelect(i,SELECT_BY_POS))
         if(OrderSymbol()==_Symbol)
            if(OrderMagicNumber()==mag || mag==-1)
              {
               if(OrderType()==OP_BUY )pri=Bid;
               if(OrderType()==OP_SELL)pri=Ask;
               if(OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(pri,_Digits),30,clrRed)==false)
                  Comment("Error "+GetLastError());
              }

  }
//+------------------------------------------------------------------+
 
VOLDEMAR:

  • Un diseño dolorosamente familiar, pero bueno.

No pretendo ser perfecto.

Gracias.
 
Tapochun:
¿Ha intentado abrir una cuenta de demostración en el servidor MetaQuotes-Demo? Si no - pruébelo, si todo está bien - escriba al Service Desk y reclame que la clase CTrade en su EA no funciona correctamente en el servidor. Si todavía está mal... También puedes escribir al Service Desk y decir que no puedes ejecutar el robot, que hay un error... Pero antes de nada, ¡asegúrate de probarlo en un servidor de demostración de methaqvot!

¡Muchas gracias!

Funcionó enMetaQuotes-Demo. Escribiré al servicio de atención al cliente en la semana para que solucionen el servidor BCS5-Real.

 
Maxi-M:

¡Muchas gracias!

Funcionó enMetaQuotes-Demo. Escribiré al servicio de atención al cliente en la semana para que solucionen el servidor BCS5-Real.

De nada. Desgraciadamente, los EAs pueden funcionar de forma diferente en distintos servidores.
 

¡Buenas noches, señores!

Pregunta: ¿Es posible crear elementos gráficos(línea de tendencia, indicador..........) con extensión Gif, es decir, con efecto de animación (shimmering, flashing..........) en MT4? Gracias por su respuesta.

 
gnawingmarket:

¡Buenas noches, señores!

Pregunta: ¿Es posible crear elementos gráficos(línea de tendencia, indicador..........) con extensión Gif, es decir, con efecto de animación (shimmering, flashing..........) en MT4? Gracias por su respuesta.

Tu pregunta no es clara, programáticamente puedes hacer líneas y cosas, pero ¿a qué te refieres con gif?
 
VOLDEMAR:
Tu pregunta no es clara, el software puede hacer líneas y cosas, pero ¿a qué te refieres con gif?
En general, sí, la pregunta es cruda. Me tomaré un tiempo fuera...... y dejaré que el tema se cocine a fuego lento en mi caldera. Gracias.
Razón de la queja: