Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 814

 
evillive:
Culpa mía, lo compensaré.
No pasa nada, ¡suele pasar! ¡Pero no puedes ver tu suerte sin errores! ;)
 
CJIeCaPb:

Ahh, lo señalé mal, sí).

Se ha comprobado por separado. Sólo el billete de venta estaba equivocado. También he comprobado el resto: pedidos, comparaciones, modificaciones. Pero sigo con el estupor después de hacer los pedidos. Todo funcionaba bien por sí solo.

*Condiciones para introducir if(MA=MA1), ¿está mal? Porque =, no es un signo de condición, el signo correcto es "==", pero si lo escribo así el Asesor Experto no hace nada. Las otras variantes: ">=", "<=", "<", ">" que y "=" conducen a la realización de pedidos y a un mayor estupor.

Ciertamente no es cierto, aunque el compilador lo corregirá, pero ¿quién sabe si lo corregirá o no? Tal vez sustituya a == o !=, o tal vez no lo arregle en absoluto, sino que simplemente ignore la comprobación y la ponga siempre en verdadero.

Compila el código con #property strict, hay mucho más que arreglar.

Si necesitamos comprobar un cruce de 2 MAs, no se comprobará por igualdad. El criterio debe ser algo como "si MA1(2)<MA(2) y MA1(1)>MA(1) - entonces la segunda MA ha cruzado la primera hacia arriba en la vela anterior". Y la igualdad puede esperar un año.

¿Y qué crees que es el tiempo (verdadero)?

Además:

 //+------------------------------------------------------------------06-----------------------------------------------

//Buy

while(OrderType()==1)//Buy (а вот нифига, бай = 0)

и чуть ниже
//--------------------------------------------------------------------------
//Sell
while(OrderType()==2) //опять же, селл = 1
 

¿Cómo organizar un arrayde tipo int con 1.000 millones de valores y luego ordenarlo? Por favor, dame un ejemplo.

Hasta ahora, con los medios estándar de MQL4 puedo organizar un array de números int con sólo 2 millones de valores.

 
solandr:

¿Cómo organizar un array de tipo int con 1.000 millones de valores y luego ordenarlo? Por favor, dame un ejemplo.

Hasta ahora, con los medios estándar de MQL4 puedo organizar un array de números int con sólo 2 millones de valores.

Es una buena idea. Calcule el tamaño de memoria necesario
 
Vinin:
Buen deseo. Calcule la cantidad de memoria necesaria
El problema está claro. Pero, ¿cómo solucionarlo? ¿Existe alguna otra forma que no sea crear directamente un array? Es decir, ¿cómo clasificar 1.000 millones de valores? ¿O es imposible pensar en una solución en MQL4?
 
evillive:

Por supuesto, no es correcto, aunque el compilador lo corregirá, pero ¿quién sabe si es correcto o no? O puede sustituir == por != o no arreglarlo en absoluto, sino simplemente ignorar la comprobación y ponerla siempre en verdadero.

Compilar el código con #property strict, hay muchas cosas que arreglar.

Si necesita comprobar el cruce de 2 MAs, no se comprueba por igualdad, el criterio debe ser algo como "si MA1(2)<MA(2) y MA1(1)>MA(1) - entonces la segunda MA ha cruzado la primera hacia arriba en la vela anterior". Y la igualdad puede esperar un año.

¿Y qué es mientras (verdadero), según usted?

Además:


while(true) - un bucle donde recojo la tendencia:

-si una orden rompe un stop (Tiempo>0) la pongo en el mismo lugar donde estaba;

- si alcanza un determinado nivel(NormalizeDouble(OrderOpenPrice()+TP*Point,Digits)<=NormalizeDouble(Ask,Digits)), entonces entra en otro bucle (donde la condición es el tipo de orden) donde se calcula el beneficio en puntos y se modifica en función de ello.

En cuanto a la condición ""Si MA1(2)<MA(2) y MA1(1)>MA(1) - la segunda MA ha cruzado la primera hacia arriba en la vela anterior"". ¿los números entre paréntesis significan velas? Aquí está mi variante MA>Open[0] || MA<Open[0], ¿funcionará?

