[ARCHIVO] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 3. - página 449

 
artmedia70:

1. Encuentra el fractal más cercano a la barra cero y memoriza su tiempo y nivel de precio en variables int y double

2. Con cada tic, busca el fractal más cercano a la barra cero. Si su tiempo no es igual al tiempo fractal, que se encontró en el paso 1, entonces...

2.1 Compruebe su nivel de precios.

2.1.1 Si está por debajo del nivel fractal en p1, entonces ... una acción

2.1.2 Si está por encima del nivel fractal en p1, .... otra acción

2.2 Escribe el tiempo de este fractal y su nivel en las variables del paso 1(int y double)

3. Volver al punto 2


¿No es así en mi código?
 
DOCTORS:

¿No es así en mi código?
No lo es.
 
artmedia70:
no es así


Estoy de acuerdo en que no es una condición fractal, pero en el hecho del resto?

1. Determino por el contador que se trata del primer fractal (z=0), asigno la variable al extremo de la condición (fractal) (f1= iLow(Null,0,3)).

2. En el otro caso (cuando z=1, por lo que no es el primer "fractal", lo comparamos con el anterior (f1 > iLow(NULL,0,3) )

2.1. si el valor del anterior es mayor, asigno un nuevo valor a la variable (f1= iLow(NULL,0,3) y pongo el contador a cero (z=0)

2.1 En caso de que el valor anterior sea menor que el nuevo (f1 < iLow(NULL,0,3) ) cierro la posición.

¿No es así?

 
DOCTORS:


Estoy de acuerdo en que no es una condición fractal, pero en el hecho del resto?

1. Determino por el contador que se trata del primer fractal (z=0), asigno la variable al extremo de la condición (fractal) (f1= iLow(Null,0,3)).

2. En el otro caso (cuando z=1, por lo que no es el primer "fractal", lo comparamos con el anterior (f1 > iLow(NULL,0,3) )

2.1. si el valor del anterior es mayor, asigno un nuevo valor a la variable (f1= iLow(NULL,0,3) y pongo el contador a cero (z=0)

2.1 En caso de que el valor anterior sea menor que el nuevo (f1 < iLow(NULL,0,3) ) cierro la posición.

¿No es así?

¿Dónde está la comparación temporal entre el primer y el segundo fractal?
 
artmedia70:
¿Dónde está la comparación temporal del primer y segundo fractal?


¿Para qué? Por supuesto que sí, pero en mi caso, ¿encontrar un "fractal" está definido por una condición (baja-mi 5 barras)? Y no por el tiempo...

Una vez más, el contador "z" es el propio bloqueador, por lo que la definición de "fractal" en mi caso no hace un bucle en uno.

 

Ayuda, por favor. Quiero abrir una posición de bloqueo cuando se alcance el nivel de stoploss y mantenerla si el precio sigue moviéndose en dirección desfavorable. El problema es que quiero abrir muchas órdenes en lugar de una.

Esta es la condición:

if (OrderType == OP_SELL && LRMA > OrderOpenPrice() + StopLoss*Point) 
 {
  OrderSend(NULL, OP_BUY, Lot, Ask, 2, 0, 0, 0, 111, 0, Green);
 }

El contador no funciona por alguna razón. Lo he intentado todo.

 
Hola, compruebo el historial antes de abrir una orden (función isLossLastPos de Kim). Pero no siempre se abre a tiempo, es decir, la orden se abre primero y después de unos ticks la función funciona, pero la orden ya está abierta.
 
chuvee:

Ayuda, por favor. Quiero abrir una posición de bloqueo cuando se alcance el nivel de stoploss y mantenerla si el precio sigue moviéndose en dirección desfavorable. El problema es que quiero abrir muchas órdenes en lugar de una.

Esta es la condición:

El contador no funciona por alguna razón. Lo he intentado todo.

Haga una comprobación antes de abrir una cerradura: si no hay posición de bloqueo, ábrala.
 
T-G:
Hola, compruebo el historial antes de abrir una orden (función isLossLastPos de Kim), pero a veces ocurre que no se abre a tiempo, es decir, la orden se abre primero y después de unos ticks la función surte efecto, pero la orden ya está abierta. ¿Cómo debo solucionarlo?

La función comprueba la última posición cerrada, no cualquier posición del historial. Si la última posición cerrada es perdedora, esta función devolverá true, en caso contrario devolverá false

Así que compruebe si quiere abrir una posición en caso de que la última posición haya cerrado con pérdidas:

   if (isLossLastPos(Symbol(), OP_BUY, Magic)) {
      // Код открытия позиции, если последняя закрытая позиция Buy с магиком Magic убыточна
      }

o

   if (!isLossLastPos(Symbol(), OP_SELL, Magic)) {
      // Код открытия позиции, если последняя закрытая позиция Sell с магиком Magic закрыта с прибылью или в ноль
      }

Algo así... si la memoria no me falla.

 
artmedia70:

La función comprueba la última posición cerrada, no cualquier posición del historial. Si la última posición cerrada es una pérdida, esta función devolverá true, en caso contrario devolverá false

Así que compruebe si quiere abrir una posición en caso de que la última posición haya cerrado con pérdidas:

o

Algo así... si la memoria no me falla

La función no tiene tiempo para mostrarlo. La orden se abre primero, pasan un par de ticks y sólo entonces la función muestra la última pérdida pero la orden ya se ha abierto.

Si el movimiento es muy fuerte, en una vela se pueden abrir 8 órdenes

Razón de la queja: