Preguntas de los principiantes MQL4 MT4 MetaTrader 4 - página 139

 

Estoy ejecutando el Asesor Experto en el Probador de Estrategias. Al modificar una orden de BUYSTOP, se genera un error:

No entiendo por qué. El precio al que se ofrece mi orden para moverse es 40 más alto que el precio Ask, StopLevel =30. El precio está normalizado, ¿qué más se necesita?

 
khorosh:

Estoy ejecutando el Asesor Experto en el Probador de Estrategias. Al modificar una orden de BUYSTOP, se genera un error:

No entiendo por qué. El precio al que se ofrece mi orden para moverse es 40 más alto que el precio Ask, StopLevel =30. El precio está normalizado, ¿qué más se necesita?

Lo he visto con un corredor - en lugar de 10, tratar de establecer más alto por 11 pips.
 
Лауреат:
Por favor, aconseje cómo hacer una función para establecer el número de órdenes requerido! por ejemplo, para abrir un número específico de órdenes sin más. en mql4
 
Konstantin Erin:
if(OrdersTotal() < OrdersMax) OrderSend(...); else Alert("The required number of orders opened"); si se usa esto entonces se abren varias órdenes sucesivas ! no órdenes si hay otra señal para operar así que como hacer que se abra el número requerido de órdenes si hay más señales para operar después de la primera orden abierta ! ?
 

¿Por qué nadie ayuda, por favor?

 
Лауреат:
if(OrdersTotal() < OrdersMax) OrderSend(...); else Alert("El número requerido de órdenes abiertas"); si se utiliza esto entonces se abrirán varias órdenes consecutivas ! no órdenes si hay otra señal para operar así que cómo hacer que abra el número requerido de órdenes si hay más señales para operar después de la primera orden abierta ! ?
enum Цвет   // Цвет флага
{
  Красный,
  Зеленый
};

Цвет Флаг=Красный;

void start()
{
   if(!Сигнал())Флаг=Зеленый;

   if(Сигнал()>0 && Флаг==Зеленый)
   {
      OrderSend(Покупка...);
      Флаг=Красный;
   }

   if(Сигнал()<0 && Флаг==Зеленый)
   {
      OrderSend(Продажа...);
      Флаг=Красный;
   }
}

int Сигнал()  // Сигналы покупки и продажи
{
   return ЧтоНадо;
}
Esto podría ser tan corto como 5 líneas, pero soy demasiado perezoso para pensar...
 

Chicos, aconsejadme donde encontrar o ayudarme a corregir el trailing stop, que funciona así:

Por ejemplo, se abrió una orden de COMPRA con TP = 100 y SL = 200, y cuando el precio pasó a COMPRA y superó los 50 puntos, entonces el SL se convirtió enel precio de apertura, mientras que el TP se movió a 50 puntos y así constantemente????

void TrailingPositions(int otype)
{

int cnt = PedidosTotal();

int lMinProfit = 0; // Min. pips

int lTrailingStop = 40; // Nivel de posición final (el número de puntos de la distancia SL anterior)

int lTrailingStep = 20; // Nivel de arrastre (el número de puntos tras los cuales se activará)

for (int i=0; i<cnt; i++)
{
if (!(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue;
si (OrderSymbol() != Symbol()) continuar;

if (OrderType() == OP_BUY && otype = OP_BUY) {
if (Bid-OrderOpenPrice() > lMinProfit*Point) {
if (OrderStopLoss() < Bid-(lTrailingStop+lTrailingStep-1)*Point) {
if(OrderModify(OrderTicket(), OrderOpenPrice(), Bid-lTrailingStop*Point, TP + lTrailingStop * Point, 0, Blue))
Print("El Trailing Stop está funcionando");
}
}
}

if (OrderType() == OP_SELL && otype = OP_SELL) {
si (OrderOpenPrice()-Ask > lMinProfit*Point) {
if(OrderStopLoss() > Ask+(lTrailingStop+lTrailingStep-1)*Point || OrderStopLoss() == 0) {
if(OrderModify(OrderTicket(), OrderOpenPrice(), Ask+lTrailingStop*Point, TP - lTrailingStop * Point, 0, Red))
Print("El Trailing Stop está funcionando");
}
}
}
 
LRA:
Podría ser más corto en 5 líneas, pero me da pereza pensar...
Buena idea, tendré que probarla. Gracias. Sin embargo, ¿funcionará con la función onticket void OnTick()?
 
¡Hola camaradas! Por favor, ayúdenme con la instalación del objeto "botón", necesito colocar código en el Asesor Experto, para que directamente en el gráfico el botón en estado pulsado o no pulsado devuelva un valor de bool. Gracias de antemano.
 
Arseniy Barudkin:
¡Hola camaradas! Por favor, ayuda con la configuración del objeto "botón", necesito colocar código en el EA para que directamente en el gráfico el botón en estado pulsado o no pulsado devuelva un valor bool. Gracias de antemano.
ObjectGetInteger(ChartId(),"имя кнопки",OBJPROP_STATE)

aquí está