RC Soldiers and Crows MT5
- Indicadores
- Francisco Rayol
- Versión: 1.3
- Actualizado: 3 agosto 2024
- Activaciones: 10
Este indicador identifica e informa con precisión las reversiones del mercado y los patrones de continuación mediante el análisis y la señalización del patrón Tres Soldados Blancos / Tres Cuervos Negros. También ofrece un panel de "backtesting en tiempo real" en el propio indicador, de forma que cada cambio realizado en los parámetros del indicador mostrará inmediatamente al usuario cuántas señales se han producido, cuántos take profits y stop losses se han alcanzado y, al disponer de esta información, el Win Rate y el Profit Factor de la configuración basada en los parámetros definidos por el usuario.
- Interfaz fácil de usar y compatible con múltiples activos
- Parámetros y colores totalmente personalizables
- Panel limpio con información de backtesting y estadísticas en tiempo real
- Ofrece diferentes indicadores tradicionales para filtrar las señales (Media Móvil, Bandas de Bollinger, Parabolic Sars, ADX y RSI), permitiendo utilizarlos conjuntamente dentro del propio indicador para optimizar las mejores señales adecuadas a la estrategia y conocimientos del usuario
- Filtro de horas, para que el usuario pueda hacer backtest y tener señales sólo dentro del rango de tiempo compatible con su rutina de negociación
- Muestra los niveles de Take Profit y Stop Loss definidos por el usuario en función de: a) Puntos fijos, b) Niveles pivote o c) x velas antes de la señal
- Activa/desactiva Alertas y Notificaciones de la App cuando se producen nuevas señales
- No repinta
- Puede convertir fácilmente sus señales en un Asesor Experto. Soporte completo garantizado.
PARA LA VERSIÓN MT4: HAGA CLIC AQUÍ
//+-------------------------------------------------------------------------+ //| RC_Soldiers_Crows_EA_Sample.mq5| //|Copyright 2024, Francisco Rayol|| //| https://www.rayolcode.com //+-------------------------------------------------------------------------+ #property description "RC_Soldiers_Crows_EA_Sample" #property version "1.00" #property strict #property script_show_inputs #include <Trade\Trade.mqh> #include <Trade\PositionInfo.mqh> CTrade Ctrade; CPositionInfo Cposition; enum en_options { Yes = 0, // Sí No = 1, // No }; enum tp_type { Fixed_tp = 0, // Take Profit fijo Indicator_tp = 1, // Obtener beneficios del indicador }; enum sl_type { Fixed_sl = 0, // Stop Loss fijo Indicator_sl = 1, // Stop Loss del indicador }; //--- parámetros de entrada input int inMagic_Number = 18272; // Número mágico //---- input double inLot_Size = 0.01; // Tamaño inicial del lote //---- input tp_type inTP_Type = 0; // Elija el método Take Profit input double inTake_Profit = 150.0; // Take Profit fijo (en puntos) input sl_type inSL_Type = 0; // Elija el método Stop Loss input double inStop_Loss = 100.0; // Stop Loss fijo (en puntos) //---- //+------------------------------------------------------------------+ //|| //+------------------------------------------------------------------+ //--- manejadores de señal int handle_rc_soldiers_crows; //--- matrices de señales double RC_Buy_Signal[], RC_Sell_Signal[], RC_Take_Profit[], RC_Stop_Loss[]; //--- variables globales int initial_bar; //+------------------------------------------------------------------+ //| Función de inicialización experta| //+------------------------------------------------------------------+ int OnInit() { //--- initial_bar = iBars(_Symbol,_Period); //--- //--- Mango indicador de RC Soldiers and Crows handle_rc_soldiers_crows = iCustom(_Symbol, PERIOD_CURRENT, "\\Indicators\\Market\\RC_Soldiers_Crows.ex5"); if(handle_rc_soldiers_crows == INVALID_HANDLE) { Print("Error getting information from \"RC_Soldiers_Crows\" indicator, check input parameters and try again"); Alert("Error getting information from \"RC_Soldiers_Crows\" indicator, check input parameters and try again"); return(INIT_FAILED); } //--- ArraySetAsSeries(RC_Buy_Signal, true); ArraySetAsSeries(RC_Sell_Signal, true); ArraySetAsSeries(RC_Take_Profit, true); ArraySetAsSeries(RC_Stop_Loss, true); //--- Ctrade.SetExpertMagicNumber(inMagic_Number); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Función de desinicialización experta| //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- Comment(""); } //+------------------------------------------------------------------+ //| Función tick experto| //+------------------------------------------------------------------+ void OnTick() { //--- Precios de compra y venta double Ask = SymbolInfoDouble(_Symbol,SYMBOL_ASK); double Bid = SymbolInfoDouble(_Symbol,SYMBOL_BID); //+------------------------------------------------------------------+ //--- Señales de indicadores //--- RC_Soldiers_Crows señal: comprar if(CopyBuffer(handle_rc_soldiers_crows,0,0,2,RC_Buy_Signal)<=0) // Señal de compra { Print("Getting RC_Soldiers_Crows data is failed! Error ",GetLastError()); return; } //--- RC_Soldiers_Crows señal: vender if(CopyBuffer(handle_rc_soldiers_crows,1,0,2,RC_Sell_Signal)<=0) // Señal de venta { Print("Getting RC_Soldiers_Crows data is failed! Error ",GetLastError()); return; } //--- RC_Soldiers_Crows señal: take profit if(CopyBuffer(handle_rc_soldiers_crows,10,0,2,RC_Take_Profit)<=0) // Precio Take Profit { Print("Getting RC_Soldiers_Crows data is failed! Error ",GetLastError()); return; } //--- RC_Soldiers_Crows señal: stop loss if(CopyBuffer(handle_rc_soldiers_crows,11,0,2,RC_Stop_Loss)<=0) // Precio Stop Loss { Print("Getting RC_Soldiers_Crows data is failed! Error ",GetLastError()); return; } //+------------------------------------------------------------------+ //--- if(!F_CheckOpenOrders() && initial_bar!=iBars(_Symbol,_Period)) { if(RC_Buy_Signal[1] != 0.0 && RC_Buy_Signal[1] != EMPTY_VALUE) { if(Ctrade.Buy(inLot_Size, _Symbol, Ask, inSL_Type == 0 ? Bid - inStop_Loss*_Point : RC_Stop_Loss[1], inTP_Type == 0 ? Ask + inTake_Profit*_Point : RC_Take_Profit[1],"Buy open")) { initial_bar = iBars(_Symbol,_Period); } else Print("Error on opening buy position :"+IntegerToString(GetLastError())); } else if(RC_Sell_Signal[1] != 0.0 && RC_Sell_Signal[1] != EMPTY_VALUE) { if(Ctrade.Sell(inLot_Size, _Symbol, Bid, inSL_Type == 0 ? Ask + inStop_Loss*_Point : RC_Stop_Loss[1], inTP_Type == 0 ? Bid - inTake_Profit*_Point : RC_Take_Profit[1],"Sell open")) { initial_bar = iBars(_Symbol,_Period); } else Print("Error on opening sell position :"+IntegerToString(GetLastError())); } } //--- } //--- //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ bool F_CheckOpenOrders() { for(int i = 0; i<PositionsTotal(); i++) { Cposition.SelectByIndex(i); { long ord_magic = PositionGetInteger(POSITION_MAGIC); string ord_symbol = PositionGetString(POSITION_SYMBOL); ENUM_POSITION_TYPE type = Cposition.PositionType(); if(ord_magic==inMagic_Number && ord_symbol==_Symbol) return(true); } } return(false); } //+------------------------------------------------------------------+
Cómo operar con este indicador
Aunque el indicador puede ser utilizado como un sistema de trading en sí mismo, ya que ofrece información sobre la Tasa de Ganancias y el Factor de Ganancias, también puede ser utilizado en conjunto con algunos sistemas de trading que se muestran a continuación:
#1 Como tendencia de confirmación en una configuración de cruce de medias móviles
Configuración: Una media móvil exponencial rápida con 50 periodos, una media móvil exponencial lenta con 200 periodos, timeframe M5, cualquier activo volátil como XAUUSD por ejemplo.
Espere a que se produzca un cruce entre las dos medias anteriores. Después de eso, abra una posición sólo cuando el indicador da una señal después de este cruce y en la dirección de la tendencia señalada por el cruce de la media más rápida en relación con la más lenta. Fije el stop loss en los puntos Pivot para una mayor tasa de acierto.(haga clic aquí para más detalles)
#2 Como señal de confirmación en un sistema Breakout
Configuración: Encuentre la tendencia principal actual, dibuje un canal de consolidación y busque rupturas en la dirección del mismo. Cuando el indicador dé una señal fuera del canal confirmando la ruptura abra una posición correspondiente.(pulse aquí para más detalles)
#3 Swing trading en plazos superiores utilizando el filtro interno de medias móviles
Configuración: Agregue el indicador en un marco de tiempo alto como H4 o superior. Utilice el filtro de Media Móvil, presente en el propio indicador. Después, active también la opción "Una dirección de señal a la vez".
Abra una posición de compra cuando el indicador la señale y ciérrela sólo cuando aparezca una nueva señal de venta o viceversa.
//----
Los mejores resultados se obtienen si utiliza esta configuración en la dirección de la tendencia mayor y abre órdenes sólo en su dirección, especialmente en activos que tienen un sesgo fundamental claramente definido, como el SP500, el índice Nasdaq o incluso el Oro(haga clic aquí para más detalles).
También recomiendo encarecidamente la lectura del artículo "Trading con sesgo vs. Trading sin sesgo: Una inmersión profunda en cómo aumentar su rendimiento en el trading automático" para una mejor comprensión de cómo lograr mejores resultados con el trading de algo.(haga clic aquí)
Parámetros de entrada
- Definición de la configuración: Establecer la secuencia de velas para obtener el patrón verificado; Establecer cuántas velas en el pasado analizar; Elegir qué señales se mostrarán; Sólo cuando se detecta señal de reversión antes del patrón; Una señal a la vez; Invertir la señal; Mostrar panel estadístico.
- Aspectos visuales: Color de la flecha hacia arriba; Color de la flecha hacia abajo; Color de la línea de Take profit; Color de la línea de Stop loss; Color de la señal actual activa; Color de las señales pasadas
- Definición de regiones de operación: Mostrar regiones de stop loss; Establecer el modelo de stop loss (1 - en niveles de pivote, 2 - puntos fijos, 3 - vela de secuencia); Mostrar regiones de take profit, Establecer el modelo de take profit (1 - puntos fijos, 2 - x veces multiplicado por el stop loss)
- Definición de valores máximos: Establecer un valor máximo para stop loss en puntos (verdadero o falso); Puntos máximos de stop loss; Establecer un valor máximo para take profit en puntos (verdadero o falso); Puntos máximos de take profit
- Filtro de indicadores: Elija qué indicador utilizar como filtro (1 - Sin filtro de indicador, 2 - Filtro de media móvil, 3 - Filtro de bandas de Bollinger, 4 - Filtro ADX, 5 - Filtro RSI)
- Filtro horario: Usar filtro horario (verdadero o falso); Mostrar líneas de filtro horario (verdadero o falso); Hora de inicio del filtro horario (Formato HH:MM); Hora de fin del filtro horario (Formato HH:MM)
- Definición de alertas: Alerta sonora cada nueva señal (verdadero o falso); Alerta emergente cada nueva señal (verdadero o falso); Enviar notificación cada nueva señal (verdadero o falso)
Descargo de responsabilidad
Al comprar y utilizar este indicador, los usuarios aceptan indemnizar y eximir de responsabilidad a su autor por cualquier reclamación, daño, pérdida o responsabilidad derivada del uso del indicador. El comercio y la inversión conllevan riesgos inherentes, y los usuarios deben considerar cuidadosamente su situación financiera y tolerancia al riesgo antes de utilizar este indicador.

Awesome indicator, thanks for your quick response.