Trendindikatoren für EAs. - Seite 5

 
Petros Shatakhtsyan:

Der beste, schnellste und genaueste Indikator ist unser Gehirn, das visuelle Charts sofort verarbeitet.

Wer nicht weiß, wie man mit den Händen handelt, wird niemals in der Lage sein, einen profitablen Expert Advisor zu entwickeln.

Forex ist kein Fall, in dem ein Computer seine Fähigkeiten nutzt, um z. B. Fingerabdrücke schnell zu bestimmen oder einem Roboter durch maschinelles Lernen das Laufen beizubringen.

Im Devisenhandel funktionieren solche Dinge nicht. Es ist nicht vorhersehbar, wie bei einem Fußballspiel.

Gehirne ja. Sie sind wirklich cooler als ein Computer, aber ich möchte in diesem Thread eher über Trendindizes als über Gehirne diskutieren.

Aber ich stimme zu. Ich habe gelernt, von Hand zu handeln, und es geschafft, meinen Ansatz zu algorithmisieren - ich habe eine profitable Eule geschrieben (einseitig).

 
Aleksey Ivanov:

Gehirne ja. Sie sind wirklich cooler als ein Computer, aber ich möchte in diesem Thread über Trendindizes diskutieren, nicht über Gehirne.

Das glaube ich nicht. Wenn ich gelernt habe, wie man mit den Händen handelt und es geschafft habe, meinen Ansatz zu algorithmisieren, habe ich eine profitable Eule geschrieben (eine der Möglichkeiten).

Wie ich Ihnen bereits sagte, ist kein Indikator in der Lage, den aktuellen Trend zu bestimmen. Wenn es bereits geschehen ist, braucht es niemand mehr.

 
Alexey Volchanskiy:

Hängen Sie es an die Gewinnschwelle und Sie werden zufrieden sein. Wie Petros zu Recht feststellte, ist es unmöglich, den Anfang und das Ende zu bestimmen.

Dann versuchen Sie, den Kanal zu durchbrechen, das bringt wenigstens etwas.

Ich verstehe das sehr gut. Ich würde gerne eine positive Meinung zu den Trendindizes hören, aber bisher ist sie negativ (vielleicht ist ja etwas dran).
 
Aleksey Ivanov:

Meine Herren! Im Internet gibt es Tausende von Indikatoren, die zur Trenderkennung verwendet werden.

Meine Frage an aktive EA-Entwickler, die sich mit diesem Problem in der Praxis auseinandergesetzt haben: "Welche Indikatoren sind Ihrer Meinung nach wirklich erfolgversprechend, um in EAs zur zuverlässigen Erkennung eines Trendbeginns eingesetzt zu werden?

Meiner Meinung nach wäre es für Expert Advisors wünschenswert, Indikatoren mit Skalen (z.B. die Trendstärke variiert von -1 bis 1 ) zu diskutieren (in Bezug auf Vor- und Nachteile).

Die Schwierigkeit, einen Trend zu erkennen, besteht darin, dass die Grenze zwischen einer Flaute und einem Trend eine Frage der unscharfen Logik ist.

Dieses Thema wird teilweise in dem Artikel "Wie man die Risiken von Händlern verringert " https://www.mql5.com/ru/articles/4233 behandelt.

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

Der beste, schnellste und genaueste Indikator ist unser Gehirn, das visuelle Charts sofort verarbeitet.

Wer nicht weiß, wie man mit den Händen handelt, wird niemals in der Lage sein, einen profitablen Expert Advisor zu entwickeln.

Forex ist kein Fall, in dem ein Computer seine Fähigkeiten nutzt, um beispielsweise Fingerabdrücke schnell zu erkennen oder einem Roboter durch maschinelles Lernen das Laufen beizubringen.

Im Devisenhandel funktionieren solche Dinge nicht. Sie ist nicht vorhersehbar, wie ein Fußballspiel.

Auch hier irren Sie sich, wenn Sie streng kategorisch vorgehen. ATS setzt das Ergebnis der Gehirnaktivität bei der ruhigen Erörterung von Marktproblemen um, und das Gehirn muss angemessene Lösungen reproduzieren. Ihr Gehirn überprüft Ihren Gedankengang hunderte Male und gibt dann das richtige Urteil ab. Aber im realen Handel, mit begrenzter Zeit, kann Ihr Gehirn Fehler machen, die Sie vielleicht nicht bemerken, weil Ihr Unterbewusstsein, das sich Ihrer Kontrolle entzieht, ebenfalls arbeitet. Im Gegensatz dazu führt der Computer den Willen Ihres Gehirns im Rahmen des ATC präzise und fehlerfrei aus. Gibt es noch andere Argumente gegen ATC?

 
Aleksey Ivanov:
Ja, ich verstehe es gut. Ich würde hier gerne eine positive Meinung zu Trendindizes hören, aber bisher ist sie negativ (vielleicht ist ja etwas dran).

Positiv so positiv....

Trendindikator-Linie?

Tauschen Sie es, hier ist es (sagen wir mal korrekt):

Wie oft hat sich das Signal für den EA geändert?

 
Petros Shatakhtsyan:

Ich habe Ihnen bereits gesagt, dass kein Indikator in der Lage ist, den aktuellen Trend zu bestimmen. Und niemand braucht eine Vergangenheit.

Ich verstehe Ihre Meinung. Ich danke Ihnen. Ich würde auch gerne andere Meinungen hören.

 
Aleksandr Masterskikh:

Die Schwierigkeit, einen Trend zu erkennen, besteht darin, dass die Grenze zwischen einer Flaute und einem Trend eine Frage der unscharfen Logik ist.

Dieses Thema wird teilweise in dem Artikel "Wie man die Risiken von Händlern reduziert" https://www.mql5.com/ru/articles/4233 behandelt.

Ich danke Ihnen. Ich werde versuchen, es zu studieren. Gibt es irgendwelche Tipps aus Ihrem Tool in Form eines Induktors?
 
Aleksey Ivanov:
Hier ist ein Beispiel dafür. Ein Truthahn ist bereits komponiert worden. Das Kochen (Schreiben von Code) ist eine Sache von fünf Minuten. Lassen Sie uns zur Sache kommen.
//+------------------------------------------------------------------+
//|                                                      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:

Meine Herren! Im Internet gibt es Tausende von Indikatoren, die zur Trenderkennung verwendet werden.

Meine Frage an aktive EA-Entwickler, die sich mit diesem Problem in der Praxis beschäftigt haben: "Welche Indikatoren sind Ihrer Meinung nach wirklich vielversprechend, um in EAs zur zuverlässigen Erkennung von Trendanfängen eingesetzt zu werden?

Für Expert Advisors wäre es meiner Meinung nach wünschenswert, Indikatoren mit Skalen zu diskutieren (im Sinne von Vor- und Nachteilen), z.B. variiert die Trendstärke von -1 bis 1 .

Es ist eine gute Idee, mit der Bestimmung des statistischen Trendmodells zu beginnen (selbst eines einfachen Modells). Es gibt zwei Hauptoptionen: TS-Reihe oder DS-Reihe. Dies mag wie eine unnötige Komplikation aussehen, aber es kann später nützlich sein. So kann er beispielsweise eine Korrektur von einem Trendbruch unterscheiden.