Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 729

 
Igor Makanu:

Kopieren wird nicht helfen, Sie müssen lesen, hier ist der Artikelhttps://www.mql5.com/ru/articles/1456

Zur rein visuellen und informativen Nutzung

 
Carcass77:

Nur zu visuellen und informativen Zwecken zu verwenden

//+------------------------------------------------------------------+
//|                                                    atrValues.mq4 |
//|                        Copyright 2017, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict

extern int atrPeriod=10;
extern int infoCorner=0;
extern int shift=0;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   double atr1=iATR(Symbol(),1,atrPeriod,shift);
   double atr5=iATR(Symbol(),5,atrPeriod,shift);
   double atr15=iATR(Symbol(),15,atrPeriod,shift);
   double atr30=iATR(Symbol(),30,atrPeriod,shift);
   double atr60=iATR(Symbol(),60,atrPeriod,shift);
   double atr240=iATR(Symbol(),240,atrPeriod,shift);
   double atr1440=iATR(Symbol(),1440,atrPeriod,shift);
   double atr10080=iATR(Symbol(),10080,atrPeriod,shift);
   double atr43200=iATR(Symbol(),43200,atrPeriod,shift);
//---
   ObjectCreate("ObjName1",OBJ_LABEL,0,0,0);
   ObjectSetText("ObjName1","ATR"+IntegerToString(atrPeriod,0)+": M1="+DoubleToStr(atr1,5),8,"Verdana",Red);
   ObjectSet("ObjName1",OBJPROP_CORNER,infoCorner);
   ObjectSet("ObjName1",OBJPROP_XDISTANCE,10);
   ObjectSet("ObjName1",OBJPROP_YDISTANCE,25);
//---
   ObjectCreate("ObjName2",OBJ_LABEL,0,0,0);
   ObjectSetText("ObjName2","ATR"+IntegerToString(atrPeriod,0)+": M5="+DoubleToStr(atr5,5),8,"Verdana",Red);
   ObjectSet("ObjName2",OBJPROP_CORNER,infoCorner);
   ObjectSet("ObjName2",OBJPROP_XDISTANCE,10);
   ObjectSet("ObjName2",OBJPROP_YDISTANCE,40);
//---
   ObjectCreate("ObjName3",OBJ_LABEL,0,0,0);
   ObjectSetText("ObjName3","ATR"+IntegerToString(atrPeriod,0)+": M15="+DoubleToStr(atr15,5),8,"Verdana",Red);
   ObjectSet("ObjName3",OBJPROP_CORNER,infoCorner);
   ObjectSet("ObjName3",OBJPROP_XDISTANCE,10);
   ObjectSet("ObjName3",OBJPROP_YDISTANCE,55);
//---
   ObjectCreate("ObjName4",OBJ_LABEL,0,0,0);
   ObjectSetText("ObjName4","ATR"+IntegerToString(atrPeriod,0)+": M30="+DoubleToStr(atr30,5),8,"Verdana",Red);
   ObjectSet("ObjName4",OBJPROP_CORNER,infoCorner);
   ObjectSet("ObjName4",OBJPROP_XDISTANCE,10);
   ObjectSet("ObjName4",OBJPROP_YDISTANCE,70);
//---
   ObjectCreate("ObjName5",OBJ_LABEL,0,0,0);
   ObjectSetText("ObjName5","ATR"+IntegerToString(atrPeriod,0)+": M60="+DoubleToStr(atr60,5),8,"Verdana",Red);
   ObjectSet("ObjName5",OBJPROP_CORNER,infoCorner);
   ObjectSet("ObjName5",OBJPROP_XDISTANCE,10);
   ObjectSet("ObjName5",OBJPROP_YDISTANCE,85);
//---
   ObjectCreate("ObjName6",OBJ_LABEL,0,0,0);
   ObjectSetText("ObjName6","ATR"+IntegerToString(atrPeriod,0)+": M240="+DoubleToStr(atr240,5),8,"Verdana",Red);
   ObjectSet("ObjName6",OBJPROP_CORNER,infoCorner);
   ObjectSet("ObjName6",OBJPROP_XDISTANCE,10);
   ObjectSet("ObjName6",OBJPROP_YDISTANCE,100);
//---
   ObjectCreate("ObjName7",OBJ_LABEL,0,0,0);
   ObjectSetText("ObjName7","ATR"+IntegerToString(atrPeriod,0)+": M1440="+DoubleToStr(atr1440,5),8,"Verdana",Red);
   ObjectSet("ObjName7",OBJPROP_CORNER,infoCorner);
   ObjectSet("ObjName7",OBJPROP_XDISTANCE,10);
   ObjectSet("ObjName7",OBJPROP_YDISTANCE,115);
