Analizzare le caratteristiche STATISTICHE più importanti del modello e scegliere un metodo di trading su di esso.

 

Diciamo che abbiamo un pezzo di un grafico. Dobbiamo elaborare (sulla storia) il modo migliore per aprire accordi su di essa. Dove comprare, dove vendere, dove comprare di più, dove chiudere, e così via. Ma dobbiamo considerare che i pattern possono essere diversi, e dobbiamo trovare il metodo più efficace per calcolare le posizioni di apertura per ogni pattern, minimizzando i rischi. Ci possono essere diverse operazioni in un pattern. C'è una condizione più importante, il modello può variare entro un certo intervallo, diciamo il 20%. Cioè, all'inizio vediamo un modello e nella barra successiva cambierà un po', anche se le sue caratteristiche di base rimangono le stesse (ma vedremo sempre l'intero modello e tutti i suoi futuri cambiamenti). Cioè, dobbiamo introdurre qualche altro fattore di errore.

Avete un'idea di come farlo al meglio? Si possono calcolare varie probabilità e livelli di prezzo, come si può fare?

 

Possiamo iniziare dalla direzione opposta:

  • impostiamo la condizione di quanti punti dobbiamo prendere per un dato numero di barre
  • allora cerca questi posti
  • dopo aver trovato i punti "pesce", analizzare quale combinazione di barre (modello) era prima del punto "pesce".

 
Maxim Dmitrievsky:

Qualche idea sul modo migliore per farlo? Si possono calcolare diverse probabilità e livelli di prezzo, come si può fare?

È possibile, è nel campo del riconoscimento delle immagini grafiche (visione artificiale)
 
Forse questo è quello che state cercando.
Как искать паттерны в биржевых данных и использовать их в торговле?
Как искать паттерны в биржевых данных и использовать их в торговле?
  • habrahabr.ru
Сегодня предлагаю поразмышлять о том, как искать паттерны в биржевых данных и как их использовать для успешной торговли. Будем получать биржевые данные Forex от одного из брокеров, сохраним в базу данных PostgreSQL и попробуем найти закономерности при помощи алгоритмов машинного обучения. В статье есть несколько приятных бонусов в виде кода...
 
Rafael Sahibgareev:
Forse questo articolo ha quello che stai cercando.
L'articolo non è niente, ma lascia un retrogusto terribile per MQL5 - è impossibile fare uno studio inutile, anche se debole , in MQL5.
 
Vladimir Karputov:

Possiamo iniziare dalla direzione opposta:

  • impostiamo la condizione di quanti punti dobbiamo prendere per un dato numero di barre
  • allora cerca questi posti
  • dopo aver trovato i punti "pesce", analizzare quale combinazione di barre (modello) era prima del punto "pesce".


Fondamentalmente, sì, ma la probabilità di profitto non sarà presa in considerazione quando il modello va in questo o quel modo. È auspicabile introdurre questi rischi fin dall'inizio, e non correggerli nel processo.
 

Quindi vuoi anche raggruppare i modelli (calcolare) ....

 
Maxim Dmitrievsky:

In linea di principio, sì, ma non terrà conto della probabilità di profitto quando il modello si muove in una direzione o nell'altra

Cosa vuoi dire? Prima di tutto cerchiamo il "posto del pesce". La seconda fase è l'analisi dello stato dei bar prima del "posto del pesce".
 
Igor Yeremenko:
È possibile, è nel campo del riconoscimento delle immagini (visione artificiale).

Ci vorrà del tempo per attaccarlo a mql... E non mi interessa fare previsioni, ma cercare i migliori input e output
 
Vladimir Karputov:

Cosa vuoi dire? Dopo tutto, prima si cerca il "posto del pesce". Il secondo passo è analizzare lo stato delle barre prima della macchia di pesce.

Volevo assegnare delle stime probabilistiche ai modelli e alle loro sotto-onde, mi sembrava che fosse troppo primitivo cercare solo i punti n-punti. Abbiamo bisogno di descrivere il modello statisticamente, ma non ho capito come
 
Maxim Dmitrievsky:

Volevo assegnare delle stime probabilistiche ai modelli e alle loro sotto-onde. È necessario descrivere il modello statisticamente, non ho capito come.


Si dovrebbe andare passo dopo passo. All'inizio, basta trovare candele di una certa dimensione. Vedere visivamente quello che abbiamo:

Ricerca di un modello, versione "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);
  }
//+------------------------------------------------------------------+

Screenshot della piattaforma di trading MetaTrader

EURUSD, M5, 2017.04.02

MetaQuotes Software Corp., MetaTrader 5, Demo

Ricerca di un modello, versione "1.000".

EURUSD, M5, 2017.04.02, MetaQuotes Software Corp.