Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 408

 
Tapochun:
Todo depende de la lógica del indicador. La mayoría de las veces - sí, en la función OnCalculate().
Lafunción "OnCalculate()" se llama sólo en los indicadores personalizados cuando es necesario calcular los valores del indicador mediante el eventoCalculate. Esto suele ocurrir cuando llega un nuevo tick para un símbolo" - cómo hacer entonces que el cálculo se ejecute sólo una vez al aparecer una vela. En mql4 había algún tipo de comprobación.
 
first_may:
Lafunción "OnCalculate()" se llama sólo en los indicadores personalizados cuando es necesario calcular los valores del indicador mediante el eventoCalculate. Esto suele ocurrir cuando el símbolo recibe un nuevo tick" - cómo hacer entonces que el cálculo se ejecute sólo una vez a la aparición de una vela. En mql4 hay una comprobación.
La forma más fácil, si no es el primer tick (prev_calculado != 0) y rates_total > prev_calculado.
 
Tapochun:
Es más fácil si no es la primera marca (prev_calculado != 0) y rates_total > prev_calculado.
Sí :). Quizás debería buscar un ejemplo de cruce de dos medias móviles exponenciales (lo he visto en algún sitio) y volver a hacerlo.
 
first_may:
Sí :). Quizás debería buscar un ejemplo de cruce de dos medias móviles exponenciales (lo he visto en algún sitio) y volver a hacerlo.
Cuando se empieza, ¡siempre es mejor hacerlo con ejemplos! Las líneas de código separadas apenas le ayudarán. Buena suerte.
 

¿Cómo intercepto el evento de cierre en el tick actual? ¿No hay medios estándar? Es decir, al abrir una operación hay que escribir algo como: y luego comprobar en cada tick:

//Инициализация
int totalOrders=0;
...
//Открытие новой сделки
int ticket = OrderSend(....)
if(ticket > 0)
    totalOrders++;

y luego comprobar en cada garrapata:

if(totalOrders != OrdersTotal())
    //Обработка события закрытия сделки
 
gammaray:

¿Cómo intercepto el evento de cierre en el tick actual? ¿No hay medios estándar? Es decir, al abrir una operación hay que escribir algo como: y luego comprobar en cada tick:

y luego comprobar en cada garrapata:

Hay que comparar el número de posiciones controladas en el tick anterior con el número en el tick actual. Si el tick actual se ha convertido en menos - guardamos (recordamos) el valor actual de las posiciones que se siguen como "pasado" y procesamos el hecho de cerrar.
 
gammaray:

¿Cómo intercepto el evento de cierre en el tick actual? ¿No hay medios estándar? Es decir, al abrir una operación hay que escribir algo como: y luego comprobar en cada tick:

y luego comprobar en cada garrapata:

No entiendo nada. ¿Qué valor quiere obtener?

Leí lo que escribiste de esta manera

{

Apertura de un pedido;

Si la orden se abre, entonces

Pedido total = Pedido total+1;

}

) por defecto totalOrder = 0, pero después de cada apertura de una orden el valor se incrementará, después de 10 aperturas (el valor será exactamente 10) el contador de todas las posiciones abiertas alguna vez (no se comprueba por tipo, por Magik y por símbolo = sumará absolutamente todas las órdenes abiertas)

Y la siguiente condición es la siguiente

si TotalPedido no es igual aTotalPedidos {}

 
¡Buenas tardes a todos! Apelo a los entendidos. Necesito un EA sencillo, cuya tarea sea cambiar los stops de las órdenes disparadas en velas BAJAS o ALTAS en cada periodo del TF. Yo también tengo una mesa, por desgracia. No sé si ya se ha colocado allí. No lo he encontrado. Qué era - con aditivos que desordenan.

 
mefos:
¡Buenas tardes a todos! Apelo a los entendidos. Necesito un simple Asesor Experto, cuya tarea será cambiar los stops de las órdenes disparadas en velas BAJAS o ALTAS en cada periodo del TF. Yo también tengo una mesa, por desgracia. No sé si ya se ha colocado allí. No lo he encontrado. Qué era - con aditivos que desordenan.

Eso es para ti, querida, a la mesa de pedidos. Aquí sólo aconsejamos y ayudamos con los problemas de código.
 
Ivan Vorontsov:
Depende de ti, amigo, de la mesa de pedidos. Aquí sólo se dan consejos y se ayuda con problemas de código.
+++
Razón de la queja: