[¡AVISO CERRADO!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen. No puedo ir a ningún sitio sin ti. - página 523

 
Richie писал(а) >>

Pregunta: ¿quién tiene este EA abriendo órdenes de compra y de venta?
O tal vez estoy entendiendo mal algo, pero estoy recibiendo el error 138.
https://www.mql5.com/ru/code/8177


Para cinco dígitos, hay que aumentar el deslizamiento
 
Vinin писал(а) >> Para cinco dígitos, el deslizamiento tiene que ser aumentado sobre todo


>> Gracias. Ahora veo por qué antes funcionaba y ahora no. No había pensado en eso.
 
¿Podríais aconsejar cómo hacer un bucle de ejecución de todo el programa?
Preferiblemente no un bucle eterno, sino la ejecución del programa un determinado número de veces.
Este es un ejemplo sencillo:

bool Log=false;

int inicio()
{


if(Log==false)
int tick=OrderSend("GBPUSD",OP_BUY,0.01,Ask,3,Bid-30*Point,Bid+30*Point);
Log = true;

volver;
}

¿Cómo coloco la sentencia del bucle para que cuando se dispare una orden de stop, se abra inmediatamente la misma posición (por ejemplo)?
 
son innecesarios, el programa ya está en bucle para ser llamado en cada tick. Recuerde el ticket de la orden y luego compruebe OrderCloseTime() cada vez. Si no es 0, significa que la orden se ha cerrado. Cómo exactamente - en la toma o la parada - se puede averiguar mediante el análisis de OrderProfit().
 
alsu >>:
циклов не надо, программа и так зациклена на вызов при каждом тике. Запомните тикет ордера, а потом проверяйте каждый раз OrderCloseTime(). Если оно не 0, значит ордер закрылся. Как именно - по тейку или стопу - можно узнать, проанализировав OrderProfit().

¿Y si la parada estuviera en el punto de equilibrio, etc.?

 
sanyooooook >>:

а если стоп стоял в безубытке и т.п.?

Si los hongos pudieran crecer en la boca.

 
alsu >>:

если б да кабы, да во рту росли б грибы.

¿No se te ocurre nada más inteligente? Responde bien a la pregunta.

 
Lim1 >>:
Подскажите как зациклить выполнение всей программы?
Желательно не вечный цикл, а выполнение программы определенное количество раз.
Вот простой пример -

bool Log=false;

int start()
{


if(Log==false)
int tick=OrderSend("GBPUSD",OP_BUY,0.01,Ask,3,Bid-30*Point,Bid+30*Point);
Log = true;

return;
}

Как расположить оператор цикла чтобы при срабатывании стоп приказа сразу происходило бы открытие этой же (например) позиции?

No está muy claro, parafrasea.

int start()
{
 for(int i = 0; i < 15; i++){

  bool покупать=false,
       продавать=false;
  string Symbol_="GBPJPY";

  if(iRSI(Symbol_,5,144,0,1)>50)
  покупать=true;
  else
  продавать=true;

  if(покупать)
  int tick=OrderSend(Symbol_,OP_BUY,0.01,Ask,3,Bid-30*Point,Bid+30*Point);
  if(продавать)
  int tick=OrderSend(Symbol_,OP_SELL....................................);
  Sleep(100);//0.1 sec/ ждем 
 }
return(0);
}
 
costy_ >>:

Не совсем понятно, перефразируйте.

Un buen código abrirá quince órdenes en un segundo y medio dependiendo de las lecturas del RSI.
Es mejor describir con palabras lo que se quiere conseguir y no referirse a los ciclos y todo eso. Por ejemplo abrir una orden por la lectura del RSI, si se va a cerrar por el stop, abrir inmediatamente la siguiente, etc.
 
splxgf >>:
Хороший код, за полторы секунды откроет пятнадцать ордеров в зависимости от показаний RSI.
Лучше описать словами то что хочется получить и не надо ссылаться на циклы и все такое. к примеру открыть один ордер по показаниям RSI, если он будет закрыт по стопу сразу открыть следующий и т.п.

=))

¿Pueden decirme cómo hacer un bucle en la ejecución de un programa completo?
Preferiblemente no un bucle eterno, sino ejecutar el programa un determinado número de veces.
He aquí un ejemplo sencillo.

No me importa, no me importa.

Estoy de acuerdo en que "se describe mejor con palabras".

Razón de la queja: