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 566

 

Olá a todos!

Por favor, informe sobre uma possível solução para o problema.

Há 2 ou 3 ou mais indicadores funcionando. Cada um deles tem uma linha: Comentário(" Indicador 1 está rodando"); o próximo Comentário(" Indicador 2 está rodando"); etc., respectivamente.

Como, talvez com a tradução "inteligente" do carrinho, obter uma visão do canto superior esquerdo da tela (a inscrição seguinte não substitui a anterior em um período de pelo menos 1 carrapato):

O indicador 1 está funcionando.

O indicador 2 está funcionando.

O LED 3 está funcionando.

etc.

 

Como eu declaro meu critério de otimização em 610, com base no meu antigo EA?

O Expert Advisor está funcionando na construção 610.

Por exemplo, na MQL5, o código é o seguinte:

double OnTester()
{
double prof=0.0;
prof=TesterStatistics(STAT_PROFIT);

  return(prof);
}

Se eu o colocar no Expert Advisor antes de começar, a coluna Custom não aparece.

E a segunda pergunta: os antigos EAs mostram uma mensagem amarela durante a compilação: a função deve retornar um valor.

Exemplo de linha.

if(Work==false){Alert("Критическая ошибка. Эксперт не работает.");return;}
 
#property copyright "Copyright 2014, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict

//--- параметры для записи данных в файл
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
string             InpFileName="";
int t=0;
int file_handle=-2;
double mass[];
int OnInit()
  {
   Comment("Start");
   InpFileName=StringConcatenate(WindowExpertName(),".csv");      // Имя файла  
 
   ResetLastError();
   file_handle=FileOpen(WindowExpertName()+"//"+InpFileName,FILE_READ|FILE_WRITE|FILE_CSV);   
   return(INIT_SUCCEEDED);
  }
void OnTick()
  {
   Comment(t);
   if(file_handle!=INVALID_HANDLE)
     {
      t++;
      ArrayResize(mass,t+1,10000);
      mass[t]=Ask;
      //--- запишем время сигналов и их значения в файл
      for(int i=0; i<ArraySize(mass); i++)
       FileWrite(file_handle,mass[t]);
      //--- закрываем файл
      FileClose(file_handle);
     }
   else
      PrintFormat("Не удалось открыть файл %s, Код ошибки = %d",InpFileName,GetLastError());
  }
//+------------------------------------------------------------------+

Não consigo entender como escrever para a próxima linha...

Estou tentando escrever cada citação em uma nova linha e não está funcionando ....

 

Estou testando um EA com um indicador personalizado. Algumas vezes as negociações são abertas de acordo com as condições, e outras vezes não está claro em que princípio. Eu começo a visualização, o indicador é desenhado como deve ser, mas os negócios nem sempre coincidem com o indicador. Tentei verificar as áreas problemáticas com os alertas, mas o indicador no Expert Advisor também mostra zeros. Não entendo qual é o problema, se o indicador é desenhado corretamente ao testar, onde estão os valores do indicador passados para a EA?

O código está no Expert Advisor:
double line=iCustom(NULL,0,"Ttest3",Period_MA_1,p2,p3,p4,1,1);

if (line >0){Opn_B=true;}
if (line <=0){Cls_B=true;}
 
VOLDEMAR:

Não consigo entender como escrever para a próxima linha...

Estou tentando escrever cada citação em uma nova linha e não está funcionando ....


FileSeek
 
Forexman77:

Estou testando um EA com um indicador personalizado. Algumas vezes as negociações são abertas de acordo com as condições, e outras vezes não está claro em que princípio. Eu começo a visualização, o indicador é desenhado como deve ser, mas os negócios nem sempre coincidem com o indicador. Tentei verificar as áreas problemáticas com os alertas, mas o indicador no Expert Advisor também mostra zeros. Não entendo qual é o problema, se o indicador for desenhado corretamente durante o teste, onde estão os valores do indicador passados para o Expert Advisor?

O código está no Expert Advisor:

talvez o problema esteja na EA?
 
Vladon:

talvez o problema seja com o conselheiro?
Sinceramente, eu não me conheço. Executo um único indicador de teste visual acima de zero, em uma porcentagem de sete, um comércio abre, no restante não abre.
 

Ocorreu um erro que eu não entendo:

'li_cnt' - undeclared identifier

na fila:

    return (li_cnt);

esta linha está na função:

// 1.9 Инициализация рабочего массива. ====================================================================================================
int fInit_ArrayINT (int& fia_INT[],                                              // Инициализируемый массив
                    string fs_List,                                              // Инициализируемые значения в строке
                    int fi_Range,                                                // Размер массива
                    double fd_Factor = 1.0,                                      // множитель
                    string fs_NameArray = "",                                    // имя возвращаемого массива
                    string fs_Delimiter = ",")                                   // Разделитель значений в строке
{
//----
    //---- Ищем в строке разделитель - признак наличия в строке > 1 параметра
    if (StringFind (fs_List, fs_Delimiter) == -1) return (1);
    else
    {
        string lsa_TMP[];
        int li_cnt = fGet_StrArrayFromLine (fs_List, lsa_TMP, ",");
  
        if (fi_Range > 0)
        {
            if (li_cnt != fi_Range)
            {
                Print (fs_NameArray, ": не соотвествие в размерности массива !!!");
                li_cnt = fi_Range;
            }
        }
        fCreat_StrToInt (lsa_TMP, fia_INT, li_cnt, fd_Factor, fs_NameArray);
    }
//----
    return (li_cnt);
}
A variável li_cnt é declarada como vista. O compilador jura que não está declarado. O que isso significa?
 
hoz:

Ocorreu um erro que eu não entendo:

na fila:

esta linha está na função:

A variável li_cnt é declarada como vista. O compilador jura que não está declarado. O que isso significa?


Porque sua variável é declarada no interior, caso contrário
 
hoz:

Ocorreu um erro que eu não entendo:

na fila:

esta linha está na função:

A variável li_cnt é declarada como vista. O compilador jura que não está declarado. O que isso significa?

// 1.9 Инициализация рабочего массива. ====================================================================================================
int fInit_ArrayINT (int& fia_INT[],                                              // Инициализируемый массив
                    string fs_List,                                              // Инициализируемые значения в строке
                    int fi_Range,                                                // Размер массива
                    double fd_Factor = 1.0,                                      // множитель
                    string fs_NameArray = "",                                    // имя возвращаемого массива
                    string fs_Delimiter = ",")                                   // Разделитель значений в строке
{
//----
int li_cnt=0;
    //---- Ищем в строке разделитель - признак наличия в строке > 1 параметра
    if (StringFind (fs_List, fs_Delimiter) == -1) return (1);
    else
    {
        string lsa_TMP[];
        li_cnt = fGet_StrArrayFromLine (fs_List, lsa_TMP, ",");
  
        if (fi_Range > 0)
        {
            if (li_cnt != fi_Range)
            {
                Print (fs_NameArray, ": не соотвествие в размерности массива !!!");
                li_cnt = fi_Range;
            }
        }
        fCreat_StrToInt (lsa_TMP, fia_INT, li_cnt, fd_Factor, fs_NameArray);
    }
//----
    return (li_cnt);
}

Razão: