Morseschrift - Seite 8

 
User_mt5:

Dem kann man zustimmen. Nur in diesen Begriffen - 'vielleicht' und 'in der Folgezeit'.

Zuvor müssen Sie jedoch genau dieses "jedes Muster" definieren. Und es ist nicht rentabel. Bei der Methode geht es nicht um Gewinn und Handel im Allgemeinen. Es geht darum, ähnliche Muster zu wiederholen. D.h. ein Muster auf der rechten Seite, wobei die linke Seite ähnlich ist. Länge, Form, Amplitude, Zyklizität und andere Parameter sind Gegenstand der Forschung.

Ja. Und wenn Sie das Gleiche auf der Grundlage von Kerzenständern tun, wird es dasselbe sein, aber schwächer und zackiger. Und es gibt weniger Muster - einfach aufgrund der Definition einer Kerze.

Nur ist es zu spät, mir das Alphabet zu sagen, ich habe es geraucht.
Паттерн — Википедия
Паттерн — Википедия
  • ru.wikipedia.org
Па́ттерн (англ.   — образец, шаблон; форма, модель; схема, диаграмма) — схема-образ, действующая как посредствующее представление, или чувственное понятие, благодаря которому в режиме одновременности восприятия и мышления выявляются закономерности, как они существуют в природе и обществе. Паттерн понимается в этом плане как повторяющийся...
 
Rafael Sahibgareev: Was Ideen angeht, würde ich mir die Kerzen ansehen, die durch das Delta des gehandelten Volumens gebildet werden, Karputov und Saiber haben gute Indikatoren zu diesem Thema...
Können Sie mir einen Link oder weitere Details geben, was ist ein Delta des gehandelten Volumens?
 

https://www.mql5.com/ru/code/17427

https://www.mql5.com/ru/code/17426

https://www.mql5.com/ru/forum/96537/2852515#comment_2852515

Jede Kerze wird durch die Anzahl der Kauf- und Verkaufstransaktionen gebildet,

d.h. Kauf/Verkauf = delta ; wenn delta[1]>0 delta[1]=1

sonst wenn delta[1]<0 delta[1]=0

nicht korrekt, aber ich denke, es ist sinnvoll....


Session Buy Sell Orders Volume
Session Buy Sell Orders Volume
  • Stimmen: 11
  • 2017.01.19
  • Vladimir Karputov
  • www.mql5.com
В виде гистограммы максимальное и минимальное значения параметров SYMBOL_SESSION_BUY_ORDERS_VOLUME - "Общий объём ордеров на покупку в текущий момент" и SYMBOL_SESSION_SELL_ORDERS_VOLUME - "Общий объём ордеров на продажу в текущий момент".
 
Rafael Sahibgareev:

https://www.mql5.com/ru/code/17427

https://www.mql5.com/ru/code/17426

https://www.mql5.com/ru/forum/96537/2852515#comment_2852515

Jede Kerze wird durch die Anzahl der Kauf- und Verkaufstransaktionen gebildet,

d.h. Kauf/Verkauf = delta ; wenn delta[1]>0 delta[1]=1

sonst wenn delta[1]<0 delta[1]=0

nicht korrekt, aber ich denke, es ist klar....


Bei Saiber sind die Ticks für das Pipsing, bei Karputov ist es der letzte Wert des aktuellen Balkens; mit ihren Indikatoren können wir keine Historie für die letzten 24 Stunden erhalten, deshalb verwende ich Minuten; bei einem stündlichen Balken nehmen wir alle Minuten, eine Minute nach oben - Kaufvolumen, eine Minute nach unten - Verkaufsvolumen und so weiter für alle Balken in jeder Combo.

/*
        int getChain(int &codes[], const int order)
        {
            ArraySetAsSeries(codes, true);

            for (int k = 0; k < order; k++) 
            {
                if (codes[k] == 0)
                {
                    codes[k] = 1;
                    return 1;
                }
                else
                {
                    codes[k] = 0;
                }
            }
        
            return 0;
        }

        int getPairs(SSets& series[], const string names, const bool validate = true)
        {
            string syms[];
            int index = 0, count = StringSplit(names, ',', syms);
        
            for (int k = 0; k < count; k++)
            {
                string inverse = StringSubstr(syms[k], 3, 3) + StringSubstr(syms[k], 0, 3) + StringSubstr(syms[k], 6);
                bool A = SymbolSelect(syms[k], true) && SymbolInfoInteger(syms[k], SYMBOL_TRADE_MODE) == SYMBOL_TRADE_MODE_FULL;
                bool B = SymbolSelect(inverse, true) && SymbolInfoInteger(inverse, SYMBOL_TRADE_MODE) == SYMBOL_TRADE_MODE_FULL;
        
                if (A || validate == false)
                {
                    ArrayResize(series, index + 1); 
                    series[index].mSymbol.mName = syms[k];
                    series[index].mSymbol.mOrder = 0;
                    index++;
                }
                else if (B || validate == false)
                {
                    ArrayResize(series, index + 1); 
                    series[index].mSymbol.mName = inverse;
                    series[index].mSymbol.mOrder = 1;
                    index++;
                }
            }
            
            return index;
        }

        int getSourceSets(SSets& series[], const ENUM_TIMEFRAMES period, const int order, const int depth, const int position)
        {
            int bars = MathMin(getSetsBars(series, period, order, depth), depth);
        
            for (int k = 0; k < order; k++)
            {
                MqlRates rates[];
                int count = CopyRates(series[k].mSymbol.mName, period, position, bars, rates);

                if (count < 1)
                {
                    Print(
                        "Synchronization : " + series[k].mSymbol.mName + ", " + 
                        "Position : " + IntegerToString(position) + ", " + 
                        "Depth : " + IntegerToString(depth) + ", " + 
                        "Bars : " + IntegerToString(bars));
        
                    return 0;
                }

                int index = count - 1;

                setupSet(series[k], count);

                for (int n = count - 1; n > -1; n--)
                {
                    series[k].mLow[index] = rates[n].low;
                    series[k].mHigh[index] = rates[n].high;
                    series[k].mOpen[index] = rates[n].open;
                    series[k].mClose[index] = rates[n].close;
                    series[k].mPoint[index] = rates[n].close;
                    series[k].mSpread[index] = rates[n].spread;
                    series[k].mVolume[index] = rates[n].real_volume ? rates[n].real_volume : rates[n].tick_volume;
                    series[k].mTime[index] = rates[n].time;

                    index--;
                }
            }

            return bars;
        }
*/

Im kommentierten Teil des Codes, der beim letzten Mal nicht gepostet wurde, kann diesmal jeder, der möchte, ihn auf einen Haufen sammeln und die Statistiken auf dem Diagramm beobachten. Sie müssen nur iSets und iHelpers entfernen und durch das ersetzen, was in den Kommentaren steht

Dateien:
 

Danke für den Hinweis, ich werde ihn später zusammenstellen,

Ich nehme also an, dass der Ort nicht verdächtig ist...

 
Wie wäre es, wenn wir die Statistik in zwei Teile aufteilen - für Candlesticks oberhalb des MA und unterhalb des MA? Vielleicht sollten wir nicht nur die Kerzen selbst betrachten, sondern auch die Gesamtdynamik?
 
-Aleks-:
Wie wäre es, wenn wir die Statistik in zwei Teile aufteilen - für Candlesticks oberhalb und unterhalb des MA? Vielleicht sollten wir nicht nur die Kerzenständer selbst, sondern auch die allgemeine Dynamik berücksichtigen?

Dies kann sogar als Indikator (als Histogramm) erfolgen.

 
Vladimir Karputov:

Dies kann sogar als Indikator (in Form eines Balkendiagramms) erfolgen.

Sie können es tun, aber ein Indikator wird Ihnen nicht erlauben, Statistiken zu sammeln...
 
-Aleks-:

Es ist zwar möglich, aber der Indikator erlaubt es nicht, Statistiken zu erstellen...

Bitte klären Sie, wie die Statistiken aussehen?

 
Vladimir Karputov:

Bitte klären Sie, wie die Statistiken aussehen?

Statistiken über die Kursbewegung nach der Bildung eines Kerzenmusters.