//---
   ObjectCreate("ObjName8",OBJ_LABEL,0,0,0);
   ObjectSetText("ObjName8","ATR"+IntegerToString(atrPeriod,0)+": M10080="+DoubleToStr(atr10080,5),8,"Verdana",Red);
   ObjectSet("ObjName8",OBJPROP_CORNER,infoCorner);
   ObjectSet("ObjName8",OBJPROP_XDISTANCE,10);
   ObjectSet("ObjName8",OBJPROP_YDISTANCE,130);
//---
   ObjectCreate("ObjName9",OBJ_LABEL,0,0,0);
   ObjectSetText("ObjName9","ATR"+IntegerToString(atrPeriod,0)+": M43200="+DoubleToStr(atr43200,5),8,"Verdana",Red);
   ObjectSet("ObjName9",OBJPROP_CORNER,infoCorner);
   ObjectSet("ObjName9",OBJPROP_XDISTANCE,10);
   ObjectSet("ObjName9",OBJPROP_YDISTANCE,145);
//--- 
  }
//+------------------------------------------------------------------+
 
Alekseu Fedotov:

Es sind viele Fehler aufgetaucht)

 
Carcass77:

Jede Menge Fehler)

Bei mir funktioniert das Kompilieren einwandfrei.

 
Alekseu Fedotov:

Bei mir funktioniert das Kompilieren einwandfrei.

Ich habe meinen Fehler gefunden. Herzlichen Dank!

 
Wie kann ich eine der Methoden des T1-Objekts innerhalb einer Template-Klasse mit Objekten nicht expliziten Typs aufrufen (d. h. der Objekttyp wird nicht explizit festgelegt, sondern über template<typename T1>)? Alle T1-Objekte haben identische Methoden.
 
Igor Makanu:

Ich sehe, kein Terminal zur Hand, aber es scheint, dass nur die Fehlerprotokolle in der Meta-Editor in rot hervorgehoben werden, während im Terminal und in der Tester nur das Symbol rot ist, und der Text selbst scheint nicht zu "röten"

Dort steht:
(schwarz hervorgehoben).

INIT_PARAMETERS_INCORRECT

Der Ergebnisstring, der diesen Rückgabecode enthält, wird in der allgemeinen Optimierungstabelle rot hervorgehoben.

Für den Parametersatz dieses Expert Advisors werden keine Tests durchgeführt.


Und hier ist die allgemeine Optimierungstabelle:




Nichts ist rot hervorgehoben.

Es ist nur so, dass in solchen Zeilen das Optimierungsergebnis gleich Null ist.


Lügt das Handbuch oder mache ich etwas falsch?

 
Gibt es eine Möglichkeit, die Tasten in der Eingabe anzuzeigen, so dass sie neu zugewiesen werden können?
 
Roman Sharanov:
Gibt es eine Möglichkeit, die Schlüssel in die Eingabe zu bekommen, so dass sie neu zugewiesen werden können?

Dose.

#property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
#property indicator_chart_window
//--- input parameters

input string      key = "A";

//+------------------------------------------------------------------+
//| 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[])
  {
//---
   
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {

   if(id==CHARTEVENT_KEYDOWN)
     {
      if(lparam==(StringGetChar(key,0)))
        {
        Alert("нажатая клавиша = ",key);
        Alert("код нажатой клавиши = ",StringGetChar(key,0));
        }
     }
  }
//+------------------------------------------------------------------+
 
multiplicator:

Hier steht es:
(schwarz hervorgehoben).

INIT_PARAMETERS_INCORRECT

Um dem Programmierer einen falschen Satz von Eingabeparametern anzuzeigen, wird der Ergebnisstring mit diesem Rückgabewert in der allgemeinen Optimierungstabelle rot hervorgehoben.

Für den Parametersatz dieses Expert Advisors werden keine Tests durchgeführt.


Und hier ist die allgemeine Optimierungstabelle:




Nichts ist rot hervorgehoben.

Es ist nur so, dass in solchen Zeilen das Ergebnis der Optimierung gleich Null ist.


Lügt das Handbuch oder mache ich etwas falsch?

Sie sehen also, dass nichts hervorgehoben ist und dem Handbuch in dieser Hinsicht widerspricht.