Indicadores de tendencia para EAs. - página 5

 
Petros Shatakhtsyan:

El mejor indicador, el más rápido y preciso, es nuestro cerebro, que procesa instantáneamente los gráficos visuales.

Quien no sabe operar con las manos, nunca podrá desarrollar un Asesor Experto rentable.

El Forex no es un caso en el que un ordenador utilice sus capacidades para detectar rápidamente, por ejemplo, huellas dactilares o enseñar a caminar a un robot mediante el aprendizaje automático.

En el mercado de divisas estas cosas no funcionan. No es predecible, como un partido de fútbol.

Cerebro sí. La verdad es que son más chulos que un ordenador, pero me gustaría hablar de índices de tendencia y no de cerebros en este hilo.

Pero estoy de acuerdo. Aprendí a comerciar a mano y logré algoritmizar mi enfoque: escribí un búho rentable (de una manera).

 
Aleksey Ivanov:

Cerebro sí. La verdad es que molan más que un ordenador, pero en este hilo me gustaría hablar de índices de tendencia, no de cerebros.

No lo creo. Si aprendí a operar con las manos y logré algoritmizar mi enfoque, escribí un búho rentable (una de las formas).

Como ya le dije, ningún indicador es capaz de determinar la tendencia actual. Si ya se ha hecho, nadie lo necesita.

 
Alexey Volchanskiy:

Cuélgalo en el punto de equilibrio y serás feliz. Como ha señalado acertadamente Petros, es imposible determinar el principio y el final.

Entonces trata de atravesar el canal, al menos da algo.

Lo entiendo muy bien. Me gustaría escuchar una opinión positiva sobre los índices de tendencia aquí, pero hasta ahora es negativa (puede que haya verdad en ello).
 
Aleksey Ivanov:

¡Caballeros! Hay miles de indicadores en Internet que se utilizan para identificar la tendencia.

Mi pregunta a los desarrolladores de EAs activos que estudiaron este problema en la práctica: "En su opinión, ¿qué indicadores son realmente prometedores para ser utilizados en los EAs para la detección fiable del comienzo de la tendencia?

En mi opinión, sería deseable que los Asesores Expertos discutieran (en términos de ventajas y desventajas) los indicadores con escalas, digamos, la fuerza de la tendencia varía de -1 a 1 .

La dificultad de identificar una tendencia radica en que el límite entre un piso y una tendencia es una cuestión de lógica difusa.

Esta cuestión se aborda parcialmente en el artículo "Cómo reducir los riesgos del comerciante" https://www.mql5.com/ru/articles/4233.

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

El mejor indicador, el más rápido y preciso, es nuestro cerebro, que procesa instantáneamente los gráficos visuales.

Quien no sabe operar con las manos, nunca podrá desarrollar un Asesor Experto rentable.

El Forex no es un caso en el que un ordenador utilice sus capacidades para detectar rápidamente, por ejemplo, huellas dactilares o enseñar a caminar a un robot mediante el aprendizaje automático.

En el mercado de divisas estas cosas no funcionan. No es predecible, como un partido de fútbol.

De nuevo se equivoca al ser tan categórico. ATS implementa el resultado de la actividad de su cerebro en la discusión tranquila de los problemas del mercado y el cerebro tiene que reproducir las soluciones adecuadas. Tu cerebro comprueba y vuelve a comprobar tu proceso de pensamiento cientos de veces y da el veredicto correcto. Pero en el trading real, con un tiempo limitado, tu cerebro puede cometer errores, y puede que no lo notes, porque tu mente subconsciente, que está fuera de tu control, también trabaja. En cambio, el ordenador ejecuta la voluntad de su cerebro con precisión y sin errores en el marco del ATC. ¿Hay otros argumentos contra el ATC?

 
Aleksey Ivanov:
Sí, lo entiendo bien. Me gustaría escuchar una opinión positiva sobre los índices de tendencia aquí, pero hasta ahora es negativa (tal vez haya verdad en ello).

Positivo tan positivo....

¿Línea indicadora de tendencia?

Cámbialo, aquí está (digamos que es correcto):

¿Cuántas veces ha cambiado la señal para el EA?

 
Petros Shatakhtsyan:

Ya le dije que ningún indicador es capaz de determinar la tendencia actual. Y nadie necesita un pasado.

Entiendo su opinión. Gracias. Me gustaría escuchar también otras opiniones.

 
Aleksandr Masterskikh:

La dificultad de identificar una tendencia radica en que el límite entre un piso y una tendencia es una cuestión de lógica difusa.

Esta cuestión se aborda en parte en el artículo "Cómo reducir los riesgos de los comerciantes" https://www.mql5.com/ru/articles/4233

Gracias. Intentaré estudiarlo. ¿Hay algún consejo de su herramienta en forma de inductor?
 
Aleksey Ivanov:
He aquí un ejemplo. Ya se ha compuesto un pavo. Cocinarla (escribir el código) es cuestión de cinco minutos. Vayamos al grano.
//+------------------------------------------------------------------+
//|                                                      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:

¡Caballeros! Hay miles de indicadores en Internet que se utilizan para identificar la tendencia.

Mi pregunta a los desarrolladores de EAs activos que estudiaron este problema en la práctica: "En su opinión, ¿qué indicadores son realmente prometedores para ser utilizados en los EAs para la detección fiable del comienzo de la tendencia?

Para los Asesores Expertos, sería deseable, en mi opinión, discutir (en términos de ventajas y desventajas) indicadores con escalas, digamos, la fuerza de la tendencia varía de -1 a 1 .

Es conveniente empezar por determinar el modelo de tendencia estadística (aunque sea simple). Hay dos opciones principales: fila TS o fila DS. Esto puede parecer una complicación innecesaria, pero puede ser útil más adelante. Por ejemplo, puede dar cierta capacidad para distinguir una corrección de una ruptura de tendencia.