Gap - ¿una estrategia rentable o 50/50?
- Introducción
- ¿Qué mercado elegir?
- Trabajando con un grupo de símbolos
- Recopilando datos
- Ahora con CGraphic
- Seleccionando archivos con la ventana de diálogo de sistema "Abrir archivo"
- Estadísticas sobre otros valores
- Conclusión
Introducción
En el presente artículo vamos a ocuparnos de comprobar los gaps en el marco temporal D1 en los mercados de valores. ¿Con qué frecuencia continúa el mercado moviéndose en la dirección de un gap? ¿Puede virar el mercado después de un gap? Vamos a tratar de contestar a estas preguntas. Para visualizar los resultados se usarán los gráficos personalizados CGraphic. La selección de los símbolos se realiza con la ayuda de la función DLL GetOpenFileName de sistema.
¿Qué mercado elegir?
Conviene destacar de inmediato que el gap nos interesa exclusivamente en el marco D1.
Es obvio que el mayor número de gaps no se da en los símbolos Fórex, si no en el mercado de valores. Aunque sea por el hecho de que los valores se comercian desde la mañana hasta la noche, y no las 24 horas. Para nosotros en concreto, en la búsqueda del gap nos interesan las acciones: estas disponen de una historia muy profunda. En lo que respecta a los futuros, no nos vienen muy bien, ya que tienen una vida útil de 3 o 6 meses, y esto resulta insuficiente al investigar la historia del marco temporal D1.
A la hora de investigar cuántas barras hay del símbolo y el marco temporal D1 actuales en el servidor, se puede usar el script "TestLoadHistory.mq5" del apartado del manual "Organización de acceso a los datos". Ejemplo de comprobación de barras D1 en el símbolo "ABBV":
Fig. 1. Símbolo "ABBV"
Orden de acción:
- Primero debemos guardar el script del manual. Para ello, en el editor de código MetaEditor 5 se crea un nuevo script (manual: "Crear script"); es mejor darle al script directamente el nombre "TestLoadHistory.mq5". Ahora debemos copiar el texto del script del manual y pegarlo en el script "TestLoadHistory.mq5" (en este caso, además, el texto del manual deberá sustituir por completo al texto en el script).
- Luego compilamos el script resultante (después de la compilación, el script será visible en el terminal, en la ventana "Navegador").
- A continuación, iniciamos el script en el terminal MetaTrader 5. Ya que hemos realizado la comprobación para el símbolo "ABBV", esto significa que hay que preparar el gráfico: abrimos el gráfico del símbolo "ABBV" y cambiamos el marco temporal a D1. Tomamos el script desde la ventana "Navegador" y lo trasladamos al gráfico abierto del símbolo "ABBV". En los parámetros del script establecemos el nombre del símbolo "ABBV", elegimos el marco temporal D1 y ponemos la fecha 1970:
Fig. 2. Iniciando el script "TestLoadHistory.mq5"
Resultados del funcionamiento del script:
TestLoadHistory (ABBV,D1) Start loadABBV,Dailyfrom1970.03.16 00:00:00 TestLoadHistory (ABBV,D1) Loaded OK TestLoadHistory (ABBV,D1) First date 2015.09.18 00:00:00 - 758 bars
— la historia comienza a partir del 2015 y contiene 758 barras de D1. Es una tamaño suficiente para el análisis.
Trabajando con un grupo de símbolos
Para analizar y calcular algunos criterios, necesitaremos posibilitar la comparación de los símbolos de un mismo grupo. Normalmente, los símbolos en el terminal MetaTrader 5 ya están distribuidos en grupos (clicando con el botón derecho en la ventana "Observación de mercado" y el punto "Símbolos" o la combinación de teclas "Ctrl" + "U"):
Fig. 3. Símbolos del grupo NASDAQ(SnP100)
En la figura se destaca el grupo "NASDAQ(SnP100)": en este grupo entra el símbolo "ABBV". El método más cómodo para trabajar con un grupo de símbolos es posibilitar el inicio del script en un símbolo de este grupo. De esta forma, para iterar cada grupo será necesario abrir manualmente desde cada grupo el gráfico de un símbolo y después iniciar en el gráfico el script auxiliar "Symbols on symbol tree.mq5", este script recopila todos los símbolos del grupo (nombres de los símbolos) en un archivo aparte.
El script "Symbols on symbol tree.mq5" funciona según el mismo algoritmo: obtenemos la ruta en el árbol de símbolos "SYMBOL_PATH"; a partir de la ruta obtenida seleccionamos el grupo final de símbolos (para este ejemplo, se tratará del grupo "NASDAQ(SnP100)"; elegimos todos los símbolos de este grupo y guardamos el símbolos seleccionado en un archivo. El nombre del archivo es una ruta en el árbol de símbolos en el que todos los símbolos "/" y "\" han sido sustituidos por "_" (la sustitución se realiza automáticamente con el script, y el nombre del archivo también se obtiene de forma automática). Después de sustituir los símbolos para el grupo de símbolos NASDAQ(SnP100)", obtendremos este nombre de archivo: "Stock Markets_USA_NYSE_NASDAQ(SnP100)_.txt".
¿Para qué necesitamos ubicar cada grupo en un archivo aparte? De esta forma, podremos simplemente leer los nombres de los símbolos desde los archivos de los grupos sin tener que iterar todos los símbolos e investigar la dirección del gap. El script de servicio "Symbols on symbol tree.mq5" nos ahorra la rutina de tener que seleccionar manualmente los símbolos de un grupo de símbolos concreto.
Script "Symbols on symbol tree.mq5"
Vamos a ver con mayor detenimiento el funcionamiento del script.
ATENCIÓN: ¡solo el texto "Everything is fine. There are no errors" en la pestaña "Expertos" garantiza que el script ha funcionado sin errores y que el archivo obtenido con los símbolos se puede utilizar para trabajar con el asesor!
Para abreviar el código de las operaciones con archivos se incluye la clase CFileTxt, mientras que el trabajo con el archivo de texto lo realiza m_file_txt, un objeto de la clase CFileTxt. El script hace su trabajo en siete pasos:
//+------------------------------------------------------------------+ //| Symbols on symbol tree.mq5 | //| Copyright © 2018, Vladimir Karputov | //| http://wmua.ru/slesar/ | //+------------------------------------------------------------------+ #property copyright "Copyright © 2018, Vladimir Karputov" #property link "http://wmua.ru/slesar/" #property version "1.000" //--- #include <Files\FileTxt.mqh> CFileTxt m_file_txt; // file txt object //--- string m_file_name=""; // File name //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { //--- STEP 1 string current_path=""; if(!SymbolInfoString(Symbol(),SYMBOL_PATH,current_path)) { Print("ERROR: SYMBOL_PATH"); return; } //--- STEP 2 string sep_="\\"; // A separator as a character ushort u_sep_; // The code of the separator character string result_[]; // An array to get strings //--- Get the separator code u_sep_=StringGetCharacter(sep_,0); //--- Split the string to substrings int k_=StringSplit(current_path,u_sep_,result_); //--- STEP 3 //--- Now output all obtained strings if(k_>0) { current_path=""; for(int i=0;i<k_-1;i++) current_path=current_path+result_[i]+sep_; } //--- STEP 4 string symbols_array[]; int symbols_total=SymbolsTotal(false); for(int i=0;i<symbols_total;i++) { string symbol_name=SymbolName(i,false); string symbol_path=""; if(!SymbolInfoString(symbol_name,SYMBOL_PATH,symbol_path)) continue; if(StringFind(symbol_path,current_path,0)==-1) continue; int size=ArraySize(symbols_array); ArrayResize(symbols_array,size+1,10); symbols_array[size]=symbol_name; } //--- STEP 5 int size=ArraySize(symbols_array); if(size==0) { PrintFormat("ERROR: On path \"%s\" %d symbols",current_path,size); return; } PrintFormat("On path \"%s\" %d symbols",current_path,size); //--- STEP 6 m_file_name=current_path; StringReplace(m_file_name,"\\","_"); StringReplace(m_file_name,"/","_"); if(m_file_txt.Open("5220\\"+m_file_name+".txt",FILE_WRITE|FILE_COMMON)==INVALID_HANDLE) { PrintFormat("ERROR: \"%s\" file in the Data Folder Common folder is not created",m_file_name); return; } //--- STEP 7 for(int i=0;i<size;i++) m_file_txt.WriteString(symbols_array[i]+"\r\n"); m_file_txt.Close(); Print("Everything is fine. There are no errors"); //--- } //+------------------------------------------------------------------+
Algoritmo de funcionamiento del script:
- STEP 1: para el símbolo actual se define SYMBOL_PATH, la ruta en el árbol de símbolos;
- STEP 2: la ruta obtenida es dividida en subcadenas con el separador "\";
- STEP 3: montamos de nuevo la ruta actual, pero ya sin la última subcadena, puesto que la última subcadena es el nombre del símbolo;
- STEP 4: ciclo por todos los símbolos disponibles; si para un símbolo la ruta en el árbol de símbolos coincide con la ruta actual, seleccionamos el nombre del símbolo y lo añadimos a la matriz de símbolos detectados;
- STEP 5: comprobamos el tamaño de la matriz de símbolos detectados;
- STEP 6: formamos el nombre del archivo (eliminamos del nombre los símbolos "/" y "\", creamos el archivo;
- STEP 7: escribimos en el archivo nuestra matriz de símbolos detectados y cerramos el archivo.
Preste atención a STEP 6: el archivo se crea en la carpeta "5220", en el catálogo de archivos generales (se usa la bandera FILE_COMMON).
Asimsimo, es necesario asegurarse de que el script funcione sin errores: en la pestaña "Expertos" deberá aparecer el rótulo "Everything is fine. There are no errors. Create file:". Y la línea siguiente se mostrará el nombre del archivo: podemos copiar este nombre y pegarlo en el script "Getting gap statistics ...". Más abajo tenemos un ejemplo de creación correcta de un archivo:
On path "Stock Markets\USA\NYSE/NASDAQ(SnP100)\" 100 symbols
Everything is fine. There are no errors. Create file:
Stock Markets_USA_NYSE_NASDAQ(SnP100)_
Como resultado, obtenemos un archivo (en este ejemplo Stock Markets_USA_NYSE_NASDAQ(SnP100)_), en el que, en que cada nueva línea, hay un solo símbolo. Las cinco primeras líneas de este archivo:
AAPL ABBV ABT ACN AGN
Recopilando datos
La obtención de datos históricos de OHLC según los símbolos y el cálculo estadístico son tareas del script "Getting gap statistics.mq5". De acuerdo con cada símbolo se rellena la estructura SGapStatistics:
struct SGapStatistics { string name; // symbol name int d1_total; // total number of D1 bars int gap_total; // total number of gaps int gap_confirmed; // gap was confirmed };
name — nombre del símbolo
d1_total — número de barras D1 del símbolo
gap_total — número de gaps detectados
gap_confirmed — número de gaps confirmados (por ejemplo, el día ha comenzado con gap hacia arriba o hacia abajo, y el día ha terminado con una barra alcista)
Para obtener los precios OHLC de cada símbolo, la mejor función es "CopyRates". Se usará la tercera forma: de acuerdo con las fechas inicial y final del intervalo de tiempo requerido. Como hora inicial se toma la hora actual calculada del servidor comercial TimeTradeServer más un día; y como fecha final, el 1 de enero de 1970.
Solo queda resolver la cuestión del procesamiento del error (como resultado de la solicitud se retorna "-1") o cómo determinar que, como resultado de la solicitud, no se han retornado todos los datos (por ejemplo, no todos los datos han sido descargados aún del servidor). Podemos tomar el camino sencillo (solicitud — pausa N — segundos — nueva solicitud) o el camino correcto. El camino correcto se basa en el procesamiento del script "TestLoadHistory.mq5" del apartado del manual de usuario "Organización de acceso a los datos".
Los resultados de la ejecución de la solicitud del script se muestran más abajo:
switch(res) { case -1 : Print("Símbolo desconocido",InpLoadedSymbol); break; case -2 : Print("Se han solicitado más barras de las que se pueden representar en el gráfico"); break; case -3 : Print("La ejecución ha sido interrumpida por el usuario"); break; case -4 : Print("El indicador no debe cargar sus propios datos"); break; case -5 : Print("La carga no ha tenido éxito"); break; case 0 : Print("Todos los datos han sido cargados"); break; case 1 : Print("Ya hay datos suficientes en la serie temporal"); break; case 2 : Print("La serie temporal se ha construido a partir de los datos disponibles en el terminal"); break; default : Print("El resultado de la ejeución es indeterminado"); }
es decir, un resultado de ejecución menor a cero supone un error. Entonces el esquema de funcionamiento será el siguiente: abrimos el archivo con los símbolos y realizamos una solicitud sobre cada símbolo. Sumamos los resultados negativos. Pero si hay aunque sea un resultado negativo, mostraremos un mensaje sobre la presencia de problemas durante las solicitudes. En tal caso, el usuario deberá iniciar el script de nuevo (lo más probable es que la historia ya se haya cargado para este momento). Si no hay errores, obtenemos los datos de OHLC y calculamos el número de gaps.
Script "Getting gap statistics.mq5"
Este script muestra las estadísticas de los gaps en la pestaña "Expertos" del terminal. Aquí y en lo sucesivo, tendremos la formulación "Confirmación del gap". Un gap confirmado significa que la barra diaria se ha cerrado en la dirección del gap, y un gap no confirmado, que la barra se ha cerrado en la dirección opuesta al gap:
Fig. 4. Gaps confirmados y no confirmados
Tiene un parámetro de entrada "File name", que es precisamente el nombre del archivo formado por el script auxiliar "Symbols on symbol tree.mq5" (si usted aún recuerda, este archivo se crea en la carpeta general en el directorio 5220). El nombre del archivo se introduce sin indicar el directorio y la extensión, por ejemplo:
Fig. 5. Parámetro de entrada del script "Getting gap statistics"
De esta forma, para obtener la estadísticas será necesario ejecutar varios pasos:
- Decidimos para qué grupo de símbolos de van a calcular los gaps
- Seleccionamos en el grupo elegido cualquier símbolo y abrimos el gráfico del símbolo seleccionado
- Colocamos en el gráfico abierto el script "Symbols on symbol tree.mq5", como resultado, se creará un archivo con todos los símbolos del grupo elegido. Es necesario comprobar que no haya errores durante el funcionamiento del script: en la pestaña "Expertos" deberá aparecer el rótulo "Everything is fine. There are no errors".
- Debemos colocar en el gráfico el script "Getting gap statistics.mq5"
Como resultado, en la pestaña "Expertos" encontraremos las siguientes estadísticas sobre el número de gaps. Aspecto para los cinco primeros símbolos:
[name] [d1_total] [gap_total] [gap_confirmed] [ 0] "AAPL" 7238 3948 1640 [ 1] "ABBV" 759 744 364 [ 2] "ABT" 762 734 374 [ 3] "ACN" 759 746 388 [ 4] "AGN" 761 754 385
Ahora con CGraphic
Mostrar toda la información en la pestaña "Expertos" no resulta muy informativo, por eso el siguiente script "Getting gap statistics CGraphic.mq5", para la muestra de gráficos, usará gráficos personalizados CGraphic. El script tiene los siguientes parámtros de entrada:
- "File name" — nombre del archivo con los símbolos (este archivo debe ser creado anteriormente con la ayuda del script "Symbols on symbol tree.mq5")
- "Log CheckLoadHistory" — mostrar/no mostrar los resultados de la carga de la historia de los símbolos en la pestaña "Expertos"
- "Log Statistics" — mostrar/no mostrar las estadísticas de los gaps en la pestaña "Expertos
El resultado del funcionamiento es un gráfico con el número (en tanto por ciento) de gaps confirmados:
Fig. 6. Resultado del funcionamiento del script "Getting gap statistics CGraphic.mq5"
En la figura se marcan con números:
- "1" — nombre de la línea de los gaps confirmados
- "2" — escala porcentual
- "3" — nombre del archivo del que se han tomado los símbolos
En el gráfico podemos ver que los valores de los gaps oscilan cerca de la marca del 50%, más menos un 6% (un 6% es el máximo), aunque hay tres valores atípicos menores al 42%. Estos tres valores atípicos con confirmación de gaps inferiores al 42% indican que los tres símbolos tienen una probabilidad del 58% de que la barra diaria vaya en contra de la tendencia.
Ahora podemos comprobar cualquier grupo de símbolos Stock Markets\RussiaMICEX20. Resultado del funcionamiento del script "Getting gap statistics CGraphic.mq5" para el grupo Stock Markets\RussiaMICEX20:
Fig. 7. Estadísticas de los gaps para el grupo Stock Markets\RussiaMICEX20
Aquí vemos dos valores atípicos. Pero en la versión actual no es posible conectar el dibujo y el símbolo. Esto significa que deberemos mejorar un poco el script.
Script "Getting gap statistics CGraphic 2.mq5
Cambios: en la versión 2.0, en la pestaña "Expertos" se mostrarán en tanto por ciento las estadísticas de los gaps confirmados. Gracias a ello, si tenemos activado el ajuste "Log Statistics" para el grupo Stock Markets\RussiaMICEX20, podremos encontrar con facilidad los dos símbolos anómalos:
[name] [d1_total] [gap_total] [gap_confirmed] [confirmed_per] *** [14] "NVTK.MM" 757 737 347 47.08 [15] "PIKK.MM" 886 822 282 34.31 [16] "ROSN.MM" 763 746 360 48.26 [17] "RSTI.MM" 775 753 357 47.41 [18] "RTKM.MM" 753 723 324 44.81 [19] "SBER.MM" 762 754 400 53.05 [20] "SBER_p.MM" 762 748 366 48.93 [21] "SNGS.MM" 762 733 360 49.11 [22] "TATN.MM" 765 754 370 49.07 [23] "SNGS_p.MM" 751 708 305 43.08 [24] "URKA.MM" 765 706 269 38.10 [25] "VTBR.MM" 763 743 351 47.24 [26] "RASP.MM" 778 756 354 46.83
Para los símbolos "PIKK.MM" 34% y para "URKA.MM", un 38% de gaps confirmados significa que en estos símbolos, con una probabilidad del 66% y el 62% respectivamente, la barra diaria se cerrará contra el gap.
Limitación en el número de símbolos (instrumentos) en el archivo
Al analizar diferentes grupos de símbolos hemos encontrado grupos en los que se contienen más de mil símbolos. Resulta que trabajar con un conjunto tan grande es muy incómodo: el proceso de adición de semejante cantidad de símbolos a la ventana "Observación de mercado" dura mucho tiempo, y el gráfico resultante se hace ilegible, hay demasiados datos, y están ubicados demasiado cerca unos respecto a otros.
Por eso, hemos decido modernizar el script "Symbols on symbol tree.mq5", y escribir la versión "Symbols on symbol tree 2.mq5". En la versión 2, el número máximo de símbolos en el archivo no puede ser superior a 200, y al nombre del archivo se añade el número de parte. Por ejemplo, en el grupo de símbolos "Stock Markets\USA\NYSE/NASDAQ(SnP100)\" se encuentran 100 símbolos, esto significa que solo habrá una parte, y el nombre del archivo tendrá el aspecto siguiente: "Stock Markets_USA_NYSE_NASDAQ(SnP100)_part_0.txt".
Seleccionando archivos con la ventana de diálogo de sistema "Abrir archivo"
Tras trabajar varios días con los scripts de este artículo, hemos llegado a la conclusión de que introducir el nombre de un archivo en los parámetros de entrada del script "Getting gap statistics CGraphic 2.mq5" es muy incómodo. Hemos tenido que realizar varias manipulaciones: abrir la carpeta general de todos los terminales, copiar el nombre del archivo y después pegar el nombre copiado del archivo en el script.
Por eso la elección del archivo se ha realizado con la ayuda de la función DLL GetOpenFileName de sistema. Para ello, incluimos el archivo "GetOpenFileNameW.mqh". La función "OpenFileName" de este archivo retorna la ruta completa del archivo *.txt elegido, por ejemplo, puede tratarse de una ruta así de larga: "C:\Users\barab\AppData\Roaming\MetaQuotes\Terminal\Common\Files\5220\Stock Markets_USA_NYSE_NASDAQ(SnP100)_part_0.txt". Solo queda copiar de esta ruta el nombre del archivo.
El script "Getting gap statistics CGraphic 3.mq5" usa la función DLL GetOpenFileName:
Fig. 8. Solicitud de permiso de DLL al iniciar el script "Getting gap statistics CGraphic 3.mq5"
, y así se elige el archivo con la ayuda de la ventana de diálogo de sistema "Abrir archivo":
Fig. 9. Elegir archivo
Estadísticas sobre otros valores
Ahora podemos reunir las estadísticas de los gaps para otros grupos de símbolos.
Grupo Stock Markets\USA\NYSE\NASDAQ(ETFs)
Los símbolos del grupo se han dividido en siete archivos:
Fig. 10. Grupo Stock Markets\USA\NYSE\NASDAQ(ETFs), parte 0
Fig. 11. Grupo Stock Markets\USA\NYSE\NASDAQ(ETFs), parte 1
Fig. 12. Grupo Stock Markets\USA\NYSE\NASDAQ(ETFs), parte 2
Fig. 13. Grupo Stock Markets\USA\NYSE\NASDAQ(ETFs), parte 3
Fig. 14. Grupo Stock Markets\USA\NYSE\NASDAQ(ETFs), parte 4
Fig. 15. Grupo Stock Markets\USA\NYSE\NASDAQ(ETFs), parte 5
Fig. 16. Grupo Stock Markets\USA\NYSE\NASDAQ(ETFs), parte 6
Grupo "Stock Markets\United Kngdom\LSE Int. (ADR/GDR)\"
Fig. 17. Grupo "Stock Markets\United Kngdom\LSE Int. (ADR/GDR)\"
Grupo "Stock Markets\United Kngdom\LSE (FTSE350)\"
En este grupo hay 350 símbolos, de acuerdo con este símbolo, están divididos en dos partes.
Fig. 18. Grupo "Stock Markets\United Kngdom\LSE (FTSE350)\", parte 0
Fig. 19. Grupo "Stock Markets\United Kngdom\LSE (FTSE350)\", parte 1
Grupo "Stock Markets\Germany\XETRA (IBIS)\Dax100\"
Fig. 20. Grupo "Stock Markets\Germany\XETRA (IBIS)\Dax100\"
Grupo "Stock Markets\France\Eurnext (CAC40)\"
Fig. 21. Grupo "Stock Markets\France\Eurnext (CAC40)\"
Conclusión
Al realizar la investigación de varios mercados de valores, hemos notado que después del gap, la probabilidad de continuación del movimiento y la probabilidad de viraje en muchos casos es cercana al 50%, es decir, tratar de captar un gap tiene unas posibilidades de 50/50. Pero en esta caso, además, hay valores del mercado que tienen una probabilidad bastante superior al 65% (tanto de continuación, como de viraje). Es precisamente en estos valores en los que podemos apoyarnos a la hora de comerciar con gaps.
Hemos adjuntado al artículo un directorio con los scripts descritos en el artículo:
Nombre del script | Descripción |
---|---|
Symbols on symbol tree.mq5 | Script auxiliar. Define un grupo en el árbol de símbolos y guarda todos los símbolos de este grupo en un archivo en la carpeta general, en el directorio 5220 |
Symbols on symbol tree 2.mq5 | Script auxiliar. Define un grupo en el árbol de símbolos y guarda todos los símbolos de este grupo en un archivo en la carpeta general, en el directorio 5220. Divide un grupo de símbolos en archivos de 200 símbolos. |
Getting gap statistics.mq5 | El script carga los símbolos de un archivo creado por el script auxiliar y muestra en la pestaña "Expertos" las estadísticas de los gaps |
Getting gap statistics CGraphic.mq5 | El script carga los símbolos de un archivo creado por el script auxiliar y muestra las estadísticas de los gaps en forma de gráfico, se usan los gráficos personalizados CGraphic |
Getting gap statistics CGraphic 2.mq5 | El script carga los símbolos de un archivo creado por el script auxiliar y muestra las estadísticas de los gaps en forma de gráfico, se usan los gráficos personalizados CGraphic. Las estadísticas en la pestaña "Expertos" también se muestran en tanto por ciento. |
Getting gap statistics CGraphic 3.mq5 | El script carga los símbolos de un archivo creado por el script auxiliar y muestra las estadísticas de los gaps en forma de gráfico, se usan los gráficos personalizados CGraphic. Las estadísticas en la pestaña "Expertos" también se muestran en tanto por ciento. Para elegir el archivo con los símbolos se usa la ventana de diálogo de sistema "Abrir archivo" |
GetOpenFileNameW.mqh | Archivo de inclusión que permite trabajar con la ventana de diálogo de sistema "Abrir archivo" |
Traducción del ruso hecha por MetaQuotes Ltd.
Artículo original: https://www.mql5.com/ru/articles/5220
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Usted acepta la política del sitio web y las condiciones de uso
Muy buen artículo Vladimir. Yo me dedico a operar gaps, mas de forma automatizada que manual con mi propio EA, y tengo que decir:
Estoy deacuerdo contigo en que "después de la aparición del gap, la probabilidad de continuación del movimiento y la probabilidad de viraje en muchos casos es cercana al 50%" es decir una vez que aparece el gap, imagina a las 08:00 en un índice europeo, la probabilidad de que entre o salga del gap es la misma.
Ahora bien la finalidad del gap es siempre la misima, que cubra su hueco en las primeras horas de mercado, de hecho la probabildiad de que un gap del Dax30, cubra en menos de 1 dia (1 sesion bursatil), en los últimos 3 años, es cercana al 80%. Eso no quiere decir que haya un gap y que cubra al momento. Lo normal, es que ante la aparicion de un gap, el precio siga la tendencia del gap (ejm: ante un gap bajista, lo normal es que el precio caiga poco o mucho, en un % respecto al propio gap), y una vez el precio ha caido, este vire de dirección y acabe tapando su gap.
Por tanto, para que la cobertura funcione y de beneficio a largo plazo, hay que decidir muy bien los puntos de entrada al gap (esto es lo que hace que el riesgo se pueda reducir drásticamente, y no soportemos oerdidas indecibles, te lo digo por experiencia), ya sea por debajo del precio de apertura, o una vez haya tapado un poco el hueco (importantisimo este valor, ya que un gap puede empezar a cubrir, inclusive llegar a un % de cobertura del 80% y luego virar).
Respecto a los porcentajes, en la propia operativa real, un porcentaje >50% es una ventaja, pero hay que decir que existen estartegias 3:1, donde las pérdidas son muy reducidas y las ganancias amplias, cosas que a los gap les suele venir muy bien.
Lo que yo veo es que el gap, en cierta manera, y según quien lo interprete y como lo plante permite jugar con la estadistica a nuestro favor, pero para ello hay que elegir muy bien los puntos de entrada y de salida de todo gap, asi como el hecho de que un gap muy grande, ni debe ni puede operarse igual que un gap muy pequeño.
Te adjunto un BT de esa operativa, un Dow 30 (modelo de cobertura de gap) y un Eurobund con la otra estategia (gap bajista= precio cae; gap alcista, el precio sube)