#propiedad estricta prescrita, errores corregidos.

He cambiado la forma de obtener el beneficio en puntos: la diferencia obtenida entre el precio actual y el precio de apertura se divide por Punto (línea 217 y 271).

Hice conversiones de tipo en líneas: 218, 272, 369. ¿Es correcto?

Han aparecido dos errores:

posible uso de variable no inicializada 'Prof' Test3.mq4 222 15

posible uso de variable no inicializada 'Prof' Test3.mq4 275 15

Archivos adjuntos:
test3_6.mq4  15 kb
 

queridos expertos....recientemente he empezado a aprender los fundamentos de mql4....tengo una pregunta para ustedes....digamos que tengo un indicador principal y filtros....si se cumple una condición en el indi principal, entonces ciertas condiciones de los filtros deberían coincidir con él, pero si se cumple otra condición en el indi principal, entonces los filtros deberían tener otras condiciones....¡...Necesito esto para abrir un comercio...Puedo usar el signo || en esta situación o todavía no puedo...cualquier respuesta por favor explique de una manera comprensible ya que todavía soy un tonto...Respetuosamente!

 
kempo102938:

queridos expertos....recientemente he empezado a aprender los fundamentos de mql4....tengo una pregunta para ustedes....digamos que tengo un indicador principal y filtros....si se cumple una condición en el indi principal, entonces ciertas condiciones de los filtros deberían coincidir con él, pero si se cumple otra condición en el indi principal, entonces los filtros deberían tener otras condiciones....¡...Necesito esto para abrir un comercio...Puedo usar el signo || en esta situación o todavía no puedo...cualquier respuesta por favor explique de una manera comprensible ya que todavía soy un tonto...Respetuosamente!

Decídete. Necesita una "Y" o una "O".
 
Taak.... el indicador principal muestra las barras del gráfico en 5 colores diferentes (verde, azul, rojo, naranja, gris). Operación de venta: El indi principal muestra una barra gris--> los filtros muestran sus señales--> se abre la operación. Si el indy principal muestra la barra naranja--> los filtros muestran otras señales.... etc. Cómo prescribo correctamente en el código para que las operaciones no se repitan, ya que con cada vela el color del indi principal puede saltar "de un lado a otro"... espero haber explicado bien el problema... ¡Respetuosamente!
 
CJIeCaPb:

while(true) - un bucle donde recojo la tendencia:

¿Y cuándo cree que debería cerrarse este ciclo?

if(R==0)
{
 while(true)
 {
  Sleep(30000);
  Alert("Ошибка!");
 }
}

?

CJIeCaPb:

Sobre la condición ""Si MA1(2)<MA(2) y MA1(1)>MA(1) - la segunda MA ha cruzado la primera MA hacia arriba en la vela anterior"". ¿los números entre paréntesis significan velas? Esta es mi variante MA>Open[0] || MA<Open[0], ¿servirá?

Sí, el número de vela entre paréntesis es la vela para la que se toma el valor de la MA. Sí, lo hará con el precio de apertura.

CJIeCaPb:

He cambiado el método de obtención de beneficios en puntos: la diferencia obtenida entre el precio actual y el precio de apertura se divide por Punto (línea 217 y 271).

Hice conversiones de tipos en líneas: 218, 272, 369. ¿Es correcto?

La variable Profit (que debe declararse como entero) es suficiente para calcular el beneficio en pips, las otras dos son redundantes:

 if(NormalizeDouble(Ask,Digits) <= NormalizeDouble(OrderOpenPrice(),Digits))
 {
  Profit = (int)((NormalizeDouble(OrderOpenPrice(),Digits)-NormalizeDouble(Ask,Digits))/Point);

  Profo = Profit/Point;
   Prof= (int)Profo;
 }
   
 if(OldProfit>Prof  Profit )
  continue;
 else
  OldProfit=Prof  Profit ; //ну и так далее, где профит считается

Y hay un montón de redes de arrastre en kodobase, ¿por qué debería inventar un lissapet con ruedas rectangulares?