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

 

Hallo! Es gibt eine Frage im Code. Dieses Ereignis erscheint bei jedem neuen Balken der Arbeits-TF. TF - sollte es so sein oder liegt ein Fehler im Code vor?

//+------------------------------------------------------------------+
//|                                                         Test.mq5 |
//|                        Copyright 2018, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   
//---
   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[])
  {
//---
   ResetLastError();   
   datetime Arr[];
   if(CopyTime(NULL,PERIOD_M5,10,1,Arr)<=0) 
   {
      int error=GetLastError();
      Print("Ошибка 4401 возникает на новом баре раб.ТФ, который должен быть ниже М5 в данном случае ",error);
      Print("Почему запрошенная история не найдена ведь я обращаюсь всего лишь к 10-му бару старшего ТФ М5");
      return(0);
      }
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
 
novichok2018:

Es gibt auch die Funktionbool ExistPositions() von Igor Kim, die das Flag der Existenz einer Position zurückgibt, was für mich etwas kompliziert ist, um sie an meine spezifischen Bedingungen anzupassen. Aber ich glaube auch nicht, dass es in der Geschichte getestet wird.

Wenn niemand einen in der Praxis erprobten Code hat, den er mir zeigen kann, werde ich es wissenschaftlich versuchen. Ich danke Ihnen.

Mein Wissen ist wieder einmal mangelhaft! Eine einfache Ersetzung in iOpen(NULL,0,0) für EURUSD führt zu Fehlern undeklarierter Bezeichner und impliziter Konvertierung von "Zahl" in "String". Dasselbe beim Ändern von Symbol() inOrderSend(Symbol(),OP_BUY,LOT,Ask,slippage,0,TP,"",magic,0,Blue); Wie kann ich es beheben?

 
novichok2018:

Wieder fehlt es mir an Wissen! Das Ersetzen von NULL in iOpen(NULL,0,0) durch EURUSD führt zu Fehlern beim nicht deklarierten Bezeichner und bei der impliziten Umwandlung von "Zahl" in "String". Dasselbe beim Ändern von Symbol() in OrderSend(Symbol(),OP_BUY,LOT,Ask,slippage,0,TP,"",magic,0,Blue); Wie kann ich es beheben?

Haben Sie nicht vergessen, Anführungszeichen zu setzen?

 
novichok2018:

Ja, so habe ich es mir vorgestellt, aber ich kann nicht überprüfen, ob es in der Historie funktioniert, weil die Eröffnung einer Position auf dem Euro durch die Bedingung für das Pfund erfolgen sollte und sich nicht im Code für den Euro widerspiegelt, während die Historie für den Euro angezeigt wird. Daher die Unsicherheit über die Richtigkeit der Entscheidung.

Dann werde ich MQL5 lernen und die Mehrwährungsvariante testen müssen.

 
Alexey Viktorov:

Dann muss ich MQL5 lernen und die Variante mit mehreren Währungen testen.

Oh, nein danke! Ich habe nicht vor, MKL4 oder MKL5 gründlich zu studieren. Mein Ziel ist es, einfache Expert Advisors zu schreiben, die in 95 % der eröffneten Positionen profitabel sind, und zu vermeiden, dass der gesamte Saldo gezogen wird, bevor ich mich entscheide, eine Position mit Verlust zu schließen. Ich habe mehrere solcher Expert Advisors, die auf Demokonten funktionieren, aber jedes Mal tauchen neue Ideen auf und ich möchte sie sofort testen. Ich bin der Meinung, je einfacher der Code, desto besser, ich will mich nicht in die Sprache vertiefen. Jedenfalls noch nicht! Ein gründliches Studium der Sprache ist meiner Meinung nach nur dann gerechtfertigt, wenn man mit dem Verfassen von Gutachten auf Bestellung Geld verdienen will.

Danke für die Zitate. Ich habe es noch nicht ausprobiert, etwas später.

 
novichok2018:

....... Mein Ziel ist es, einfache Expert Advisors für mich zu schreiben, die in 95% der offenen Positionen profitabel sind, und dass ein hängendes Minus nicht mein gesamtes Guthaben aufzehrt, bis ich mich entscheide, eine Position mit Verlust zu schließen. .....

Sie haben den Traum von 95 % der Händler auf der ganzen Welt beschrieben. Aber Sie wollen sich nicht einmal mit der Rechtschreibung und der Syntax der Sprache befassen. Ein beneidenswertes Selbstvertrauen, das würde mir gefallen. IMHO natürlich.

 
novichok2018:

Oh, nein danke! Ich habe nicht vor, MKL4 oder MKL5 gründlich zu studieren. Mein Ziel ist es, einfache Expert Advisors zu schreiben, die in 95 % der eröffneten Positionen profitabel sind, und zu vermeiden, dass der gesamte Saldo gezogen wird, bevor ich mich entscheide, eine Position mit Verlust zu schließen. Ich habe mehrere solcher Expert Advisors, die auf Demokonten funktionieren, aber jedes Mal tauchen neue Ideen auf und ich möchte sie sofort testen. Ich bin der Meinung, je einfacher der Code, desto besser, ich will mich nicht in die Sprache vertiefen. Jedenfalls noch nicht! Ein gründliches Studium der Sprache ist meiner Meinung nach nur dann gerechtfertigt, wenn man mit dem Verfassen von Gutachten auf Bestellung Geld verdienen will.

Danke für die Zitate. Ich habe es noch nicht ausprobiert, ich werde es etwas später versuchen.

MQL5 ist nicht komplizierter als MQL4. In manchen Fällen ist es sogar einfacher und schneller. OOP ist nur für Anfänger ein Ärgernis. Um einen einfachen Expert Advisor, auf den Sie sich beziehen, zu schreiben, müssen Sie keine Kenntnisse über OOP haben.

Sagen Sie mir, wie viel schwieriger es ist, zu schreiben

// MQL4

OrderSend(_Symbol, OP_BUY, lot, price, Slip, sl, tp, "", Magic);
// MQL5

#include <Trade\\Trade.mqh>
CTrade trade;

trade.Buy(lot);
 
Sergey Voytsekhovsky:

Sie haben den Traum von 95 % der Händler in der Welt beschrieben. Aber Sie wollen sich nicht einmal mit der Rechtschreibung und der Syntax der Sprache befassen. Ein beneidenswertes Selbstvertrauen, das würde mir gefallen. IMHO, natürlich.

Ich verstehe nicht, was Sie mit "Rechtschreibung" meinen, aber das macht nichts, denn meine Roboter funktionieren, und zwar genau so, wie ich es beschrieben habe.

 
Alexey Viktorov:

MQL5 ist nicht komplizierter als MQL4. Und in einigen Fällen ist es sogar einfacher und schneller. OOP ist nur eine Horrorgeschichte für Anfänger. Um einen einfachen Expert Advisor, von dem Sie sprechen, zu schreiben, müssen Sie nicht über OOP Bescheid wissen.

Sagen Sie mir, wie viel schwieriger es ist, zu schreiben

OH, MEIN GOTT! Du hast mich umgebracht. Ich verstehe nichts, obwohl es mechanisch nicht schwieriger ist, die zweite Version zu schreiben )).

 

Hallo, wie lange wird es MT4 noch geben? ein oder zwei Jahre?

Entschuldigen Sie die Frage, sie ist ein bisschen off-topic (aber sehr wichtig für mich).

Grund der Beschwerde: