[ARCHIVO]Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No puedo ir a ningún sitio sin ti - 5. - página 224

 

¿Por qué no se abren los pedidos?

Por favor, dime por qué este código no funciona.

Elegí específicamente un período del gráfico en el año 2000 (cuando el quinto signo era 0 en todas partes) en el que hay una vela abierta a un precio que se encuentra entre los valores de la matriz.

De acuerdo con mi idea - en su apertura debe desencadenar una orden - pero no sucede ......P O M U ????


int start()



{

 double Price=iOpen (Symbol (),0,0);        
 double SL=NormalizeDouble (Price-3000*Point, Digits);         
 double TP=NormalizeDouble (Price+100*Point, Digits);
 
 double massiv [4]={0.85370,0.85690,    0.85970 ,0.86170};//объявление и инициализация массива


 double value =  Bid ;// параметру value функции ArrayBsearch присваивается значение текущей цены
 int S = ArrayBsearch(  massiv[4],  value, WHOLE_ARRAY,  0, MODE_ASCEND); //функция ищет самое близкое к текущей цене значение
 if (Bid == massiv[S])//если текущая цена равна значению возвращенному  функцией .
 if (Bid==Price  )// и данная цена есть цена открытия нового бара
 OrderSend(Symbol(),OP_BUY,0.1,Ask,3,SL,TP,"jfh",123 );//открыть ордер       
}
 
solnce600:

Hay 100 valores con una coma después del primer carácter (es decir, el precio)

Resaltar una línea

Inicio - encontrar y reemplazar

Cambiando todas las comas por puntos - con éxito.

Ahora tengo que poner comas entre los valores

Ahora haga lo siguiente: Archivo - Guardar como - seleccione el tipo de archivo CSV (delimitadores - comas). Ahorra. Como salida tenemos un archivo de texto del formato necesario...

 
solnce600:

¿Por qué no se abren los pedidos?

Por favor, dime por qué este código no funciona.

Elegí específicamente un período del gráfico en el año 2000 (cuando el quinto signo era 0 en todas partes) en el que hay una vela abierta a un precio que se encuentra entre los valores de la matriz.

En mi mente - en su orden de apertura debe trabajar - pero no sucede ......P O M U????



int S = ArrayBsearch(  massiv,  value, WHOLE_ARRAY,  0, MODE_ASCEND); //функция ищет самое близкое к текущей цене значение

Massiv[4] significa el 4º elemento del array massiv, necesito pasar un array a la función, para hacer una búsqueda...

 
alsu:

Ahora: Archivo - Guardar como - seleccione el tipo de archivo CSV (delimitadores de comas). Ahorra. Tenemos en una salida un archivo de texto del formato necesario...



Lo tengo, muchas gracias. ¿Podríais decirme por qué no funciona mi función (post anterior)?

Muchas gracias. Si aprendo a programar...... será gracias a ti.....!

 
solnce600:

¿Por qué no se abren los pedidos?

Por favor, dime por qué este código no funciona.

Elegí específicamente un período del gráfico en el año 2000 (cuando el quinto signo era 0 en todas partes) en el que hay una vela abierta a un precio que se encuentra entre los valores de la matriz.

En mi mente - en su orden de apertura debe trabajar - pero no sucede ......P O M U ????


También estaría bien que al comparar números dobles, pudiéramos escribir

 if (Bid == massiv[S])

así:

 if (NormalizeDouble (Bid-massiv[S],Digits)==0)
 
alsu:

massiv[4] se refiere al 4º elemento del array massiv, y hay que pasar el propio array a la función para hacer una búsqueda...

Lo tengo. Muchas gracias.
 
solnce600:

¿Por qué no se abren los pedidos?

Por favor, dime por qué este código no funciona.

Elegí específicamente un período del gráfico en el año 2000 (cuando el quinto signo era 0 en todas partes) en el que hay una vela abierta a un precio que se encuentra entre los valores de la matriz.

Según mi idea - en su orden de apertura debe trabajar - pero no sucede ......P O M U ????

¡¡¡Ya es hora de pasar al método "adulto"!!! - Experimente con su código para obtener resultados.

Consejo: acostúmbrese a comparar variables mediante la normalización de sus diferencias:

    double ld_Delta = 10. * Point;
    if (NormalizeDouble (MathAbs (Bid - Price), Digits) <= ld_Delta)// и данная цена есть цена открытия нового бара
    {OrderSend(Symbol(),OP_BUY,0.1,Ask,3,SL,TP,"jfh",123);}//открыть ордер       

y para el experimento que mencioné, "juega" con ld_Delta.

 
solnce600:

Ya lo tengo, muchas gracias, ¿podríais decirme por qué no funciona mi función (post anterior)?

¡Muchas gracias, si aprendo a programar...... será gracias a ti.....!


Si aprendes, será gracias a tu diligencia y trabajo duro. Mi papel es muy modesto, y los objetivos egoístas (ayudar a usted, entrenar su propia capacidad para encontrar rápidamente los errores y fallos, lo que reduce su propio tiempo dedicado a la programación, y al mismo tiempo mantiene mi cerebro tonificado. Además, ¿qué pasa si se cuela alguna idea valiosa? Lo robaré:)))
 
incluye
alsu:

Si aprendes, es gracias a tu diligencia y trabajo. Mi papel es muy modesto, y el objetivo es auto-servicio (ayudar a usted, entrenar su propia capacidad para encontrar rápidamente los bugs y errores, lo que reduce su propio tiempo dedicado a la programación, pero al mismo tiempo mantiene mi cerebro tonificado. Además, ¿qué pasa si se cuela alguna idea valiosa? Lo robaré:)))

Puede tardar mucho tiempo en encontrar la respuesta a una pregunta por su cuenta (porque no sabe por dónde mirar).

¿Algún otro consejo?

Quiero declarar e inicializar un array en un archivo include.

Llamó al mago.

Funciones de Chose - Bibliotek.

Se le ha asignado un nombre.

He limpiado todo y declarado e inicializado el array.

He guardado el archivo en la carpeta incluide con la extensión mq4 en lugar de mqh.

He insertado una línea para llamar al archivo y he especificado la extensión mqh en el código.

Pero el compilador da un error

UYTR.mqh' - no se puede abrir el archivo de programa C:\NArchivos de Programa\NAlpari NZ MT4(2)\N-perts\hhhh.mq4 (12, 2)

int start()



{

 double Price=iOpen (Symbol (),0,0);        
 double SL=NormalizeDouble (Price-3000*Point, Digits);         
 double TP=NormalizeDouble (Price+100*Point, Digits);
 
 #include <UYTR.mqh> 


 double value =  Bid ;// параметру value функции ArrayBsearch присваивается значение текущей цены
 int S = ArrayBsearch(  massiv,  value, WHOLE_ARRAY,  0, MODE_ASCEND); //функция ищет самое близкое к текущей цене значение
 if (Bid == massiv[S])//если текущая цена равна значению возвращенному  функцией .
 if (Bid==Price  )// и данная цена есть цена открытия нового бара
 OrderSend(Symbol(),OP_BUY,0.1,Ask,3,SL,TP,"jfh",123 );//открыть ордер       
}

Probablemente, el asunto es que hay diferentes extensiones entre el archivo en la llamada de código y el archivo en la carpeta incluide.

Por favor, aconséjeme qué hacer en esta situación.

Gracias.

 
solnce600:
incluye

Puede tardar mucho tiempo en encontrar la respuesta a una pregunta por su cuenta (porque no sabe por dónde mirar).

¿Algún otro consejo?

Quiero declarar e inicializar un array en un archivo include.

Llamó al mago.

Funciones de Chose - Bibliotek.

Se le ha asignado un nombre.

He limpiado todo y he declarado e inicializado el array.

He guardado el archivo en la carpeta incluide con la extensión mq4 en lugar de mqh.

He insertado una línea para llamar al archivo y he especificado la extensión mqh en el código.

Pero el compilador sigue fallando.

UYTR.mqh' - no se puede abrir el archivo de programa C:\NArchivos de Programa\NAlpari NZ MT4(2)\N-perts\hhhh.mq4 (12, 2)

Probablemente la diferencia de extensiones entre el archivo en la llamada de código y el de la carpeta incluide.

Por favor, aconséjeme qué hacer en esta situación.

Gracias.


Si utiliza el asistente, puede crear directamente un archivo de inclusión, que se guardará con la extensión mqh en la carpeta include. Después de esto, puedes añadirlo en cualquier programa mediante #include <>.


es decir
no seleccionar - bibliotek de funciones,
un archivo de cabecera MQH