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
Buenos días a todos.
He visto muchas versiones de este indicador y las velas rojas nunca me aparecen, podría corregir el error ????.
Muchas gracias.
#property indicador_separar_ventana
#property indicator_buffers 2
#property indicador_color1 verde lima
#property indicador_color2 Rojo
//---- búferes del indicador
double ind_buffer1[];
double ind_buffer2[];
double ind_buffer3[];
//----
double CB = 0, valueh1 = 0, valuel = 0, valueh = 0, value = 0, price = 0, hi = 1, lo = 1;
double resh = 0, resl = 0, deltah = 0, deltal = 0;
int CurrentBar=0;
//+------------------------------------------------------------------+
//| Función de inicialización del indicador personalizada ||.
//+------------------------------------------------------------------+
int init()
{
//---- 1 buffer adicional utilizado para el conteo.
IndicatorBuffers(3);
//---- ajustes de dibujo
SetIndexStyle(0, DRAW_HISTOGRAM, STYLE_SOLID, 2);
SetIndexStyle(1, DRAW_HISTOGRAM, STYLE_SOLID, 2);
IndicatorDigits(MarketInfo(Symbol(), MODE_DIGITS) + 1);
SetIndexDrawBegin(0, 34);
SetIndexDrawBegin(1, 34);
//---- 3 asignación de buffers de indicadores
if(!SetIndexBuffer(0, ind_buffer1) &&
!SetIndexBuffer(1, ind_buffer2) &&
!SetIndexBuffer(2, ind_buffer3))
Print("¡no se pueden establecer búferes indicadores!");
//---- nombre para la etiqueta de la DataWindow y la subventana del indicador
IndicatorShortName("FuerzaDelta");
SetIndexLabel(0, "DF1");
SetIndexLabel(1, "DF2");
//---- inicialización realizada
return(0);
}
//+------------------------------------------------------------------+
//| Fuerza Delta ||
//+------------------------------------------------------------------+
int inicio()
{
for(CB = 0 ; CB <= Bares ; CB++)
{
CurrentBar = Bars - CB;
if(Close[CurrentBar] > Close[CurrentBar+1])
{
resl = 0;
if(resh == 0)
deltah = 0;
deltah = deltah + (Close[CurrentBar] - Close[CurrentBar+1]);
// valueh = High[CurrentBar];
resh= 1;
}
if(resh == 0)
deltah = 0;
ind_buffer1[CurrentBar] = deltah;
if(Close[CurrentBar] < Close[CurrentBar+1] )
{
resh = 0;
if(resl == 0)
deltal = 0;
deltal = deltal + (Close[CurrentBar+1] - Close[CurrentBar]);
//valuel = Low[CurrentBar];
resl= 1;
}
if(resl == 0 )
deltal=0;
ind_buffer2[CurrentBar] = deltal;
}
//---- hecho
return(0);
}
//+------------------------------------------------------------------+
Buenos días a todos.
He visto muchas versiones de este indicador y las velas rojas nunca me aparecen, podría corregir el error ????.
Muchas gracias.
#property indicador_separar_ventana
#property indicator_buffers 2
#property indicador_color1 LimeGreen
#property indicador_color2 Rojo
//---- búferes del indicador
double ind_buffer1[];
double ind_buffer2[];
double ind_buffer3[];
//----
double CB = 0, valueh1 = 0, valuel = 0, valueh = 0, value = 0, price = 0, hi = 1, lo = 1;
double resh = 0, resl = 0, deltah = 0, deltal = 0;
int CurrentBar=0;
//+------------------------------------------------------------------+
//| Función de inicialización del indicador personalizada ||.
//+------------------------------------------------------------------+
int init()
{
//---- 1 buffer adicional utilizado para el conteo.
IndicatorBuffers(3);
//---- ajustes de dibujo
SetIndexStyle(0, DRAW_HISTOGRAM, STYLE_SOLID, 2);
SetIndexStyle(1, DRAW_HISTOGRAM, STYLE_SOLID, 2);
IndicatorDigits(MarketInfo(Symbol(), MODE_DIGITS) + 1);
SetIndexDrawBegin(0, 34);
SetIndexDrawBegin(1, 34);
//---- 3 asignación de buffers de indicadores
if(!SetIndexBuffer(0, ind_buffer1) &&
!SetIndexBuffer(1, ind_buffer2) &&
!SetIndexBuffer(2, ind_buffer3))
Print("¡no se pueden establecer búferes indicadores!");
//---- nombre para la etiqueta de la DataWindow y la subventana del indicador
IndicatorShortName("FuerzaDelta");
SetIndexLabel(0, "DF1");
SetIndexLabel(1, "DF2");
//---- inicialización realizada
return(0);
}
//+------------------------------------------------------------------+
//| Fuerza Delta ||
//+------------------------------------------------------------------+
int inicio()
{
for(CB = 0 ; CB <= Bares ; CB++)
{
CurrentBar = Bars - CB;
if(Close[CurrentBar] > Close[CurrentBar+1])
{
resl = 0;
if(resh == 0)
deltah = 0;
deltah = deltah + (Close[CurrentBar] - Close[CurrentBar+1]);
// valueh = High[CurrentBar];
resh= 1;
}
if(resh == 0)
deltah = 0;
ind_buffer1[CurrentBar] = deltah;
if(Close[CurrentBar] < Close[CurrentBar+1] )
{
resh = 0;
if(resl == 0)
deltal = 0;
deltal = deltal + (Close[CurrentBar+1] - Close[CurrentBar]);
//valuel = Low[CurrentBar];
resl= 1;
}
if(resl == 0 )
deltal=0;
ind_buffer2[CurrentBar] = deltal;
}
//---- hecho
return(0);
}
//+------------------------------------------------------------------+Pruébalo ahora : _test.mq4
Stanwell,
Un par de fotos que muestren todo eso ayudaría.
Big BeHola Big Be,
Buen punto, voy a publicar algunos gráficos mañana.
cheers,
Stan
Aquí está el gráfico del AUD que he marcado manualmente. Los cuadros rojos son las barras superpuestas. A la izquierda, hay un cuadro que muestra sólo tres barras dentro de él, por lo que no se ajusta a la definición. Sin embargo, si este tramo es significativo, digamos mayor que 6 X ATR, los contaría como un swing también (sólo que es difícil de operar con sólo tres barras), pero pensé que este requisito complicaría la codificación, así que podemos dejarlo fuera por el momento.
Gracias.
Stan
¡Hola Mladen y Mrtools !
Necesito su ayuda de nuevo, ¿son capaces de añadir una alerta visual / acústica a este indicador por favor?
¡Gracias de antemano, saludos!
MLADEN, buenos días.
Muchas gracias, he probado su _test y aparece correctamente.
Cualquier ayuda la tengo aquí, aunque su dominio es mucho más que el mío, aunque en ProRealTime / VISUALCHART sí puedo ayudar más.
Un saludo.
Hola,
Tengo un indicador y quiero limitar el cálculo de las barras.
El código original era:
{
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
int limit = MathMin(Bars-counted_bars,Bars-1);[/CODE]
i changed it with this:
[CODE]int start()
{
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
int limit = MathMin(NBars-counted_bars,NBars-1);¿Es correcto? El indicador parece funcionar bien pero tengo la duda de si realmente he limitado el cálculo de las barras.
Hola,
Tengo un indicador y quiero limitar el cálculo de las barras.
El código original era
{
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
int limit = MathMin(Bars-counted_bars,Bars-1);[/CODE]
i changed it with this:
[CODE]int start()
{
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
int limit = MathMin(NBars-counted_bars,NBars-1);thefxpros
No. Hazlo así :
int limit = MathMin(MathMin(Bars-counted_bars,Bars-1),NBars);
Pero en ese caso siempre tienes que asegurarte de que NBars es siempre > 0
Hola mladen
si puedes ayudarme,añade los ejes X e Y,entonces puedo ponerlo en la esquina,
y puede ajustar el tamaño de la fuente,lo siento por mi Inglés.
X2014-PIPSv2
muchas gracias.
Hola mladen
si usted puede ayudarme, añadir los ejes X e Y, entonces puedo poner en él a la esquina,
y puede ajustar el tamaño de la fuente, lo siento por mi Inglés.
X2014-PIPSv2
muchas gracias.blueface
Ya los tienes : variables posX y posY en el código