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

 
Alexey Kozitsyn:
Durch eine Datei, zum Beispiel...

wenn es nicht zu viel Mühe macht, ein paar mehr Details.

 
виталик:

Wenn es Ihnen nichts ausmacht, ein paar mehr Details.

Verwenden Sie die Kopierfunktionen, um Zitate zu ziehen:

https://www.mql5.com/ru/docs/series

Dann ist https://www.mql5.com/ru/docs/files ein Link zu Dateivorgängen.

Документация по MQL5: Файловые операции
Документация по MQL5: Файловые операции
  • www.mql5.com
Файловые операции - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Guten Abend, ich mache ein "Schienen"-Muster, aber ich kann es nicht zum Laufen bringen.... können Sie sehen, was falsch ist? Vielen Dank im Voraus.
Dateien:
jzogyr2.mq4  6 kb
 
sviter-pro:
Guten Abend, ich mache ein "Schienen"-Muster, aber ich kann es nicht zum Laufen bringen.... können Sie sehen, was falsch ist? Vielen Dank im Voraus.

int OnInit()
  {

   SetIndexBuffer(0,BuyTrain); SetIndexStyle(0,DRAW_ARROW,EMPTY,RazmerStrelok,coloru); SetIndexArrow(0,159); SetIndexEmptyValue(0,EMPTY_VALUE);
   SetIndexBuffer(1,SelTrain); SetIndexStyle(1,DRAW_ARROW,EMPTY,RazmerStrelok,colord); SetIndexArrow(1,159); SetIndexEmptyValue(1,EMPTY_VALUE);

   return(INIT_SUCCEEDED);
  }

Und diese Bedingungen werden niemals erfüllt sein

   double high2=0.0,high3=0.0,high4=0.0,high5=0.0,high6=0.0,high7=0.0,size1=0.0,size2=0.0,body1=0.0,body2=0.0;

      if(Close1<Open1 && Close2>Open2
         && MathAbs(High1-High2)<=5*Point
         && high3<high2
         && high4<high2
         && high5<high2
         && high6<high2
         && high7<high2
         && body1 >= size1 * 0.7
         && body2 >= size2 * 0.7
         && size1 >= 20 * Point && size2 >= 20 * Point)
        {
         BuyTrain[i]=low[i]-OtstupStrelok*Point;
        }
      if(Close1>Open1
         && Close2<Open2
         && MathAbs(Low1-Low2)>=5*Point
         && high3>high2
         && high4>high2
         && high5>high2
         && high6>high2
         && high7>high2
         && body1 <= size1 * 0.7
         && body2 <= size2 * 0.7
         && size1 <= 20 * Point
         && size2 <= 20 * Point)
        {
         SelTrain[i]=high[i]-OtstupStrelok*Point;
        }
 

Guten Tag, ich habe folgende Aufgabe: Ich muss herausfinden, wie viele Takte es bis zum nächsten 01.00 Uhr geben wird. Ich habe es bisher mit einer Schleife gemacht, aber vielleicht ist es korrekter, es irgendwie mit iBarShift zu machen? Vielleicht ist es richtiger, es überhaupt anders zu machen?

      int ShiftBar=0;
      for(int cnt=0; cnt<100; cnt++)
        {
         int hour=TimeHour(iTime(Symbol(),PERIOD_M30,cnt));
         if(hour==1)
           {
            ShiftBar=cnt;
            break;
           }
        }
        Print("ShiftBar= ",ShiftBar);
 
Nauris Zukas:

Guten Tag, ich habe folgende Aufgabe: Ich muss herausfinden, wie viele Takte es bis zum nächsten 01.00 Uhr geben wird. Ich habe es bisher mit einer Schleife gemacht, aber vielleicht ist es korrekter, es irgendwie mit iBarShift zu machen? Vielleicht ist es auf eine ganz andere Art und Weise besser?

Für einen problemlosen Übergang zu mql5 in der Zukunft wäre es besser, Funktionen zu verwenden, die in beiden Sprachen verwendet werden. Für die Suche nach der Anzahl der Takte ist es besser, die Funktion

