Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 904

 
Könnten Sie mir bitte sagen, woran der Fehler beim Debuggen mit echten Daten liegen könnte: "Das angegebene Symbol ist nicht ausgewählt".
Ich danke Ihnen!
MT5
 
IlyaDemidenko:
Bitte teilen Sie mir mit, was der Grund für den Debugging-Fehler mit realen Daten sein kann: "specified symbol is not selected".
Ich danke Ihnen!
MT5

Gehen Sie vor dem Testen (bevor Sie einen Test mit dem MetaEditor durchführen) zu den MetaEditor-Einstellungen und sehen Sie sich die Registerkarte "Debug" an. Auf dieser Registerkarte sehen Sie das Symbol, das für die Prüfung verwendet werden soll:

Öffnen Sie nun das Terminal und überprüfen Sie, ob das ausgewählte Symbol im Fenster "Market Watch" angezeigt wird.


 
Vladimir Karputov:

Gehen Sie vor dem Testen (bevor Sie einen Test mit dem MetaEditor durchführen) zu den MetaEditor-Einstellungen und sehen Sie sich die Registerkarte "Debug" an. Auf dieser Registerkarte sehen Sie das Symbol, das für die Prüfung verwendet werden soll:

Öffnen Sie nun das Terminal und prüfen Sie, ob das ausgewählte Symbol im Fenster "Market Watch" angezeigt wird?

Herzlichen Dank!)
Prozess gestartet ))

 
Hallo. Der Preis um 17:30 Uhr am letzten Tag. Wie kann ich das herausfinden? Das heißt, der Schlusskurs einer beliebigen Bar um 17:30 Uhr.
 
bij:
Hallo. Der Preis um 17:30 Uhr am letzten Tag. Woher weiß man das? Das heißt, der Schlusskurs einer beliebigen Bar um 17:30 Uhr.

CopyOpen lesen (zweite Form des Aufrufs).

 
Vladimir Karputov:

CopyOpen lesen (zweite Form des Aufrufs).

Danke, ich habe nicht verstanden, wie man die Zeit einstellen kann, außer time=D'2018.07.26 17:30';

        time=???;      //Как сюда передать 17:30 прошлого дня?
        int barIndex = iBarShift(NULL,PERIOD_M1, time);        // Определение индекса бара, соответствующего времени time
        double openPrice = CopyOpen(NULL, PERIOD_M1, barIndex);// Определение Bid цены открытия бара barIndex
 
bij:

Danke, ich wusste nicht, wie man die Uhrzeit einstellt.

Ich habe gerade ein schnelles Skript erstellt:

//+------------------------------------------------------------------+
//|                                                  TestOpenDay.mq5 |
//|                        Copyright 2018, MetaQuotes Software Corp. |
//|                             https://mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://mql5.com/ru/users/artmedia70"
#property version   "1.00"
#property script_show_inputs
//--- enums
enum ENUM_DAY
  {
   DAY_CURRENT,            // Сегодня
   DAY_YESTERDAY,          // Вчера
   DAY_BEFORE_YESTERDAY    // Позавчера
  };
//--- input parameters
input ENUM_DAY InpDay      =  DAY_YESTERDAY; // День:
input uint     InpHours    =  17;            // Часы
input uint     InpMinutes  =  30;            // Минуты
//--- global variables
datetime day;
int      day_shift;
int      hours;
int      minutes;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   hours=int(InpHours> 23 ? 23 : InpHours);
   minutes=int(InpMinutes>59 ? 59 : InpMinutes);
   day_shift=(int)InpDay;
   day=iTime(NULL,PERIOD_D1,day_shift);
   Print("Сегодня: ",TimeToString(TimeCurrent(),TIME_DATE),", день: ",InputDayToString(),", дата/время: ",TimeToString(GetTime(day)));
//---
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
datetime GetTime(const datetime time)
  {
   MqlDateTime tm;
   if(!TimeToStruct(time,tm))
      return 0;
   tm.hour=hours;
   tm.min=minutes;   
   return StructToTime(tm);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
string InputDayToString(void)
  {
   return(InpDay==DAY_CURRENT? "Сегодня" : InpDay==DAY_YESTERDAY ? "Вчера" : "Позавчера");
  }
//+------------------------------------------------------------------+

Das Protokoll zeigt den ausgewählten Tag, sein Datum und die Uhrzeit nach dem Start an.

 
Artyom Trishkin:

Ich habe gerade ein schnelles Skript erstellt:

Das Protokoll zeigt den ausgewählten Tag, sein Datum und die Uhrzeit nach dem Start an.

Danke, ich möchte eine Linie in den Indikator in der Geschichte, um den Preis um 17:30 Uhr, jeden Tag. Wie kann ich jeden Tag einstellen? Nicht jedes Datum zu schreiben, sondern nur die Uhrzeit 17:30

So lege ich die Linie auf den Schlusskurs des Tages, jeden Tag.

 if(!TrendCreate(0,"close"+time[i],0,iTime(NULL,PERIOD_D1,i+1),iClose(NULL,PERIOD_D1,i+1),iTime(NULL,PERIOD_D1,i),0,clrLime,STYLE_SOLID,2,false,false,false,false,0))
        {
         continue;
        }
 
bij:

Danke, ich möchte eine Linie in den Indikator in der Geschichte, um den Preis um 17:30 Uhr, jeden Tag. Wie kann ich jeden Tag einstellen?

So stelle ich ihn jeden Tag auf den Schlusskurs des Tages ein.

Wenn das vergangene Datum (Jahr, Monat, Tag) nicht mit dem aktuellen Datum übereinstimmt und die Stunde und Minute mit dem eingestellten Datum übereinstimmen, wird ein Strich eingefügt.

Oder: Wenn das vorherige Datum (Jahr, Monat, Tag) gleich dem aktuellen Datum ist oder die Stunde und die Minute nicht mit den eingestellten Werten übereinstimmen, dann fahren Sie fort;

In jedem Fall kommt es zu Auslassungen - nicht jeder Balken des gewählten Zeitrahmens hat die eingestellte Zeit.

 
Artyom Trishkin:

Wenn das vergangene Datum (Jahr, Monat, Tag) nicht mit dem aktuellen Datum übereinstimmt und Stunde und Minute mit dem angegebenen Datum übereinstimmen...

if(iTime(NULL,PERIOD_D1,i+1)!=iTime(NULL,PERIOD_D1,i)&& hier wie zu schreiben? )