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
kombat 17.07.2009 22:13
Suma, consigue la compra de 3 lotes y contrarresta este volumen con la venta de 3 lotes.
.......................
Como opción, sí. Aunque, si ya hay órdenes de venta abiertas, el EA puede cerrar no las que necesita. Debería estar resuelto.
kombat 17.07.2009 22:13.
Pero respondiendo a su pregunta: ¿es posible cerrar todas las posiciones?
sí lo es, uno por uno, es de escritura rápida, aap! y ya está...
.........................
Eso es lo que estoy usando ahora. Un conjunto de scripts - usas este y aquel... Pero intenté codificar mi estrategia en Expert Advisor y me encontré con varias dificultades.
Tengo algo que no funciona aquí, significa que no cierra ningún error.
En la función ClosePositions(), su biblioteca b-Positions.mqh, KimIV utiliza una llamada a su otra función ClosePosBySelect() que prohíbe el uso de ee en el probador :
if (!IsTesting() && (!IsExpertEnabled() || IsStopped())) break;
Para las pruebas de historia utilice su biblioteca b-ForTest.mqh
En la función ClosePositions(), su biblioteca b-Positions.mqh, KimIV utiliza una llamada a su otra función ClosePosBySelect() que prohíbe el uso de ee en el probador :
if (!IsTesting() && (!IsExpertEnabled() || IsStopped())) break;
Para las pruebas de historia, utilice su biblioteca b-ForTest.mqh
Has entendido mal mi código... Traduciendo al ruso... Si NO está en modo de prueba Y (el EA NO puede operar O el Asesor Experto está detenido), entonces rompa el bucle. En pocas palabras, esta línea asegura la salida del bucle cuando se pulsa el botón "Asesores Expertos" en la barra de herramientas.
Buenas noches,
Desgraciadamente, también hay una discrepancia con la matriz... Cuando el recuento de órdenes se hace con una condición si los lotes son mayores que 0 (Lts>0), los lotes se cierran uno a uno (cuando se ha alcanzado el beneficio), pero el beneficio total debería tenerse en cuenta:
Y en la condición en el recuento de órdenes, si los lotes son más de 1 (Lts>1), los lotes no se cierran:
Por favor, indique quién puede ver el error.
¿O tal vez, Igor, tengo un malentendido en el uso de su función?
BuyOrdProf=GetProfitOpenBuyPosInCurrency(OP_BUY); // Llamar a la función
Igor, por favor dime cómo insertar tu función PriceOpenLastPos en el indicador.
Al compilar el editor da error en el primer paréntesis y en las variables posteriores.
double PriceOpenLastPos( string sy="", int op=-1, int mn=-1) {
datetime t;
double r=0;
int k=OrdersTotal();
if (sy=="0") sy=Símbolo();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol()==sy || sy==") {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op<0 || OrderType()==op) {
if (mn<0 || OrderMagicNumber()==mn) {
if (t<OrderOpenTime()) {
t=OrderOpenTime();
r=OrderOpenPrice();
}
}
}
}
}
}
}
return(r);
}
}
'(' - definición de función inesperada D:\MT4\experts\indicators\Astrea.mq4 (627, 24)
'sy' - variable no definida D:\MT4\experts\indicators\Astrea.mq4 (632, 7)
etc.
Implemento la lógica de formación de señales de trading en un indicador y envío la señal generada para la apertura/cierre de órdenes a través de una variable global al Asesor Experto.
Necesito el precio abierto de una orden para tomar algunas decisiones, así que estoy tratando de hacerlo. Mi indicador es dinámico y sólo se puede depurar en modo demo o en modo de visualización en un probador.
La imagen es que no se tiene en cuenta el beneficio total, sino el beneficio de los pedidos individuales.
BuyOrdProf=GetProfitOpenBuyPosInCurrency(OP_BUY); // Llamada a la función
Paso incorrecto de parámetros a la función. Debería ser así:
Paso incorrecto de parámetros a la función. Debería ser así:
Añadir un enlace al símbolo en la llamada a la función no ayuda. ¿Por qué cuenta el beneficio de cada posición por separado (imagen superior)?