int  Bars(
   string           symbol_name,     // имя символа
   ENUM_TIMEFRAMES  timeframe,       // период
   datetime         start_time,      // с какой даты
   datetime         stop_time        // по какую дату
   );

Eigentlich wird iBarShift() die Aufgabe besser erledigen als Cycle.

Bars - Доступ к таймсериям и индикаторам - Справочник MQL4
Bars - Доступ к таймсериям и индикаторам - Справочник MQL4
  • docs.mql4.com
Bars - Доступ к таймсериям и индикаторам - Справочник MQL4
 
Alexey Viktorov:

Für einen problemlosen Übergang zu mql5 in der Zukunft ist es besser, die in beiden Sprachen verwendeten Funktionen zu verwenden. Für die Suche nach der Anzahl der Takte ist es besser, wenn Sie

Die Funktion iBarShift() kann diese Aufgabe besser bewältigen als Cycle.

Ja, aber das Problem besteht darin, die nächstliegende 01.00 Uhr zu finden. Wie werden Sie es finden?
int iBarShift(
string symbol,// Symbol
intZeitrahmen, // Zeitraum
datetimeZeit, // Zeit ?????????
bool exact=false // Modus
);
 
Nauris Zukas:
Ja, aber das Problem ist, die nächste 01.00 Uhr zu finden. Wie kann man das feststellen?
int iBarShift(
string symbol,// Symbol
intZeitrahmen, // Zeitraum
datetimeZeit, // Zeit ?????????
bool exact=false // Modus
);

Forum für Handel, automatisierte Handelssysteme und Strategietests

Alle Fragen für Anfänger auf MQL4, Hilfe und Diskussion über Algorithmen und Codes

Alexey Viktorov, 2017.07.27 13:54

Wenn Sie in Zukunft problemlos auf mql5 umsteigen wollen, wäre es besser, Funktionen zu verwenden, die in beiden Sprachen verwendet werden. Für die Suche nach der Anzahl der Takte ist es besser, die Funktion

int  Bars(
   string           symbol_name,     // имя символа
   ENUM_TIMEFRAMES  timeframe,       // период
   datetime         start_time,      // с какой даты
   datetime         stop_time        // по какую дату
   );

Im Prinzip kann iBarShift() diese Aufgabe besser bewältigen als ein Zyklus.

Gibt die Anzahl der Takte zwischen der angegebenen Zeit und der aktuellen Zeit zurück, wenn die aktuelle Taktzeit als stop_time angegeben ist.

Das einzige Problem ist, dass ich meine Speicherzelle nie mit so unnötigen Dingen wie der Frage fülle, wie hoch der erhaltene Wert sein wird, wenn ein Balken die angegebene Zeit hat oder um 1 kleiner ist. Ich kontrolliere einfach jedes Mal.

 
Alexey Viktorov:

Gibt die Anzahl der Takte zwischen der angegebenen Zeit und der aktuellen Zeit zurück, wenn die aktuelle Taktzeit als stop_time angegeben ist.

Das einzige Problem ist, ich nie verstopfen meine Speicherzelle mit unnötigen Sachen wie, was der Wert gleich sein wird, einschließlich der Bar mit der angegebenen Zeit oder weniger von 1. Ich kontrolliere einfach jedes Mal.

Das verstehe ich alles, aber versuchen Sie, sich in die Frage hineinzudenken. Wie finden Sie die angegebene Zeit - in meinem Fall müssen Sie die nächstgelegene 01.00 Uhr finden. Wie schreibt man das auf?
datetime start_time, // ab welchem Datum?

 
Nauris Zukas:

Das verstehe ich alles, aber versuchen Sie, sich in die Frage hineinzudenken. Wie finden Sie die angegebene Zeit - in meinem Fall müssen Sie die nächstgelegene 01.00 Uhr finden. Wie schreibt man das auf?
datetime start_time, // ab welchem Datum?

 datetime t=StringToTime("01:00");
 int b=Bars(_Symbol, PERIOD_M30, t, TimeCurrent());
Um die aktuelle Uhrzeit 17:08 zeigt sie 33 an. D.h. die Taktnummer mit der Zeit 01:00 wird 32 sein.