Analisar as características ESTATÍSTICAS mais importantes do padrão e escolher um método de negociação sobre ele.

 

Digamos que temos um pedaço de um gráfico. Precisamos elaborar (sobre a história) a melhor maneira de abrir negócios sobre ela. Onde comprar, onde vender, onde comprar mais, onde fechar, e assim por diante. Mas devemos considerar que os padrões podem ser diferentes, e devemos encontrar o método mais eficaz de calcular os lugares de abertura de posição para qualquer padrão, minimizando ao mesmo tempo os riscos. Há uma condição mais importante, o padrão pode variar dentro de uma determinada faixa, digamos 20%. Ou seja, no início vemos um padrão e na barra seguinte ele mudará um pouco, embora suas características básicas permaneçam as mesmas (mas sempre veremos todo o padrão e todas as suas mudanças futuras). Ou seja, precisamos introduzir algum outro fator de erro.

Você tem alguma idéia da melhor maneira de fazer isso? Várias probabilidades e níveis de preços podem ser calculados, como isso pode ser feito?

 

Podemos partir da direção oposta:

  • estabelecemos a condição de quantos pontos temos que tomar para um determinado número de barras
  • então procurar por tais lugares
  • Após encontrar os pontos de "peixe", analisar que combinação de barras (padrão) era antes do ponto de "peixe".

 
Maxim Dmitrievsky:

Alguma idéia sobre a melhor maneira de fazer isso? Diferentes probabilidades e níveis de preços podem ser calculados, como isso pode ser feito?

é possível, está no campo do reconhecimento de imagens gráficas (visão mecânica)
 
Talvez aqui seja o que você está procurando.
Как искать паттерны в биржевых данных и использовать их в торговле?
Как искать паттерны в биржевых данных и использовать их в торговле?
  • habrahabr.ru
Сегодня предлагаю поразмышлять о том, как искать паттерны в биржевых данных и как их использовать для успешной торговли. Будем получать биржевые данные Forex от одного из брокеров, сохраним в базу данных PostgreSQL и попробуем найти закономерности при помощи алгоритмов машинного обучения. В статье есть несколько приятных бонусов в виде кода...
 
Rafael Sahibgareev:
Talvez este artigo tenha o que você está procurando.
O artigo não é nada, mas deixa um sabor horrível para a MQL5 - é impossível fazer um estudo inútil, embora fraco , na MQL5.
 
Vladimir Karputov:

Podemos partir da direção oposta:

  • estabelecemos a condição de quantos pontos temos que tomar para um determinado número de barras
  • então procurar por tais lugares
  • Após encontrar os pontos de "peixe", analisar que combinação de barras (padrão) era antes do ponto de "peixe".


Basicamente, sim, mas a probabilidade de lucro não será levada em conta quando o padrão for para este ou aquele lado. É desejável introduzir estes riscos desde o início, e não corrigi-los no processo.
 

Portanto, você também quer agrupar os padrões (calcular) ....

 
Maxim Dmitrievsky:

Em princípio, sim, mas não levará em conta a probabilidade de lucro quando o padrão se move em uma direção ou outra

O que você quer dizer com isso? Antes de mais nada, procuramos o "lugar do peixe". A segunda etapa é a análise do estado dos bares antes do "local do peixe".
 
Igor Yeremenko:
É possível, está no campo do reconhecimento de imagem (visão mecânica).

Levará tempo para anexá-lo ao mql... E eu não estou interessado em prever, mas em procurar as melhores entradas e saídas
 
Vladimir Karputov:

O que você quer dizer? Afinal de contas, primeiro procura-se o "lugar do peixe". O segundo passo é analisar o estado das barras antes da mancha de peixe.

Eu queria atribuir algumas estimativas probabilísticas aos padrões e suas sub ondas, pareceu-me que é primitivo demais para apenas procurar pontos n. Precisamos descrever estatisticamente o padrão, mas ainda não descobri como
 
Maxim Dmitrievsky:

Eu queria atribuir algumas estimativas probabilísticas aos padrões e suas sub ondas. É necessário descrever estatisticamente o padrão, ainda não descobri como.


Deve-se ir passo a passo. No início, basta encontrar velas de um certo tamanho. Visualmente, veja o que temos:

Busca de um padrão, versão "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 tela da plataforma MetaTrader Trading

EURUSD, M5, 2017.04.02

MetaQuotes Software Corp., MetaTrader 5, Demonstração

Busca de um padrão, versão "1.000".

EURUSD, M5, 2017.04.02, MetaQuotes Software Corp.


Arquivos anexados: