分析模式的最重要的统计学特征,并选择一种交易方法。

 

比方说,我们有一块图表。我们需要(在历史上)研究出开启交易的最佳方式。在哪里买,在哪里卖,在哪里买更多,在哪里关闭,等等。但我们必须考虑到模式可能是不同的,我们必须找到最有效的方法来计算任何模式的开仓 位置,同时将风险降到最低。 一个模式中可能有几个交易。还有一个重要的条件,图案可以在一定范围内变化,比如20%。也就是说,一开始我们看到的是一个模式,而在下一个小节,它将发生一些变化,尽管它的基本特征保持不变(但我们将始终看到整个模式和它的所有未来变化)。也就是说,我们需要引入一些其他的误差因素。

你有什么好的办法吗?可以计算各种概率和价格水平,如何做到这一点?

 

我们可以从相反的方向开始。

  • 我们设定条件,在给定的条数下,我们必须取多少个点。
  • 然后寻找这样的地方
  • 在发现 "鱼 "点后,分析在 "鱼 "点之前有哪些条形组合(图案)。

 
Maxim Dmitrievsky:

有什么好的办法可以做到这一点吗?可以计算不同的概率和价格水平,如何做到这一点?

这是可能的,它是在图形图像的识别领域(机器视觉)。
 
也许这就是 你正在寻找的东西。
Как искать паттерны в биржевых данных и использовать их в торговле?
Как искать паттерны в биржевых данных и использовать их в торговле?
  • habrahabr.ru
Сегодня предлагаю поразмышлять о том, как искать паттерны в биржевых данных и как их использовать для успешной торговли. Будем получать биржевые данные Forex от одного из брокеров, сохраним в базу данных PostgreSQL и попробуем найти закономерности при помощи алгоритмов машинного обучения. В статье есть несколько приятных бонусов в виде кода...
 
Rafael Sahibgareev:
也许这篇文章 有你要找的东西。
这篇文章没什么,但它给MQL5留下了可怕的后遗症--在MQL5中不可能做出无用的,尽管 无力的研究。
 
Vladimir Karputov:

我们可以从相反的方向开始。

  • 我们设定条件,在给定的条数下,我们必须取多少个点。
  • 然后寻找这样的地方
  • 在发现 "鱼 "点后,分析在 "鱼 "点之前有哪些条形组合(图案)。


基本上,是的,但当模式这样或那样发展时,盈利概率不会被考虑在内。最好从一开始就引入这些风险,而不是在过程中纠正它们。
 

所以你也要对模式进行分组(计算)....

 
Maxim Dmitrievsky:

原则上,是的,但它不会考虑到当模式向一个方向移动时的盈利概率。

你是什么意思?首先,我们要寻找 "鱼的地方"。第二阶段是分析 "鱼地方 "之前的酒吧状态。
 
Igor Yeremenko:
这是有可能的,这是在图像识别(机器视觉)领域。

将其附加到mql上需要时间...而且我对预测不感兴趣,而是对寻找最佳的输入和输出感兴趣
 
Vladimir Karputov:

你是什么意思?毕竟,首先要找的是 "鱼的地方"。第二步是分析鱼点之前的酒吧状态。

我想给模式和它们的子波分配一些概率估计,在我看来,仅仅寻找N个点的位置太原始了。我们需要从统计学上描述这个模式,但我还没有想出办法。
 
Maxim Dmitrievsky:

我想给这些模式和它们的子波分配一些概率性的估计。有必要从统计学上描述这个模式,我还没有想出办法。


一个人应该一步一步地走下去。起初,只需找到一定大小的蜡烛。视觉上看到我们有什么。

搜索一个模式,版本 "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);
  }
//+------------------------------------------------------------------+

MetaTrader 交易平台截图

eurusd, m5, 2017.04.02

MetaQuotes软件公司, MetaTrader 5, 演示版

搜索一个模式,版本 "1.000"。

EURUSD, M5, 2017.04.02, MetaQuotes软件公司。


附加的文件:
原因: