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

 
Igor Makanu:

nicht.

iBars() verwenden, um den verfügbaren Verlauf zu sehen

HH: Wenn ich mich nicht irre, sind im Tester beim Start des Expert Advisors 1000 Balken verfügbar, mit der Erzeugung neuer Daten erhöht sich dann die Anzahl der Balken. Der Tester modelliert die Historie aller TFs, an die er adressiert ist, d.h. wenn Sie den Test auf H1 laufen lassen und während des Tests auf die Daten in TF M1 zugreifen, dann wird er beim Start für 1000 Bars auf H1 verfügbar sein, und daher 60 * 1000 = 60.000 Bars M1

Sie sollten mehr Artikel wie diesen lesenhttps://www.mql5.com/ru/articles/1511

Ich habe eine Idee, wie man es machen kann.

Sie können einen EA starten lassen und einen Monat lang nicht handeln.

und im nächsten Monat wird es erst in den Handel kommen.

Die Historie wird kumuliert und der Varianzkoeffizient wird vor dem Handel berechnet.


Wie gefällt Ihnen die Methode?



Aber wie halte ich fest, dass "der erste Monat nicht gehandelt wurde"...

Ich werde in verschiedenen Zeiträumen testen.

Ich möchte das Datum nicht ständig von Hand korrigieren müssen.

Ich möchte das Datum nicht ständig von Hand korrigieren.

 
multiplicator:

Ich habe herausgefunden, wie man das macht.

können Sie den EA starten und einen Monat lang nicht handeln.

Dies ist in etwa das, was Sie für Ihr Problem benötigen, aber auch hier sollten Sie iBars() verwenden, damit Sie wissen, wie viel Historie dem EA im Tester zur Verfügung steht

 

multiplicator:
счётчик, что ли включить, дней...

Igor Makanu:

aber verwenden Sie wieder iBars() und Sie werden wissen, wie viel Historie für den EA im Tester verfügbar ist

genau!

wenn iBars() wird > 30.000 - berechnen Varianz und dann erlauben die EA zu handeln.

Dank an alle, die geantwortet haben.

 

Hallo! Hilfe für einen unerfahrenen Anfänger Trader! Ich habe einen EA, aber er hat keinen Stop-Loss! Wer kann einen Stop-Loss zu einem EA hinzufügen (und wenn möglich kostenlos!)

 
Tem4ik:

Hallo! Hilfe für einen unerfahrenen Anfänger Trader! Ich habe einen EA, aber er hat keinen Stop-Loss! Wer kann einen Stop-Loss zu einem EA hinzufügen (und wenn möglich kostenlos!)


Posten Sie den Code hier (wenn er nicht dekompiliert ist) und vielleicht kann Ihnen jemand helfen.

 
#define  list "Cryptocurrency Market\\List.csv"

enum FILE_LOCATION
{
   LOCATE_TERMINAL = 0,
   LOCATE_COMMON = FILE_COMMON,
};

void GetLocalSource(FILE_LOCATION &dir)
{
   GetLocalList(FileOpenEx(list, FILE_WRITE|FILE_READ|FILE_CSV|dir));
}

int FileOpenEx(const string fname, int flags, int delimeter =';', uint codepage = CP_ACP)
{
   bool ex;
   if(flags > 4095)
      ex = FileIsExist(fname, FILE_COMMON);
   else
      ex = FileIsExist(fname);
   if(!ex) return -1;
   return FileOpen(fname, flags, delimeter, codepage);
}

bool GetLocalList(const int handle)
{
   if(handle == INVALID_HANDLE) {Print("Handle err: ", handle, " | ", GetLastError()); return false;}
...
}

Ich kann die Datei nicht überFileIsExist finden, die Funktion will sie nicht sehen. Ich habe diese Datei bereits sowohl in das allgemeine Verzeichnis als auch in das Terminalverzeichnis verschoben - das Ergebnis hat sich nicht geändert

2019.01.06 16:11:14.957 CoinMarketCap EURUSD,Daily: Handle err: -1 | 5020

Die Funktion, mit der List.csv geschrieben wird, öffnet sie über dieselbe Listenmakrosubstitution

Worin besteht der Fehler?

 
Ilya Prozumentov:

Ich kann die Datei nicht über FileIsExist finden, die Funktion will sie nicht sehen. Ich habe diese Datei bereits sowohl in das allgemeine Verzeichnis als auch in das Terminalverzeichnis verschoben - das Ergebnis hat sich nicht geändert

2019.01.06 16:11:14.957 CoinMarketCap EURUSD,Daily: Handle err: -1 | 5020

Die Funktion, mit der List.csv geschrieben wird, öffnet sie über dieselbe Listenmakrosubstitution

Worin besteht der Fehler?

Versuchen Sie Folgendes: #define list "Files\\\Cryptocurrency Market\\\List.csv"

Die Datei sollte sich im Ordner Files befinden

 
Vladimir Pastushak:

Versuchen Sie Folgendes: #define list "Files\\\Cryptocurrency Market\\\List.csv"

Die Datei sollte sich im Ordner "Files" befinden.

Es hat nicht funktioniert.


P.S Problem gefunden, es gibt ein Leerzeichen am Ende eines bereits existierenden Dateinamens

 

Hallo.

Können Sie mir bitte sagen, wie ich das Datum (im Datumsformat) des Wochenanfangs und des Wochenendes bestimmen kann? Ich möchte, dass der Oszillator am Ende der Woche auf Null gestellt wird und zu Beginn der neuen Woche wieder bei Null anfängt zu zählen. Im Moment weiß ich, wie ich sie für jeden Tag auf Null setzen kann, aber ich habe keine Ahnung, wie ich sie für jede Woche auf Null setzen kann. So stelle ich jeden Tag um.

void Calculate(int i)
  {
   double summ;
   datetime startTime  = StringToTime(TimeToString(Time[i],TIME_DATE)+" "+StartTime); // StartTime=00:10
   datetime endTime    = StringToTime(TimeToString(Time[i],TIME_DATE)+" "+EndTime);   // EndTime=23.50
   datetime currentTime= StringToTime(TimeToString(Time[i],TIME_DATE)+" "+TimeToString(Time[i],TIME_MINUTES));
//Print("Start = ",TimeToString(startTime,3));
//Print("End = ",TimeToString(endTime,3));
   if(CheckTimer(i,startTime,endTime,currentTime,0))
     {
      summ = MainBuffer[i+1];
      summ+= InfluenceBuffer[i];
      MainBuffer[i]=summ; 
     }
   else
     {
      summ=0.0;
      MainBuffer[i]=summ;
      }
  }

Danke

 
Gerkl:

Können Sie mir bitte mitteilen, wie ich das Datum (im Datumsformat) des Wochenanfangs und des Wochenendes bestimmen kann?

//1. для времени datetime t
if(TimeDayOfWeek(t))==1) // Понедельник
if(TimeDayOfWeek(t))==5) // Пятница

//2. для текущего времени
if(DayOfWeek() = 1) // Понедельник
if(DayOfWeek() = 5) // Пятница

Höchstwahrscheinlich benötigen Sie die Variante №1, dann verwenden Sie im Indikator im Berechnungszyklus, in dem Sie nach Balken suchen, die folgende Struktur:

if(TimeDayOfWeek(Time[i]))==1) // Понедельник
if(TimeDayOfWeek(Time[i]))==5) // Пятница
Sie haben die richtige Zeit in Time[i], nachdem Sie die Bedingung geprüft haben
Grund der Beschwerde: