[ARCHIVO]Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No puedo ir a ningún sitio sin ti - 5. - página 201

 

Puede alguien aconsejar cómo encontrar el símbolo de la ventana del gráfico actual (resaltado) de entre los abiertos, no el que tiene el script/asesor adjunto, sino el que está actualmente activo en el terminal (como también dicen en el foco)

 
harbor:

Puede alguien aconsejar cómo encontrar el símbolo de la ventana del gráfico actual (resaltado) de entre los abiertos, no el que tiene el script/asesor adjunto, sino el que está actualmente activo en el terminal (como también dicen en el foco)

Obtiene el descriptor de la ventana en la parte superior de la secuencia Z de las ventanas del gráfico. Luego, obtén la cabecera basada en ella, y analízala.
 
Zhunko:
Obtiene el descriptor de la ventana en la parte superior de la secuencia Z de las ventanas del gráfico. Entonces, ponte de cabeza con él y analízalo.


Bueno, mql4 parece tener sólo una función conWindowHandle

Pero estoy haciendo una dll, ¿es posible hacer esto a través de winapi de alguna manera? Hay una función llamadaGetWindowText por handle

¿Cómo puedo conseguir el mango?

 
harbor:


Bueno, mql4 parece tener sólo una función conWindowHandle

Pero estoy haciendo una dll, ¿es posible hacer esto a través de winapi de alguna manera? Hay una función llamadaGetWindowText por handle

¿Cómo puedo conseguir el mango?

Pues bien, en la DLL necesitas obtener el handle de la ventana en la parte superior de la secuencia Z. Hay un cliente MDI. Es el padre de las ventanas del gráfico. Ahí es donde hay que conseguir ese descriptor.
 
Por favor, indique qué ocurrirá si opera con EURJPY y USDJPY con lotes iguales (si no son iguales). Quizás alguien lo haya experimentado (necesito una variante de cálculo)
 
YOUNGA:
Por favor, indique qué ocurrirá si opera con EURJPY y USDJPY con lotes iguales (si no son iguales). Quizás alguien lo haya experimentado (necesito una variante de cálculo)
¿Cálculo de qué?
 
YOUNGA:
Por favor, indique qué ocurrirá si opera con EURJPY y USDJPY con lotes iguales en diferentes direcciones (o si no). Quizá alguien lo haya probado (necesito una variante de cálculo)

Aquí el EUR y el USD son la moneda base, y el lote se calcula en ella. Es decir, para el primer par 1 lote es de 100.000 EUR, para el segundo es de 100.000 USD, en ambos casos comprados/vendidos por Yen.
 


Permítanme explicar si usted abre un lote en cada par EURJPY y USDJPY entonces el lote EURUSD debe ser 1 punto de cambio en el precio de EURUSD algo debe suceder con el sintético EURJPY/USDJPY ya que están correlacionados



 

Intentando codificar la siguiente idea.

Si la hora es 01.00.00. o 03.00.00.

Abrir una orden hacia arriba.

En otras ocasiones, abre una orden de baja.

PROBLEMA El programa compila a las 01:00:00 y abre una orden de compra pero no lee || ni nada después.

if(Hora( )==01 && Minuto( )==00 && Segundos()==00||Hora( )==03 && Minuto( )==00 && Segundos()==00 )

Esdecir , alas 03.00.00 el probador no abre una posición de compra, sino deventa.

Todas las demás operaciones se abren de acuerdo con el código.

  if(Hour( )==01 && Minute( )==00 && Seconds()==00||Hour( )==03 && Minute( )==00 && Seconds()==00 )
 
    
   {  
      if (Bid==Price  )
     
  int Ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,SL,TP );
  }
  else
  {
  SL=NormalizeDouble (Price+3000*Point, Digits);         
  TP=NormalizeDouble (Price-100*Point, Digits);
  Ticket=OrderSend(Symbol(),OP_SELL,0.1,Bid,3,SL,TP );
 }
 }
 }

Делал два заголовка if ...... вообще не открывает сделки

 if(Hour( )==01 && Minute( )==00 && Seconds()==00 )
  if(Hour( )==03 && Minute( )==00 && Seconds()==00)
    
   {  
      if (Bid==Price  )
     
  int Ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,SL,TP );
  }
  else
  {
  SL=NormalizeDouble (Price+3000*Point, Digits);         
  TP=NormalizeDouble (Price-100*Point, Digits);
  Ticket=OrderSend(Symbol(),OP_SELL,0.1,Bid,3,SL,TP );
 }
 }
 }
Подскажите - как сделать так что бы в 03.00.00. открывалась сделка на покупку? Спасибо
 
solnce600:

PROBLEMA El programa compila, a las 01.00.00 abre una operación de compra, pero no lee || y el carácter que le sigue.

if(Hora( )==01 && Minuto( )==00 && Segundos()==00||Hora( )==03 && Minuto( )==00 && Segundos()==00 )

Esdecir , alas 03.00.00 el probador no abre una posición de compra, sino deventa.

Todas las demás operaciones se abren de acuerdo con el código.


Bueno, para empezar, acostúmbrate a poner los soportes donde los necesites. Así:

if((Hour( )==01 && Minute( )==00 && Seconds()==00) || (Hour( )==03 && Minute( )==00 && Seconds()==00))
De hecho, debería tener un rango de tiempo, no un valor fijo. Su lógica no es correcta en absoluto. No 1 hora O 3 horas, sino de 1 hora a 3 horas.
Razón de la queja: