Indicadores de tendência para EAs. - página 5

 
Petros Shatakhtsyan:

O melhor e mais rápido e mais preciso indicador, é nosso cérebro, que processa gráficos visuais instantaneamente.

Aquele que não souber negociar com suas mãos, nunca poderá desenvolver um consultor especializado rentável.

Forex não é um caso em que um computador usa suas capacidades para determinar rapidamente, por exemplo, impressões digitais ou ensinar um robô a andar usando a aprendizagem da máquina.

No mercado cambial, tais coisas não funcionam. Não é previsível, como um jogo de futebol.

Cérebro sim. Eles são realmente mais legais do que um computador, mas eu gostaria de discutir índices de tendências em vez de cérebros neste tópico.

Mas eu concordo. Aprendi a negociar à mão e consegui algoritmizar minha abordagem - escrevi uma coruja lucrativa (de uma só maneira).

 
Aleksey Ivanov:

Cérebro sim. Eles são realmente mais legais que um computador, mas eu gostaria de discutir os índices de tendência neste tópico, não os cérebros.

Acho que não. Se aprendi a negociar usando as mãos e consegui algoritmar minha abordagem, escrevi uma coruja lucrativa (uma das maneiras).

Como já lhes disse, nenhum indicador é capaz de determinar a tendência atual. Se isso já foi feito, ninguém precisa disso.

 
Alexey Volchanskiy:

Pendure-o no breakeven e você ficará feliz. Como o Petros apontou corretamente, é impossível determinar o início e o fim.

Depois tente romper o canal, pelo menos ele dá algo.

Eu entendo muito bem. Gostaria de ouvir uma opinião positiva sobre os índices de tendência aqui, mas até agora é negativa (pode ser que haja verdade nisso).
 
Aleksey Ivanov:

Cavalheiros! Existem milhares de indicadores na Internet que são utilizados para a identificação de tendências.

Minha pergunta aos desenvolvedores ativos da EA que estudaram este problema na prática: "Na sua opinião, que indicadores são realmente promissores para serem usados em EA para a detecção confiável de uma tendência que começa?

Na minha opinião, seria desejável que os Conselheiros Especialistas discutissem (em termos de vantagens e desvantagens) indicadores com escalas, digamos, a força da tendência varia de -1 a 1 .

A dificuldade em identificar uma tendência é que a fronteira entre um plano e uma tendência é uma questão de lógica difusa.

Esta questão é parcialmente abordada no artigo "Como reduzir os riscos do comerciante" https://www.mql5.com/ru/articles/4233.

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

O melhor e mais rápido e mais preciso indicador, é nosso cérebro, que processa gráficos visuais instantaneamente.

Aquele que não souber negociar com suas mãos, nunca poderá desenvolver um consultor especializado rentável.

Forex não é um caso em que um computador usa suas capacidades para detectar rapidamente, por exemplo, impressões digitais ou ensinar um robô a andar usando a aprendizagem da máquina.

Em forex, tais coisas não funcionam. Não é previsível, como um jogo de futebol.

Mais uma vez, você está errado em ser duramente categórico. O ATS implementa o resultado da atividade de seu cérebro ao discutir calmamente os problemas do mercado e o cérebro tem que reproduzir soluções adequadas. Seu cérebro verifica e revê seu processo de pensamento centenas de vezes e dá o veredicto correto. Mas no comércio real, com tempo limitado, seu cérebro pode cometer erros, e você pode não perceber, porque sua mente subconsciente, que está fora de seu controle, também funciona. Em contraste, o computador executa a vontade do seu cérebro com precisão e sem erros dentro da estrutura do ATC. Há outros argumentos contra o ATC?

 
Aleksey Ivanov:
Sim, eu entendo bem. Gostaria de ouvir uma opinião positiva sobre os índices de tendência aqui, mas até agora é negativa (talvez haja verdade nisto).

Positivo tão positivo....

Linha indicadora de tendência?

Troque-o, aqui está (digamos correto):

Quantas vezes o sinal mudou para a EA?

 
Petros Shatakhtsyan:

Já lhe disse, nenhum indicador é capaz de determinar a tendência atual. E ninguém precisa de um passado.

Compreendo sua opinião. Obrigado. Eu gostaria de ouvir também outras opiniões.

 
Aleksandr Masterskikh:

A dificuldade em identificar uma tendência é que a fronteira entre um plano e uma tendência é uma questão de lógica difusa.

Esta questão é parcialmente abordada no artigo "Como reduzir os riscos do comerciante" https://www.mql5.com/ru/articles/4233

Obrigado. Vou tentar estudá-la. Há alguma dica sobre sua ferramenta na forma de indutor?
 
Aleksey Ivanov:
Aqui está um caso em questão. Um peru já foi composto. Cozinhá-lo (código de escrita) é uma questão de cinco minutos. Vamos direto ao assunto.
//+------------------------------------------------------------------+
//|                                                      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:

Cavalheiros! Existem milhares de indicadores na Internet que são utilizados para a identificação de tendências.

Minha pergunta aos desenvolvedores ativos da EA que estudaram este problema na prática: "Na sua opinião, que indicadores são realmente promissores para serem usados em EA para a detecção confiável de tendências que começam?

Para os consultores especializados, seria desejável, em minha opinião, discutir (em termos de vantagens e desvantagens) indicadores com escalas, digamos, a força da tendência varia de -1 a 1 .

É uma boa idéia começar com a determinação do modelo de tendência estatística (mesmo que seja simples). Há duas opções principais: linha TS ou linha DS. Esta pode parecer uma complicação desnecessária, mas pode ser útil mais tarde. Por exemplo, pode dar alguma capacidade de distinguir uma correção de uma quebra de tendência.