Preguntas de los principiantes MQL4 MT4 MetaTrader 4 - página 246
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Gracias. Lo intentaré. No sé si funcionará).
1. Al abrir una orden, necesito escribir su Ticket en un array, si el array está desocupado (probablemente =0), para poder informar desde él más tarde en la sobrecarga.
2. Después de cerrar la orden (puede que no esté cerrada), debe iniciarse el informe sobre el beneficio de las órdenes cerradas. Cuando se alcanza un determinado beneficio, es decir: beneficio + Take Profit >= beneficio de una orden abierta (llamémosla Orden 123), abierta antes que todas las demás, o con una pérdida máxima (aún no lo he decidido).
3. Si se cumplen las condiciones: "suma de beneficio + taka beneficio >= beneficio de la orden abierta(llamémosla orden 123)", la orden 123 se cierra y la matriz se pone a cero (probablemente se convierte en = 0 ).
1. Cuando colocas un EA, ¿ya tienes órdenes abiertas y cerradas que quieres tener en cuenta o no y el EA siempre empieza sin órdenes abiertas y no tiene en cuenta las órdenes abiertas ya cerradas?
2. No está nada claro. Usted tiene varias órdenes. Cuando se cierra una orden, se calcula el beneficio total y aparecen los datos del beneficio de la orden cerrada. Y ahí están los datos sobre los beneficios de las órdenes que no están cerradas; puedes calcularlos. Qué se compara con qué. Por ejemplo, tenemos 3 pedidos. 1 está cerrado, 2 se está cerrando, 3 está abierto. Tenemos los perfiles Pr1, Pr2 y el estimado Pr3. Comparamos qué con qué. Entendemos que no se tienen en cuenta las comisiones y los canjes cuando la orden no está cerrada.
3. En realidad, si se pone a cero la matriz con las entradas, ¿qué pasará después? Las órdenes de mercado permanecerán en el mercado. ¿Cómo los cerraría?
Pregunta: ¿Cómo puedo mantener el valor de la barra alta ay de la barra baja b paraconectarlos con una línea indicadora?
¿Debo crear dos matrices adicionales para ello?
Sí. Matrices de búfer.
Entonces, resulta como en ZigZag. ¿Y hay que aplicar alguna función especial para no dibujar dos de ellos?
1. Cuando colocas un EA, ¿ya tienes órdenes abiertas y cerradas que quieres tener en cuenta o no, y cada vez el EA arranca sin órdenes abiertas y no tiene en cuenta las órdenes cerradas anteriormente?
2. No está nada claro. Usted tiene varias órdenes. Cuando se cierra una orden, se calcula el beneficio total y aparecen los datos del beneficio de la orden cerrada. Y ahí están los datos sobre los beneficios de las órdenes que no están cerradas; puedes calcularlos. Qué se compara con qué. Por ejemplo, tenemos 3 pedidos. 1 está cerrado, 2 se está cerrando, 3 está abierto. Tenemos los perfiles Pr1, Pr2 y el estimado Pr3. Comparamos qué con qué. Entendemos que no se tienen en cuenta las comisiones y los canjes cuando la orden no está cerrada.
3. En realidad, si se pone a cero la matriz con las entradas, ¿qué pasará después? Las órdenes de mercado permanecerán en el mercado. ¿Cómo se cierran?
Una vez más ))))
Tenemos órdenes abiertas, supongamos 5 órdenes que son todas negativas. El primero (123) con 0,5 lotes ha caído en menos. Abrimos una nueva orden (456) con 0.1 lote, el ticket de esta orden se escribe en el array cuando se abre. Luego procedemos con otra serie de órdenes con el mismo lote; ganamos algunas ganancias y perdemos otras. Pero la orden 123 sigue siendo negativa y abierta. Una vez que el beneficio de todas las órdenes cerradas después de la orden 456 (también está cerrada) es mayor que el beneficio de la orden 123, encontramos la orden 123 ya que es la primera orden que sigue abierta, la cerramos y ponemos a cero el array.
Si tenemos varias órdenes abiertas, abrimos una más bajo ciertas condiciones. Supongamos que si el total del pedido>=5
fin de pedido (billete 456)
si la orden se abre con éxito
si la matriz no está ocupada
El ticket 456 se escribe en la matriz
La orden 456 se cerró en beneficio (sin importar la ganancia o la pérdida), después se abrieron y cerraron otras órdenes, pero el array almacena la entrada 456.
CalCloseProfi () - esta función comprueba el beneficio de las órdenes cerradas
recorre las órdenes cerradas por magia, compra, venta, empezando por la orden con ticket 456 (tomada del array) y hacia arriba, y cuenta su beneficio
FirstOrder() - esta función busca la primera orden abierta (debería encontrar la 123)
Si el perfilCalCloseProfi> FirstOrder, entonces cierra la orden 123 y pone a cero el array, de manera que pueda volver a escribir allí cuando se cumplan las condiciones.
No sé de qué otra manera explicarlo)
Las condiciones en las que se ejecutará esta función, puedo escribir, pero no me enfrento a las matrices.
Necesito un ejemplo, cómo obtener información en el array, concretamente OrederTicket cuando se abre, y cómo obtenerla después.
Es deseable utilizar una matriz doble y escribir el mago en una parte de ella, de modo que cuando se trabaja en una cuenta en diferentes configuraciones no se mezclan (o tal vez no, no soy bueno en las matrices).
Gracias de antemano
Una vez más ))))
Hay órdenes abiertas, supongamos 5, todas negativas. La primera (123) con 0,5 lotes fue negativa. Abrimos una nueva orden (456) con 0.1 lote, el ticket de esta orden se escribe en el array cuando se abre. Luego procedemos con otra serie de órdenes con el mismo lote; ganamos algunas ganancias y perdemos otras. Pero la orden 123 sigue siendo negativa y abierta. Una vez que el beneficio de todas las órdenes cerradas después de la orden 456 (también está cerrada) es mayor que el beneficio de la orden 123, encontramos la orden 123 ya que es la primera orden que sigue abierta, la cerramos y ponemos a cero el array.
Si tenemos varias órdenes abiertas, abrimos una más bajo ciertas condiciones. Supongamos que si el total del pedido>=5
fin de pedido (billete 456)
si la orden se abre con éxito
si la matriz no está ocupada
El ticket 456 se escribe en la matriz
La orden 456 se cerró en beneficio (sin importar la ganancia o la pérdida), después se abrieron y cerraron otras órdenes, pero el array almacena la entrada 456.
CalCloseProfi () - esta función comprueba el beneficio de las órdenes cerradas
recorre las órdenes cerradas por magia, compra, venta, empezando por la orden con ticket 456 (tomada del array) y hacia arriba, y cuenta su beneficio
FirstOrder() - esta función busca la primera orden abierta (debería encontrar la 123)
Si el perfilCalCloseProfi> FirstOrder, entonces cierra la orden 123 y pone a cero el array, de manera que pueda volver a escribir allí cuando se cumplan las condiciones.
No sé cómo explicarlo de otra manera)
Las condiciones en las que se ejecutará esta función, puedo escribir, pero no me enfrento a las matrices.
Necesito un ejemplo, cómo poner la información en el array, es decir OrederTicket al abrir, y cómo obtenerla después.
Es deseable utilizar una matriz doble y escribir el mago en una parte de ella, de modo que cuando se trabaja en una cuenta en diferentes configuraciones no se mezclan (o tal vez no, no soy bueno en las matrices).
Gracias de antemano
Buenas tardes. ¿Pueden decirme por qué hay un error: array fuera de rango en '.......'? (152,41)
ticket = OrderSend (Symbol(), OP_SELL, lastlot, Bid, Slippage, 0, tpl, Magic, 0, Red);
if (ticket <1)
{
Print("Sell open error");
}
if (ticket >1 && SaveTick [1] <= 0 && SaveTick[0] == Magic)
{
FindTicket();
Print(" Orden de entradas: ", FindTicket(), " Order Array: ", SaveTick[1], " Array Magic: ", SaveTick[0]);
}
int FindTicket()
{
int oldticket;
int tick=0;
ticket=0;
ArrayResize( SaveTick, 2 );
for(int cnt = OrdersTotal ()-1; cnt>=0; cnt--)
{
if(OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES))
{
if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
{
oldticket = OrderTicket();
if (oldticket > ticket)
{
ticket = oldticket;
tick = OrderTicket();
SaveTick[1] = tick;
SaveTick[0] = Magic;
}
}
}
}
return(tick);
}
Buenas tardes. ¿Puede decirme por qué hay un error: array fuera de rango en '.......'? (152,41)
Inserte el código correctamente, alt S o por el icono, código de pista.
¿Por qué se necesita la matrizSaveTick?
Sólo se utilizan 2 elementos del array. Sustitúyelas por variables globales o estáticas si las declaras en una función.
No es sensato utilizar un array para 2 variables.
Y parece que llamas a los arrays antes de llamar a la funciónFindTick(), donde se establece el tamaño del array SaveTick. Y hay un rebasamiento de la matriz.