Diré lo mismo. No se te da bien la lógica. ¿Cuál es el problema para calcular inmediatamente el lote inicial, basándose en los fondos disponibles y el valor del riesgo (creo que se escribió sobre el 3%)? ¿Por qué hay que hacer todo en un solo lugar?
Tome el valor del margen libre, multiplíquelo por el riesgo, divídalo por 100 y el valor del margen para 1 lote - aquí está la fórmula más simple para calcular el lote con un porcentaje determinado del margen libre. Además, hay que tener en cuenta el paso del cambio de lote y evitar que se supere el tamaño de lote mínimo/máximo, permitido por la empresa de corretaje:
Te comento que el EA opera en un corto periodo de tiempo en el que hay una probabilidad de que se abran 9 órdenes opuestas consecutivas que se solapan entre sí y cada orden siguiente se multiplica por 2, por lo que el margen puede no aguantar y la última orden pendiente puede no abrirse, y por tanto hay que calcular a partir del último lote máximo posible. He calculado que el mejor número de órdenes en un intervalo de 5-10 minutos es 9. En general necesito calcular un margen en caso de que todas las órdenes se abran y en base a estos datos en orden inverso calcular el primer lote.
¿Dónde lo he escrito mal? Creo que lo he cogido de un ejemplo, ¿podríais decirme cómo se escribe correctamente para que el pedido se cierre
en condiciones de compra inversa? Me estoy devanando los sesos.
Si el pedido está seleccionado en el ticket, no necesita una acción en el bucle. Si quierescorregir el código, utiliza el botón SRC parapegar el código en el mensaje.
#property copyright"Copyright 2017, MetaQuotes Software Corp."#property link"https://www.mql5.com"#property version"1.00"#property strict//+------------------------------------------------------------------+//| Expert initialization function |//+------------------------------------------------------------------+intOnInit()
{
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+//| Expert deinitialization function |//+------------------------------------------------------------------+voidOnDeinit(constint reason)
{
}
//+------------------------------------------------------------------+//| Expert tick function |//+------------------------------------------------------------------+int ticketB,ticketS;
voidOnTick()
//------------------------------------------------------------------------------------------------
{
double p = iClose("EURUSD",PERIOD_M15,0); //показание текущей цены double r = iRSI ("EURUSD",PERIOD_M15,21,PRICE_CLOSE,0); //значение индюка RSIdouble m = iMA ("EURUSD",PERIOD_M15,89,0,MODE_EMA,PRICE_CLOSE,0); //значение индюка МАint OrderCount = 1;
//---------------ПОДСЧЕТ ОРДЕРОВ------------------------------------------------------------------if(OrdersTotal() >= OrderCount)
{
return;
}
//-------------ОТКРЫТИЕ ОРДЕРА НА ПОКУПКУ--------------------------------------------------------------------/*if(r > 50 && p > m) //условия открытия ордера на покупку
{
ticketB = OrderSend(Symbol(),OP_BUY,0.1,Ask,5,0,0,"",111,0,Green);
}
//------------ЗАКРЫТИЕ ОРДЕРА НА ПРОДАЖУ--------------------------------------------------------
if(r<50 && p<m)
{
for(int i=1; i<=OrdersTotal(); i++)
{
if(OrderSelect(ticketB,SELECT_BY_TICKET)==true)
{
if(OrderType()==OP_BUY)
{
ticketB = OrderClose(OrderTicket(),0.1,Bid,5,Red);
}
}
}
}*///------------------ОТКРЫТИЕ ОРДЕРА НА ПРОДАЖУ---------------------------------------------------------if(r < 50 && p < m) //условия открытия ордера на продажу
{
ticketS = OrderSend(Symbol(),OP_SELL,0.1,Bid,5,0,0,"",111,0,Blue);
}
//---------------------ЗАКРЫТИЕ ОРДЕРА НА ПРОДАЖУ---------------------------------------------------------if(r>50 && p>m)
{
for(int i=1; i<=OrdersTotal(); i++)
{
if(OrderSelect(ticketS,SELECT_BY_TICKET)==true)
{
if(OrderType()==OP_SELL)
{
ticketS = OrderClose(OrderTicket(),0.1,Ask,5,Red);
}
}
}
}
}
//+------------------------------------------------------------------+
Gracias por el SRC), esto es lo que parece, el ts se ve así, vender debería ocurrir cuando la vela cerró por debajo del wop y el rsi por debajo de 50, y cerrar la orden en condiciones opuestas, y simultáneamente después del cierre comprar debería ocurrir y después del cierre, entonces una orden y no más y así cíclicamente ... pero ahora tengo una orden abierta y eso es todo, y las paradas no están funcionando ...
funnyrain8: Gracias por el SRC), esto es lo que parece, ts parece esto, vender debería ocurrir cuando la vela cerró por debajo de la muñeca y rsi por debajo de 50, y cerrar la orden en las condiciones opuestas, y al mismo tiempo después del cierre debería ocurrir comprar y después del cierre, entonces una orden y no más y así cíclicamente ... pero ahora abro una orden y todo, y las paradas no funcionan ...
Lo he reescrito a mi estilo, espero que lo entiendas, si algo no está claro, no dudes en preguntar
reescrito en mi propio estilo, espero que entiendas, si no entiendes algo pregunta
...
oh, pensé que había escrito casi todo excepto el cierre y todavía tengo mucho que aprender...muchas gracias ahora por lo menos tengo un ejemplo para seguir...tin, gracias de nuevo)
Hola. He descargado el software Metatrader 5. Me he apuntado a 2 señales. El saldo de mi cuenta es positivo en 20$. Estoy intentando instalar un alojamiento virtual y no funciona nada. Presiono el navegador, me conecto a la cuenta de comercio, incluso no tengo esa pestaña en la tabla de alojamiento virtual. Le envío capturas de pantalla. ¿Cómo me conecto al alojamiento compartido?
Жанна Платонова: Hola. He descargado el software Metatrader 5. Me he apuntado a 2 señales. El saldo de mi cuenta es positivo en 20$. Estoy intentando instalar un alojamiento virtual y no funciona nada. Presiono el navegador, me conecto a la cuenta de comercio, incluso no tengo esa pestaña en la tabla de alojamiento virtual. Le envío capturas de pantalla. ¿Cómo me conecto al alojamiento compartido?
Hola. Tengo una pregunta - en el mac (sierra) en todos los entregados (a través de vino) de diferentes empresas plataformas mt4 el mismo fallo - el terminal si se libera de su lugar normal en la parte inferior para moverlo como una ventana libre - se encoge y trabajar a través de él es completamente imposible. Desactivar el auto-ordenador no funciona. Para devolver el terminal en el primer lugar absolutamente imposible - es decir, simplemente no se adjunta y no se abre más. Tengo una pregunta: ¿alguien puede conocer un atajo o botón para devolver toda la interfaz a su lugar original? Sinceramente.
Diré lo mismo. No se te da bien la lógica. ¿Cuál es el problema para calcular inmediatamente el lote inicial, basándose en los fondos disponibles y el valor del riesgo (creo que se escribió sobre el 3%)? ¿Por qué hay que hacer todo en un solo lugar?
Tome el valor del margen libre, multiplíquelo por el riesgo, divídalo por 100 y el valor del margen para 1 lote - aquí está la fórmula más simple para calcular el lote con un porcentaje determinado del margen libre. Además, hay que tener en cuenta el paso del cambio de lote y evitar que se supere el tamaño de lote mínimo/máximo, permitido por la empresa de corretaje:
Te comento que el EA opera en un corto periodo de tiempo en el que hay una probabilidad de que se abran 9 órdenes opuestas consecutivas que se solapan entre sí y cada orden siguiente se multiplica por 2, por lo que el margen puede no aguantar y la última orden pendiente puede no abrirse, y por tanto hay que calcular a partir del último lote máximo posible. He calculado que el mejor número de órdenes en un intervalo de 5-10 minutos es 9. En general necesito calcular un margen en caso de que todas las órdenes se abran y en base a estos datos en orden inverso calcular el primer lote.
}
¿Dónde lo he escrito mal? Creo que lo he cogido de un ejemplo, ¿podríais decirme cómo se escribe correctamente para que el pedido se cierre
en condiciones de compra inversa? Me estoy devanando los sesos.
}
¿Dónde lo he escrito mal? Creo que lo he cogido de un ejemplo, ¿podríais decirme cómo se escribe correctamente para que se cierre el pedido?
en condiciones de compra inversa? Me estoy devanando los sesos.
Así
}
¿Dónde lo he escrito mal? Creo que lo he cogido de un ejemplo, ¿podríais decirme cómo se escribe correctamente para que el pedido se cierre
en condiciones de compra inversa? Me estoy devanando los sesos.
Si el pedido está seleccionado en el ticket, no necesita una acción en el bucle. Si quierescorregir el código, utiliza el botón SRC parapegar el código en el mensaje.
Gracias por el SRC), esto es lo que parece, ts parece esto, vender debería ocurrir cuando la vela cerró por debajo de la muñeca y rsi por debajo de 50, y cerrar la orden en las condiciones opuestas, y al mismo tiempo después del cierre debería ocurrir comprar y después del cierre, entonces una orden y no más y así cíclicamente ... pero ahora abro una orden y todo, y las paradas no funcionan ...
Lo he reescrito a mi estilo, espero que lo entiendas, si algo no está claro, no dudes en preguntar
...
reescrito en mi propio estilo, espero que entiendas, si no entiendes algo pregunta
...
oh, pensé que había escrito casi todo excepto el cierre y todavía tengo mucho que aprender...muchas gracias ahora por lo menos tengo un ejemplo para seguir...tin, gracias de nuevo)
Hola. He descargado el software Metatrader 5. Me he apuntado a 2 señales. El saldo de mi cuenta es positivo en 20$. Estoy intentando instalar un alojamiento virtual y no funciona nada. Presiono el navegador, me conecto a la cuenta de comercio, incluso no tengo esa pestaña en la tabla de alojamiento virtual. Le envío capturas de pantalla. ¿Cómo me conecto al alojamiento compartido?
Haga clic en la ayuda del menú principal.