English Русский 中文 Deutsch 日本語 Português
Un método de escritura de los niveles de soporte/resistencia

Un método de escritura de los niveles de soporte/resistencia

MetaTrader 4Ejemplos | 11 mayo 2016, 10:33
1 418 0
Slobodov Gleb
Slobodov Gleb

Introducción

Los niveles de soporte/resistencia son la herramienta básicas que utilizan la mayoría de los traders. Estos niveles se pueden encontrar en la mayoría de los pronósticos, y todos los traders deben saber detectarlos independientemente.

Este artículo describe el proceso de crear un script simple para detectar los niveles de soporte/resistencia. Está escrito para principiantes, y tiene una explicación detallada de cada fase del proceso. Sin embargo, aunque el guión es muy simple, el artículo también será útil para traders más avanzados y para los usuarios de la plataforma MetaTrader 4. Contiene ejemplos de la exportación de datos en formato tabular, la importación de la tabla a Microsoft Excel, y la esquematización de gráficos para su futuro análisis más detallado.

Niveles de soporte/resistencia

Abajo se pueden ver los dos niveles de soporte/resistencia.


No vamos a pronfundizar demasiado en el significado de este término. En la mayoría de libros en los que se describen los niveles de soporte/resistencia, se afirma que la mayoría del tiempo el rango de cotizaciones está entre estas dos líneas, y muy pocas veces las cruza.


Se puede ver la prueba en la imagen de abajo.


Vamos a aprovechar esta característica. Para detectar los niveles de soporte/resistencia, se tienen que contar el número de intersecciones de las cotizaciones y el nivel de los precios.

Los cálculos no son muy complicados. Como resultado, se obtiene la correlación entre cada precio y el número de barras que lo han cruzado. Ahora aparece el problema de la muestra de los resultados. No se puede hacer en MetaTrader utilizando el indicador del gráfico porque no necesitamos un gráfico de precios a tiempo, sino un gráfico de barras en precio. Por eso hay que exportar los datos y analizarlos en otro programa diferente.

Creación de un script

Primero, hay que crear un script nuevo.




Para hacerlo, hay que ir la ventana "Navegador" y hacer clic con el botón derecho del ratón en la sección "Scripts" y seleccionar la orden "Crear". Aparecerá una nueva ventana. Asegúrese de que el tipo de programa que va a crear es el script, y luego haga clic en el botón "Siguiente".



Luego se le pedirá que introduzca el nombre del script y los parámetros. Después de hacer clic en el botón "Hecho", puede comenzar a escribir el script.



Escritura del script

El código fuente del script no tiene más de veinte líneas:


//+------------------------------------------------------------------+
//|                                                 ExportLevels.mq4 |
//|                      Copyright © 2006, MetaQuotes Software Corp. |
//|                                        https://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2006, MetaQuotes Software Corp."
#property link      "https://www.metaquotes.net"
 
#property show_inputs
extern int MaxLimit = 1000;
//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
  {
   int handle;
   handle = FileOpen("FindLevels.txt", FILE_CSV|FILE_WRITE, '\t');
   FileWrite(handle, "Cost", "Bars Num");
   double d1 = Low[iLowest(NULL, 0, MODE_LOW, MaxLimit, 0)];
   double d2 = High[iHighest(NULL, 0, MODE_HIGH, MaxLimit, 0)];
   for (double d = d1; d d2; d += 0.0001)
     {
       double a = 0.0;
       for(int i = 0; i MaxLimit; i++)
           if(d > Low[i] && d High[i])
               a+=1;   
       FileWrite(handle, d, a);
     } 
   FileClose(handle);
   return(0);
  }
//+------------------------------------------------------------------+

El script consiste sólo en una función, start(). Se inicia cada vez que se llama al script. Abajo puede encontrar la explicación detallada del código fuente:


#property show_inputs
extern int MaxLimit = 1000;

La primera línea especifica que, antes de iniciar el script, el usuario tendrá que seleccionar los parámetros externos. De hecho, en la segunda línea hay un parámetro simple. MaxLimit trata con el número de barras del historial que usa el programa. Por defecto, este número es 1 000, pero el usuario lo puede cambiar en cualquier momento.


   int handle;
   handle = FileOpen("FindLevels.txt", FILE_CSV|FILE_WRITE, '\t');
   FileWrite(handle, "Cost", "Bars Num");

Las primeras dos líneas de la función start() trata con la apertura del archivo "FindLevels.txt" con los parámetros FILE_CSV (significa que el archivo es una tabla de texto) y FILE_WRITE (significa que el archivo se ha abierto para la escritura). El parámetro "\t" indica que los dígitos en el archivo se dividirá con la tabulación. Aparecerán dos columnas en el archivo: la primera es el "Coste" – el precio; el segundo es "Número de barras" – el número de barras que cruzan el precio. Utilizando la función FileWrite(), se escriben los nombres de las columnas en el archivo "FindLevels.txt".


   double d1 = Low[iLowest(NULL, 0, MODE_LOW, MaxLimit, 0)];
   double d2 = High[iHighest(NULL, 0, MODE_HIGH, MaxLimit, 0)];

