Indicador de Super Señales - página 37

 
sennal999:
esto no se está cargando en la compilación 765.

Probablemente esté protegido

 

. Esto no está cargando en la compilación 765 [/ QUOTE].

Se podría poner este indicador (soporte y resistencia) dentro de la EMA, como imagen?

Abrir compra o venta cuando cruza las líneas de soporte o resistencia.

Abrir venta con la media móvil cuando cruza la línea de las bandas de bollinger.

Archivos adjuntos:
 

soporte y resistencia

Archivos adjuntos:
 

estos son los indicadores

https://www.mql5.com/en/forum/general

 

Bandas

//+------------------------------------------------------------------+

//| Bands.mq4

//| Copyright 2005-2014, MetaQuotes Software Corp. |

//| MQL4: comercio automatizado de divisas, probador de estrategias e indicadores personalizados con MetaTrader ||

//+------------------------------------------------------------------+

#property copyright "2005-2014, MetaQuotes Software Corp."

#property link "http://www.mql4.com"

#property description "Bandas de Bollinger"

#property strict

#include

#property indicator_chart_window

#property indicator_buffers 3

#property indicator_color1 LightSeaGreen

#property indicator_color2 LightSeaGreen

#property indicator_color3 LightSeaGreen

//--- parámetros del indicador

input int InpBandsPeriod=20; // Periodo de las bandas

input int InpBandsShift=0; // Desplazamiento de las bandas

input double InpBandsDeviations=2.0; // Desviación de las bandas

//--- buffers

double ExtMovingBuffer[];

double ExtUpperBuffer[];

double ExtLowerBuffer[];

double ExtStdDevBuffer[];

//+------------------------------------------------------------------+

//| Función de inicialización de los indicadores personalizados

//+------------------------------------------------------------------+

int OnInit(void)

{

//--- 1 buffer adicional utilizado para el conteo.

IndicatorBuffers(4);

IndicatorDigits(Dígitos);

//--- línea media

SetIndexStyle(0,DRAW_LINE);

SetIndexBuffer(0,ExtMovingBuffer);

SetIndexShift(0,InpBandsShift);

SetIndexLabel(0, "Bandas SMA");

//--- banda superior

SetIndexStyle(1,DRAW_LINE);

SetIndexBuffer(1,ExtUpperBuffer);

SetIndexShift(1,InpBandsShift);

SetIndexLabel(1, "Bands Upper");

//--- banda inferior

SetIndexStyle(2,DRAW_LINE);

SetIndexBuffer(2,ExtLowerBuffer);

SetIndexShift(2,InpBandsShift);

SetIndexLabel(2, "Bands Lower");

//--- buffer de trabajo

SetIndexBuffer(3,ExtStdDevBuffer);

//--- comprobar el parámetro de entrada

if(InpBandsPeriod<=0)

{

Print("Parámetro de entrada erróneo Bands Period=",InpBandsPeriod);

return(INIT_FAILED);

}

//---

SetIndexDrawBegin(0,InpBandsPeriod+InpBandsShift);

SetIndexDrawBegin(1,InpBandsPeriod+InpBandsShift);

SetIndexDrawBegin(2,InpBandsPeriod+InpBandsShift);

//--- inicialización realizada

return(INIT_SUCCEED);

}

//+------------------------------------------------------------------+

//| Bandas de Bollinger |

//+------------------------------------------------------------------+

int OnCalculate(const int tasas_total,

const int prev_calculado,

const datetime &time[],

const double &open[],

const double &high[],

const double &low[],

const double &close[],

const long &tick_volume[],

const long &volume[],

const int &spread[])

{

int i,pos;

//---

if(rates_total<=InpBandsPeriod | InpBandsPeriod<=0)

return(0);

//--- contando desde 0 hasta rates_total

ArraySetAsSeries(ExtMovingBuffer,false);

ArraySetAsSeries(ExtUpperBuffer,false);

ArraySetAsSeries(ExtLowerBuffer,false);

ArraySetAsSeries(ExtStdDevBuffer,false);

ArraySetAsSeries(close,false);

//--- cero inicial

if(prev_calculado<1)

{

for(i=0; i<InpBandsPeriod; i++)

{

ExtMovingBuffer=EMPTY_VALUE;

ExtUpperBuffer=EMPTY_VALUE;

ExtLowerBuffer=EMPTY_VALUE;

}

}

//--- inicio del cálculo

if(prev_calculado>1)

pos=prev_calculado-1;

si no

pos=0;

//--- ciclo principal

for(i=pos; i<tasa_total && !IsStopped(); i++)

{

//--- línea media

ExtMovingBuffer=SimpleMA(i,InpBandsPeriod,close);

//--- calcular y anotar StdDev

ExtStdDevBuffer=StdDev_Func(i,close,ExtMovingBuffer,InpBandsPeriod);

//--- línea superior

ExtUpperBuffer=ExtMovingBuffer+InpBandsDeviations*ExtStdDevBuffer;

//--- línea inferior

ExtLowerBuffer=ExtMovingBuffer-InpBandsDeviations*ExtStdDevBuffer;

//---

}

//---- OnCalculate hecho. Devuelve el nuevo prev_calculado.

return(rates_total);

}

//+------------------------------------------------------------------+

//| Calcular desviación estándar |

//+------------------------------------------------------------------+

double StdDev_Func(int position,const double &price[],const double &MAprice[],int period)

{

//--- variables

double StdDev_dTmp=0.0;

//--- comprobar la posición

if(posición>=periodo)

{

//--- calcualte StdDev

for(int i=0; i<periodo; i++)

StdDev_dTmp+=MathPow(precio[posición-i]-MAprecio[posición],2);

StdDev_dTmp=MathSqrt(StdDev_dTmp/periodo);

}

//--- devolver el valor calculado

return(StdDev_dTmp);

}

//+------------------------------------------------------------------+

 

MovingAverages.mqh no es fiable

 

Señal de punto verdadero true_point_signal.mq4

Archivos adjuntos:
 

Renombrado indicador de super señales (repinta lo mismo) symphonie_market_emotion_indikator.mq4

Archivos adjuntos:
 
increase:
He estado usando este durante algún tiempo y me gusta

Hola MrTools/Mladen, ¿podríais añadir alertas con flechas en cruces de indicadores/señales?

Gracias

 

Hola,

Aquí hay otra versión de los indicadores - una fusión de las alertas v3 y los indicadores de canal. Las alertas también pueden enviar notificaciones.

Tal vez usted lo encuentra útil

Un saludo, V.

Archivos adjuntos:
Razón de la queja: