[¡AVISO CERRADO!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen. No puedo ir a ningún sitio sin ti. - página 995

 
Hola a todos, aconsejar si es posible (si el precio sube, la orden permanece abierta, pero si el precio ha bajado en 2 puntos, cerrar la orden) aconsejar como hacerlo correctamente
if (iMomentum(NULL,0,-2,PRICE_HIGH,0)) 
      {
      OrderClose(OrderTicket(),OrderLots(),0,Bid,Violet);
 
artmedia70:

No puedo entenderlo... ¿Por qué hay que calcular el diferencial medio sobre n-número de barras del historial en la función de definición de los criterios de negociación?

Si vas a utilizar funciones del libro de texto de Reino Unido, entonces tendría más sentido hacerlo en la función Events().

Eso es todo, mira como SK sugiere seguir el cambio en el StopLevel del broker. Lo que le impide exactamente la misma manera de rastrear el cambio de propagación y, si hay uno, introduzca el siguiente valor en la matriz. Bueno, y al llenar la matriz calcular su "temperatura media en el hospital" (c) SK ...

La idea es que a diferentes horas del día hay diferentes spreads y a veces mi sistema de trading operará con éxito a un spread medio de digamos 12 puntos, y a un spread de 6 puntos estará perdiendo y viceversa, si lo ajusto a un spread 6, perderá a un spread 12, es decir, los niveles de las órdenes pendientes dependen de este parámetro, ya postearé todas mis ideas más adelante, pero ahora tengo que hacer algo escalonado, y además hoy me he enfrentado por primera vez al nivel de Freeze, ¿qué significa? si abrí una orden con una toma y un stop y está en el mercado, está en el plus por 100 pips en cinco dígitos y la toma estaba originalmente en 150 pips, pero ahora está en el plus, no puedo detener la pérdida o tomar ganancias si establezco el stop-loss y take-take y si el precio está cerca de la zona no puedo detener la pérdida o tomar ganancias. como resultado, el sistema funcionó correctamente, di una orden de reversión, pero la terminal falló y el precio bajó sin tomar una posición de Venta y sin tomar una posición de Compra

¿Cómo se combate?

 
ex_kalibur:

La idea es que a diferentes horas del día el spread es diferente, y puede ocurrir que con un spread medio, mi sistema de trading opere con éxito a un spread de, digamos, 12 puntos, y a un spread de 6 puntos pierda dinero, si ajusto el spread para 6 entonces a 12 puntos perderá dinero, es decir, este parámetro depende de los niveles de órdenes pendientes, más adelante publicaré el plan completo, pero ahora tengo que hacer algo escalonado, y hoy también me he enfrentado con el nivel de Freeze por primera vez, si abrí una orden con una toma y un stop y está en el mercado, está en el plus por 100 pips en cinco dígitos y la toma estaba originalmente en 150 pips, pero ahora está en el plus, no puedo parar la pérdida o tomar ganancias si establezco el stop-loss y la toma de ganancias y si el precio está cerca de la zona de ganancias, no puedo cerrarlo por el mercado y fijarlo. como resultado, el sistema funcionó correctamente, di una orden de reversión, pero la terminal falló y el precio bajó sin tomar una posición de Venta y sin tomar una posición de Compra

¿Cómo puedo combatirlo?

Parece que estás en el lugar correcto...
 
Sólo llevo tres días programando y no sé cómo escribir la parte del programa relativa al trailing stop.

El problema es que todo funciona, PERO! mueve el stop loss tanto hacia un lado como hacia el otro, ¿qué debo añadir para que mueva el stop loss sólo hacia el lado de la operación abierta?

Aquí está básicamente la mía:

if (Ticket> 0)
{
if (Opn_B == true)
{
SL = Ask - TS*Point;
Ticket= OrderModify(Ticket,Price,SL,TP,0);
}
if (Opn_S == true)
{
SL = Ask + TS*Point;
Ticket= OrderModify(Ticket,Price,SL,TP,0);
}
}
 

ex_kalibur gracias por la bandeja de entrada, te enviaré un correo electrónico en algún momento.

 
ZahvatkiN:

ex_kalibur gracias por la bandeja de entrada, te enviaré un correo electrónico en algún momento.

¿Perdón?
 

¡Buenas noches!

¿Pueden decirme cómo puedo exportar los datos de un gráfico(valores de los indicadores) de Metatrader 4 a Exel?

Me encantaría recibir ayuda y consejos :)

 
La impresión le ayudará :)
 

Querido artmedia70, te agradezco mucho que estés ayudando activamente en este hilo, los siguientes escritos van dirigidos principalmente a ti, pero si hay más profesionales, por favor no pases de largo y ayuda, resultó como en un cuento de hadas cuanto más se adentra en el bosque más leña, a raíz de enrollarme me di contra un muro, y realmente necesito ayuda, espero que esta estrategia se ponga en práctica y muchos principiantes ganen experiencia en una programación coherente y eficaz

el problema es este:

1. Encuentre las variables Low y High (el proceso de encontrar cada una de ellas sigue siendo diferente)

2. es necesario calcular el spread promedio de los últimos N ticks (la variable N en el externo)

3. Suponiendo una dispersión Alta - Baja > que la media en k partes de la anchura del canal (por ejemplo, 2/3 o mínimo 1/3 de la anchura del canal)

4. Una vez que se cumplen estas condiciones, se colocan los pedidos pendientes:

- por encima de la línea Alto - Vender

- por debajo de la línea Baja - Bahía

Los pedidos se realizan a ambos lados utilizando la parrilla:

*La orden de venta más cercana será el volumen mínimo, y se coloca si es posible en el nivel de High,