Luego se ven el precio mínimo y máximo de la barra cero a la barra con el número MaxLimit en el historial. iLowest() muestra el índice de la barra donde se puede encontrar el precio más bajo. Low[] es el valor más bajo para esta barra. Siguiendo el mismo procedimiento, para el iHighest() es High[].


   for (double d = d1; d <= d2; d += 0.0001)
     {
       double a = 0.0;
       for(int i = 0; i < MaxLimit; i++)
           if(d > Low[i] && d < High[i])
               a+=1;   
       FileWrite(handle, d, a);
     }

Después de esto, se obtendrá el ciclo "para". Este ciclo inicia los precios desde el mínimo d1 hasta el máximo d2 con el paso 0,0001. La variable "a" es el número de la barra cruzando el precio "d". El segundo ciclo cerrado inicia las barras del historial MaxLimit y comprueba si están cruzando el precio "d". Cuando acaba el ciclo cerrado, el proceso File Write, escribe el precio "d" y el número de barras "a" en un archivo.


   FileClose(handle);
   return(0);

Cuando acabe el proceso start(), cierre el archivo y termine el proceso utilizando la función return(). Después de haber escrito el script, se puede completar haciendo clic en el botón "Completar" e iniciarlo en MetaTrader desde la sección "Scripts" en la ventana "Navegador".


Archivo en Excel

Después de llamar al script, el programa crea el archivo "FindLevels.txt" en la carpeta "\experts\files\". Ábralo con Excel. Para ello, tiene que llamar a Microsoft Excel y hacer clic en el botón "Abrir", y luego seleccione el tipo de archivo "Archivos de texto", busque el archivo que necesite y haga clic en el botón "Abrir".


No hay que cambiar nada en las primeras dos ventanas, haga clic en el botón "Siguiente".


En la tercera ventana, haga clic en el botón "Avanzadas", seleccione el símbolo del punto (".") para el punto decimal y la ' (apóstrofe) para el punto de milésimas. A continuación haga clic en "Ok" y "Finalizar".



Le aparecerán las dos columnas en Excel. Ahora hay que esquematizar el gráfico. Elija Insertar-> "Gráfico".




Lo último que hay que hacer es seleccionar el tipo del futuro gráfico y cómo se va a mostrar.


Y ya tendrá el gráfico de barras en precio.


Puede ver que los mínimos del gráfico están ubicados en los puntos 1.2582, 1.2616, 1.2644, 1.2705, 1.2712, 1.2730, 1.2744, 1.2850, 1.2897. Estos son los niveles de soporte/resistencia.


Se pueden comparar los resultados de 10.11.2006 con los de la fecha anterior, 9.10. 2006:

RES 4 1,288 dólares, máximo del 31 de agosto
RES 3 1,2865 dólares 1,618 el objetivo del cambio tras la caída de 1,2795 a 1,2680
RES 2 1,2830 dólares Fibonacci 76,4% de 1,2940 a 1,2485
RES 1 1,2805 dólares la resistencia de hora
Nivel actual: 1,2760
SUP 1 1,2745 dólares la línea de tres semanas de tenencia en aumento
SUP 2 1,2730 dólares Fibonacci 61,8% de 1,2680 a 1,2820
SUP 3 1,2715 dólares Fibonacci 76,4% de 1,2680 a 1,2820
SUP 4 1,2680 dólares el mínimo del 3 de noviembre.


Como puede ver, hay una buena correlación entre el gráfrico y los pronósticos. ¡Esto quiere decir que los niveles que se han encontrado son los de soporte/resistencia!


Traducción del ruso hecha por MetaQuotes Ltd.
Artículo original: https://www.mql5.com/ru/articles/1439

Archivos adjuntos |
ExportLevels.mq4 (1.33 KB)
Mostrar los niveles de soporte/resistencia Mostrar los niveles de soporte/resistencia
El artículo trata sobre la detección e indicación de los niveles de soporte/resistencia en el programa MetaTrader 4. El indicador adecuado y universal está basado en un algoritmo simple. El artículo también aborda el tema de la creación de un indicador simple que pueda mostrar los resultados de diferentes periodos de tiempo en un espacio de trabajo.
Price Action. Automatización de la estrategia del patrón envolvente (Engulfing) Price Action. Automatización de la estrategia del patrón envolvente (Engulfing)
Este artículo describe el proceso de creación de un Asesor Experto para MetaTrader 4 basado en el patrón Engulfing, además del principio de reconocimiento del patrón, las reglas para colocar las órdenes pendientes y las órdenes Stop. Se proporcionan los resultados de la prueba y optimización.
Filtrado por Historial Filtrado por Historial
El artículo describe el uso del trading virtual como una parte integral del filtro del trade abierto.
Manejar el Terminal de MetaTrader mediante DLL Manejar el Terminal de MetaTrader mediante DLL
El artículo aborda el manejo de los elementos de la interfaz de usuario mediante una librería DLL adicional a través de un ejemplo que cambia la configuración de entrega de notificaciones push. El código fuente de la librería y el script del ejemplo están adjuntos al artículo.