pero ¿por qué ObjectCreate(_Symbol, "supportLine",OBJ_HLINE,0,pArray[candleLow].time,pArray[candleLow].low, pArray[0].time,pArray[0].low); ?
enough ObjectCreate(_Symbol, "supportLine",OBJ_HLINE,0,pArray[candleLow].time,pArray[candleLow].low);
enough ObjectCreate(_Symbol, "supportLine",OBJ_HLINE,0,pArray[candleLow].time,pArray[candleLow].low);
MetaQuotes:
Se ha publicado el artículo"Cómo trabajar con líneas utilizando las herramientas MQL5":
Autor: Mohamed Abdelmaaboud
Este es un artículo interesante para los principiantes, pero para el trabajo correcto de los Asesores Expertos se requiere una pequeña modificación de los códigos.
Saludos, Vladimir.
//+------------------------------------------------------------------+ //|Sistema UpwardTrendline.mq5 //+------------------------------------------------------------------+ void OnTick() { int candles = (int)ChartGetInteger(0,CHART_FIRST_VISIBLE_BAR,0); double pLow[]; ArraySetAsSeries(pLow,true); int copy_low = CopyLow(_Symbol,_Period,0,candles,pLow); if(copy_low>0) { int candleLow = ArrayMinimum(pLow,0,candles); MqlRates pArray[]; ArraySetAsSeries(pArray,true); int Data = CopyRates(_Symbol,_Period,0,candles,pArray); ObjectDelete(0,"UpwardTrendline"); ObjectCreate(0,"UpwardTrendline",OBJ_TREND,0,pArray[candleLow].time,pArray[candleLow].low, pArray[0].time,pArray[0].low); ObjectSetInteger(0,"UpwardTrendline",OBJPROP_COLOR,Blue); ObjectSetInteger(0,"UpwardTrendline",OBJPROP_STYLE,STYLE_SOLID); ObjectSetInteger(0,"UpwardTrendline",OBJPROP_WIDTH,3); ObjectSetInteger(0,"UpwardTrendline",OBJPROP_RAY_RIGHT,true); } } //+------------------------------------------------------------------+
//+------------------------------------------------------------------+ //|DownwardTrendline System.mq5 //+------------------------------------------------------------------+ void OnTick() { int candles = (int)ChartGetInteger(0,CHART_FIRST_VISIBLE_BAR,0); double pHigh[]; ArraySetAsSeries(pHigh,true); int copy_high = CopyHigh(_Symbol,_Period,0,candles,pHigh); if(copy_high>0) { int candleHigh = ArrayMaximum(pHigh,0,candles); MqlRates pArray[]; ArraySetAsSeries(pArray,true); int Data = CopyRates(_Symbol,_Period,0,candles,pArray); ObjectDelete(0,"DnwardTrendline"); ObjectCreate(0,"DnwardTrendline",OBJ_TREND,0,pArray[candleHigh].time,pArray[candleHigh].high, pArray[0].time,pArray[0].high); ObjectSetInteger(0,"DnwardTrendline",OBJPROP_COLOR,Blue); ObjectSetInteger(0,"DnwardTrendline",OBJPROP_STYLE,STYLE_SOLID); ObjectSetInteger(0,"DnwardTrendline",OBJPROP_WIDTH,3); ObjectSetInteger(0,"DnwardTrendline",OBJPROP_RAY_RIGHT,true); } } //+------------------------------------------------------------------+
//+------------------------------------------------------------------+ //|Support Line System.mq5 //+------------------------------------------------------------------+ void OnTick() { int candles = (int)ChartGetInteger(0,CHART_FIRST_VISIBLE_BAR,0); double pLow[]; ArraySetAsSeries(pLow,true); int copy_low = CopyLow(_Symbol,_Period,0,candles,pLow); if(copy_low>0) { int candleLow = ArrayMinimum(pLow,0,candles); MqlRates pArray[]; ArraySetAsSeries(pArray,true); int Data = CopyRates(_Symbol,_Period,0,candles,pArray); ObjectDelete(0,"supportLine"); ObjectCreate(0,"supportLine",OBJ_HLINE,0,pArray[candleLow].time,pArray[candleLow].low, pArray[0].time,pArray[0].low); ObjectSetInteger(0,"supportLine",OBJPROP_COLOR,Green); ObjectSetInteger(0,"supportLine",OBJPROP_STYLE,STYLE_SOLID); ObjectSetInteger(0,"supportLine",OBJPROP_WIDTH,3); ObjectSetInteger(0,"supportLine",OBJPROP_RAY,true); } } //+------------------------------------------------------------------+
//+------------------------------------------------------------------+ //|Sistema de línea de resistencia.mq5 //+------------------------------------------------------------------+ void OnTick() { int candles=(int)ChartGetInteger(0,CHART_FIRST_VISIBLE_BAR,0); double pHigh[]; ArraySetAsSeries(pHigh,true); int copy_high = CopyHigh(_Symbol,_Period,0,candles,pHigh); if(copy_high>0) { int candleHigh = ArrayMaximum(pHigh,0,candles); MqlRates pArray[]; ArraySetAsSeries(pArray,true); int Data = CopyRates(_Symbol,_Period,0,candles,pArray); ObjectDelete(0,"resistanceLine"); ObjectCreate(0,"resistanceLine",OBJ_HLINE,0,pArray[candleHigh].time,pArray[candleHigh].high, pArray[0].time,pArray[0].high); ObjectSetInteger(0,"resistanceLine",OBJPROP_COLOR,Red); ObjectSetInteger(0,"resistanceLine",OBJPROP_STYLE,STYLE_SOLID); ObjectSetInteger(0,"resistanceLine",OBJPROP_WIDTH,3); ObjectSetInteger(0,"DnwardTrendline",OBJPROP_RAY_RIGHT,true); } } //+------------------------------------------------------------------+
La forma en que has dibujado la línea es muy bonita. Una observación sobre las líneas de tendencia: no sirve de mucho que el segundo punto de anclaje sea siempre la barra de índice 0, porque con cada nueva barra la línea de tendencia se actualizará y por tanto la línea de tendencia no servirá de nada. Lo ideal sería definir el segundo punto de anclaje en función de un criterio concreto. Por ejemplo, la segunda barra con el precio más alto, con una distancia mínima de 30 barras respecto a la primera, o tomar la barra con el precio más alto del día siguiente, y así sucesivamente.
Enhorabuena por el artículo.
Enhorabuena por el artículo.
Andrei Pereira las líneas de tendencia: no sirve de mucho que el segundo punto de anclaje sea siempre la barra de índice 0, porque con cada nueva barra la línea de tendencia se actualizará y por tanto la línea de tendencia no servirá de nada. Lo ideal sería definir el segundo punto de anclaje en función de un criterio concreto. Por ejemplo, la segunda barra con el precio más alto, a una distancia mínima de 30 barras de la primera, o tomar la barra con el precio más alto del día siguiente, y así sucesivamente.
Enhorabuena por el artículo.
Enhorabuena por el artículo.
Gracias por tu comentario, es una buena observación.
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
Artículo publicado Cómo trabajar con líneas usando MQL5:
En este artículo, hablaremos sobre cómo trabajar con las líneas más importantes, como las líneas de tendencia, apoyo y resistencia, usando las herramientas de MQL5.
Las líneas de tendencia pueden usarse en el trading para abrir órdenes según una tendencia. Si se forma una línea de tendencia alcista, podemos esperar que el precio descienda hacia esta línea de tendencia y rebote hacia arriba, en cuyo caso podremos colocar una orden de compra en esta línea de tendencia. Por el contrario, si vemos una línea de tendencia bajista en el gráfico, podemos suponer que el precio subirá hasta esta línea de tendencia para luego rebotar hacia abajo. En tal caso, podremos colocar una orden de venta en la línea de tendencia bajista.
Más abajo mostramos una línea de tendencia alcista:
La figura anterior muestra un movimiento ascendente. Si unimos los tres puntos mínimos con una línea, veremos que están en una misma línea que apunta hacia arriba.
Autor: Mohamed Abdelmaaboud