Pon "Me gusta" y sigue las noticias
Deje un enlace a él, ¡qué los demás también lo valoren!
Evalúe su trabajo en el terminal MetaTrader 5
- Visualizaciones:
- 1100
- Ranking:
- Publicado:
- 2015.03.09 12:59
- Actualizado:
- 2016.11.22 07:33
-
¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa
Este código permite establecer el porcentaje máximo del riesgo de la equidad.
El código comprueba si los lotes de compra/venta solicitados se ajustan al riesgo. Si no es así, los lotes se corrigen automáticamente de tal manera que se queden ajustados al riesgo establecido.
Código:
bool UseMaximumPercentageRisk=true; double MaximumPercentageRisk=25; #include <Trade\SymbolInfo.mqh> //+------------------------------------------------------------------+ //| GetLotSize RPTrade | //+------------------------------------------------------------------+ double GetLotSize(double lotsize) { //--- Gets pair specs CSymbolInfo symInfo; int digits_bn=symInfo.Digits(); double points_bn=symInfo.Point(); string symbol_bn=_Symbol; //--- adjust lot int tmpdecimal=1; double old_lot=lotsize; //--- if((NormalizeDouble(AccountInfoDouble(ACCOUNT_FREEMARGIN)*(MaximumPercentageRisk/100)/1000.0,tmpdecimal)<lotsize) && UseMaximumPercentageRisk) //¿se ajusta el lote al riesgo? { lotsize=NormalizeDouble(AccountInfoDouble(ACCOUNT_FREEMARGIN)*(MaximumPercentageRisk/100)/1000.0,tmpdecimal); //calcular nuevo tamaño del lote if(lotsize<SymbolInfoDouble(symbol_bn,SYMBOL_VOLUME_MIN)) //¿se ajusta el tamaño del lote al tamaño mínimo del lote del broker? { lotsize=SymbolInfoDouble(symbol_bn,SYMBOL_VOLUME_MIN); //¡No! Ajuste del tamaño del lote al tamaño mínimo del lote del broker Print(_Symbol," Lot adjusted from ",old_lot," para reducir el tamaño permitido por el servidor ",lotsize); } else { Print(_Symbol," Lot adjusted from ",old_lot," to ",lotsize," para la correspondencia a la condición del riesgo máximo. En cada operación se puede arriesgar sólo con ",MaximumPercentageRisk,"% del margen libre."); //Да! if(MathAbs(lotsize/SymbolInfoDouble(symbol_bn,SYMBOL_VOLUME_STEP)-MathRound(lotsize/SymbolInfoDouble(symbol_bn,SYMBOL_VOLUME_STEP)))>1.0E-10) //¿se ajusta el tamaño del lote al paso permitido por el broker? { lotsize=SymbolInfoDouble(symbol_bn,SYMBOL_VOLUME_STEP)*NormalizeDouble(lotsize/SymbolInfoDouble(symbol_bn,SYMBOL_VOLUME_STEP),0); //¡NO! Recalcular el tamaño del lote. Print("M-",_Symbol," Warning: Your calculated percentage at risk lot size of was not a multiple of minimal step",SymbolInfoDouble(symbol_bn,SYMBOL_VOLUME_STEP),". El tamaño del lote se ha cambiado a",lotsize); } } } return(lotsize); }
Traducción del inglés realizada por MetaQuotes Ltd.
Artículo original: https://www.mql5.com/en/code/2142
![MultiBlauSMStochasticx7Signal](https://c.mql5.com/i/code/indicator.png)
El indicador MultiBlauSMStochasticx7Signal muestra la información sobre las tendencias actuales usando los valores de siete indicadores BlauSMStochastic de diferentes marcos temporales.
![BackgroundCandle_BlauSMStochastic_HTF](https://c.mql5.com/i/code/indicator.png)
El indicador dibuja las velas del período de tiempo mayor como rectángulos coloreados de acuerdo con la dirección del histograma del indicador BlauSMStochastic.
![BackgroundCandle_T3_TRIX_HTF](https://c.mql5.com/i/code/indicator.png)
El indicador dibuja las velas del período de tiempo mayor con rectángulos coloreados. Los rectángulos se rellenan de color de acuerdo con la dirección del histograma del indicador T3_TRIX.
![Change Chart and Timeframe](https://c.mql5.com/i/code/script.png)
Se trata de los scripts modificados para el cambio rápido de los gráficos y períodos de tiempo en todos los gráficos mediante las teclas aceleradoras.