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

 
MakarFX:

Lo he firmado.

Makar, deja de jugar con la cabeza del hombre. Sólo necesita la variable de nivel global y el precio actual.

input int      Points = 30;
double LoU;

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(Bid-LoU >= Points*_Point)
    {
     OrderSend(Symbol(),OP_SELL,0.1,Bid,3,0,0,"300",0);
     Print("---------------------КАЖДЫЙ ТИК ------Tick---------=     "    ,   Tick);
     LoU = Bid; // Здесь вместо Bid можно поставить любую цену
    }
  }

Así, en cada tick se comprobará la diferencia del precio actual y el precio en la variable LoU y si esta diferencia es igual o supera los 30 puntos - se cumple la condición, la variable LoU tomará un nuevo valor y la diferencia se comprobará con un valor diferente.

 
ANDREY:

Aquí está su código.

Pero no abre ningún pedido por alguna razón.

Se está abriendo para mí. Comprueba lo que dice el registro.


 

¡Buenos días!


Estoy creando un indicador en una ventana separada. Quiero establecer la altura inicial de la ventana, por ejemplo 100

Tenemos una función estándar:

#property indicator_height  100
IndicatorSetInteger(INDICATOR_HEIGHT, 100)

Pero bloquean el cambio de altura del usuario, siempre se queda en 100(((( Y realmente necesito poder cambiarlo manualmente después


¿Alguna otra opción?) Hasta ahora, he encontrado una manerade simular a través deWinAPI, que estiramos la ventana con el ratón (y no estoy seguro de lo que puedo hacer)

 

Hazlo:

IndicatorSetInteger(INDICATOR_HEIGHT, 100);
IndicatorSetInteger(INDICATOR_HEIGHT, 0);
 
alex_xss:

¡Buenos días!


Sólo tiene que borrar

IndicatorSetInteger(INDICATOR_HEIGHT, 100)
 
Aquí hay una sutileza. Primero se fija el tamaño y luego se pone a cero para liberar la fijación, que no cambia el tamaño. No hay otra forma de evitarlo.
 
Alexey Viktorov:

Makar, deja de jugar con la cabeza del hombre. La variable de nivel global y el precio actual son suficientes para él.

Así, en cada tick se comprobará la diferencia del precio actual y el precio en la variable LoU y si esta diferencia es igual o supera los 30 puntos - se cumple la condición, la variable LoU tomará un nuevo valor y la diferencia se comprobará con un valor diferente.

Te equivocas radicalmente.... Gracias a Makar, he ampliado mis horizontes en forex de forma significativa y, sobre todo, muy efectiva. Si no fuera por él, no sé cuándo habría aprendido tantas cosas útiles para mí. Ojalá hubiera más "gestores" de este tipo en este foro. Fue él, y no otra persona, quien me dijo que la solución a mi problema es el uso de EventSetTimer(60) Le estoy muy agradecido por el apoyo informativo rápido y de alta calidad.

Y lo que aconsejas, lo sabía hace mucho tiempo y en mi código tus consejos están presentes desde el principio.
 
Alexey Viktorov:

Makar, deja de jugar con la cabeza del hombre. La variable de nivel global y el precio actual son suficientes para él.

Nunca se lee el tema primero y se aconseja lo que ya se ha pasado

 
MakarFX:

Nunca lees el tema primero y aconsejas lo que ya se ha hecho

Estoy de acuerdo contigo al 100%.... sin ofender a Alexei.....

 
MakarFX:

A mí me funciona. Comprueba lo que dice el registro


2021.05.20 06:30:45.176 GBPUSD,M1: 52255 tick events (1440 bars, 53255 bar states) processed in 0:00:00.000 (total time 0:00:05.906)
2021.05.20 06:30:45.163 2010.01.04 00:00:00  ×ÈÑÒÛÉ inputs: Points=30; 
2021.05.20 06:30:45.145 TestGenerator: spread set to 2
2021.05.20 06:30:45.145 TestGenerator: no connect to trade server, default environment will be applied