Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 194

 

Olá, você poderia me dizer como "rolar" a tabela até a data desejada programmaticamente? Talvez exista tal roteiro onde você possa definir a data desejada e o gráfico será instantaneamente "rolado" para essa data?

 
AndEv:

Olá, você poderia me dizer como "rolar" a tabela até a data desejada programmaticamente? Talvez exista tal roteiro, onde você possa definir a data desejada e o gráfico será instantaneamente "rolado" para essa data?


Pressione a barra de espaço e digite a data desejada.

Se nada ajudar, leia a documentação.

 
tara:


- leia a documentação.

Leia atentamente a pergunta: como você "rola" o horário para a data certa programmaticamente?
 
sergeev:

Não, nós não usamos esse tipo de g.

Oh grande Moderador, ameaçando a proibição, atirando-a a todos os indignos, tudo sobre o não saber. Por favor, tenha piedade do novato e compartilhe seu inestimável gnom a que você se refere em *. Se vocêquiser modificar os pedidos em *.mq4, você terá que fazê-lo de sua própria maneira especial.

 
digits:

Oh grande Moderador, ameaçador de proibição, atirando-a de forma indigna, tudo sobre o não saber. Por favor, tenha piedade do novato e compartilhe seu inestimável gnom a que você se refere em *. mq4para modificar os pedidos.


Um grande desejo de enviar o Sr. Z (Peço desculpas, Sr. Digitos) para a proibição, e por muito tempo
 
AndEv:
Leia atentamente a pergunta: como "rolar" a tabela até a data desejada programadamente?

pressione o botão Enter na tabela programática

e enviar o texto com a data (e até mesmo a moeda) para a janela que aparece programática

e então pressione Enter suavemente também

-----

Tente fazer tudo você mesmo primeiro no gráfico. depois repita seus movimentos de forma programática

 
AndEv:
Leia atentamente a pergunta: como você programmaticamente "rola" o horário para a data certa?
Biblioteca. Está tudo aí para isto. Seções 4.3 e 4.6.
 

Há um arquivo de cabeçalho hoz_Base@Include.mqh para a biblioteca hoz_Base@Library.ex4. Avariável bi_Errrré declarada no arquivo de cabeçalho hoz_Base@Include.mqh .

Há uma função do INIT na biblioteca 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;
}

Eis a linha em que estou interessado:

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

Quando não há erros, deve ser impresso assim:

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

Isto é implementado usando 2 funções de biblioteca de terceiros:

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

A questão é esta. Se a função fErrorToString (int fi_Error) acima for usada da forma como eu dei acima, tudo será impresso corretamente. Mas se for utilizado da seguinte forma:

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

Em vez de nenhum erro, ele produz 0. (Como erro - sem erro). Assim:

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

Por quê?

 
Zhunko:
A biblioteca. Tudo está aí para este fim. Seções 4.3 e 4.6.
Muito obrigado!
 
Qual função pode ser usada para saber o status da conta no início do mês?