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

 
Sarguss:

Buenas noches.

Soy un poco "cruciano" cuando se trata de codificar :) Estoy construyendo un Asesor Experto basado en el indicador de Fibonacci. No estoy prestando atención a la estrategia hasta ahora. El problema son los 7 niveles de Fibonacci, cómo hacer que cada nivel cruzado establezca sólo 2 órdenes pendientes diferentes y no más.

Agradecería cualquier consejo.

Perdón por mi torpeza en ruso.


Trabajo

P.D. "Un lucio por una carpa cruciana no se duerme" (proverbio ruso).

 
Roll:


Trabajo

P.D. "Un lucio para una carpa de la cruz" (proverbio ruso).


Gracias por el proverbio:))) Justo en el tema -

Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. Sin ti en ninguna parte - 4.

Acaba con ello - ¡cualquier respuesta Profi!

 

Hola expertos, por favor ayúdenme a crear un script. Hay dos indicadores MA(Moving Average) en el gráfico, MA1 está marcado en rojo y MA2 está marcado en azul. La tarea del script: cruzar MA1 y MA2 de manera que la línea roja cruce la azul de arriba a abajo. Lo llamaremos punto A y si la línea roja cruza la azul de arriba a abajo, será el punto B. Así, en el punto A, necesitamos que el scrip cierre una orden de venta y abra una de compra y en el punto B que cierre una orden de compra y abra una de venta. Este bucle debería ser infinito. Adjunto un código similar, por favor ayuda, estaré muy agradecido

Archivos adjuntos:
 
Lisi4ka330:
Para no empeorar la confusión, quiero corregir el error que cometí en la respuesta anterior: la notación "array1[Bars*6-60,60][0]" no es correcta, porque Bars*6 es el número total de elementos del array1.Cada barra tiene 6 propiedades, supongamos que tenemos 30 barras, multiplicando por 6 obtenemos el número de elementos de la primera matriz - 180. La segunda matriz tiene sólo 60 "celdas" libres (es decir, 10 x 6 propiedades), por lo que debemos seleccionar sólo 60 elementos de la primera matriz para copiarlos. Utilizando la expresión [Bars*6-60,60] restamos 60 del total, es decir, 180 - 60 = 120, es decir, 120 elementos de la primera matriz se copiarán en el elemento cero de la segunda, 121 en la primera, y así sucesivamente. Otra cuestión es cómo resulta que la información sobre los últimos compases formados no se escribe al principio de la primera matriz, sino al final... Pero aparentemente la respuesta está en el código de la función, y no tiene sentido indagar más...


Bueno, tengo una base de datos, no tiene nada que ver. Natalya ha escrito correctamente de forma lógica. E incluso en el caso de que tengamos 30 barras, el valor del índicedel array1 es 120. En consecuencia, el valor del índice correspondientedel array2 ya está declarado como 10 durante la inicialización.

https://docs.mql4.com/ru/array/ArrayCopy

double array2[10][6];

En un libro C leí eso:

El lenguaje C no controla los desbordamientos de matrices, lo que significa que técnicamentepuedesescribir algo en un elemento con un índice inexistente, por ejemplo en A[345] o en A[-12].Pero al hacerlo borrará alguna celda de la memoria que no pertenece al array, por lo que lasconsecuencias de dicho paso son imprevisibles y el programa se cuelga en muchos casos.

Resulta que el índice del array1(el array de origen) es mayor que el índice correspondiente delarray2 (el array de destino). Y, por consiguiente, ¡no deberías hacerlo así! Eso es lo que quería decir...

 

Hola a todos.

Intenté escribir mi primer EA :-), pero surgieron algunas dificultades.

La lógica detrás de esto es la siguiente, hay un indicador que muestra los máximos y mínimos de las últimas n barras, cuando rompe un máximo o un mínimo se debe abrir una orden.

Cuando adjunto el EA al gráfico, abre una posición de VENTA. No sé por qué ocurre así.

Creo que el error está en la función iCustom(), que envía los parámetros del indicador.

He adjuntado el EA y el indicador.

Archivos adjuntos:
xox.mq4  10 kb
 
Y aquí está el indicador.
Archivos adjuntos:
go_go_1.mq4  2 kb
 
Pacman:

Hola a todos.

Intenté escribir mi primer EA :-) pero surgieron algunas dificultades.

La lógica detrás de esto es la siguiente, hay un indicador que muestra los máximos y mínimos de las últimas n barras, cuando rompe un máximo o un mínimo se debe abrir una orden.

Cuando adjunto el EA al gráfico, abre una posición de VENTA. No sé por qué ocurre así.

Creo que el error está en la función iCustom(), que envía los parámetros del indicador.

He adjuntado el Asesor Experto y el indicador.

No se llena el índice 0 de las matrices de indicadores,

   for(k=1; k<=Quant_Bars; k++)
      {
       Line_1[k]= Minimum;
       Line_2[k]= Maximum;
      }

pero se accede a ella:

   double L_1= iCustom(NULL,0,"Go_go",K,0,0);  //Линия минимума
   double L_2= iCustom(NULL,0,"Go_go",K,1,0);  //Линия максимума 

Es un poco (estructuralmente) incómodo, pero servirá para la primera vez. Mi consejo: "Acostúmbrate enseguida a los enfoques correctos para escribir código. Por ejemplo, utilizando esta condición en su código:

       if(Total==0 && Opn_B==true)              //Открытых ордеров нет + 
Es analfabeto, porque tarde o temprano, cambiará de probador a comercio en línea, y hay varios Asesores Expertos trabajando en paralelo, y este código no funcionará.
 
Pacman:
Y aquí está el indicador.

¿Cuál es tu problema con iHighest() y iLowest()?
 
 
0x es exactamente el número de 16 dígitos.
Razón de la queja: