パターンの最も重要な統計的特徴を分析し、その上で取引方法を選択する。

 

例えば、チャートの一部があるとします。その上でディールを開くにはどうしたらいいか、(履歴を)整理する必要がある。どこで買うか、どこで売るか、どこで買い足すか、どこで決済するか、などなど。しかし、パターンが異なる場合もあることを考慮し、リスクを最小限に抑えながら、どのパターンでも最も効果的なポジション・オープニングの 場所の計算方法を見つけなければならない。 1つのパターンに複数のディールが存在することもある。もうひとつ重要な条件があります。それは、パターンがある一定の範囲、たとえば20%以内で変化してもよいということです。つまり、最初は1つのパターンを見て、次の小節では基本的な特徴は変わらないものの、多少変化する(ただし、常にパターン全体とその将来の変化すべてを見ることができる)のである。つまり、何か別の誤差要因を導入する必要があるのです。

どのようにすればよいか、お分かりになりますか?様々な確率や価格水準を算出することができますが、どのようにすればよいのでしょうか?

 

逆から始めればいいんです。

  • あるバー数に対して、何点取らなければならないかという条件を設定します。
  • ならば、そのような場所を探す
  • フィッシュスポットが見つかったら、その前にどのようなバーの組み合わせ(パターン)があったかを分析する。

 
Maxim Dmitrievsky:

何か良い方法はないでしょうか?異なる確率や価格水準を算出することができますが、どのようにすればよいのでしょうか?

可能です。それは、グラフィック画像の認識(マシンビジョン)の分野です。
 
もしかしたら、ここに あなたの求めているものがあるかもしれません。
Как искать паттерны в биржевых данных и использовать их в торговле?
Как искать паттерны в биржевых данных и использовать их в торговле?
  • habrahabr.ru
Сегодня предлагаю поразмышлять о том, как искать паттерны в биржевых данных и как их использовать для успешной торговли. Будем получать биржевые данные Forex от одного из брокеров, сохраним в базу данных PostgreSQL и попробуем найти закономерности при помощи алгоритмов машинного обучения. В статье есть несколько приятных бонусов в виде кода...
 
Rafael Sahibgareev:
この記事には、あなたが探しているものがあるかもしれません。
記事は何でもないのですが、MQL5の後味の悪さが残りますね~、 MQL5で弱小とはいえ無駄な勉強をするのは無理がありますね。
 
Vladimir Karputov:

逆から始めればいいんです。

  • あるバー数に対して、何点取らなければならないかという条件を設定します。
  • ならば、そのような場所を探す
  • フィッシュスポットが見つかったら、その前にどのようなバーの組み合わせ(パターン)があったかを分析する。


基本的にはそうですが、パターンがあっちに行ったりこっちに行ったりすると、利益確率は考慮されません。このようなリスクは最初から導入し、途中で修正しないことが望ましいと思います。
 

だから、パターンもクラスター化したい(計算したい)・・・。

 
Maxim Dmitrievsky:

原則的にはそうですが、パターンが一方向に動いたときの利益の確率は考慮されません

どういうことですか?まずは「魚の居場所」を探します。第2段階は、「魚の居場所」以前のバーの状態を分析することです。
 
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トレーディングプラットフォームのスクリーンショット

ユーラスド、M5、2017.04.02

MetaQuotes Software Corp、MetaTrader 5、Demo

パターン検索、バージョン「1.000」。

EURUSD, M5, 2017.04.02, MetaQuotes Software Corp.


ファイル:
理由: