[¡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 164

 
evgenio писал(а) >>

No funciona.

Lo siento. Código de la secuencia de comandos. Está funcionando. Lo he comprobado.

#property show_confirm

int start() {
   Print("Start");
   double as[5];
   for (int i=0; i<5; i++) {
      as[ i]=Low[ i];
      Print( i," ", as[ i]);
   }
   Print("Stop");
   return(0);
}
 

Por favor, dígame cómo se escribe el operador que hace las pausas en milisegundos. Se me sigue olvidando. Recuerdo que una vez lo olvidé y luego lo busqué durante mucho tiempo. De nuevo, no recuerdo dónde lo busqué. Probablemente pasaré mucho tiempo buscándolo de nuevo.

Por favor, díganme cómo se escribe: se me ha vuelto a olvidar.

 
FOReignEXchange писал(а) >>

Por favor, dígame cómo se escribe el operador que hace las pausas en milisegundos. Se me sigue olvidando. Recuerdo que una vez lo olvidé y luego lo busqué durante mucho tiempo. De nuevo, no recuerdo dónde lo busqué. Probablemente pasaré mucho tiempo buscándolo de nuevo.

Por favor, díganme cómo se escribe: lo he vuelto a olvidar.

Dormir()

 
Vinin >> :

Dormir()

Oh, claro, muchas gracias.

 
Buenas tardes. Podrían decirme cómo comprobar si hay una posición abierta en la barra actual y si la hay, prohibir la apertura de nuevas. A partir del siguiente compás se elimina la restricción. Sleep() no funciona.
 
Alex5757000 >> :
Hola. Me pueden decir cómo comprobar si hay una posición abierta en la barra actual y si la hay, entonces prohibir la apertura de nuevas. A partir del siguiente compás se elimina esta restricción. Sleep() no funciona.

Al abrir una posición, recuerde la hora

t=TimeCurrent()


Y en la condición de apertura del trato poner una condición


if (iBarShift(NULL,0, t)>0)

Esto debería funcionar, si no me equivoco.

 
Alex5757000 >> :
Buenas tardes. Me pueden decir cómo comprobar si hay una posición abierta en la barra actual y si la hay, entonces prohibir la apertura de nuevas. A partir del siguiente compás se elimina la restricción. Sleep() no funciona.
bool ЗапретитьТорговлю = false;
for(int k = 0; k < OrdersTotal(); k++ )
{
   OrderSelect( k, SELECT_BY_POS, MODE_TRADES); // Проверяем каждый ордер. 
                                             // Если он открыт после времени открытия текущего бара - запрещаем торговлю.
   if(OrderOpenTime()>Time[0])
   {
      ЗапретитьТорговлю = true;
      break;
   }
}
 
FOReignEXchange y mql-experts, ¡gracias!
 

Algo curioso:(

El indicador se encuentra en el proceso de cálculo de pérdidas y ganancias. Quiero poner los resultados en comentarios (salida en pantalla):


      int    TotalProfit_pips    = TotalProfit;
      int    TotalProfit_count   = ( Buy_Profits_Count+ Sell_Profits_Count)-( Buy_Losses_Count + Sell_Losses_Count);
      int    TotalTrades_count   = ( Buy_Profits_Count+ Sell_Profits_Count)+( Buy_Losses_Count + Sell_Losses_Count);
      int    Total_Profits_Count = Buy_Profits_Count+ Sell_Profits_Count;
      int    Total_Losses_Count  = Buy_Losses_Count + Sell_Losses_Count;
//      double WinningRatio        = Total_Profits_Count / TotalTrades_count;

Sin la última línea (comentada) todo funciona como debería.

Pero en cuanto lo dejas sin comentar, todo lo que ves es una vela en blanco y nada más. Reiniciar MT no ayudó.

¿Qué puede ser?

 
chief2000 >> :

Algo curioso:(

El indicador está en proceso de calcular las pérdidas y ganancias. Quiero poner los resultados en comentarios (salida en pantalla):


Sin la última línea (comentada) todo funciona como debería.

Pero en cuanto lo dejas sin comentar, todo lo que ves es una vela en blanco y nada más. Reiniciar MT no ayudó.

¿Qué puede ser?



Todas las variables de tipo int son números enteros. Al dividir un número entero entre un número entero, la respuesta también es un número entero. Y si el primer número es menor que el segundo, la respuesta siempre será 0. Este puede ser el problema.

Si tiene la posibilidad, cambie todos los tipos a dobles.