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

 
Chiripaha:

Me he encontrado con este interesante problema:

Escribo una condición trivial:

,,,

Si sus precios A y B son iguales, la condición correcta podría ser la siguiente

if( А + 0.5 * Point < Б )
{
  // Выполнить действия
}
 
Aizec:

¿Puedo tener un pequeño ejemplo de código?

https://www.mql5.com/ru/code/10831
 


TarasBY:

Entendido:
Los números fraccionarios deben normalizarse antes de compararlos.
Desaparecido:

Si sus precios A y B, la condición correcta podría ser la siguiente

Muchas gracias por su ayuda.

Yo normalizo los datos todo el tiempo, y por eso me sorprendió un fenómeno similar. Pero aparentemente no todo se tiene en cuenta en el proceso de redacción y por la experiencia, por lo que el consejo de "normalizar justo antes de comparar los parámetros que se comparan" es muy eficaz. Todo ha funcionado con coherencia.

 

Buenas noches a todos.

¿Pueden decirme por qué no se abre un pedido?

int último;

int start()

(

if (Hour( ) == 12) // si se forma una vela de 12 horas en TF 60
last = iBarShift (Symbol (),0,iTime( NULL, 0, 0) ); // recuerda N de esta vela
if (last == 10) // y cuando esta vela es N10

int Ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,1,Bid-1500*Point,Bid+300*Point, "jfh",123 ); // abrir la orden

)

return(0);

Creo que iBarShift no funciona porque el parámetro iTime( NULL, 0, 0) ) devuelve el tiempo en segundos, mientras que yo lo necesito en el formato D'04.04.2000 19:05 '.

PREGUNTA 1. ¿Qué función devuelve la hora de apertura de una vela en el formato D'04.04.2000 19:05 '

Lo he comprobado - con este formato la función iBarShift funciona y la orden se abre. Pero sólo funciona si falta la primera condición if (Hour( ) == 12)

PREGUNTA 2 ¿Por qué iBarShift no funciona después de la condición if (Hour( ) == 12)

GRACIAS.

 
solnce600:

Buenas noches a todos.

¿Pueden decirme por qué no se abre un pedido?

int último;

int start()

(

if (Hour( ) == 12) // si se forma una vela de 12 horas en TF 60
last = iBarShift (Symbol (),0,iTime( NULL, 0, 0) ); // recuerda N de esta vela
if (last == 10) // y cuando esta vela es N10

int Ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,1,Bid-1500*Point,Bid+300*Point, "jfh",123 ); // abrir la orden

)

return(0);

Creo que iBarShift no funciona porque el parámetro iTime( NULL, 0, 0) ) devuelve el tiempo en segundos, mientras que yo lo necesito en el formato D'04.04.2000 19:05 '.

PREGUNTA 1. ¿Qué función devuelve la hora de apertura de una vela en el formato D'04.04.2000 19:05 '

Lo he comprobado - con este formato la función iBarShift funciona y la orden se abre. Pero sólo funciona si falta la primera condición if (Hour( ) == 12)

PREGUNTA 2 ¿Por qué iBarShift no funciona después de la condición if (Hour( ) == 12)

GRACIAS.


es decir, usted (si le he entendido bien) abre una posición en la barra 22 del marco horario

int start()
  {

if(iBarOfDayCalc(60)==22)
     int Ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,1,Bid-1500*Point,Bid+300*Point,"jfh",123 ); //открыть ордер

 return(0);
  }

//  фуннкцыя------------------------
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 26.02.2008                                                     |
//|  Описание : Возвращает расчётный номер бара от начала суток.               |
//|           : Нумерация баров начинается с 1 (единица).                      |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    tf - таймфрейм                       (0 - текущий таймфрейм)            |
//|    dt - дата и время открытия бара      (0 - текущее время)                |
//+----------------------------------------------------------------------------+
int iBarOfDayCalc(int tf=0, datetime dt=0) {
  if (tf<=0) tf=Period();
  if (dt<=0) dt=TimeCurrent();
  if (tf>PERIOD_D1) {
    Print("iBarOfDayCalc(): Таймфрейм должен быть меньше или равен D1");
    return(0);
  }
  double ms=MathMod(dt/60, 1440);      // количество минут от начала суток
  int    bd=MathFloor(ms/tf)+1;        // номер бара от начала суток

  return(bd);
}
 
r772ra:


Es decir, usted (si lo entiendo bien) abre una posición en la barra 22 del marco horario

En mi ejemplo - exactamente así, es decir, en la vela 22.

Pero en general - me gustaría recordar cualquier (con los parámetros que necesito) vela

y después de ella (memorizado) vela se moverá a una distancia deseada (es decir, será - 5,6....100)

abrir un pedido.

Por lo tanto, si no me equivoco, la función anterior de Kim probablemente no me sirva,

porque cuenta las velas desde el principio del día y sólo funciona con 24 velas.

Creo que necesito la función iBarShift que puede recordar cualquier vela.

(Por ejemplo, cada quincuagésima o centésima vela de cualquier vela que necesite).

Pero esta función por alguna razón no trabajo(los detalles que he señalado en el primer post)

Les agradecería que me ayudaran a encontrar respuestas a mis preguntas.

Muchas gracias por su participación.

 

Buenas tardes, podrían aconsejarme cómo hacer para que después de abrir esta posición en particular el código del EA comience a funcionar desde el principio, cuando hago

si (ticketbuy>0)
{
volver;
}

No abre más órdenes en otras condiciones y tengo que abrir varias. Tengo que abrir varios pedidos más. Gracias.

 
Vinin:

Si hay suficientes topes indicadores, se puede hacer sin objetos


¿pero cómo? si el indicador está en ventana, ¿cómo se pueden mostrar las flechas en el gráfico? yo sólo uso 4 buffers

 

Buenas tardes. Siento entrometerme en una conversación en curso... Si tienes un minuto... tengo un indicador que dibuja la flecha hacia arriba y hacia abajo necesito hacer un EA para él puedo decir que apenas estoy empezando a aprender muell y no trato con indicadores

#propiedad ventana_del_gráfica_del_indicador

#property indicator_buffers 2

#property indicator_color1 blue

#property indicator_color2 Rojo

//---- parámetros de entrada

extern int NumBars=500;

//---- buffers

doble ExtMapBuffer1[];

doble ExtMapBuffer2[];

doble pliego;

tal vez alguien tiene una plantilla

 

Por favor, avisen si alguien lo sabe. Gepard 5.0 Expert Advisor en Forex4you está abriendo algunas operaciones con grandes minus. ¿Dónde puedo ajustar la configuración?