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

 
ANDREY:

He encontrado un patrón estadístico estable en el probador, que ha estado produciendo constantemente ganancias con reducciones aceptables desde 2008. Tengo que probarlo en diferentes pares y marcos, etc.
Pero necesito probarlo utilizando varios parámetros simultáneamente. La optimización lleva mucho tiempo irreal. Y ya he escrito un código que prueba lo que necesito mucho más rápido. Y ahora estoy mejorando mi código, es decir, quiero que funcione aún más rápido en el probador, o lo más rápido posible. El algoritmo principal en mi código es la apertura de órdenes en 30 puntos después de cada mínimo local. Así que trato de hacerlo lo más rápido posible.

Su tarea será más fácil si puede explicar cómo identifica el extremo local.

Si el indicador Fractals es adecuado para eso, entonces debe comprobar en la segunda barra la presencia de un fractal y a partir de este valor debe calcular los 30 puntos o pips necesarios... lo que quiera.

 
MakarFX:

La comprobación en tu código no es una carga, pero si realmente quieres probarlo, pruébalo.

Lo he probado. Vuelve a abrir los pedidos equivocados (en cuanto a tiempo, precio y cantidad)

Su código.

double LoU;
int OnInit()
  {
   LoU=Bid;
  }
//+------------------------------------------------------------------+
void OnTick()
  {
   if(Low[1]<LoU) {LoU=Low[1];}
   if ((Bid-30*Point)>=LoU)
     {
      if(OrderSend(Symbol(),OP_SELL,0.1,Bid, 3,0,0,"300",0)) LoU=Bid;
     }
  }


Gracias por la ayuda.

 
Alexey Viktorov:

Su tarea será más fácil si puede explicar cómo identifica el extremo local.

Si el indicador Fractals es adecuado para eso, entonces comprueba en la segunda barra la presencia de un fractal y cuenta los 30 puntos o pips necesarios... lo que quiera.

Si por extremo entendemos el mínimo local tras el cual se abre la orden, este mínimo se define comprobando el valor del precio mínimo en cada tick o vela. Y esto es exactamente con lo que estoy luchando. Quiero que todo sea mucho más rápido para poder abrir órdenes en las posiciones que necesito.

 
ANDREY:

Si se entiende que un extremo es un mínimo local tras el cual se abre una orden, ese mínimo se determina comprobando el valor del precio mínimo en cada tick o vela. Y esto es exactamente con lo que estoy luchando. Quiero que todo sea mucho más rápido para poder abrir órdenes en las posiciones que necesito.

El extremo es un mínimo o un máximo local. ¿Cómo se define?

 
Alexey Viktorov:

Su tarea será más fácil si puede explicar cómo define un extremo local.

Si el indicador Fractals es adecuado, entonces comprueba en la segunda barra la presencia de un fractal y a partir de este valor calcula los 30 puntos o pips necesarios... lo que quiera.

Creo que el indicador fractal no me conviene. Se perderán muchos pedidos.

La orden abierta por mi código con la comprobación del precio en cada tick está resaltada en azul. Creo que, el indicador fractal no me dice nada necesario en este caso.

 
Alexey Viktorov:

Un extremo es un mínimo o un máximo local. ¿Cómo se define?

En mi caso, es un mínimo.

 
ANDREY

¿Qué es?

Pr

¿cómo se inicializa?

 
MakarFX:
Depende de dónde lo pongas

Por ejemplo, entre la apertura de dos órdenes adyacentes. Es decir, recuerda la barra de la última orden abierta y abre una orden en cuanto el precio esté por encima del mínimo que define esta función en 30 puntos. Pero en este caso, esta función tiene que ser llamada en cada tick. Cambia el chiringuito por el jabón.......

 
ANDREY:

Cambio de un chivato por un jabón.......

Peor aún... todavía necesito saber el número de barras


He ajustado...pruebe con

 
MakarFX:

¿Qué es?

¿cómo se inicializa?

double LoU,Pr;
void OnTick()//484
{
Tick++;
if (Bid<LoU)
LoU=Bid;
//**************************************************************||TimeCurrent()==1262568096
if (Bid-LoU>=0.0030&&Pr!=LoU)
{
OrderSend(Symbol(),OP_SELL,0.1,Bid, 3,0,0,"300",0);
Print("---------------------КАЖДЫЙ ТИК ------Tick---------=     "    ,   Tick);
Pr=LoU;
LoU=Bid;
}
}
Pr es una variable para que sólo se abra una orden después de 30 pips. Sin esta variable se abren en cada tick
Razón de la queja: