Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 271
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
por lo que sólo se rellena el primer valor con el índice [0].
gracias. me ha ahorrado un fin de semana de insomnio).
vicmos gracias.
rellena todo con un valor, como la función ArrayFill(...)/
Buenos días a todos! Este problema - el compilador da una advertencia. No quiero ignorarlo, ¿puede ayudarme a encontrar una salida?
Maldice específicamente en la última línea, dice:"posible pérdida de datos debido a la conversión de tipo". ¿Cómo normalizar correctamente el tipo real en este caso?
Buenos días a todos! Este problema - el compilador da una advertencia. No quiero ignorarlo, ¿puede ayudarme a encontrar una salida?
Maldice específicamente en la última línea, dice:"posible pérdida de datos debido a la conversión de tipo". ¿Cómo normalizar correctamente el tipo real en este caso?
Buenos días a todos! Este problema - el compilador da una advertencia. No quiero ignorarlo, ¿puede ayudarme a encontrar una salida?
Maldice específicamente en la última línea, dice:"posible pérdida de datos debido a la conversión de tipo". ¿Cómo normalizar correctamente el tipo real en este caso?
Y una cosa más: ArrayMaximum y ArrayMinimum devuelven el índice del elemento encontrado. Así que la forma correcta es esta:
Además: ArrayMaximum y ArrayMinimum devuelve el índice del elemento encontrado. Así que la forma correcta es así:
No calcula correctamente el nivel de take profit en función del importe de las pérdidas de las órdenes cerradas. Resulta que el 1º orden = 1; el 2º orden = 2; el 3º orden = 3; el 4º orden = 4. Tenemos que calcular el número de pips para cubrir la pérdida de todas las órdenes anteriores y ganar el 10% de la pérdida total.
En realidad, el Asesor Experto sólo considera que el importe de cada orden cerrada es igual a la orden supuestamente pendiente, es decir, sus cálculos muestran que si la 5ª orden pendiente es igual a 5 lotes, todas las órdenes perdedoras anteriores eran iguales a 5 lotes y, por lo tanto, la pérdida se calcula con el correspondiente nivel de beneficio erróneo. En otras palabras, si el volumen total de 4 órdenes es igual a 10 lotes, entonces el Asesor Experto simplemente multiplicará 4 órdenes por el volumen de la quinta orden pendiente y obtendrá un volumen total de 20 lotes......¿Qué debemos corregir en el código?
// Función que calcula el Nivel de Toma basado en el Nivel de Pérdida de las operaciones cerradas
//=================================================================================================
double TakeProfitCalculate(double lot,int type)
{
int n,i;
doble prf,ttp;
prf=MathAbs(BuyLevel-SellLevel)/Point*LOT*MarketInfo(Symbol(),MODE_TICKVALUE);//
if(No!=0) for(i=TotalPedidos()-1;i>=0;i--)
{
if(!OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) continue;
if(OrderSymbol()!=Symbol() || OrderMagicNumber()<MAGIC | OrderMagicNumber()>MAGIC+200 || OrderType()>OP_SELL) continue;
n=NúmeroMágico()-MAGIC;
prf+=(OrderProfit()+OrderSwap()+OrderCommission());
if(n==0) break;
}
prf=MathAbs(prf*(100+Porcentaje de beneficio)/100);
ttp=prf*Punto/(LOT*MarketInfo(Symbol(),MODE_TICKVALUE))
if(type==OP_BUY) return(NRu(BuyLevel+ttp)); else return(NRd(SellLevel-ttp))
}