[ARCHIVO] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 3. - página 624

 
¿Puede alguien aconsejar cómo abrir MT4 (desde una cuenta demo, en un ordenador) varias veces a la vez, para poder probar el Asesor Experto en varios pares simultáneamente. ¿Para no esperar a que termine un par y luego poner manualmente la prueba en el otro?
 
paladin80:
¿Puede alguien aconsejar cómo abrir MT4 (desde una cuenta demo, en un ordenador) varias veces a la vez, para poder probar el Asesor Experto en varios pares simultáneamente. ¿Para no esperar a que termine un par y luego poner manualmente la prueba en el otro?
Copie la carpeta varias veces.
 
paladin80:
¿Puede alguien aconsejar cómo abrir MT4 (desde una cuenta demo, en un ordenador) varias veces al mismo tiempo, para poder probar simultáneamente el Asesor Experto en varios pares. ¿Para no esperar a que termine un par y luego poner manualmente la prueba en el otro?

¿Puede el cantuper soportar este tipo de crueldad? Dos probadores están cargando la CPU al 100% en paralelo, el ordenador no es para nada de la categoría "Internet y máquina de escribir".
 

¡Buenas tardes!

¿Por qué no coinciden la hora del iTime y la del probador (en la imagen)?

A continuación, se presenta un boceto del código:

int start()
  {
   int counted_bars=IndicatorCounted();
   if(counted_bars<0) return(-1);
   if(counted_bars>0) counted_bars--;
    
   int  limit = Bars - counted_bars;
     
     for (int i=limit; i>=0; i--)
     {
       
    tm1=iTime(NULL,PERIOD_D1,i);           //--- Определяю время (Выводит текущую дату. Не совпадает с временем в тестере.)
    int shift=iBarShift(NULL,PERIOD_H4,tm1,false);  //---По этому времени ищем бар
   
    hgh = iHigh(NULL,PERIOD_H4,shift);   //---High бара
    lwo = iLow(NULL,PERIOD_H4,shift);    //---Low бара
          
     flatline("Lev_Up",tm1,hgh,tm2,lwo,Green,1);
     flatline("Lev_Dn",tm1,hgh,tm2,lwo,Green,1);
     }
     
     SetText("Tm1","Tm2",TimeToStr(tm1),TimeToStr(tm1),Red,Blue,12);
     SetText2("Shift",shift,Red,12);
     SetText5("High","Low", hgh,lwo,Red,Blue,12);
           
     //----
   return(0);
  }

 

Buenas tardes.

¿Puede decirme por qué este código no está operando?

Y la alerta no funciona.

El tronco es completamente silencioso...

En la captura de pantalla se puede ver que las condiciones coinciden.

int start()
  {
  double ma= iMA(Symbol(), 0, PerMa, 0, 0, 0, 0);
//----
//GetLot(1, 0.1, 100, 0.1, 10, Symbol());
if (Filtre()=="S" && NormalizeDouble(Bid, Digits*pip)==NormalizeDouble(ma, Digits*pip)) OrderSend(Symbol(),OP_SELL,0.1,Bid,2,Ask+SL*pip*Digits,Ask-TP*pip*Digits,0,0,0,CLR_NONE);
if (Filtre()=="B" && NormalizeDouble(Bid, Digits*pip)==NormalizeDouble(ma, Digits*pip)) OrderSend(Symbol(),OP_BUY,0.1,Ask,2,Bid-SL*pip*Digits,Bid+TP*pip*Digits,0,0,0,CLR_NONE);
Comment (Filtre(),"  ",NormalizeDouble(ma, Digits*pip),"  ",NormalizeDouble(Bid, Digits*pip));
if (NormalizeDouble(Bid, Digits*pip)==NormalizeDouble(ma, Digits*pip)) Alert("!!!!!!!!!!!");


//----
   return(0);
  }
 
MarkTrade:

Buenas tardes.

¿Puede decirme por qué este código no está operando?

Y la alerta no funciona.

El tronco es completamente silencioso...

En la captura de pantalla se puede ver que las condiciones coinciden.

Comprueba lo que equivale a pip. El segundo parámetro de la función NormalizeDouble debe ser igual al número de decimales (que es un entero), normalmente escrito simplemente como Dígitos si se comparan precios.
 
atztek:

Hay un archivo en la carpeta "expertos" que debe copiarse cada vez que se inicie el indicador personalizado.

- ¿Es posible copiar archivos del código y, si es así, cómo?

Gracias.


Si se utiliza MQL, sólo dentro de la carpeta experts\files
 
Fox_RM:

¡Buenas tardes!

¿Por qué no coinciden la hora del iTime y la del probador (en la imagen)?

A continuación, se presenta un boceto del código:

Su función iTime toma la i-ésima barra de un archivo (para cada tamframe por separado) en la carpeta tester\history, tal vez los archivos de historia para D1 y H1, donde la última barra corresponde al 13 de enero, se encuentran allí desde alguna ejecución antigua.
 
alsu:
Comprueba a qué equivale el pip. El segundo parámetro de la función NormalizeDouble debe ser igual al número de dígitos después del punto decimal (que es un entero). Normalmente escribimos simplemente Digits si estamos comparando precios.

si (Dígitos == 3||Dígitos==5) pip=10; si no pip=1;

esto es para normalizar a 4 o 2 dígitos. (si las comillas son de 5 dígitos)

Los valores normalizados se muestran en comentario y en la captura de pantalla podemos ver que son iguales. Entonces, la condición se ha cumplido pero el pedido sigue sin abrirse...

¡Oh! Apareció una alerta en el registro pero la orden no se abrió.

 
MarkTrade:

si (Dígitos == 3||Dígitos==5) pip=10; si no pip=1;

esto es para normalizar a 4 o 2 dígitos. (si las comillas son de 5 dígitos)

En el comentario aparecen los valores normalizados y en la captura de pantalla podemos ver que son iguales. Entonces, la condición se ha cumplido pero el pedido sigue sin abrirse...

¡Oh! La alerta apareció en el registro pero la orden no se abrió.


¿Puedo preguntar por qué "normalizar a 4 o 2 dígitos"? (si las comillas son de 5 dígitos)"? 5 y 3 dígitos también deberían funcionar, por así decirlo...