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

 

Hola a todos.

Para probar la estrategia en H1 necesito obtener el cierre del día anterior.

En el indicador escribo lo siguiente (después de declarar "CloseLine" en OnInit()) :


int OnCalculate(const int rates_total, const int prev_calculated,

const datetime &time[], const double &open[],

const double &high[], const double &low[],

const double &close[], const long &tick_volume[],

const long &volume[], const int &spread[])

{

Cierre_Día=iClose("EURUSD",PERIOD_D1,1);

ObjectSet("CloseLine",OBJPROP_PRICE1,Close_Day);

return(rates_total);

}

Como resultado, el precio del Día TF no se modifica y la línea no se reordena.

Por favor, ayuda.

Gracias

 

Hola, hay una pregunta sobre un cuatripartito escrita en un cincuentenario. Quién sabe cómo decirme...

Escribir y leer ticks por un indicador.

https://www.mql5.com/ru/forum/6343/page400#comment_1768141

Comenzó en la página anterior - no puede superar a iMAOnArray.

 
Pokrov:
Hola a todos, ¿es mejor usar un ciclo para todo o varios ciclos en bloques? ¿Es una cuestión de rendimiento del EA o no hay diferencia?

El ciclo es el más rápido. Y dentro del ciclo se pueden hacer bloques, por ejemplo, análisis de bloques de órdenes pendientes, análisis de bloques de órdenes de mercado, movimiento de bloques de b/o.

for(int i=OrdersTotal()-1; i>=0; i--)
   {
      if(!OrderSelect(i,SELECT_BY_POS)) 
      {
         Print("OrderSelect( ",i," ) - Error #",GetLastError());
         continue;
      }
      if(OrderSymbol() != SymbolsArray[symNo])          continue;
      if(OrderMagicNumber() != Expert_ID) continue;
      if(OrderType()>3){  } //StopOrder
      if(OrderType()<2){  } //MarketOrder
   }
 
Rattnik:

Hola a todos.

Para probar la estrategia en H1 necesito obtener el cierre del día anterior.

En el indicador escribo lo siguiente (después de declarar "CloseLine" en OnInit()) :


int OnCalculate(const int rates_total, const int prev_calculated,

const datetime &time[], const double &open[],

const double &high[], const double &low[],

const double &close[], const long &tick_volume[],

const long &volume[], const int &spread[])

{

Cierre_Día=iClose("EURUSD",PERIOD_D1,1);

ObjectSet("CloseLine",OBJPROP_PRICE1,Close_Day);

return(rates_total);

}

Como resultado, el precio del Día TF no se modifica y la línea no se reordena.

Por favor, ayuda.

Gracias

¿Estás seguro de que tiene sentido averiguar la cláusula de ayer en cada tic? ¿Quizás sea mejor averiguar si el valor ha cambiado, y sólo si lo ha hecho, entonces llamar a ObjectSet y manejar si ha fallado?
 
Buenas noches si alguien tiene un indicador que calcule el número de ticks en una vela es que en los números por encima o por debajo de las velas. no puedo encontrar un indicador de este tipo en cualquier lugar
 
roma1984:
Buenas noches, ¿tienen algún indicador que calcule el número de ticks en una vela, especialmente en números por encima o por debajo de la vela?
El indicador no muestra el número de ticks en una vela, sólo tiene dígitos, puedes verlo pulsando ctrl+D y pasando el ratón por encima de la vela.
 
danik:
En MT4 hay volúmenes. no son de la bolsa, sino que son ticks, es decir, muestran el número de ticks en una vela. sin embargo, no hay números, puedes ver los números pulsando ctrl+D y pasando el ratón por encima de la vela.
Gracias por el consejo, pero es un poco incómodo
 
tatianati:

Hola, ayuda por favor.

Buscando la igualdad, el mínimo de la primera barra con un precio máximo durante 20 barras a partir de la 5ª barra.

Puse la flecha en la primera barra.

Probando así:

No lo pone bien.

¿Qué te parece esto?

if(MathAbs(iHigh(NULL,0,iHighest(NULL,0,MODE_HIGH,K_Bars,i+5))-lowr) < n*Point) //примерно равно)))

También hay que inicializar las variables.

 
tatianati:

necesitas exactamente E, es un rango-aproximadamente

Me pregunto si para el indicador que estoy buscando desde la 5ª barra hasta la 20ª

La búsqueda es correcta, pero el alcance no lo es. Es mejor comparar el módulo de la diferencia con un número determinado.

Así es:

if(MathAbs(iHigh(NULL,0,iHighest(NULL,0,MODE_HIGH,K_Bars,i+5))-lowr) < n*Point) // разница меньше п пунктов
 
Y si la barra de cero no está involucrada en ningún lugar, tiene sentido comenzar el bucle en 1, entonces no habrá necesidad de escribir [i+1].