Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 194

 

Bonjour, pourriez-vous me dire comment faire "défiler" le graphique jusqu'à la date souhaitée de manière programmatique ? Peut-être existe-t-il un script permettant de définir la date souhaitée et le graphique sera instantanément "déroulé" jusqu'à cette date ?

 
AndEv:

Bonjour, pourriez-vous me dire comment faire "défiler" le graphique jusqu'à la date souhaitée de manière programmatique ? Peut-être existe-t-il un script permettant de définir la date souhaitée et de faire "défiler" instantanément le graphique jusqu'à cette date ?


Appuyez sur la barre d'espacement et saisissez la date souhaitée.

Si rien ne vous aide, lisez la documentation.

 
tara:


- lisez la documentation.

Lisez attentivement la question : comment faire "défiler" l'horaire jusqu'à la bonne date de manière programmatique?
 
sergeev:

Non, nous n'utilisons pas ce genre de g.

Oh grand Modérateur, menacer de bannissement, le lancer à tous ceux qui n'en sont pas dignes, tout ça à cause de g qui ne sait pas. S'il vous plaît, ayez pitié du débutant et partagez votre précieux gnom auquel vous faites référence dans *. Si vousvoulez modifier des ordres dans *.mq4, vous devrez le faire à votre manière.

 
digits:

Oh grand Modérateur, menacer de bannissement, le lancer à tous ceux qui n'en sont pas dignes, tout ça à cause de g qui ne sait pas. S'il vous plaît, ayez pitié du débutant et partagez votre précieux gnom auquel vous faites référence dans *. mq4pour modifier les ordres.


Un grand désir d'envoyer M. Z (je vous demande pardon M. digits) au ban, et depuis longtemps.
 
AndEv:
Lisez attentivement la question : comment faire "défiler" le graphique jusqu'à la date souhaitée de manière programmatique?

appuyer sur le bouton Enter du graphique de manière programmatique

et envoyer le texte avec la date (et même la devise) à la fenêtre qui apparaît de façon programmatique

et appuyez ensuite doucement sur Entrée

-----

Essayez de tout faire vous-même d'abord dans le tableau, puis répétez vos mouvements de manière programmatique .

 
AndEv:
Lisez attentivement la question : comment faire "défiler" de manière programmatique l'horaire à la bonne date ?
Bibliothèque. Tout est là pour ça. Sections 4.3 et 4.6.
 

Il existe un fichier d'en-tête hoz_Base@Include.mqh pour la bibliothèque hoz_Base@Library.ex4. Lavariable bi_Errrest déclarée dans le fichier d'en-tête hoz_Base@Include.mqh.

Il existe une fonction INIT dans la bibliothèque hoz_Base@Library.ex4 :

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;
}

Voici la ligne qui m'intéresse :

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

S'il n'y a pas d'erreur, il devrait s'imprimer comme ceci :

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

Cette fonction est mise en œuvre à l'aide de deux fonctions de bibliothèques tierces :

// 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 = "Ошибка при работе с объектом";
   }

La question est la suivante. Si la fonction fErrorToString (int fi_Error) est utilisée de la manière que j'ai indiquée ci-dessus, tout est imprimé correctement. Mais s'il est utilisé de la manière suivante :

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

Au lieu de l'absence d'erreur, il sort 0. (Comme une erreur - pas d'erreur). Comme ça :

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

Pourquoi ?

 
Zhunko:
La bibliothèque. Tout est là dans ce but. Sections 4.3 et 4.6.
Merci beaucoup !
 
Quelle fonction peut être utilisée pour connaître l'état du compte au début du mois ?