La función "CalculateCurrentOrders" no está referenciada y será eliminada del archivo exp.
ignora este error; todo lo que dice es que tienes una función llamada CalculateCurrentOrders que no estás usando; así que o la eliminas o la dejas; no causará ningún daño; el sistema dice que eliminará esta función de tu archivo compilado ex4
en la función LotOptimization cambie su código a algo como esto
lote=lote*FactorDeMultiplicación*pérdidas
donde MulitplyFactor = 2 o 3 o 4, etc., similar a su DecreaseFactor que es para disminuir el tamaño de sus lotes a medida que aumentan las pérdidas
Dicho esto, aumentar el tamaño de su lote a medida que aumentan las pérdidas es peligroso para su EA, así que úselo con cuidado
¿se refiere a algo como esto?
//+------------------------------------------------------------------+ //| Calcular el tamaño óptimo del lote //+------------------------------------------------------------------+ double LotsOptimized() { double lote=Lotes*Multiplicación*Pérdidas; int orders=HistoryTotal(); // historial total de órdenes int losses=0; // número de órdenes con pérdidas sin pausa //---- seleccione el tamaño del lote lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,1); //---- calcule el número de órdenes de pérdidas sin interrupción if(FactorDeDisminución>0) { for(int i=órdenes-1;i>=0;i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) { Print("¡Error en el historial!"); break; } if(OrderSymbol()!=Symbol() | OrderType()>OP_SELL) continue; //---- if(OrderProfit()>0) break; if(OrderProfit()<0) losses++; } if(losses>1) lot=NormalizeDouble(lot-lot*losses/DecreaseFactor,1); } //---- devolver el tamaño del lote if(lote<0.1) lot=0.1; return(lote); }
//+------------------------------------------------------------------+ //| Calcular el tamaño de lote óptimo ||. //+------------------------------------------------------------------+ double LotsOptimized() { double lote=Lotes*Multiplicación*Pérdidas; int orders=HistoryTotal(); // historial total de órdenes int losses=0; // número de órdenes con pérdidas sin pausa //---- seleccione el tamaño del lote lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,1); //---- calcule el número de órdenes de pérdidas sin interrupción if(FactorDeDisminución>0) { for(int i=órdenes-1;i>=0;i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) { Print("¡Error en el historial!"); break; } if(OrderSymbol()!=Symbol() | OrderType()>OP_SELL) continue; //---- if(OrderProfit()>0) break; if(OrderProfit()<0) losses++; } if(losses>1) lot=NormalizeDouble(Lots*Multiplying*losses;,1); } //---- devolver el tamaño del lote if(lote<0.1) lot=0.1; return(lote); }
Para iniciar sesión y usar el sitio web MQL5.com es necesario permitir el uso de Сookies.
Por favor, active este ajuste en su navegador, de lo contrario, no podrá iniciar sesión.
Ha iniciado sesión. La autenticación de dos factores se ha desactivado. Vuelva a configurarla y escanee un nuevo código QR, o continúe con la autenticación de dos factores desactivada.
dígame si hay un sistema de prueba en la programación del EA que le muestre paso a paso lo que sucede cuando este EA se ejecuta
no, no hay ftn de paso para las pruebas ; utiliza Print para mostrar los valores de comprobación y varias partes de sus programas
Me gusta su código para la optimización de los lotes; lo he modificado para aumentar el volumen de los lotes a medida que aumentan las pérdidas
Me gusta su código para la optimización de los lotes; lo he modificado para aumentar el volumen de los lotes a medida que aumentan las pérdidas
muéstrame por favor
o envíame tu EA
muéstrame por favor
o envíame tu EA
me da un error
La función "CalculateCurrentOrders" no está referenciada y será eliminada del archivo exp.me da un error
La función "CalculateCurrentOrders" no está referenciada y será eliminada del archivo exp.ignora este error; todo lo que dice es que tienes una función llamada CalculateCurrentOrders que no estás usando; así que o la eliminas o la dejas; no causará ningún daño; el sistema dice que eliminará esta función de tu archivo compilado ex4
muéstrame por favor
o envíeme su EA
en la función LotOptimization cambie su código a algo como esto
lote=lote*FactorDeMultiplicación*pérdidas
donde MulitplyFactor = 2 o 3 o 4 etc, similar a su DecreaseFactor que es para disminuir su tamaño de lote como kosses montan
Dicho esto, aumentar el tamaño de su lote a medida que aumentan las pérdidas es peligroso para su EA, así que úselo con cuidado
en la función LotOptimization cambie su código a algo como esto
lote=lote*FactorDeMultiplicación*pérdidas
donde MulitplyFactor = 2 o 3 o 4, etc., similar a su DecreaseFactor que es para disminuir el tamaño de sus lotes a medida que aumentan las pérdidas
Dicho esto, aumentar el tamaño de su lote a medida que aumentan las pérdidas es peligroso para su EA, así que úselo con cuidado
¿se refiere a algo como esto?
//+------------------------------------------------------------------+//| Calcular el tamaño óptimo del lote
//+------------------------------------------------------------------+
double LotsOptimized()
{
double lote=Lotes*Multiplicación*Pérdidas;
int orders=HistoryTotal(); // historial total de órdenes
int losses=0; // número de órdenes con pérdidas sin pausa
//---- seleccione el tamaño del lote
lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,1);
//---- calcule el número de órdenes de pérdidas sin interrupción
if(FactorDeDisminución>0)
{
for(int i=órdenes-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) { Print("¡Error en el historial!"); break; }
if(OrderSymbol()!=Symbol() | OrderType()>OP_SELL) continue;
//----
if(OrderProfit()>0) break;
if(OrderProfit()<0) losses++;
}
if(losses>1) lot=NormalizeDouble(lot-lot*losses/DecreaseFactor,1);
}
//---- devolver el tamaño del lote
if(lote<0.1) lot=0.1;
return(lote);
}
¿te refieres a algo como esto?
//+------------------------------------------------------------------+
//| Calcular el tamaño de lote óptimo ||.
//+------------------------------------------------------------------+
double LotsOptimized()
{
double lote=Lotes*Multiplicación*Pérdidas;
int orders=HistoryTotal(); // historial total de órdenes
int losses=0; // número de órdenes con pérdidas sin pausa
//---- seleccione el tamaño del lote
lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,1);
//---- calcule el número de órdenes de pérdidas sin interrupción
if(FactorDeDisminución>0)
{
for(int i=órdenes-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) { Print("¡Error en el historial!"); break; }
if(OrderSymbol()!=Symbol() | OrderType()>OP_SELL) continue;
//----
if(OrderProfit()>0) break;
if(OrderProfit()<0) losses++;
}
if(losses>1) lot=NormalizeDouble(Lots*Multiplying*losses;,1); }
//---- devolver el tamaño del lote
if(lote<0.1) lot=0.1;
return(lote);
}
no, ponlo después del if(losses>1)
no, ponlo después del if(losses>1)
me da un error
Multiplicando' - variable no definida C:\NArchivos de programa\NInterbank FX Trader 4\Nexperts\jbtest4.mq4 (57, 44)
¿dónde lo defino?
me da un error
Multiplying' - variable no definida C:\NArchivos de programa\NInterbank FX Trader 4\Nexperts\jbtest4.mq4 (57, 44)
¿dónde lo he definido?
ok tengo int multiplicando=2;