Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 869

 
Sergey Savinkin:

Es funktioniert. ))

Und was für ein cleverer Forenmotor... Sie selbst haben den Link angegeben, auf dem eine vollständige Anleitung zum Einfügen des Codes zu finden ist.

 
Alexey Viktorov:

Und wirklich... warum sollte man sich bemühen, besser zu sein...

Zählen Sie, wie viel zusätzlicher Code in diesen Funktionen geschrieben wird und wie viel Code Sie durch den Aufruf dieser selbst geschriebenen Funktionen schreiben.

Ich möchte im Handel besser werden, und ich brauche Kodierung, um dieses Ziel zu erreichen.

Wenn der Unterschied am Ende des Jahres nur noch 0,1 Sekunden beträgt, ist es dann überhaupt noch sinnvoll, sich die Mühe zu machen?

Können Sie mir zeigen, wie man diesen Code ohne Funktionen erstellt und ihn beschleunigt?

 
Aleksey Vyazmikin:

Ich strebe danach, im Handel besser zu werden, und ich brauche Kodierung, um diesem Ziel näher zu kommen.

Wenn der Unterschied am Ende des Jahres nur noch 0,1 Sekunden beträgt, ist es dann überhaupt noch sinnvoll, sich die Mühe zu machen?

Können Sie mir zeigen, wie man diesen Code ohne Funktionen erstellt und ihn beschleunigt?

So haben Sie das alles geschrieben. Nur ist das alles unter mql4 verpackt. Können Sie auf eine solche Verpackung nicht verzichten?

Und das ist

Forum zum Thema Handel, automatische Handelssysteme und Strategietests

FAQ von Anfängern MQL5 MT5 MetaTrader 5

Aleksey Vyazmikin, 2018.05.24 12:30

Alle von Bits und Stücke gesammelt, aber der Hauptteil der ähnlichen Funktionen nahm ich ursprünglich von hier, wirklich nicht wissen, was davon übrig ist.

ENUM_TIMEFRAMES TFMigrate(int tf)
  {
   switch(tf)
     {
      case 0: return(PERIOD_CURRENT);
      case 1: return(PERIOD_M1);
      case 5: return(PERIOD_M5);
      case 15: return(PERIOD_M15);
      case 30: return(PERIOD_M30);
      case 60: return(PERIOD_H1);
      case 240: return(PERIOD_H4);
      case 1440: return(PERIOD_D1);
      case 10080: return(PERIOD_W1);
      case 43200: return(PERIOD_MN1);

      case 2: return(PERIOD_M2);
      case 3: return(PERIOD_M3);
      case 4: return(PERIOD_M4);
      case 6: return(PERIOD_M6);
      case 10: return(PERIOD_M10);
      case 12: return(PERIOD_M12);
      case 16385: return(PERIOD_H1);
      case 16386: return(PERIOD_H2);
      case 16387: return(PERIOD_H3);
      case 16388: return(PERIOD_H4);
      case 16390: return(PERIOD_H6);
      case 16392: return(PERIOD_H8);
      case 16396: return(PERIOD_H12);
      case 16408: return(PERIOD_D1);
      case 32769: return(PERIOD_W1);
      case 49153: return(PERIOD_MN1);
      default: return(PERIOD_CURRENT);
     }
  }

Es ist einfach nur schrecklich.... Worum geht es hier eigentlich?

Es ist nicht wirklich ein Kurs. Tut mir leid, keine Kritik mehr.

 
Alexey Viktorov:

So haben Sie das alles geschrieben. Nur ist das alles in mql4 verpackt. Können Sie auf eine solche Verpackung nicht verzichten?

Und das...


ist einfach nur furchtbar... Was hat es damit auf sich?

Und im Allgemeinen sind es nicht die Kurse hier. Tut mir leid, keine Kritik mehr.

Nun, da es keine Lust gibt, Anfängern zu zeigen, wie man es besser macht...

Ich sehe den Horror nicht, in MT4 wird der Zeitraum oft mit durch Minuten teilbaren Ziffern bezeichnet, was in MT5 nicht logisch ist, aber es ermöglicht eine einfachere Portierung des Codes.

 
Aleksey Vyazmikin:

