Indicatori di tendenza per gli EA. - pagina 5

 
Petros Shatakhtsyan:

L'indicatore migliore, più veloce e più accurato, è il nostro cervello, che elabora i grafici visivi all'istante.

Uno che non sa come fare trading con le mani, non sarà mai in grado di sviluppare un Expert Advisor redditizio.

Il forex non è un caso in cui un computer usa le sue capacità per determinare rapidamente, ad esempio, le impronte digitali o insegnare a un robot a camminare usando l'apprendimento automatico.

Nel forex queste cose non funzionano. Non è prevedibile, come una partita di calcio.

Cervelli sì. Sono davvero più fighi di un computer, ma vorrei discutere degli indici di tendenza piuttosto che dei cervelli in questo thread.

Ma sono d'accordo. Ho imparato a fare trading a mano e sono riuscito ad algoritmizzare il mio approccio - ha scritto un gufo redditizio (a senso unico).

 
Aleksey Ivanov:

Cervelli sì. Sono davvero più cool di un computer, ma vorrei discutere degli indici di tendenza in questo thread, non dei cervelli.

Non credo. Se ho imparato a fare trading usando le mani e sono riuscito ad algoritmizzare il mio approccio ho scritto un gufo redditizio (uno dei modi).

Come ti ho già detto, nessun indicatore è in grado di determinare la tendenza attuale. Se è già stato fatto, nessuno ne ha bisogno.

 
Alexey Volchanskiy:

Appendetelo al breakeven e sarete felici. Come ha giustamente sottolineato Petros, è impossibile determinare l'inizio e la fine.

Poi prova a sfondare il canale, almeno dà qualcosa.

Lo capisco molto bene. Mi piacerebbe sentire un parere positivo sugli indici di tendenza qui, ma finora è negativo (forse c'è del vero).
 
Aleksey Ivanov:

Signori! Ci sono migliaia di indicatori su Internet che vengono utilizzati per l'identificazione della tendenza.

La mia domanda agli sviluppatori attivi di EA che hanno studiato questo problema nella pratica: "Secondo voi, quali indicatori sono davvero promettenti da utilizzare negli EA per un rilevamento affidabile dell'inizio del trend?

A mio parere, sarebbe auspicabile per Expert Advisors per discutere (in termini di vantaggi e svantaggi) indicatori con scale, diciamo, la forza di tendenza varia da -1 a 1 .

La difficoltà nell'identificare una tendenza è che il confine tra un piatto e una tendenza è una questione di logica fuzzy.

Questa questione è parzialmente affrontata nell'articolo "Come ridurre i rischi del trader" https://www.mql5.com/ru/articles/4233.

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

L'indicatore migliore, più veloce e più accurato, è il nostro cervello, che elabora i grafici visivi all'istante.

Uno che non sa come fare trading con le mani, non sarà mai in grado di sviluppare un Expert Advisor redditizio.

Forex non è un caso in cui un computer usa le sue capacità per rilevare rapidamente, per esempio, le impronte digitali o insegnare a un robot a camminare usando l'apprendimento automatico.

Nel forex queste cose non funzionano. Non è prevedibile, come una partita di calcio.

Ancora una volta si sbaglia ad essere duramente categorici. L'ATS implementa il risultato dell'attività del tuo cervello nel discutere con calma i problemi del mercato e il cervello deve riprodurre soluzioni adeguate. Il tuo cervello controlla e ricontrolla il tuo processo di pensiero centinaia di volte e dà il verdetto corretto. Ma nel trading reale, con un tempo limitato, il tuo cervello può fare degli errori, e potresti non notarlo, perché anche la tua mente subconscia, che è fuori dal tuo controllo, lavora. Al contrario, il computer esegue la volontà del vostro cervello con precisione e senza errori nei limiti dell'ATS. Ci sono altri argomenti contro l'ATC?

 
Aleksey Ivanov:
Sì, lo capisco bene. Mi piacerebbe sentire un parere positivo sugli indici di tendenza qui, ma finora è negativo (forse c'è del vero).

Positivo così positivo....

Linea dell'indicatore di tendenza?

Scambialo, eccolo (diciamo corretto):

Quante volte il segnale è cambiato per l'EA?

 
Petros Shatakhtsyan:

Ti ho già detto che nessun indicatore è in grado di determinare la tendenza attuale. E nessuno ha bisogno di un passato.

Capisco la sua opinione. Grazie. Vorrei sentire anche altre opinioni.

 
Aleksandr Masterskikh:

La difficoltà nell'identificare una tendenza è che il confine tra un piatto e una tendenza è una questione di logica fuzzy.

Questo tema è in parte affrontato nell'articolo "Come ridurre i rischi del trader" https://www.mql5.com/ru/articles/4233

Grazie. Cercherò di studiarlo. Ci sono suggerimenti sul tuo strumento sotto forma di induttore?
 
Aleksey Ivanov:
Ecco un caso emblematico. Un tacchino è già stato composto. Cucinarlo (scrivere codice) è una questione di cinque minuti. Arriviamo al punto.
//+------------------------------------------------------------------+
//|                                                      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:

Signori! Ci sono migliaia di indicatori su Internet che vengono utilizzati per l'identificazione della tendenza.

La mia domanda agli sviluppatori attivi di EA che hanno studiato questo problema nella pratica: "Secondo voi, quali indicatori sono davvero promettenti da utilizzare negli EA per un rilevamento affidabile dell'inizio del trend?

Per Expert Advisors, sarebbe auspicabile, a mio parere, per discutere (in termini di vantaggi e svantaggi) indicatori con scale, diciamo, la forza di tendenza varia da -1 a 1 .

È una buona idea iniziare con la determinazione del modello statistico di tendenza (anche uno semplice). Ci sono due opzioni principali: fila TS o fila DS. Questa può sembrare una complicazione inutile, ma può essere utile in seguito. Per esempio, può dare una certa capacità di distinguere una correzione da una rottura di tendenza.

Motivazione: