Analice las características ESTADÍSTICAS más importantes del patrón y elija un método para operar con él.
Maxim Dmitrievsky:
Es posible, es en el campo del reconocimiento de imágenes gráficas (visión artificial)
¿Alguna idea sobre la mejor manera de hacerlo? Se pueden calcular diferentes probabilidades y niveles de precios, ¿cómo se puede hacer?
Tal vez esto es lo que está buscando.
Как искать паттерны в биржевых данных и использовать их в торговле?
- habrahabr.ru
Сегодня предлагаю поразмышлять о том, как искать паттерны в биржевых данных и как их использовать для успешной торговли. Будем получать биржевые данные Forex от одного из брокеров, сохраним в базу данных PostgreSQL и попробуем найти закономерности при помощи алгоритмов машинного обучения. В статье есть несколько приятных бонусов в виде кода...
El artículo no es nada, pero deja un regusto horrible para MQL5 - es imposible hacer un estudio inútil, aunque sea débil , en MQL5.
Vladimir Karputov:
Podemos empezar desde la dirección opuesta:
- establecemos la condición de cuántos puntos tenemos que tomar para un número determinado de barras
- entonces busca esos lugares
- después de encontrar las manchas de "pescado", analice qué combinación de barras (patrón) había antes de la mancha de "pescado".
Básicamente, sí, pero la probabilidad de ganancia no se tendrá en cuenta cuando el patrón vaya en esta o aquella dirección. Es conveniente introducir estos riesgos desde el principio, y no corregirlos en el proceso.
Así que también quiere agrupar los patrones (calcular) ....
Maxim Dmitrievsky:
En principio, sí, pero no tendrá en cuenta la probabilidad de beneficio cuando el patrón se mueva en una u otra dirección
En principio, sí, pero no tendrá en cuenta la probabilidad de beneficio cuando el patrón se mueva en una u otra dirección
¿Qué quieres decir? En primer lugar, buscamos el "lugar del pescado". La segunda etapa consiste en analizar el estado de los bares antes del "lugar del pescado".
Igor Yeremenko:
Es posible, está en el campo del reconocimiento de imágenes (visión artificial).
Es posible, está en el campo del reconocimiento de imágenes (visión artificial).
Se necesitará tiempo para adjuntarlo a mql... Y no me interesa predecir, sino buscar las mejores entradas y salidas
Vladimir Karputov:
¿Qué quieres decir? Al fin y al cabo, lo primero que se busca es un "lugar para el pescado". El segundo paso es analizar el estado de las barras antes de la mancha de pescado.
¿Qué quieres decir? Al fin y al cabo, lo primero que se busca es un "lugar para el pescado". El segundo paso es analizar el estado de las barras antes de la mancha de pescado.
Quería asignar algunas estimaciones probabilísticas a los patrones y sus sub-ondas, me parecía que sólo buscar gráficos de n puntos es demasiado primitivo. Tenemos que describir el patrón estadísticamente, pero no he descubierto cómo
Maxim Dmitrievsky:
Quería asignar algunas estimaciones probabilísticas a los patrones y a sus subondas. Es necesario describir el patrón estadísticamente, no he descubierto cómo.
Quería asignar algunas estimaciones probabilísticas a los patrones y a sus subondas. Es necesario describir el patrón estadísticamente, no he descubierto cómo.
Hay que ir paso a paso. Al principio, basta con encontrar velas de un tamaño determinado. Ver lo que tenemos visualmente:
Búsqueda de un patrón, versión "1.000"
//+------------------------------------------------------------------+ //| Search of a pattern.mq5 | //| Copyright © 2017, Vladimir Karputov | //| http://wmua.ru/slesar/ | //+------------------------------------------------------------------+ #property copyright "Copyright © 2017, Vladimir Karputov" #property link "http://wmua.ru/slesar/" #property version "1.000" #property description "Индикатор поиска свечей с заданным размером тела" #property description "Найденные свечи отмечаются символами из набора Wingdings" #property indicator_chart_window #property indicator_buffers 2 #property indicator_plots 2 //--- plot Arrows #property indicator_label1 "Bull candle" #property indicator_type1 DRAW_ARROW #property indicator_color1 clrBlue #property indicator_width1 1 #property indicator_label2 "Bear candle" #property indicator_type2 DRAW_ARROW #property indicator_color2 clrRed #property indicator_width2 1 //--- input параметры sinput string __1__ = ""; // Параметр тела свечи input ushort min_size_candel = 15; // Минимальный размер тела свечи () input ushort bull_code = 226; // Код символа бычьего бара(32-255) input ushort bear_code = 225; // Код символа медвежьего бара(32-255) sinput string __2__ = ""; // Параметр смещения input uchar vertical_shift = 15; // Смещение стрелок по вертикали (0-255) //--- индикаторные буфера для построения double BufferBull[]; double BufferBear[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- indicator buffers mapping SetIndexBuffer(0,BufferBull,INDICATOR_DATA); SetIndexBuffer(1,BufferBear,INDICATOR_DATA); //--- зададим код символа для отрисовки в PLOT_ARROW PlotIndexSetInteger(0,PLOT_ARROW,bull_code); PlotIndexSetInteger(1,PLOT_ARROW,bear_code); //--- зададим cмещение стрелок по вертикали в пикселях PlotIndexSetInteger(0,PLOT_ARROW_SHIFT,-(int)vertical_shift); PlotIndexSetInteger(1,PLOT_ARROW_SHIFT,(int)vertical_shift); //--- установим в качестве пустого значения 0 PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,0); PlotIndexSetDouble(1,PLOT_EMPTY_VALUE,0); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, 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[]) { static datetime prev_time=0; //--- работаем только в момент рождения нового бара, внутри бара не работаем if(prev_time==time[rates_total-1]) return(rates_total); //--- на новом баре запоминает время его рождения prev_time=time[rates_total-1]; //--- блок расчета значений индикатора int start=1; if(prev_calculated>0) start=prev_calculated; //--- цикл расчета for(int i=start;i<rates_total;i++) { //--- если предыдущая свеча имеет тело больше минимального if(MathAbs(open[i-1]-close[i-1])/Point()>min_size_candel) { if(open[i-1]<close[i-1]) BufferBull[i-1]=high[i-1]; if(open[i-1]>close[i-1]) BufferBear[i-1]=low[i-1]; } } //--- return value of prev_calculated for next call return(rates_total); } //+------------------------------------------------------------------+
Capturas de pantalla de la plataforma comercial MetaTrader
MetaQuotes Software Corp., MetaTrader 5, Demo
Búsqueda de un patrón, versión "1.000".
Archivos adjuntos:
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
Digamos que tenemos un trozo de gráfico. Tenemos que resolver (en la historia) la mejor manera de abrir acuerdos sobre ella. Dónde comprar, dónde vender, dónde comprar más, dónde cerrar, etc. Pero debemos tener en cuenta que los patrones pueden ser diferentes, y debemos encontrar el método más eficaz para calcular los lugares de apertura de posiciones para cualquier patrón, minimizando los riesgos. Puede haber varias operaciones en un patrón. Hay una condición más importante, el patrón puede variar dentro de un cierto rango, digamos el 20%. Es decir, al principio vemos un patrón y en el siguiente compás cambiará algo, aunque sus características básicas sigan siendo las mismas (pero siempre veremos el patrón completo y todos sus cambios futuros). Es decir, tenemos que introducir algún otro factor de error.
¿Tiene alguna idea sobre la mejor manera de hacerlo? Se pueden calcular varias probabilidades y niveles de precios, ¿cómo se puede hacer?