Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 194

 

Hallo, könnten Sie mir bitte sagen, wie ich das Diagramm programmgesteuert zum gewünschten Datum "blättern" kann? Vielleicht gibt es ein solches Skript, mit dem Sie das gewünschte Datum einstellen können und das Diagramm sofort zu diesem Datum "gescrollt" wird?

 
AndEv:

Hallo, könnten Sie mir bitte sagen, wie ich das Diagramm programmgesteuert zum gewünschten Datum "blättern" kann? Vielleicht gibt es ein solches Skript, bei dem Sie das gewünschte Datum eingeben können und das Diagramm sofort zu diesem Datum "gescrollt" wird?


Drücken Sie die Leertaste und geben Sie das gewünschte Datum ein.

Wenn nichts hilft, lesen Sie die Dokumentation.

 
tara:


- lesen Sie die Dokumentation.

Lesen Sie die Frage genau: Wie kann man den Stundenplan programmatisch zum richtigen Datum "blättern"?
 
sergeev:

Nein, wir verwenden diese Art von g nicht.

Oh, toller Moderator, droht mit Verbot, wirft es allen vor, die es nicht verdient haben, alles über g nicht zu wissen. Bitte haben Sie Erbarmen mit dem Neuling und teilen Sie uns Ihr unschätzbares Gnom mit, auf das Sie sich in * beziehen. Wenn SieAufträge in *.mq4ändern wollen, müssen Sie dies auf Ihre eigene Weise tun.

 
digits:

Oh, toller Moderator, droht mit Verbot, wirft es allen vor, die es nicht verdient haben, alles über g nicht zu wissen. Bitte haben Sie Erbarmen mit dem Neuling und teilen Sie uns Ihr unschätzbares Gnom mit, auf das Sie sich in * beziehen. mq4, um Aufträge zu ändern.


Ein großer Wunsch, Herrn Z (ich bitte um Verzeihung, Herr Ziffern) in die Verbannung zu schicken, und zwar für eine lange Zeit
 
AndEv:
Lesen Sie die Frage aufmerksam: Wie kann man das Diagramm programmgesteuert zum gewünschten Datum "rollen"?

programmgesteuert die Eingabetaste auf dem Diagramm drücken

und senden Sie den Text mit dem Datum (und sogar der Währung) an das Fenster, das programmgesteuert erscheint

und drücken Sie dann ebenfalls sanft Enter

-----

Versuchen Sie, alles zuerst selbst in der Tabelle zu machen und dann Ihre Bewegungen programmatisch zu wiederholen.

 
AndEv:
Lesen Sie die Frage genau: Wie können Sie den Stundenplan programmatisch bis zum richtigen Datum "durchblättern"?
Bibliothek. Dafür ist alles da. Abschnitte 4.3 und 4.6.
 

Es gibt eine Header-Datei hoz_Base@Include.mqh für die Bibliothek hoz_Base@Library.ex4. DieVariable bi_Errrwird in der Header-Datei hoz_Base@Include.mqh deklariert .

In der Bibliothek hoz_Base@Library.ex4 gibt es eine INIT-Funktion :

void fInitBase (string fs_SymbolList,
                string fs_MagicList,
                string fs_Delimiter = ",")
{
   bs_ExpertName = StringConcatenate (WindowExpertName(), ":  ", fGet_NameTF (Period()), "_", Symbol());
   bs_SymbolList = fs_SymbolList;
   bs_MagicList = fs_MagicList;
   bs_Delimiter = fs_Delimiter;
   bb_RealTrade = (!IsTesting() && !IsOptimization());
   bb_VirtualTrade = (IsOptimization() || (IsTesting() && !IsVisualMode()));
   if (bd_SymPoint == 0.0)
       {bd_SymPoint = fGet_Point(Symbol());}
   fGet_MarketInfo (Symbol(), -1);
   bd_MAXLOT = MarketInfo(Symbol(), MODE_MAXLOT);
   bd_LOTSTEP = MarketInfo(Symbol(), MODE_LOTSTEP);
   bi_LotPrecision = fLotPrecision ();
   bd_MINLOT = MarketInfo(Symbol(), MODE_MINLOT);
   InitializeArray_STR (bsa_Comment, "");
    //---- Определяем индекс "ошибок" в массиве комментариев (gsa_Comment)
   bi_IndERR = ArraySize (bsa_Comment) - 1;
   bi_Err = GetLastError();
   //---- Контролируем возможные ошибки
   fPrint (StringConcatenate ("fInitBase() => ", fErrorToString (bi_Err)));

   return;
}

