Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 828

 
Artyom Trishkin:

No está claro qué es lo que necesitamos al final, algunas reflexiones extrañas.


Se trata de dos preguntas en un mismo post mientras se resuelve el mismo problema :-)

1. Cómo devolver un error de creación de objeto desde una función que debería devolver datos

2. ¿Existe una forma de recorrer las posiciones de un símbolo determinadosin tener que utilizar PositionsTotal cada vez?

 
psyman:


Se trata de dos preguntas en un mismo post mientras se resuelve el mismo problema :-)

1. Cómo devolver un error de creación de objeto desde una función que debería devolver datos

2. ¿Existe una forma de recorrer las posiciones de un símbolo determinadosin tener que utilizar PositionsTotal cada vez?

1. ¿Por qué una función de creación de objetos que sólo debe crear un objeto y devolver true en caso de éxito o false en caso de error debe devolver algo más? No debería. La función debe hacer una cosa y devolver el resultado de su trabajo. O, si quieres hacer un monstruo, devuelve los datos a través de variables por referencia.

2. Depende del tipo de cuenta que tengas.

3. Abre por fin la ayuda: hay muchos "descubrimientos maravillosos" allí

 
Artyom Trishkin:

1. ¿Por qué una función de creación de objetos que sólo debe crear un objeto y devolver true si tiene éxito, o false si falla, debería devolver algo más? No debería. Una función debe hacer una cosa y devolver el resultado de su trabajo. O, si quieres hacer un monstruo, devuelve los datos a través de variables por referencia.

2. Depende del tipo de cuenta que tengas.

3. Abre por fin la ayuda - hay muchos "descubrimientos extraños" allí


Entiendo lo que quieres decir. Gracias, simplificaré el código.

El tipo de cuenta es de cobertura.

Puede ser que las preguntas parezcan simples, pero aparecen después de leer la ayuda, no todos los detalles se describen allí, tengo que buscar los detalles en los artículos o aquí.

 
Roman Shiredchenko:

Camaradas - miren el indicador para ver si es correcto. Hay una fórmula Valor = (Open[0]-SMA(P,n))/SMA(P,n))*100%.

Lo pongo en el gráfico - calcula y traza todo. Me pongo a comprobar su valor en alguna barra con la calculadora y no coincide con el que dibujé...

Aquí hay un ejemplo, estoy calculando Open 1,0178, MA(13) 1,0182 usando la fórmula ((1,0178-1,0182)/1,0182) * 100% - el resultado en la calculadora es -0,0393. Y el gráfico de MT4 muestra -0,0929. ¿Es un error en el código o la calculadora no calcula correctamente algunos valores allí? Por favor, ayuda. Adjunto el indicador.

Lo tienes en la fórmula Open[0], así es como debe hacerse.

 
Alekseu Fedotov:

Tienes Open[0] en tu fórmula, así que está diseñado de esa manera.

Pues sí. Así es como estoy viendo los precios de apertura... Hay una apertura y un cloze... confundido...
 
Seric29:
¿Cómo llenar un array de 4 dimensiones del formato int Mas[1][2][2][2] con valores, cómo asignar un valor a cada celda del array, en este caso, hay un array de 2 dimensiones int Arr[1][2]={3,4}; cómo llenar un array de 4 dimensiones?

Utilizar un array de estructuras, es muchas veces más fácil, claro y productivo en cuanto a la ejecución del programa

struct My_St
{
   datetime tm; 
   int      mg;    
   double   tp;     
   double   sl;     
};
My_St st[];
 

Tengo varias herramientas, etiquetadas analíticamente.

Quiero cambiar la combinación de colores de los mismos.

No quiero hacerlo a mano, quiero hacerlo de forma inteligente.

¿Hay alguna forma de hacerlo? Por ejemplo, todo el texto que tengo es negro y lo quiero blanco.

gracias

 
Roman Shiredchenko:
Pues sí. Así es como estoy viendo los precios de apertura.... Parece que hay un abridor y un klose... confundido...

No sé, esa es la idea.


¿Cuál era la idea aquí?

si tomamos el valor de cualquier barra (de History =5000; // el número de barras en el historial calculado)

luego la apertura de la misma barra, pero no cero,

su fórmula(Open[0]-SMA(P,n))/SMA(P,n))*100%


Roman, buena suerte

 
Igor Makanu:

Las matrices multidimensionales suelen rellenarse en los bucles con los valores correctos - es más difícil equivocarse, para una matriz de cuatro dimensiones debería ser algo así, pero podría estar equivocado:

No, no te equivocas. Mi error fue escribirlo así.

A[1][2][4][2] = {{{1,2}, {0,2}, {1,2}, {1,2}},{{1,2}, {1,2}, {1,2}, {1,2}}}, 

Debería haberlo escrito así.

A[1][2][4][2] = {{{{1,2}, {0,2}, {1,2}, {1,2}},{{1,2}, {1,2}, {1,2}, {1,2}}}}, 

Hay 4 soportes alrededor de los bordes y yo tengo 3. Se lee así.

A[1] - означает 1ну строку, один ярус
A[1][2] 2ка в следующих скобочках говорит о том что мы имеем дело с 2мя 3ёх-мерными массивами, другими словами, это как 2 параллельных мира
A[1][2][4][2] - последующие [4][2] описываю 3ёхмерный массив, т.е. каждый из массивов имеет 4 столбца, и в каждом по 2 значения вот пример
{{1,2}, {0,2}, {1,2}, {1,2}} 4 столбца в каждом по значения

En general, gracias, si vivo lo suficiente, trabajaré con ello.

 
Seric29:

Cuando se pasa una estructura a una función, hay que escribir una función para cada estructura, por lo que la función es demasiado estática y carece de versatilidad. Pero las estructuras tienen un lado positivo, puedes combinar arrays de diferentes tipos en estructuras y leerlo como unarray multidimensional entero, pero desgraciadamente he perdido el enlace a este sitio donde se mostraba cómo hacerlo. A decir verdad no soy muy bueno con las estructuras, mucho menos texto si la declaración de la variable global que un punto para acceder a los campos de la estructura, también no entiendo las clases, he releído el material muchas veces en el último poco más entender, pero explicó muy complicado y engorroso, frases demasiado científicos utilizados en la explicación, así que básicamente no entendía gran parte del material, y lo que exactamente los objetos dinámicos se puede hacer a mí también.