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
- Publicado por:
- Vladimir Karputov
- Visualizaciones:
- 856
- Ranking:
- Publicado:
- 2018.07.24 15:24
-
¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa
Autor de la idea: Vladimir Gribachev.
Autor del código MQL5: Vladimir Karputov.
Es un EA que no usa los indicadores personalizados, las posiciones se abren de forma pseudoaleatoria. Este EA puede mostrar la estadística actual en dos idiomas:
El trailing modifica el Stop Loss de posiciones abiertas. Cuando sufrimos pérdidas, el lote se aumenta con el uso del martingale. ¿Cómo se detectan las pérdidas?: en OnTradeTransaction captamos la transacción DEAL_REASON_SL, es el indicio de la activación del Stop Loss:
//+------------------------------------------------------------------+ //| TradeTransaction function | //+------------------------------------------------------------------+ void OnTradeTransaction(const MqlTradeTransaction &trans, const MqlTradeRequest &request, const MqlTradeResult &result) { //--- get transaction type as enumeration value ENUM_TRADE_TRANSACTION_TYPE type=trans.type; //--- if transaction is result of addition of the transaction in history if(type==TRADE_TRANSACTION_DEAL_ADD) { long deal_ticket =0; long deal_order =0; long deal_time =0; long deal_time_msc =0; long deal_type =-1; long deal_entry =-1; long deal_magic =0; long deal_reason =-1; long deal_position_id =0; double deal_volume =0.0; double deal_price =0.0; double deal_commission =0.0; double deal_swap =0.0; double deal_profit =0.0; string deal_symbol =""; string deal_comment =""; string deal_external_id =""; if(HistoryDealSelect(trans.deal)) { deal_ticket =HistoryDealGetInteger(trans.deal,DEAL_TICKET); deal_order =HistoryDealGetInteger(trans.deal,DEAL_ORDER); deal_time =HistoryDealGetInteger(trans.deal,DEAL_TIME); deal_time_msc =HistoryDealGetInteger(trans.deal,DEAL_TIME_MSC); deal_type =HistoryDealGetInteger(trans.deal,DEAL_TYPE); deal_entry =HistoryDealGetInteger(trans.deal,DEAL_ENTRY); deal_magic =HistoryDealGetInteger(trans.deal,DEAL_MAGIC); deal_reason =HistoryDealGetInteger(trans.deal,DEAL_REASON); deal_position_id =HistoryDealGetInteger(trans.deal,DEAL_POSITION_ID); deal_volume =HistoryDealGetDouble(trans.deal,DEAL_VOLUME); deal_price =HistoryDealGetDouble(trans.deal,DEAL_PRICE); deal_commission =HistoryDealGetDouble(trans.deal,DEAL_COMMISSION); deal_swap =HistoryDealGetDouble(trans.deal,DEAL_SWAP); deal_profit =HistoryDealGetDouble(trans.deal,DEAL_PROFIT); deal_symbol =HistoryDealGetString(trans.deal,DEAL_SYMBOL); deal_comment =HistoryDealGetString(trans.deal,DEAL_COMMENT); deal_external_id =HistoryDealGetString(trans.deal,DEAL_EXTERNAL_ID); } else return; if(deal_symbol==m_symbol.Name() && deal_magic==m_magic) if(deal_entry==DEAL_ENTRY_OUT) { PrevBars=0; if(deal_reason==DEAL_REASON_SL && deal_commission+deal_swap+deal_profit<0.0) last_lots_sl=deal_volume; else last_lots_sl=0.0; } } }
Parámetros de entrada
- Stop Loss - Stop Loss;
- Take Profit - Take Profit;
- Trailing Stop - Trailing;
- Trailing Step - paso del trailing;
- Lots - el tamaño del lote se establece manualmente, (si Lots es más de cero, el parámetro Risk tiene que ser igual a cero);
- Risk - el tamaño del lote se calcula automáticamente, (si Risk es más de cero, el parámetro Lots tiene que ser igual a cero);
- Martingale - coeficiente del aumento del lote, si la posición anterior ha sido cerrada por Stop Loss y el beneficio es negativo;
- Max lots - tamaño máximo de la posición; cuando este parámetro se supera, el EA termina el trabajo forzosamente;
- magic number - identificador único del EA.
La simulación siguiente ha sido detenida (el EA fue descargado desde el gráfico forzosamente), porque el lote ha superado el parámetro Max lots:
Traducción del ruso realizada por MetaQuotes Ltd
Artículo original: https://www.mql5.com/ru/code/20836

El indicador AnchoredMomentum_x10 muestra la posición del indicador AnchoredMomentum desde diez marcos temporales diferentes.

Gráfico del instrumento financiero actual de forma invertida con la visualización de los niveles Ask y Bid.

El indicador BrainTrend2 tiene la posibilidad de saltar alertas, enviar los mensajes de correo o mensajes push, cuando se cambia el color del indicador.

El indicador BrainTrend2Stop tiene la posibilidad de cambiar el timeframe del indicador en los parámetros de entrada.