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

 

FEAR:

buena respuesta

Y lo más importante, la correcta...
 
VladislavVG:


bool SLowTen = (Open[1]==Low[1]); // no hay sombra inferior de una vela alcista

Busca en el foro la forma correcta de comparar números reales.

Cualquiera puede ofender a un artista, deberías haberlo escrito correctamente. Me gustan mucho las críticas, que son constructivas. Yo también conozco el código feo.

Tengo una pregunta más al respecto - cómo escribir en una condición que el tamaño de una vela es más de 60 puntos (en cinco dígitos).

 
alexey1979621:

Cualquiera puede sentirse ofendido por un artista, deberías haberlo escrito bien. Me gusta mucho la crítica, la crítica constructiva. Yo también conozco el código feo.

Aquí hay otra pregunta al respecto - cómo escribir en la condición de que el tamaño de la vela es mayor que 60 puntos (en cinco dígitos).


Doble comparación:

if (NormalizeDouble(p1-p2,Digits)<0.5*Point) {
   // Значит равны
   }

Cómo prescribir en la condición de que el tamaño de la vela es más de 60 pips (en cinco dígitos).

if (размер_свечи>60*Point) {}
 
artmedia70:

Doble comparación:

Cómo prescribir en la condición de que el tamaño de la vela es más de 60 pips (en un cinco dígitos).


Perdona mi obtusidad, pero ¿p1 y p2 son alta y baja respectivamente? ¿Y qué significa 0,5?

Aplicado a mi código existente

   double STelo = MathAbs(Close[1]-Open[1])/Point; // тело бычьей свечи
   double SHighTen = (High[1]-Close[1])/Point; // верхняя тень бычьей свечи
   bool SLowTen = (Open[1]==Low[1]);    // отсутствие нижней тени бычьей свечи
  
   
   double Razmer_1 = (High[1]-Low[1])/Point; // размер свечи

        
   if(Volume[0]>1) return;

   if (Open[1]<Close[1] && SHighTen > 5*STelo && SLowTen == true && Razmer_1 > 60*Point)


Я правильно должен прописать: 
   double STelo = MathAbs(Close[1]-Open[1])/Point; // тело бычьей свечи
   double SHighTen = (High[1]-Close[1])/Point; // верхняя тень бычьей свечи
   bool SLowTen;

   if (NormalizeDouble(Open[1]-Low[1],Digits)<0.5*Point)  // отсутствие нижней тени бычьей свечи
  
   
   double Razmer_1 = (High[1]-Low[1])/Point; 

        
   if(Volume[0]>1) return;

   if (Open[1]<Close[1] && SHighTen > 5*STelo && SLowTen == true && Razmer_1 > 60*Point) // продажа
 
alexey1979621:

Cualquiera puede sentirse ofendido por un artista, deberías haberlo escrito bien. Me gusta mucho la crítica, la crítica constructiva. Yo también conozco el código feo.

Sólo una pregunta más al respecto - cómo escribir en la condición de que el tamaño de la vela es más de 60 puntos (en cinco dígitos).



Se trata de conocimientos básicos que hay que entender, no sólo buscarlos. La pregunta está tan masticada en el foro que sólo los muy perezosos no pueden encontrar la respuesta y resolverla. Por cierto, es mucho más útil para usted.

Pero la fealdad del código no es para mí. Me parece que es bastante normal introducir variables adicionales para hacer el código más legible.

 
artmedia70:

Doble comparación:



En este caso.

if (NormalizeDouble(p1-p2,Digits)<0.5*Point) {
   

NormalizeDouble() es redundante ;).

 
VladislavVG:


En este caso

NormalizeDouble() es redundante ;).

¿Y entonces explicarle por qué no hay normalización aquí y precios normalizados en las órdenes comerciales? Por eso pongo la normalización aquí, para que no se le pongan los ojos en blanco cuando envíe precios no normalizados en las órdenes comerciales.
 
artmedia70:
¿Y entonces explicarle por qué no hay normalización aquí, sino con precios en órdenes comerciales con normalización? Por eso pongo la normalización aquí, para que no redondee los ojos cuando envíe precios no normalizados en la orden de comercio.


)))))))))))))))))) sí, es un argumento.
 
VladislavVG:

)))))))))))))))))) sí, es un argumento.
Creo que con el tiempo aprenderá dónde lo necesita y dónde no lo necesita. Al mismo tiempo, sabrá inmediatamente que la normalización es necesaria. Y cuando sea posible prescindir de ella, será en la siguiente etapa de aprendizaje... ;) A partir de estas consideraciones...
 
Amigos, por favor, ayuda. Ya han pasado cinco días y no puedo resolverlo. He hecho que mi EA modifique el stop loss de una orden cuando se activan los criterios adecuados. Y la pérdida de la parada - que se debe establecer, tomar ganancias de la última orden cerrada. Pero cuando se inicia la modificación, el robot siempre establece un Stop Loss de 1,0000. No entiendo qué es lo que está mal. Ya me he devanado los sesos. ¿Alguien tiene alguna variante, como tomar el take profit de la orden anterior contra el stop loss de la orden actual?
Razón de la queja: