Analysieren Sie die wichtigsten STATISTISCHEN Merkmale des Musters und wählen Sie eine Methode, um darauf zu handeln.
Wir können in die entgegengesetzte Richtung gehen:
- wir legen die Bedingung fest, wie viele Punkte wir für eine bestimmte Anzahl von Balken nehmen müssen
- dann suchen Sie nach solchen Orten
- nachdem die "Fisch"-Flecken gefunden wurden, analysieren Sie, welche Kombination von Balken (Muster) vor dem "Fisch"-Fleck lag.
Maxim Dmitrievsky:
Es ist möglich, es ist im Bereich der Erkennung von grafischen Bildern (Machine Vision)
Haben Sie eine Idee, wie man das am besten macht? Es können verschiedene Wahrscheinlichkeiten und Preisniveaus berechnet werden. Wie kann dies geschehen?
Vielleicht ist dies das, was Sie suchen.
![Как искать паттерны в биржевых данных и использовать их в торговле? Как искать паттерны в биржевых данных и использовать их в торговле?](https://c.mql5.com/36/12/kak-iskat-patterni-v-birzhevih.jpg)
Как искать паттерны в биржевых данных и использовать их в торговле?
- habrahabr.ru
Сегодня предлагаю поразмышлять о том, как искать паттерны в биржевых данных и как их использовать для успешной торговли. Будем получать биржевые данные Forex от одного из брокеров, сохраним в базу данных PostgreSQL и попробуем найти закономерности при помощи алгоритмов машинного обучения. В статье есть несколько приятных бонусов в виде кода...
Der Artikel ist nichts, aber er hinterlässt einen furchtbaren Nachgeschmack für MQL5 - es ist unmöglich, eine nutzlose, wenn auch schwache Studie in MQL5 zu erstellen.
Vladimir Karputov:
Wir können in die entgegengesetzte Richtung gehen:
- wir legen die Bedingung fest, wie viele Punkte wir für eine bestimmte Anzahl von Balken nehmen müssen
- dann suchen Sie nach solchen Orten
- nachdem die "Fisch"-Flecken gefunden wurden, analysieren Sie, welche Kombination von Balken (Muster) vor dem "Fisch"-Fleck lag.
Grundsätzlich ja, aber die Gewinnwahrscheinlichkeit wird nicht berücksichtigt, wenn das Muster in diese oder jene Richtung geht. Es ist wünschenswert, diese Risiken von Anfang an einzubeziehen und sie nicht erst im Laufe des Verfahrens zu korrigieren.
Sie wollen also auch die Muster clustern (berechnen) ....
Maxim Dmitrievsky:
Im Prinzip ja, aber dabei wird die Wahrscheinlichkeit eines Gewinns nicht berücksichtigt, wenn sich das Muster in die eine oder andere Richtung bewegt.
Im Prinzip ja, aber dabei wird die Wahrscheinlichkeit eines Gewinns nicht berücksichtigt, wenn sich das Muster in die eine oder andere Richtung bewegt.
Wie meinen Sie das? Als erstes suchen wir den "Fischplatz". In der zweiten Phase wird der Zustand der Stäbe vor dem "Fischplatz" analysiert.
Igor Yeremenko:
Das ist möglich, und zwar auf dem Gebiet der Bilderkennung (maschinelles Sehen).
Das ist möglich, und zwar auf dem Gebiet der Bilderkennung (maschinelles Sehen).
Es wird einige Zeit in Anspruch nehmen, ihn an mql... Und es geht mir nicht um Vorhersagen, sondern um die Suche nach den besten Inputs und Outputs
Vladimir Karputov:
Wie meinen Sie das? Schließlich wird zuerst der "Fischplatz" gesucht. Der zweite Schritt besteht darin, den Zustand der Stäbe vor dem Fischspot zu analysieren.
Wie meinen Sie das? Schließlich wird zuerst der "Fischplatz" gesucht. Der zweite Schritt besteht darin, den Zustand der Stäbe vor dem Fischspot zu analysieren.
Ich wollte den Mustern und ihren Unterwellen einige probabilistische Schätzungen zuordnen, da es mir zu primitiv erschien, nur nach n-Punkt-Flecken zu suchen. Wir müssen das Muster statistisch beschreiben, aber ich habe noch nicht herausgefunden, wie
Maxim Dmitrievsky:
Ich wollte den Mustern und ihren Unterwellen einige probabilistische Schätzungen zuordnen. Es ist notwendig, das Muster statistisch zu beschreiben, ich habe noch nicht herausgefunden, wie.
Ich wollte den Mustern und ihren Unterwellen einige probabilistische Schätzungen zuordnen. Es ist notwendig, das Muster statistisch zu beschreiben, ich habe noch nicht herausgefunden, wie.
Man sollte Schritt für Schritt vorgehen. Suchen Sie zunächst nur Kerzen in einer bestimmten Größe. Sehen Sie sich an, was wir haben:
Suche nach einem Muster, Version "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 Handelsplattform Screenshots
MetaQuotes Software Corp, MetaTrader 5, Demo
Suche nach einem Muster, Version "1.000".
Dateien:
![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Nehmen wir an, wir haben ein Stück eines Diagramms. Wir müssen (anhand der Geschichte) herausfinden, wie wir am besten Geschäfte damit machen können. Wo kauft man, wo verkauft man, wo kauft man mehr, wo schließt man ab, und so weiter. Wir müssen jedoch berücksichtigen, dass die Muster unterschiedlich sein können, und wir müssen die effektivste Methode zur Berechnung der Positionseröffnungsplätze für jedes Muster finden, während wir die Risiken minimieren. Es kann mehrere Geschäfte in einem Muster geben. Es gibt noch eine weitere wichtige Bedingung: Das Muster darf innerhalb einer bestimmten Spanne, etwa 20 %, variieren. Das heißt, am Anfang sehen wir ein Muster und im nächsten Takt wird es sich etwas verändern, obwohl seine grundlegenden Merkmale gleich bleiben (aber wir werden immer das gesamte Muster und alle seine zukünftigen Veränderungen sehen). Das heißt, wir müssen einen anderen Fehlerfaktor einführen.
Haben Sie eine Idee, wie man das am besten macht? Es können verschiedene Wahrscheinlichkeiten und Preisniveaus berechnet werden, wie ist das möglich?