Hier ist die Zeile, an der ich interessiert bin:

 fPrint (StringConcatenate ("fInitBase() => ", fErrorToString (bi_Err)));

Wenn es keine Fehler gibt, sollte der Ausdruck so aussehen:

13:46:11 2013.08.15 00:00  hoz_LoggingToAnywhere@library EURUSD.GI,M5: Внимание! fInitTradingFunc() => Ошибка № -1 

Dies wird durch 2 Bibliotheksfunktionen von Drittanbietern realisiert:

// 1.3 Формируем строки из № ошибки и её описания. ========================================================================================
string fErrorToString (int fi_Error)
{
    fi_Error = bi_Err;
    
    return (StringConcatenate ("Ошибка № ", bi_Err, " :: ", fErrorDescription (bi_Err)));
}

// 1.4 Функция преобразует код последней ошибки в текстовую строку, содержащую описание данной ошибки. ====================================
string fErrorDescription (int fi_Error)
{
   string ls_Error = "";

   switch (fi_Error)
   {
      // Коды ошибок, возвращаемые торговым сервером:
      case 0: ls_Error = "Нет ошибки";
      case 1: ls_Error = "Нет ошибки, но результат не известен";
      case 2: ls_Error = "Общая ошибка";
      case 3: ls_Error = "Неправильные параметры";
      case 4: ls_Error = "Торговый сервер занят";
      case 5: ls_Error = "Старая версия клиентского терминала";
      case 6: ls_Error = "Нет связи с торговым сервером";
      case 7: ls_Error = "Недостаточно прав";
      case 8: ls_Error = "Слишком частые запросы";
      case 9: ls_Error = "Недопустимая операция, нарушающая функционирование сервера";
      case 64: ls_Error = "Счёт заблокирован";
/*
Различный варианты возникающих
                                 ошибок
*/
      case 4202: ls_Error = "Объект не существует";
      case 4203: ls_Error = "Неизвестный тип объекта";
      case 4204: ls_Error = "Нет имени объекта";
      case 4205: ls_Error = "Ошибка координат объекта";
      case 4206: ls_Error = "Не найдено указанное подокно";
      case 4207: ls_Error = "Ошибка при работе с объектом";
   }

Die Frage ist folgende. Wenn die obige Funktion fErrorToString (int fi_Error) so verwendet wird, wie ich es oben beschrieben habe, wird alles korrekt ausgegeben. Aber wenn es auf folgende Weise verwendet wird:

string fErrorToString (int fi_Error)
{
    return (StringConcatenate ("Ошибка № ", fi_Error, " :: ", fErrorDescription (fi_Error)));
}

Anstelle von no error wird 0 ausgegeben. (Wie Fehler - kein Fehler). Zum Beispiel so:

13:46:11 2013.08.15 00:00  hoz_LoggingToAnywhere@library EURUSD.GI,M5: Внимание! fInitTradingFunc() => Ошибка № 0

Warum?

 
Zhunko:
Die Bibliothek. Alles ist zu diesem Zweck da. Abschnitte 4.3 und 4.6.
Herzlichen Dank!
 
Mit welcher Funktion kann der Stand des Kontos am Monatsanfang ermittelt werden?