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

 
Lians:

Ya me dirigí al foro sobre la escritura y lectura de arrays en un archivo, y ahora me he vuelto a encontrar con un problema: habiendo escrito un array en un archivo, no puedo luego encontrar el elemento del array por valor, aquí está el script:

El resultado de ejecutar este script en mí es la entrada de registro "La palabra xyz no está en el archivo escrito, pero la palabra xyz sí"

¿Podría decirme qué es lo que falla y cómo solucionarlo?

Está utilizando una cadena de matriz bidimensional y[][] mientras comprueba (busca) en una matriz unidimensional. Prueba esta función:

bool ArraySearchString (string m[][], string e1)
{
    for (int i1 = 0; i1 < ArrayRange (m, 0); i1++)
    {
        for (int i2 = 0; i2 < ArrayRange (m, 1); i2++)
        if (m[i1][i2] == e1) return (true);
    }
    return (false);
}

y cambiar la condición de comprobación a

if (ArraySearchString (y,"xyz"))
 

TarasBY, ¡muchas gracias! ¡Funciona!

Y otra pregunta, ¿alguien se ha encontrado con un fenómeno en el que el mismo script que calcula matemáticamente un entero en diferentes builds del terminal da valores diferentes. Por ejemplo, en la compilación 399 produce 488143839, pero en la 416 produce 348186686.

Ya lo he comprobado varias veces: el script se ejecuta igual con los mismos parámetros en diferentes builds.

 
Lians:

TarasBY, ¡muchas gracias! ¡Funciona!

Y otra pregunta, ¿alguien se ha encontrado con un fenómeno en el que el mismo script que calcula matemáticamente un entero en diferentes builds del terminal da valores diferentes. Por ejemplo, en la compilación 399 produce 488143839, pero en la 416 produce 348186686.

Ya lo he comprobado varias veces: el script se ejecuta igual con los mismos parámetros en diferentes builds.



Tus números son grandes, quizás la causa sea un desbordamiento de la variable entera.
 
Hola, ¿puede ayudarme a añadir un stop loss? Lo he probado yo mismo, el stop loss no aparece.
Archivos adjuntos:
q163hud4n85.mq4  33 kb
 
moskitman:
¡No, Vadim, el escritorio! Una tarjeta gráfica GForce 9600 de 512 mb.
Los sistemas operativos cliente de 32 bits no pueden utilizar más de 3,5 GB de memoria (algunos 3,25, depende de la naturaleza de la bios de la placa base)
Esto se debe a la arquitectura de 32 bits y al hecho de que entre 3,5 y 4 Gb de espacio se dedican a direccionar los dispositivos PCI, en particular, si tiene muchos dispositivos PCI instalados, "verá" menos RAM de la que tiene
.
 
Zhunko:
Me lo han dicho, pero gracias de todos modos, Vadim.
 
sand:

Tus números son grandes, tal vez la razón sea un desbordamiento de la variable entera.
¿Sabes cómo evitarlo? ¿No utilizar funciones como MathFloor(), MathSqrt() ...? ¿O no hay nada que hacer al respecto? Necesito que cuente de la misma manera en todas partes.
 
yosuf:
A menudo se cae Internet, ¿es posible automatizar su reinicio con un software? ¿O qué se sabe de ella? ¿Existe alguna forma de alimentar a dos o más ISPs al mismo tiempo, en el sentido de hacerlos en paralelo? Gracias de antemano.

XmaksasX:

haz un documento de texto plano y pon este texto

:LOOP
ping 8.8.8.8 | find "100%" && (rasdial /disconnect & rasdial "NAME OF YOUR CONNECTION" login pass)
ping -w 1000 -n 30 127.0.0.1

goto LOOP

guárdalo y cambia la extensión de *.txt a *.bat, enróllalo y disfruta))

XmaksasX, muchas gracias por tus sabios consejos, la conexión a internet no se ha caído desde hace dos días, o quizás no lo he notado, ya que el principio anterior funciona. Solía tener desvanecimientos cada 10 minutos, cada hora o por la noche, incluso más tristes en el trabajo, es decir, sin ningún sistema. Ahora es una bendición, tú también puedes dormir bien.

Otra pregunta, ¿es posible gestionar una cuenta real simultáneamente desde dos ordenadores, uno en casa y otro en el trabajo?

 

Aquí hay un trozo de código del EA. Quería implementar la idea de que si hay una desviación del precio de apertura por sigma, entonces cierre. en teoría si se pone sigma = 1*Punto. Entonces el Asesor Experto debería cerrar siempre con beneficios, porque la desviación siempre está presente en 1*Punto. Otra cosa es que en el trading real, hay un spread por lo que perderá beneficios y en el Probador de Estrategias no hay spread, por lo que debería obtener beneficios todo el tiempo.

Creo que aquí hay un error.

if (OrdersTotal()!=0)
    {
     OrderSelect(0,SELECT_BY_POS,MODE_TRADES);
     
     if (OrderType()==OP_BUY)
     {
      if ((Bid-Open[0])>=SigmaHigh*Point) OrderClose(OrderTicket(),OrderLots(),Bid,slippage,Red);
     }
      
     if (OrderType()==OP_SELL) 
     {
       if ((Open[0]-Ask)>=SigmaLow*Point) OrderClose(OrderTicket(),OrderLots(),Ask,slippage,Green);
     }
    }
 
orb:

y no hay propagación en el probador


Hay una dispersión en el probador. Exactamente igual que en el gráfico cuando se realizó la prueba.