Indicador Auto TrendLines MT4
El Indicador Auto TrendLines es una potente herramienta para Meta Trader 4 que automatiza la detección y trazado de líneas de tendencia precisas en el gráfico.
Facilita estrategias de rebote y ruptura para operaciones efectivas, liberando tiempo y evitando errores manuales en el análisis técnico.
El Indicador Auto TrendLines es una herramienta clave en el emocionante mundo del trading, facilitando decisiones estratégicas al automatizar la detección y trazado de líneas de tendencia precisas en el gráfico. Evita la tediosa tarea manual y optimiza el análisis técnico para operaciones informadas.
¿Qué es el Indicador Auto TrendLines?
El Indicador Auto TrendLines es una potente herramienta diseñada para plataforma Meta Trader que automatiza la búsqueda y trazado de líneas de tendencia precisas en los gráficos.
Su funcionamiento se basa en una combinación de algoritmos matemáticos y filtros, lo que garantiza que solo se muestren las líneas de tendencia más relevantes y actuales en el gráfico.
Ventajas del Indicador Auto TrendLines
Precisión: Este indicador identifica las líneas de tendencia más sólidas y confiables, evitando errores comunes de dibujo manual y proporcionando información precisa para tus operaciones.
No re-dibuja: Una vez que se establece una línea de tendencia, esta no se modificará, brindando estabilidad y confianza en tus análisis técnicos.
Tiempo ahorrado: Al automatizar el proceso de detección y trazado de líneas de tendencia, te libera de la tediosa tarea de hacerlo manualmente, lo que te permite concentrarte en tomar decisiones de trading más informadas.
Cómo Funciona el Indicador Auto TrendLines
El funcionamiento del Indicador Auto TrendLines es sencillo y efectivo.
A continuación, explicamos los pasos clave:
1. Detección de Líneas de Tendencia
El indicador analiza el gráfico en busca de todas las posibles líneas de tendencia. Posteriormente, aplica filtros para eliminar aquellas que no son relevantes, reduciendo así el número de líneas a considerar.
2. Selección de las Mejores Líneas de Tendencia
Una vez filtradas las líneas detectadas, el indicador evalúa su calidad y muestra solo las dos mejores líneas de tendencia en el gráfico. Estas líneas estarán identificadas con diferentes colores para facilitar su reconocimiento:
- Línea con tendencia alcista (azul).
- Línea con tendencia bajista (rojo).
Estrategias de Trading con Auto TrendLines
El Indicador AutoTrend Lines facilita dos estrategias principales de trading, que te permitirán tomar decisiones más fundamentadas:
Rebote de Precios desde la Línea de Tendencia: Esta estrategia se basa en abrir operaciones cuando el precio toca o se acerca a la línea de tendencia.
Si la línea es alcista, considera comprar; si es bajista, considera vender. Esta táctica es especialmente útil para operaciones a corto y mediano plazo en Forex.
- Stop Loss: Coloca órdenes de stop loss justo debajo del nivel más bajo dentro del rango de la línea de tendencia considerada.
- Toma de Ganancia: Establece órdenes de toma de ganancia en el nivel más alto alcanzado durante la ruptura de la línea de tendencia.
Ruptura de la Línea de Tendencia: Si la línea de tendencia es rota, esta estrategia sugiere considerar operaciones opuestas al toque posterior del precio en la línea desde el otro lado.
- Stop Loss: Coloca órdenes de stop loss debajo del nivel más bajo dentro del rango de la línea de tendencia considerada.
- Toma de Ganancia: Establece órdenes de toma de ganancia en el nivel de precio más alto dentro del rango de la línea de tendencia (TP1) o igualando la altura de la ola anterior (TP2).
Conclusión
El Indicador Auto TrendLines es una herramienta esencial para cualquier trader interesado en optimizar su análisis técnico y operaciones.
Al automatizar la detección y trazado de líneas de tendencia, este indicador ahorra tiempo y reduce errores, permitiéndote tomar decisiones informadas y estratégicas.
Ya seas un trader novato o experimentado, Auto TrendLines es una herramienta valiosa que te ayudará a comprender y aprovechar las tendencias del mercado de manera eficiente.
Recuerda siempre utilizar el Indicador Auto TrendLines en combinación con otras herramientas y análisis para obtener una visión completa y precisa del mercado financiero.
// //+------------------------------------------------------------------+
//| TrendLines_Auto.mq4 |
//| Copyright © 2011, dken |
//| http://dken.ru |
//+------------------------------------------------------------------+
#property copyright ""
#property link "https://indicadorespro.com/"
#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 clrNONE
#property indicator_color2 clrNONE
#property indicator_color3 Black
extern string _s0="";
extern bool Break=true;//ðèñóåì ñòðåëêè ñîãëàñíî ïðîáîþ èëè îòáîþ
extern bool Expand=true;// ðèñîâàòü ïî óìîë÷àíèþ ðàñøèðÿþùèåñÿ òðåóãîëüíèêè
extern bool UseAlert=true;
extern bool alertDebug=true;
extern bool alertSound=true;
extern bool alertMessage=false;
extern string fileSound="alert2.wav";
//öâåòà ëèíèé
extern string TrendUpName="TrendlineUp";
extern string TrendDnName="TrendlineDn";
extern color TrendUp=Blue;
extern color TrendDn=Red;
extern int otstup=0;//îòñòóï ñòðåëêè îò ñâå÷è pips
extern string _s1="Íàñòðîéêè ZZ";
extern int ExtDepth=12;
extern int ExtDeviation=5;
extern int ExtBackstep=3;
double buy[],sell[],stop[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
// 2 áóôåðà äëÿ îòîáðàæåíèÿ ñòðåëîê
// áóôåð äëÿ õðàíåíèÿ ñòîïà
IndicatorShortName("Trend Lines Signal");
IndicatorBuffers(3);
SetIndexBuffer(0,buy);
SetIndexBuffer(1,sell);
SetIndexBuffer(2,stop);
SetIndexStyle(0,DRAW_ARROW);
SetIndexStyle(1,DRAW_ARROW);
SetIndexStyle(2,DRAW_NONE);
SetIndexArrow(0,233);//buy
SetIndexArrow(1,234);//sell
SetIndexLabel(0,"buy");
SetIndexLabel(1,"sell");
SetIndexLabel(2,"stop");
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//óäàëèòü îáúåêòû
ObjectDelete(TrendUpName);
ObjectDelete(TrendDnName);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
ArrayInitialize(buy,EMPTY_VALUE);
ArrayInitialize(sell,EMPTY_VALUE);
ArrayInitialize(stop,EMPTY_VALUE);
//----
//ÇÇ îïðåäåëÿåì 2 ïîñëåäíèå âåðøèíêè è 2 íèçèíêè
// åñëè âåðøèíêè èäóò âíèç, òî ñòðîèì òðåíäîâóþ ëèíèþ, åñëè íåò, òî óäàëÿåì åå
// åñëè íèçèíêè èäóò ââåðõ òî ñòðîèì ëèíèþ, åñëè âíèç òî óäàëÿåì (îïöèîíàëüíî, äëÿ îïðåäåëåíèÿ ðàñøèðÿþùèõçñÿ òðåóãîëüíèêîâ
//êîãäà îïðåäåëèëè êóäà èäåò òðåíä, æäåì ïåðåñå÷åíèÿ è ñèãíàëèì êîãäà çàêðûëèñü âûøå à äî ýòîãî áûëè íèæå (low - close)
//ðèñóåì â ýòîé òî÷êå ñòðåëêó ñ îòñòóïîì îò ñâå÷êè íà Í ïóíêòîâ è ñîõðàíÿåì â ïàìÿòü òî÷êó äëÿ ñòîïà
//ñèãíàë ëîâèì îïöèîíàëüíî ëèáî íà ïðîáîé ëèáî íà îòáîé ïî óìîë÷àíèþ ïðîáîé
double zzUp1=0,zzUp2=0;
double zzDn1=0,zzDn2=0;
int iUp1,iUp2,iDn1,iDn2;
double zzCurrent=0,zzTmp;
int j=0,trend=0;
for(int i=0;i0.0 && j==0) {zzCurrent=zzTmp; j=1;}
if(zzTmp>0.0 && j==1 && zzTmp0.0 && j==1 && zzTmp>zzCurrent && zzUp1==0) {zzUp1=zzTmp; j=2; iUp1=i; trend=1; }
if(trend==-1){
if(zzTmp>0.0 && j==2 && zzTmp>zzDn1 && zzUp1==0) {zzUp1=zzTmp; iUp1=i; j=3;}
if(zzTmp>0.0 && j==3 && zzTmp0.0 && j==4 && zzTmp>zzDn2 && zzUp2==0) {zzUp2=zzTmp; iUp2=i; j=5; break;}
}
if(trend==1){
if(zzTmp>0.0 && j==2 && zzTmp0.0 && j==3 && zzTmp>zzDn1 && zzUp2==0) {zzUp2=zzTmp; iUp2=i; j=4;}
if(zzTmp>0.0 && j==4 && zzTmpzzUp1 || Expand){
if(ObjectFind(TrendDnName)==-1) {
if(ObjectCreate(TrendDnName,OBJ_TREND,0,iTime(NULL,0,iUp2),zzUp2,iTime(NULL,0,iUp1),zzUp1)){
ObjectSet(TrendDnName,OBJPROP_COLOR,TrendDn);
ObjectSet(TrendDnName,OBJPROP_WIDTH,2);
ObjectSet(TrendUpName,OBJPROP_RAY,TRUE);
}
}
else {
ObjectSet(TrendDnName,OBJPROP_TIME1,iTime(NULL,0,iUp2));
ObjectSet(TrendDnName,OBJPROP_PRICE1,zzUp2);
ObjectSet(TrendDnName,OBJPROP_TIME2,iTime(NULL,0,iUp1));
ObjectSet(TrendDnName,OBJPROP_PRICE2,zzUp1);
}
}
if(zzDn2price && iClose(NULL,0,j)price){ buy[j]=iLow(NULL,0,j+1)-otstup*Point; stop[j]=iLow(NULL,0,j+1);}
if(!Break && trend==-1 && iOpen(NULL,0,j)>price && iClose(NULL,0,j)price){buy[j]=iLow(NULL,0,j+1)-otstup*Point; stop[j]=iLow(NULL,0,j+1);}
}
}
void doAlert(
string doWhat,
bool UseAlert=false,
bool alertDebug=false,
bool alertSound=false,
bool alertMessage=false,
bool alertMail=false,
bool alertPhone=false)
{
if(UseAlert==false) return;
//int pause=5*60;
static string previousAlert="nothing";
static datetime previousTime=0;
string message;
//----
if(Time[1]==previousTime) return ;
if (previousAlert!=doWhat || Time[1]!=previousTime)
{
previousAlert =doWhat;
previousTime =Time[1];
//----
string sPeriod="";
switch(Period()){
case PERIOD_M1: sPeriod="M1"; break;
case PERIOD_M5: sPeriod="M5"; break;
case PERIOD_M15: sPeriod="M15"; break;
case PERIOD_M30: sPeriod="M30"; break;
case PERIOD_H1: sPeriod="H1"; break;
case PERIOD_H4: sPeriod="H4"; break;
case PERIOD_D1: sPeriod="D1"; break;
case PERIOD_W1: sPeriod="W1"; break;
case PERIOD_MN1: sPeriod="MN1"; break;
}
//message= StringConcatenate(name," Period: ",sPeriod," signal is ",doWhat);
if (alertMessage) Alert(doWhat);
if (alertSound){ PlaySound(fileSound); }//"news.wav"
if (alertDebug) Print(doWhat);
if (alertMail) SendMail("signal",doWhat);
//if (alertPhone) SendMail("signal","Channel: ss7/89504991199\r\nCallerid: 3452230009\r\nMaxRetries: 100\r\nRetryTime: 120\r\nWaitTime: 50\r\nContext: alpari\r\nExtension: s\r\nPriority: 1\r\nArchive: Yes");
}
}//+-------------------------------------------------------------
Deja un comentario