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

 
msl271170: Lehren Sie, wie Sie den Expert Advisor stoppen und starten können, wenn eine neue Kerze erscheint.

Es gibt ein Beispiel für Moving Average.mq4 Expert Advisor im Terminal - es hat dies:

//--- go trading only for first tiks of new bar
   if(Volume[0]>1) return;

Ich habe es in einem anderen gesehen:

datetime LastTime;  // Время начала тика для побарного режима
void OnTick()
{
  if (Time[0] == LastTime) return;
  LastTime = Time[0];
........
}
 
msl271170: Ich verstehe, dass MT5 eine andere Programmiersprache hat. Wird mein Code dort nicht funktionieren?

Verwenden Sie MT4Orders - Bibliothek für MetaTrader 5

 

Ich versuche, CopyTime herauszufinden, aber ich verstehe nicht, warum DayData[] nicht ausfüllt (ich möchte Datum gerundet auf ganzen Tag sehen). Ich habe unten ein Beispiel eingefügt. Wenn jemand einen Fehler bemerkt, bitte ich um einen Hinweis oder eine Korrektur:

datetime Data[3]={D'2017.09.22 08:05',D'2017.09.22 10:05',D'2017.09.22 12:05'};
int count=0;
datetime DayData[];
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   count++;
   
   if(count<4)
     {
      int copied=CopyTime(NULL,PERIOD_D1,Data[count-1],1,DayData);
      ArrayResize(DayData,count);
      Print("0 Data[",count-1,"]= ",Data[count-1]," DayData[count-1]= ",DayData[count-1]); // 1 control
     }

   for(int i=0; i<ArraySize(DayData);i++)
      Print("1 Data[",i,"]= ",Data[i]," DayData[i]= ",DayData[i]);  // 2 control

  }
//+------------------------------------------------------------------+
 

Eine ganze Seite mit leeren Beiträgen (Forumsfehler). Ich musste löschen.

 

Einen guten Tag an Sie alle!


Ich lerne allmählich mql4 aus dem Buch von Evgeniy Zhdanov.

Er beschreibt ein Beispiel für die Anwendung von Hüllkurven und Zickzack.

Die Funktionen iCustom und iEnvelopes werden dort beschrieben, um Daten für Hüllkurven und Zickzack-Indikatoren zu erhalten.

Können Sie mir sagen, wo ich Informationen finden und die Daten erfahren kann - als die anderen Indikatoren zu beschreiben?

Vielleicht gibt es einen Link zu einer Ressource, wo ich erfahren kann, welche Funktionen durch welche Indikatoren beschrieben werden?

Oder steht das alles in der Hilfe?

Ich bin Ihnen im Voraus sehr dankbar!

 
Список функций языка MQL4 - Справочник MQL4
Список функций языка MQL4 - Справочник MQL4
  • docs.mql4.com
Читает из файла типа CSV строку одного из форматов: "YYYY.MM.DD HH:MM:SS", "YYYY.MM.DD" или "HH:MM:SS" - и преобразует ее в значение типа datetime
 
Taras Slobodyanik:

siehe iRsi und iBands

https://docs.mql4.com/ru/function_indices


Ich danke Ihnen vielmals!


Ich habe meine Tauchausrüstung geholt und bin zum Tauchen gegangen!

 

Es stellt sich auch diese Frage.

Der folgende Expert Advisor ist vorgeschrieben

Wenn ZigZag weniger als zwei Umschläge ist - öffnen Sie kaufen.

Wenn ZigZag größer ist als zwei Umschläge - öffnen Sie Verkaufen.

Wenn dann eine Order von einem EA eröffnet wird, ändern Sie die Order um so-und-so Take Stop und so-und-so Stop.

Bei der Kompilierung sind keine Fehler aufgetreten.

Und hier ist das Problem, egal wie ich versuche, es zu testen, der Strategietester öffnet immer die erste Kauforder, die sich der Tester hartnäckig weigert, zu ändern. Außerdem werden alle Aufträge nur für Sell geöffnet, die perfekt modifiziert sind und keine Probleme verursachen.

Liegt ein Fehler im Code vor?

Oder ist dies eine Funktion des Testers? Ich beginne immer mit einem beliebigen Datum, das ich als "Verwendungsdatum" auswähle, und die erste Bestellung, die ich kaufe, ist immer unveränderbar. Dann alle meine Verkaufsaufträge, die geändert werden und funktionieren gut.

Ich habe noch keine Informationen darüber gefunden.

Vielen Dank für Ihre freundliche Aufmerksamkeit!

 

Warum liefert das Prüfgerät unterschiedliche Ergebnisse bei

extern bool Tral =true;

...

void OnTick()

{

    if (Tral)Trailing();....

und wenn Tral nicht auf externe Variablen umgestellt wird, sondern einfach die gleiche Funktion mit den gleichen Variablen verwendet:

void OnTick()

{

   Trailing();


 
RichLux:

Warum zeigt das Testgerät unter .... unterschiedliche Ergebnisse an?

Versuchen Sie es:

input bool Tral =true;

... oder brauchen Sie wirklich extern?

Grund der Beschwerde: