Indicateurs de tendance pour les EE. - page 5

 
Petros Shatakhtsyan:

Le meilleur indicateur, le plus rapide et le plus précis, est notre cerveau, qui traite instantanément les graphiques visuels.

Celui qui ne sait pas commercer avec ses mains ne sera jamais en mesure de développer un conseiller expert rentable.

Le Forex n'est pas un cas où un ordinateur utilise ses capacités pour déterminer rapidement, par exemple, des empreintes digitales ou apprendre à un robot à marcher grâce à l'apprentissage automatique.

En forex, de telles choses ne fonctionnent pas. Ce n'est pas prévisible, comme un match de football.

Le cerveau, oui. Ils sont vraiment plus cool qu'un ordinateur, mais j'aimerais discuter des indices de tendance plutôt que des cerveaux dans ce fil de discussion.

Mais je suis d'accord. J'ai appris à trader à la main et j'ai réussi à algorithmer mon approche - j'ai écrit une chouette profitable (à sens unique).

 
Aleksey Ivanov:

Le cerveau, oui. Ils sont vraiment plus cool qu'un ordinateur, mais je voudrais discuter des indices de tendance dans ce fil, pas des cerveaux.

Je ne le pense pas. Si j'ai appris à trader avec les mains et que j'ai réussi à algorithmer mon approche, j'ai écrit une chouette profitable (une des façons).

Comme je vous l'ai déjà dit, aucun indicateur n'est capable de déterminer la tendance actuelle. Si cela a déjà été fait, personne n'en a besoin.

 
Alexey Volchanskiy:

Accrochez-le au seuil de rentabilité et vous serez heureux. Comme Petros l'a souligné à juste titre, il est impossible de déterminer le début et la fin.

Alors essayez de percer le canal, au moins ça donne quelque chose.

Je le comprends très bien. J'aimerais entendre un avis positif sur les indices de tendance ici mais jusqu'à présent c'est négatif (il y a peut-être du vrai là-dedans).
 
Aleksey Ivanov:

Messieurs ! Il existe des milliers d'indicateurs sur Internet qui sont utilisés pour identifier les tendances.

Ma question aux développeurs actifs d'EA qui ont étudié ce problème dans la pratique : "A votre avis, quels indicateurs sont vraiment prometteurs pour être utilisés dans les EAs pour une détection fiable du début de la tendance?

A mon avis, il serait souhaitable que les Expert Advisors discutent (en termes d'avantages et d'inconvénients) des indicateurs avec des échelles, par exemple, la force de la tendance varie de -1 à 1 .

La difficulté d'identifier une tendance réside dans le fait que la frontière entre un plat et une tendance est une question de logique floue.

Cette question est partiellement traitée dans l'article "Comment réduire les risques du trader" https://www.mql5.com/ru/articles/4233.

Как снизить риски трейдера
Как снизить риски трейдера
  • www.mql5.com
В первую очередь, эта статья пригодится начинающим трейдерам и аналитикам, которые работают над созданием собственной торговой системы. Надеюсь, что многие вопросы будут интересны и опытным участникам рынка. Это, например, классификация видов риска, использование свечного анализа для определения зон перекупленности/перепроданности, взаимосвязь...
 
Petros Shatakhtsyan:

Le meilleur indicateur, le plus rapide et le plus précis, est notre cerveau, qui traite instantanément les graphiques visuels.

Celui qui ne sait pas commercer avec ses mains ne sera jamais en mesure de développer un conseiller expert rentable.

Le Forex n'est pas un cas où un ordinateur utilise ses capacités pour détecter rapidement, par exemple, des empreintes digitales ou apprendre à un robot à marcher grâce à l'apprentissage automatique.

En forex, de telles choses ne fonctionnent pas. Il n'est pas prévisible, comme un match de football.

Encore une fois, vous avez tort d'être catégorique. ATS met en œuvre le résultat de l'activité de votre cerveau en discutant calmement des problèmes du marché et le cerveau doit reproduire des solutions adéquates. Votre cerveau vérifie et revérifie votre processus de pensée des centaines de fois et donne le bon verdict. Mais dans le trading réel, avec un temps limité, votre cerveau peut faire des erreurs, et vous pouvez ne pas le remarquer, parce que votre esprit subconscient, qui est hors de votre contrôle, fonctionne aussi. En revanche, l'ordinateur exécute la volonté de votre cerveau avec précision et sans erreur dans les limites de l'ATS. Y a-t-il d'autres arguments contre l'ATC ?

 
Aleksey Ivanov:
Oui, je le comprends bien. J'aimerais entendre un avis positif sur les indices de tendance ici, mais jusqu'à présent, tout est négatif (il y a peut-être du vrai là-dedans).

Positif donc positif....

Ligne d'indicateur de tendance ?

