Le code morse - page 8

 
User_mt5:

Il est possible d'être d'accord avec cela. Juste en ces termes - "peut-être" et "dans la foulée".

Avant même cela, vous devez définir ce "chaque modèle". Et ce n'est pas rentable. La méthode ne concerne pas le profit et le trading en général. Il s'agit de répéter des schémas similaires. C'est-à-dire un modèle dans la partie droite avec des similitudes dans leurs parties gauches. La longueur, la forme, l'amplitude, la cyclicité et d'autres paramètres font l'objet de recherches.

Oui. Et si vous faites la même chose sur la base des chandeliers, ce sera la même chose, mais plus faible et plus dentelé. Et il y a moins de motifs - simplement par la définition d'une bougie.

Sauf que c'est trop tard pour me dire l'alphabet, je l'ai fumé.
Паттерн — Википедия
Паттерн — Википедия
  • ru.wikipedia.org
Па́ттерн (англ.   — образец, шаблон; форма, модель; схема, диаграмма) — схема-образ, действующая как посредствующее представление, или чувственное понятие, благодаря которому в режиме одновременности восприятия и мышления выявляются закономерности, как они существуют в природе и обществе. Паттерн понимается в этом плане как повторяющийся...
 
Rafael Sahibgareev: Pour ce qui est des idées, je regarderais les bougies formées par le delta du volume négocié, Karputov et Saiber ont de bons indicateurs à ce sujet...
pouvez-vous me donner un lien ou plus de détails, qu'est-ce qu'un delta de volume négocié ?
 

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

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

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

Chaque bougie est formée par le nombre de transactions d'achat et de vente,

i.e. achat-vente = delta ; si delta[1]>0 delta[1]=1

sinon si delta[1]<0 delta[1]=0

ce n'est pas correct, mais je pense que c'est logique....


Session Buy Sell Orders Volume
Session Buy Sell Orders Volume
  • votes : 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

Chaque bougie est formée par le nombre de transactions d'achat et de vente,

i.e. achat-vente = delta ; si delta[1]>0 delta[1]=1

sinon si delta[1]<0 delta[1]=0

pas correct, mais je pense que c'est clair....


Pour Saiber, les ticks sont destinés au pipsing, celui de Karputov est la dernière valeur de la barre actuelle ; avec leurs indicateurs, nous ne pouvons pas obtenir l'historique des dernières 24 heures, c'est pourquoi j'utilise les minutes ; sur une barre horaire, nous prenons toutes les minutes, une minute à la hausse - volume d'achat, une minute à la baisse - volume de vente et ainsi de suite pour toutes les barres de chaque combinaison.

/*
        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;
        }
*/

Dans la partie commentée du code, qui n'est pas affichée la dernière fois, cette fois-ci ceux qui le veulent peuvent la rassembler en un tas et regarder les statistiques sur le graphique, il suffit d'enlever les iSets et iHelpers et de les remplacer par ce qui est dans les commentaires

Dossiers :
 

Merci pour l'indicateur, je le rassemblerai plus tard,

Donc je suppose que l'endroit n'est pas louche...

 
Et si nous divisions les statistiques en deux parties - pour les chandeliers au-dessus de la MA et en dessous de la MA ? Peut-être devrions-nous considérer non seulement les bougies elles-mêmes, mais aussi la dynamique globale ?
 
-Aleks-:
Et si nous divisions les statistiques en deux parties - pour les chandeliers au-dessus et au-dessous de la MA ? Peut-être devrions-nous considérer non seulement les chandeliers eux-mêmes mais aussi la dynamique générale ?

Cela peut même être fait sous forme d'indicateur (comme un histogramme).

 
Vladimir Karputov:

Cela peut même être fait comme un indicateur (sous forme de graphique à barres).

Vous pouvez le faire, mais un indicateur ne vous permettra pas de collecter des statistiques...
 
-Aleks-:

Il est possible de le faire, mais l'indicateur ne permettra pas de collecter des statistiques...

Veuillez préciser quelles sont les statistiques ?

 
Vladimir Karputov:

Veuillez préciser quelles sont les statistiques ?

Statistiques sur le mouvement des prix après la formation d'un modèle de chandelier.

Raison: