Mira cómo descargar robots gratis
¡Búscanos en Facebook!
Pon "Me gusta" y sigue las noticias
¿Es interesante este script?
Deje un enlace a él, ¡qué los demás también lo valoren!
¿Le ha gustado el script?
Evalúe su trabajo en el terminal MetaTrader 5
Asesores Expertos

Nevalyashka_BreakdownLevel - Asesor Experto para MetaTrader 5

Publicado por:
Vladimir Karputov
Visualizaciones:
932
Ranking:
(29)
Publicado:
2017.08.10 16:48
¿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 Khlystovautor del código mq5 — barabashkakvn.

Estrategia comercial: ruptura del máximo/mínimo en el intervalo temporal elegido. Para compensar las posiciones con pérdidas se usa "Nevalyashka" con aumento de lote según el principio de martingale.

El asesor calcula el máximo y el mínimo del precio en el intervalo temporal entre "Time start" — la hora de comienzo del periodo de control y "Time end" — la hora de finalización del periodo de control:

Nevalyashka BreakdownLevel

Si el precio supera el máximo de este periodo, se abre la posición "BUY", si el precio se va por debajo del mínimo, se abre una posición "SELL". El StopLoss se establece en el límite opuesto del periodo: para la posición "BUY", al nivel del mínimo del precio; para la posición "SELL", al nivel del máximo del precio. El TakeProfit se coloca según el nivel de altura del periodo de control.

Si el parámetro "Use time close" es igual a true, significa que funcionará el parámetro "Time close" (hora a la que se cierran todas las posiciones).

para los parámetros de enetrada "Time start""Time end" y "Time close" se tienen en cuenta solo las horas y los minutos.

El cierre por StopLoss se capta en OnTradeTransaction.

Cuando detectamos una transacción con el tipo "DEAL_ENTRY_OUT" (ru: "Salida del mercado", en: "Entry out"), miramos el campo del comentario de esta transacción. Si en los comentarios detectamos "sl" esto significa, con bastante probabilidad, que hemos detecatdo una transacción cerrada por StopLoss:

      if(deal_symbol==m_symbol.Name() && deal_magic==m_magic)
         if(deal_entry==DEAL_ENTRY_OUT)
           {
            MqlDateTime str1;
            TimeToStruct(TimeCurrent(),str1);
            //--- there is a chance that this was a closure on the TakeProfit
            if(StringFind(deal_comment,"tp",0)!=-1 || deal_profit>=0.0)
              {
               TradeDey=str1.day;
               return;
              }
            //--- there is a chance that this was a closure on the StopLoss
            if(StringFind(deal_comment,"sl",0)!=-1)
              {
               if(TradeDey!=str1.day)
                 {
                  Print("A StopLoss closure has been detected!");

                  double loss=MathAbs(deal_profit/m_symbol.TickValue()/deal_volume);

                  if(deal_type==DEAL_TYPE_SELL) // the buy position is closed
                    {
                     double SL=m_symbol.Bid()+loss*m_symbol.Point();
                     double TP=m_symbol.Bid()-loss*m_symbol.Point();
                     double Lot=LotCheck(deal_volume*InpK_martin);
                     if(Lot==0.0)
                        return;
                     OpenSell(SL,TP,Lot,"Nevalyashka");

                    }
                  if(deal_type==DEAL_TYPE_BUY) // the sell position is closed
                    {
                     double SL=m_symbol.Ask()-loss*m_symbol.Point();
                     double TP=m_symbol.Ask()+loss*m_symbol.Point();
                     double Lot=LotCheck(deal_volume*InpK_martin);
                     if(Lot==0.0)
                        return;
                     OpenBuy(SL,TP,Lot,"Nevalyashka");
                    }
                  return;
                 }
              }
           }

y abrimos una posición opuesta a la cerrada (si el tipo de la transacción es "DEAL_TYPE_SELL", significa que se ha cerrado una posición "BUY"; si el tipo de la transacción es "DEAL_TYPE_BUY", significa que se ha cerrado una transacción"SELL"), pero en este caso, aumentamos el volumen de la operación en "K. martin" veces. Si la posición se ha cerrado con beneficio positivo, el asesor espera la hora de comienzo del siguiente periodo "Time end", y todo se repite.

El parámetro "No loss" designa el paso a ausencia de pérdidas: al alcanzar la posición la mitad del beneficio, el StopLoss de la posición se traslada al nivel del precio de apertura.

Ejmplo de simulación con EURUSD,M30:

Nevalyashka BreakdownLevel test EURUSD M30

Traducción del ruso realizada por MetaQuotes Ltd
Artículo original: https://www.mql5.com/ru/code/18645

Boa_ZigZag_Arrows_HTF Boa_ZigZag_Arrows_HTF

Indicador Boa_ZigZag_Arrows con posibilidad de cambiar el marco temporal del indicador en los parámetros de entrada.

AutoTradeLevels AutoTradeLevels

El indicador marca con líneas cortas horizontales todas las trasnacciones ejecutadas.

Boa_ZigZag_channel Boa_ZigZag_channel

Canal construido con los picos y los valles del indicador de Zigzag Boa_ZigZag

ZigZag_channel ZigZag_channel

Canal construido con los picos y los valles del indicador de Zigzag.