Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 808

 

¡Hola! Ayúdame con esto. Estoy escribiendo mi primer EA en MQL4.

Mi Asesor Experto abre una posición pero no la cierra. No muestra ningún error en el registro.

void OnTick()
  {RefreshRates();
  ma1=iMA(_Symbol,TimeFrame,Period_MA1,Shift_MA1,metod_ma1,PRICE_CLOSE,0);
ma2=iMA(_Symbol,TimeFrame,Period_MA2,Shift_MA2,metod_ma2,PRICE_CLOSE,0);


if (ma1<ma2)
{
SellPositionClose();
BuyPositionOpen();
}

if (ma1>ma2)
{
BuyPositionClose();
SellPositionOpen();
}
}
 

     
void BuyPositionOpen()  // покупка
{int res=0;
RefreshRates();
if (OrdersTotal()==0)
res=OrderSend(_Symbol,OP_BUY,Lots,Ask,3,0,0,"",Magic,0,Blue);
if (res<0) Print("OrderClose111111 error ",GetLastError());
}

void     SellPositionOpen() // продажа
{int res=0;
RefreshRates();
if (OrdersTotal()==0)
res=OrderSend(_Symbol,OP_SELL,Lots,Bid,3,0,0,"",Magic,0,Red);
if (res<0) Print("OrderClose111111 error ",GetLastError());
}

void BuyPositionClose() // закрытие длинной позиции
{RefreshRates();
if ((OrdersTotal()!=0) && (OrderMagicNumber()==Magic))
{
if (!OrderSelect(0,SELECT_BY_POS,MODE_TRADES)) Print("OrderClose error ",GetLastError());

 if(OrderType()==OP_BUY)
           
            if(!OrderClose(OrderTicket(),OrderLots(),Bid,3,White))
               Print("OrderClose error ",GetLastError());
               }
               }
               
void SellPositionClose()  // закрытие короткой позиции
{RefreshRates();
if (OrdersTotal()!=0 && OrderMagicNumber()==Magic)
{
if (!OrderSelect(0,SELECT_BY_POS,MODE_TRADES)) Print("OrderClose error ",GetLastError());
    
     if(OrderType()==OP_SELL)
                
            if(!OrderClose(OrderTicket(),OrderLots(),Ask,100,White))
               Print("OrderClose error ",GetLastError());
               
               }
               }
 
Terind:

¡Hola! Ayúdame con esto. Estoy escribiendo mi primer EA en MQL4.

Mi Asesor Experto abre una posición pero no la cierra. No muestra ningún error en el registro.

Esta condición no funciona:

if ((OrdersTotal()!=0) && (OrderMagicNumber()==Magic)) //ордер ещё не выбран с помощью OrderSelect()
 
evillive:

Esta es la condición que no funciona:

Gracias. Arreglado, ya funciona.
 
Hola. Me he encontrado con este problema. cuando dibujo líneas y rectángulos en el gráfico de un par, todos estos elementos se muestran en los mercados de otros pares. ¿por qué es esto y cómo puedo eliminarlo?
 
roymax:
Hola. Me he encontrado con un problema de este tipo. cuando dibujo líneas y rectángulos en el gráfico de un par, todos estos elementos se muestran en los mercados de otros pares. ¿por qué es así y cómo puedo eliminarlo?
Necesito mostrarlo, ya que otros no saben cómo hacerlo. Y preferiblemente en el código
 

Este es un error de larga data, se podría considerar una característica :)

1. Dibujar algo en algún gráfico

2. Pulse la barra espaciadora y pase a otro par

Los objetos gráficos permanecen en el gráfico

Ejemplo:

En el gráfico del euro se ha trazado una línea recta

Se trasladó a la libra y se redujo la escala vertical

 
tara:

Este es un error de larga data, se podría considerar una característica :)

1. Dibujar algo en algún gráfico

2. Pulse la barra espaciadora y pase a otro par

Los objetos gráficos permanecen en el gráfico

Bild 765, no funciona, los objetos sí se quedan, pero en el gráfico donde fueron creados :)

P.D.: La forma descrita por Alexey ciertamente funciona, pero de hecho esta acción tiene lugar en una ventana, el símbolo del gráfico cambia, pero el objeto está unido a la ventana, no a un símbolo))

 
¿Significa AccountInfoInteger(ACCOUNT_TRADE_ALLOWED)=false que la cuenta está bloqueada? ¿O es sólo una prohibición comercial? ¿Qué otros criterios hay para una cuenta bloqueada? ¿Y qué es exactamente, además de un baneo comercial, lo que bloquea la cuenta si se ha pasado el login (me refiero al error 64)?
 
tara:

Este es un error de larga data, se podría considerar una característica :)

1. Dibujar algo en algún gráfico

2. Pulse la barra espaciadora y pase a otro par

Los objetos gráficos permanecen en el gráfico

Ejemplo:

¿y esto no se ha arreglado de ninguna manera?
 

Hola. He buscado en la documentación pero no lo he encontrado. mi pregunta es la siguiente. ¿es posible cambiar esta imagen del inicio del EA por su logotipo?