* La siguiente orden se colocará a una distancia de Alto + un cierto número de puntos (por ejemplo: Alto + (Alto - Bajo))

* El número total de pedidos debe fijarse en una variable externa, en este caso cada pedido no tiene un volumen igual (por ejemplo el primero 0,1, el segundo 0,2, el tercero 0,3 etc. Aquí suponemos diferentes métodos de aumento de los volúmenes en progresión aritmética o en progresión geométrica, lo decidiremos aquí más adelante, respectivamente, este bloque debe fijarse en una función aparte)

* StopLoss se expone de la siguiente manera: en los ajustes externos especificamos el SL deseado, entonces en el primer (es el más pequeño) SL es igual al StopLoss (de los ajustes), cada StopLoss posterior será igual al mismo valor que en el primero (para 0,1 = 60 puntos, para 0,2 = 40 puntos) es decir, en caso de una activación de un StopLoss en la orden más pequeña todas las órdenes se cerrarán a la vez

* Take Profit es igual a (High -Low)* Point + Open Price

*Condiciones de cierre del mercado:

Abra la bahía...

Si la orden está en beneficio, el nivel Alto ha cambiado y se ha vuelto más bajo que el valor anterior, Bid>= Alto, StopLewel permite cerrar la orden, entonces se cierran todas las órdenes abiertas del tipo Bay, empezando por el mayor volumen de nuestro instrumento

*Condiciones de apertura según el mercado:

si Bay ==0, y al mismo tiempo Bid < Low y al mismo tiempo Ask < High + spread medio, entonces abrimos con el volumen mínimo permitido y eliminamos la orden pendiente de este tipo con el volumen mínimo (si las condiciones lo permiten)

si durante la operación, se abre una nueva orden pendiente con un valor mayor que la primera, y se cierra al mismo precio de cierre, abrimos una nueva orden pendiente con el mismo volumen, al mismo precio que se cerró (si las condiciones lo permiten) y si la colocación de una orden pendiente es imposible, y después del cierre de la última orden, el precio cruza de nuevo el precio de apertura de la última orden cerrada entonces

volvemos al mercado con el mismo volumen y al mismo precio con + deslizamiento

* Después de que se cierre la primera orden (es la orden con el volumen mínimo), se borrarán todas las órdenes de compra pendientes, se supone que no debe haber más órdenes abiertas, entonces se recalcula la orden y se vuelve a lanzar la parrilla.

* Todo el tiempo se calculan las órdenes abiertas para el tipo de orden opuesto y respectivamente se lanza una rejilla con el tipo de orden opuesto.

* No se permite la apertura de órdenes opuestas mientras la primera orden (con el volumen mínimo) esté abierta.

5. cálculo del volumen del lote, que puede ser fijo o porcentual en los ajustes:

Si todas las órdenes tienen un volumen fijo - todas las órdenes con un volumen fijo

-con fijo- el volumen total de todas las órdenes en caso de cerrar la parrilla (serie) por un stop loss, no debe superar la pérdida en % permitida.

En consecuencia, los volúmenes se calculan en el orden en que el máximo es el más lejano al precio actual y con el mínimo stoploss y los más cercanos al precio son los mínimos (

Las series de ejemplo 0.1\0.2\0.3\0.4\0.5 se ven así - si tenemos suficiente dinero y el % permite abrir en este orden

serie 0.1\0.1\0.1\0.2\0.3 - en este caso no tenemos suficiente dinero para toda la serie

6. bloque de cálculo del depósito mínimo

*Aquí se produce el cálculo de la posible pérdida máxima se calcula sobre la base de los valores de las variables High,Low se considera que todas las órdenes pendientes se abrirán, y se cerrarán en Stop Loss, en consecuencia la pérdida dada debe hacer algún porcentaje del depósito, sobre lo que después de los cálculos el comerciante recibe un mensaje:

"con el % de riesgo elegido, si las órdenes se cierran por un stop loss, incurrirá en una pérdida de ...",

o "no hay suficiente dinero para implementar una serie de paradas, el Asesor Experto no funciona".

7. Sólo tengo una función: llevar la cuenta de los acontecimientos, informativa, me gustaría ver los errores como si estuvieran en un libro.

8. y probablemente la última, algún "botón" o una función especial que al pulsar sobre ella (o cambiar la configuración), se eliminen todas las órdenes pendientes del tipo contrario al abierto (si el mercado es de compra, entonces se eliminan todas), y el experto trabaja hasta que se cierra la serie

Me gustaría pedirle que escriba un programa según la estructura del libro https://book.mql4.com/ru/build/index.

para hacer esto en este post, voy a adjuntar todos los archivos del libro, y en cada uno de estos archivos comenzará a trabajar, después de la terminación de cada archivo individual se guardará y también se adjunta al público, en la terminación del programa de codificación también se publicará en este foro

os advierto desde ya que esta idea es únicamente de carácter cognitivo, educativo, y no garantiza que al finalizar el experto sea rentable, se trata de todos los pólipos que se pasan días y horas buscando griales, y quieren machacar el culo de otro un erizo ))))

Mi objetivo personal al terminar de programar es aprender a codificar en esta estructura, quiero decir con todas las reglas: comentarios, funciones individuales, archivos externos, trabajo con las bibliotecas y cosas así.

 

La primera etapa es muy importante, creo que incluso es básica, es un pliego de condiciones correctamente formulado, accesible, para que el programador entienda lo que se necesita de él

Así que estoy esperando los comentarios sobre mi esquema, vamos a escribir unos correctos TdR y luego empezaremos

Razón de la queja: