![MQL5 - Lenguaje de estrategias comerciales para el terminal de cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Ese indicador está utilizando la "fuerza de la serpiente" (TMA centrado) para el suavizado y no se puede cambiar para no volver a calcular y seguir siendo el mismo. La versión "sin repintado" (de punta) del TMA centrado es un simple LWMA, pero no esperes tener los mismos resultados con él que con el TMA centrado. Algo más sobre el TMA centrado puedes leer aquí : https://www.mql5.com/en/forum/181241 En cuanto a cambiar o mejorar ese código : la base del mismo es un código descompilado. Dudo que alguien cambie un código descompilado
Muchas gracias Mladen por la información fue muy útil
Hola,
He descargado este indicador de la web pero cuando lo adjunto aparecen las ventanas separadas con 2 niveles pero no aparecen las barras.
¿Pueden ayudarme a solucionarlo?
Gracias
oscillator.mq4
dasio,
Este es otro indicador de viento solar (alguien trató de cambiar algo en él).
Hola,
He descargado este indicador de la web pero cuando lo adjunto aparecen las ventanas separadas con 2 niveles pero no aparecen las barras.
¿Puedes ayudarme a arreglarlo?
Gracias
oscillator.mq4dasio, Eso es sólo otro indicador de viento solar (alguien trató de cambiar algo en él).
Gracias. Pero cuando inicio el backtest aparecen las barras. ¿Cómo puede ser posible?
Gracias
dasio
Comprueba en la pestaña de expertos y en la de diario si hay algún error escrito ahí. En mis datos del broker funciona, así que no puedo saber qué pasa en tus datos del broker (tal vez la división por cero o algo similar)
Gracias. Pero cuando empiezo el backtest las barras aparecen. ¿Cómo puede ser posible? Gracias
Mladen ,
Cuando se escribe un código o se mira el código de alguien, ¿cómo se evalúa la calidad del código?
:)
Mis dos criterios principales son :
Cuando esos 2 se cumplen sólo entonces tomo una segunda mirada y sólo entonces lo "leo", pero entonces es una historia muy larga lo que se puede hacer para acceder a la calidad - Supongo que el proceso es mucho más subjetivo que objetivo ...
Mladen, cuando escribes un código o miras el código de alguien, ¿cómo evalúas la calidad del código?
Hola,
Estoy tratando de adaptar un indicador que llama a iFractals y en su lugar llamar a un indicador fractal personalizado que tiene una característica de período ajustable. El indicador que estoy tratando de adaptar se adjunta. Se llama "closesrelativejtozpreviousofractal".
closesrelativejtozpreviousofractal.mq4
El código traza una flecha hacia arriba si el precio rompe el máximo del fractal anterior y una flecha hacia abajo para lo contrario.
El indicador que estoy tratando de llamar con iCustom también se adjunta. Se llama "Fractales - ajustable".
fractal_-ajustable.mq4
Abajo está mi intento de modificar el indicador original para que llame a Fractales - ajustable. El código traza con éxito puntos en los fractales altos y bajos y el período fractal es ajustable, como yo quería. El problema es con las flechas destinadas a trazar las rupturas de los niveles fractales altos y bajos anteriores. No consigo que se tracen correctamente.
Cualquier ayuda con esto sería muy apreciada.
Saludos cordiales,
drofwarc
{
int counted_bars = IndicatorCounted();
if (counted_bars > 0) counted_bars--;
int limit = Bars - counted_bars;
for(int i=limit; i>0; i--)
{
UpFractalsBuffer=iCustom(NULL,0,"Fractal - Adjustable", dist, arrowPosition, 0, i); //-Draw the high fractal
if (UpFractalsBuffer!=0) //-If it is available, put in the array of fractals for higher levels
HighLevel=iCustom(NULL,0,"Fractal - Adjustable", dist, arrowPosition, 2, i);
if(Close>HighLevel)
UpArrowBuffer=(Low-(PipBuffer)*Poin); //Arrows
DownFractalsBuffer=iCustom(NULL,0,"Fractal - Adjustable", dist, arrowPosition, 1, i); //-Draw the low fractal
if(DownFractalsBuffer!=0) //- If it is available put in the array of lower levels
LowLevel=iCustom(NULL,0,"Fractal - Adjustable", dist, arrowPosition, 3, i);
if(Close<LowLevel)
DownArrowBuffer=(High+(PipBuffer)*Poin);//Arrows
}
return(0);
}Al final lo he resuelto. El problema era una confusión en el buffer.
Código para hacer que un indicador se salte n barras entre señales
Hola a todos,
Sé que es posible hacer que un EA haga una pausa entre operaciones, ya sea usando Sleep() o registrando una marca de tiempo y esperando n segundos después de la marca de tiempo antes de permitir otra señal.
Pero, ¿es posible hacer lo mismo con un indicador?
Por ejemplo, me gustaría poder hacer que un indicador que traza flechas en el cruce de dos medias móviles se salte n barras después de un cruce antes de trazar otra flecha. En otras palabras, si se produce otro cruce antes de que hayan pasado n barras, el indicador ignoraría el cruce y no trazaría una flecha.
He buscado mucho para encontrar un indicador que haga esto pero no he tenido suerte.
¿Podría alguien publicar un indicador que ya tenga esta característica para que pueda estudiar el código? O quizás proporcionarme un ejemplo de código que funcione para esta propuesta para que pueda intentar implementarlo.
Muchas gracias,
drofwarc
no se puede mostrar normalmente, ¿alguien puede ayudarme a solucionarlo?
#property indicador_separar_ventana
#property indicator_buffers 1
#property indicador_color1 Rojo
#property indicador_máximo 100
#propiedad indicador_nivel1 70
#propiedad indicador_nivel2 50
#propiedad indicador_nivel3 30
#propiedad indicador_mínimo 0
//---- parámetros de entrada
extern int rsiperiod = 14 ;
extern int Shortperiod = 5 ;
extern int Middleperiod = 8
extern int Longperiod = 13;
extern int mamode = 2 ;
//---- buffers
double RSI[];
double ShortRSI[];
double MiddleRSI[];
double LongRSI[];
double SMRSI[];
int periodo ;
//+------------------------------------------------------------------+
//| Función de inicialización del indicador personalizada ||.
//+------------------------------------------------------------------+
int init()
{
//---- indicadores
IndicatorBuffers(5);
SetIndexBuffer(0,SMRSI);
SetIndexBuffer(1,RSI);
SetIndexBuffer(2,ShortRSI);
SetIndexBuffer(3,MiddleRSI);
SetIndexBuffer(4,LongRSI);
//---- nombre para la etiqueta de la DataWindow y la subventana del indicador
IndicatorShortName("SMRSI("+rsiperiod+", "+Shortperiod+", "+Middleperiod+", "+Longperiod+", "+mamode+")";
SetIndexDrawBegin(0,rsiperiod+Longperiod);
period=PeriodoCorto+PeriodoMedio+PeriodoLargo;
return(0);
}
//+------------------------------------------------------------------+
//| Función de iteración del indicador personalizada ||.
//+------------------------------------------------------------------+
int inicio()
{
int barras_contadas=IndicadorContado();
int i,limit;
if(counted_bars<0) return(-1);
if(barras_contadas>0) barras_contadas--;
limit = Bares-contados_bars;
for( i=limit; i>=0; i--) RSI=iRSI(NULL,0,rsiperiod,0,i);
for( i=limit; i>=0; i--) ShortRSI=iMAOnArray(RSI,0,Shortperiod,0,mamode,i);
for( i=limit; i>=0; i--) MiddleRSI=iMAOnArray(RSI,0,Middleperiod,0,mamode,i);
for( i=limit; i>=0; i--) LongRSI=iMAOnArray(RSI,0,Longperiod,0,mamode,i);
for( i=limit; i>=0; i--) { if(period!=0) SMRSI=(Shortperiod/period)*ShortRSI+(Middleperiod/period)*MiddleRSI+(Longperiod/period)*LongRSI;}
return(0);
}
//+------------------------------------------------------------------+