Nun, da es keine Lust gibt, den besten Weg für Anfänger zu zeigen...

Ich sehe den Schrecken nicht, in MT4 wird der Zeitraum oft durch Zahlen angegeben, die durch Minuten teilbar sind, was nicht logisch ist, wenn man es schon in MT5 macht, aber es macht es einfacher, den Code zu portieren.

Warum wird sie in eine Minutenzahl umgerechnet und dann wieder zurückgesetzt?

Ist 16408 besser verständlich als PERIOD_D1 oder 49153 besser verständlich als PERIOD_MN1?

Периоды графиков - Константы графиков - Стандартные константы, перечисления и структуры - Справочник MQL4
Периоды графиков - Константы графиков - Стандартные константы, перечисления и структуры - Справочник MQL4
  • docs.mql4.com
Все предопределенные периоды графиков имеют уникальные идентификаторы. Идентификатор PERIOD_CURRENT означает текущий период графика, на котором запущена mql4-программа. Перечисление ENUM_TIMEFRAMES содержит значения стандартных таймфреймов, онлайновые графики финансовых...
 

Hallo, in der EA möchte ich den aktuellen Wert der ATR von der hohen Periode des Charts zu kennen. Ein ganzzahliger Wert.

#include <Trade\SymbolInfo.mqh> 
CSymbolInfo    m_symbol;
//===
input int             ATRper=7;         //ATR Period
input ENUM_TIMEFRAMES ATRtimeframe=PERIOD_CURRENT;//«Time_Frame_ ATR»
int            handle_iCustom;
double atr_tp;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   if(!m_symbol.Name(Symbol())) // sets symbol name
      return(INIT_FAILED);
   handle_iCustom=iATR(m_symbol.Name(),ATRtimeframe,ATRper);
//--- if the handle is not created 
   if(handle_iCustom==INVALID_HANDLE)
     {
      //--- tell about the failure and output the error code 
      PrintFormat("Failed to create handle of the iCustom indicator for the symbol %s/%s, error code %d",
                  m_symbol.Name(),
                  EnumToString(Period()),
                  GetLastError());
      //--- the indicator is stopped early 
      return(INIT_FAILED);
     }
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   int Bar_=0;
   atr_tp= iCustomGet(handle_iCustom  ,0,Bar_);
   atr_tp=NormalizeDouble(atr_tp,Digits())/_Point;
   atr_tp=(int)atr_tp;
   Comment("atr_",atr_tp);
  }
//+------------------------------------------------------------------+
double iCustomGet(int handle,const int buffer,const int index)
  {
   double Custom[1];
//--- reset error code 
   ResetLastError();
//--- fill a part of the iCustom array with values from the indicator buffer that has 0 index 
   if(CopyBuffer(handle,buffer,index,1,Custom)<0)
     {
      //--- if the copying fails, tell the error code 
      PrintFormat("Failed to copy data from the iCustom indicator, error code %d",GetLastError());
      //--- quit with zero result - it means that the indicator is considered as not calculated 
      return(0.0);
     }
   return(Custom[0]);
  }
///

Wo liegt der Fehler?

 
lil_lil:

Hallo, im EA möchte ich den aktuellen Wert der ATR aus der Hochphase des Charts wissen. Ein ganzzahliger Wert.

Wo liegt der Fehler?

Was steht dort? Was steht dort?

 
Sergey Savinkin:

Was steht dort? Worüber flucht er?

Nein, das ist eine Lüge. Der Indikator auf dem Hoch zeigt "8", aber der Berater sagt "6" im Kommentar

 
lil_lil:

Sie flucht nicht, sie lügt. Der Indikator auf dem Hoch zeigt "8", aber im Kommentar sagt der EA "6".

Ich habe Ihren EA auf einer Periode von 5 Minuten, Periode ATR 14, Zeitrahmen ATR - 1 Stunde ausgeführt. Alles ist gleichmäßig verteilt, sowohl in den Kommentaren als auch in der Tabelle.

 
lil_lil:

Es liegt auch auf meinem aktuellen, mit ATRtimeframe=PERIOD_CURRENT


Ich glaube, es geht gar nicht um den Code. Hier ist mein PERIOD_CURRENT