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:
- 1298
- Ranking:
- Publicado:
- 2017.03.27 13:16
- Actualizado:
- 2018.02.27 12:31
-
¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa
Autor de la idea — John Smith, autor del código mq5 — barabashkakvn.
Los parámetros establecidos en el EA son para el símbolo USDJPY, período de tiempo H1.
Se utilizan dos МAs, una MACD y una CCI. OnTradeTransaction se utiliza para obtener la hora de la apertura de la posición.
Todos los valores de los indicadores se toman de la barra №1.
//--- Indicator Setup CAMELHIGHP1=iMAGet(handle_iMA_PRICE_HIGH,1); CAMELLOWP1=iMAGet(handle_iMA_PRICE_LOW,1); // MACDSP1=iMACDGet(SIGNAL_LINE,1); MACDSP2=iMACDGet(SIGNAL_LINE,2); // MACDHP1=iMACDGet(MAIN_LINE,1); MACDHP2=iMACDGet(MAIN_LINE,2); // CCIP1=iCCIGet(1);
Se realiza el control correspondiente: si la posición ya ha sido abierta en esta barra, no es necesario chequear todas las posiciones (porque otros EAs pueden trabajar en esta cuenta comercial).
La cuenta de la hora de la apertura se realiza en OnTradeTransaction. Si se detecta el momento del cierre de la posición, la hora de la apertura se resetea:
//+------------------------------------------------------------------+ //| 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_entry =0; long deal_time =0; string deal_symbol =""; long deal_magic =0; if(HistoryDealSelect(trans.deal)) { deal_entry=HistoryDealGetInteger(trans.deal,DEAL_ENTRY); deal_time=HistoryDealGetInteger(trans.deal,DEAL_TIME); deal_symbol=HistoryDealGetString(trans.deal,DEAL_SYMBOL); deal_magic=HistoryDealGetInteger(trans.deal,DEAL_MAGIC); } else return; if(deal_symbol==m_symbol.Name() && deal_magic==m_magic) { if(deal_entry==DEAL_ENTRY_OUT) { m_last_close_time=(datetime)deal_time; } else if(deal_entry!=DEAL_ENTRY_OUT) { m_last_close_time=0; } } } }
Traducción del ruso realizada por MetaQuotes Ltd
Artículo original: https://www.mql5.com/ru/code/17841

El oscilador ColorXWPR_Histogram permite cambiar el período de tiempo del indicador en los parámetros de entrada.

Indicador de tendencia VTS con el uso del canal de Keltner.

Este indicador colorea las velas en diferentes colores dependiendo de la fuerza y la dirección de la tendencia, usando para eso los canales de Keltner.

El indicador SSL permite cambiar el período de tiempo del indicador en los parámetros de entrada