Échangez-la, la voici (disons qu'elle est correcte) :

Combien de fois le signal a-t-il changé pour l'EA ?

 
Petros Shatakhtsyan:

Je vous l'ai déjà dit, aucun indicateur n'est capable de déterminer la tendance actuelle. Et personne n'a besoin d'un passé.

Je comprends votre opinion. Merci. J'aimerais également entendre d'autres avis.

 
Aleksandr Masterskikh:

La difficulté d'identifier une tendance réside dans le fait que la frontière entre un plat et une tendance est une question de logique floue.

Cette question est partiellement abordée dans l'article "Comment réduire les risques du trader" https://www.mql5.com/ru/articles/4233.

Merci. Je vais essayer de l'étudier. Y a-t-il des astuces de votre Tool sous forme d'inducteur ?
 
Aleksey Ivanov:
Voici un exemple concret. Une dinde a déjà été composée. La cuisson (l'écriture du code) est une question de cinq minutes. Allons droit au but.
//+------------------------------------------------------------------+
//|                                                      MAScale.mq5 |
//|                        Copyright 2018, MetaQuotes Software Corp. |
//|                             https://mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://mql5.com/ru/users/artmedia70"
#property version   "1.00"
#property description "Scale of moving average"
#property indicator_separate_window
#property indicator_buffers 5
#property indicator_plots   1
//--- plot MASC
#property indicator_label1  "MASC"
#property indicator_type1   DRAW_COLOR_HISTOGRAM
#property indicator_color1  clrRoyalBlue,clrOrangeRed,clrDarkGray
#property indicator_style1  STYLE_SOLID
#property indicator_width1  2
//--- input parameters
input uint                 InpPeriod         =  14;            // Period
input ENUM_APPLIED_PRICE   InpAppliedPrice   =  PRICE_CLOSE;   // MA Applied price
input ENUM_MA_METHOD       InpMethod         =  MODE_EMA;      // MA method
input ENUM_APPLIED_PRICE   InpByPrice        =  PRICE_CLOSE;   // Distance from:
//--- indicator buffers
double         BufferMASC[];
double         BufferColors[];
double         BufferMA[];
double         BufferMA1[];
double         BufferATR[];
//--- global variables
int            period;
int            handle_ma;
int            handle_ma1;
int            handle_atr;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- set global variables
   period=int(InpPeriod<1 ? 1 : InpPeriod);
//--- indicator buffers mapping
   SetIndexBuffer(0,BufferMASC,INDICATOR_DATA);
   SetIndexBuffer(1,BufferColors,INDICATOR_COLOR_INDEX);
   SetIndexBuffer(2,BufferATR,INDICATOR_CALCULATIONS);
   SetIndexBuffer(3,BufferMA1,INDICATOR_CALCULATIONS);
   SetIndexBuffer(4,BufferMA,INDICATOR_CALCULATIONS);
//--- setting indicator parameters
   IndicatorSetString(INDICATOR_SHORTNAME,"Scale of moving average ("+(string)period+")");
   IndicatorSetInteger(INDICATOR_DIGITS,Digits());
//--- setting buffer arrays as timeseries
   ArraySetAsSeries(BufferMASC,true);
   ArraySetAsSeries(BufferColors,true);
   ArraySetAsSeries(BufferATR,true);
   ArraySetAsSeries(BufferMA1,true);
   ArraySetAsSeries(BufferMA,true);
//--- create MA's handles
   ResetLastError();
   handle_ma1=iMA(NULL,PERIOD_CURRENT,1,0,MODE_SMA,InpByPrice);
   if(handle_ma1==INVALID_HANDLE)
     {
      Print("The iMA(1) by ",EnumToString(InpByPrice)," object was not created: Error ",GetLastError());
      return INIT_FAILED;
     }
   handle_ma=iMA(NULL,PERIOD_CURRENT,period,0,InpMethod,InpAppliedPrice);
   if(handle_ma==INVALID_HANDLE)
     {
      Print("The iMA(",(string)period,") object was not created: Error ",GetLastError());
      return INIT_FAILED;
     }
   handle_atr=iATR(NULL,PERIOD_CURRENT,period);
   if(handle_atr==INVALID_HANDLE)
     {
      Print("The iATR(",(string)period,") object was not created: Error ",GetLastError());
      return INIT_FAILED;
     }
//---
   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[])
  {
//--- Проверка и расчёт количества просчитываемых баров
   if(rates_total<fmax(period,4)) return 0;
//--- Проверка и расчёт количества просчитываемых баров
   int limit=rates_total-prev_calculated;
   if(limit>1)
     {
      limit=rates_total-2;
      ArrayInitialize(BufferMASC,EMPTY_VALUE);
      ArrayInitialize(BufferATR,0);
      ArrayInitialize(BufferMA,0);
     }
//--- Подготовка данных
   int count=(limit>1 ? rates_total : 1),copied=0;
   copied=CopyBuffer(handle_ma,0,0,count,BufferMA);
   if(copied!=count) return 0;
   copied=CopyBuffer(handle_ma1,0,0,count,BufferMA1);
   if(copied!=count) return 0;
   copied=CopyBuffer(handle_atr,0,0,count,BufferATR);
   if(copied!=count) return 0;

//--- Расчёт индикатора
   for(int i=limit; i>=0 && !IsStopped(); i--)
     {
      BufferMASC[i]=(BufferATR[i]!=0 ? (BufferMA1[i]-BufferMA[i])/BufferATR[i] : 0);
      BufferColors[i]=(BufferMASC[i]>BufferMASC[i+1] ? 0 : BufferMASC[i]<BufferMASC[i+1] ? 1 : 2);
     }

//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
 
Aleksey Ivanov:

Messieurs ! Il existe des milliers d'indicateurs sur Internet qui sont utilisés pour identifier les tendances.

Ma question aux développeurs actifs d'EA qui ont étudié ce problème dans la pratique : "A votre avis, quels indicateurs sont vraiment prometteurs pour être utilisés dans les EAs pour une détection fiable du début de la tendance?

Pour les Expert Advisors, il serait souhaitable, à mon avis, de discuter (en termes d'avantages et d'inconvénients) des indicateurs avec des échelles, par exemple, la force de la tendance varie de -1 à 1 .

Il est bon de commencer par déterminer le modèle de tendance statistique (même simple). Il existe deux options principales : la rangée TS ou la rangée DS. Celle-ci peut sembler une complication inutile, mais elle peut s'avérer utile par la suite. Par exemple, il peut donner une certaine capacité à distinguer une correction d'une rupture de tendance.

Raison: