逆から始めればいいんです。
- あるバー数に対して、何点取らなければならないかという条件を設定します。
- ならば、そのような場所を探す
- フィッシュスポットが見つかったら、その前にどのようなバーの組み合わせ(パターン)があったかを分析する。
Maxim Dmitrievsky:
可能です。それは、グラフィック画像の認識(マシンビジョン)の分野です。
何か良い方法はないでしょうか?異なる確率や価格水準を算出することができますが、どのようにすればよいのでしょうか?
もしかしたら、ここに あなたの求めているものがあるかもしれません。

Как искать паттерны в биржевых данных и использовать их в торговле?
- habrahabr.ru
Сегодня предлагаю поразмышлять о том, как искать паттерны в биржевых данных и как их использовать для успешной торговли. Будем получать биржевые данные Forex от одного из брокеров, сохраним в базу данных PostgreSQL и попробуем найти закономерности при помощи алгоритмов машинного обучения. В статье есть несколько приятных бонусов в виде кода...
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); } //+------------------------------------------------------------------+
ファイル:

取引の機会を逃しています。
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
例えば、チャートの一部があるとします。その上でディールを開くにはどうしたらいいか、(履歴を)整理する必要がある。どこで買うか、どこで売るか、どこで買い足すか、どこで決済するか、などなど。しかし、パターンが異なる場合もあることを考慮し、リスクを最小限に抑えながら、どのパターンでも最も効果的なポジション・オープニングの 場所の計算方法を見つけなければならない。 1つのパターンに複数のディールが存在することもある。もうひとつ重要な条件があります。それは、パターンがある一定の範囲、たとえば20%以内で変化してもよいということです。つまり、最初は1つのパターンを見て、次の小節では基本的な特徴は変わらないものの、多少変化する(ただし、常にパターン全体とその将来の変化すべてを見ることができる)のである。つまり、何か別の誤差要因を導入する必要があるのです。
どのようにすればよいか、お分かりになりますか?様々な確率や価格水準を算出することができますが、どのようにすればよいのでしょうか?