Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 113

 
Alexey Kozitsyn:

Há várias maneiras de obter os preços atuais:

1. Para qualquer símbolo: se você quiser obter preços atuais garantidos, ligue para SymbolInfoDouble() com os identificadores corretos antes de usá-los.

2. Para o símbolo atual, você também pode obter os preços atuais através das variáveis pré-definidas Bid and Ask. Eles podem ficar desatualizados, portanto, se OnTick() estiver funcionando, você deve atualizá-los com RefreshRates().

Obrigado!
 
Aviso do compilador:

"possível perda de dados devido à conversão do tipo"

Como superar este aviso?
string singleElement+=CharToString(StringGetCharacter(stringOfSymbols,i));
 
Maksym Mudrakov:
Aviso do compilador:

"possível perda de dados devido à conversão do tipo"

Como posso superar este aviso?
string singleElement+=CharToString(StringGetCharacter(stringOfSymbols,i));

Você precisa conhecer os tipos exatos de valores retornados pelas funções e usar conversão explícita. https://www.mql5.com/ru/docs/basis/types/casting

Документация по MQL5: Основы языка / Типы данных / Приведение типов
Документация по MQL5: Основы языка / Типы данных / Приведение типов
  • www.mql5.com
Основы языка / Типы данных / Приведение типов - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Artyom Trishkin:
Você não tem um modelo completo - você provavelmente não definiu os buffers indicadores no assistente, onde os dados calculados serão escritos.

Mas o princípio básico para a maioria dos indicadores é o seguinte:

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   if(rates_total<1) return(0);              // проверка достаточности данных для расчёта индикатора, если не достаточно - выходим
                                             // если для расчёта требуются некое количество баров слева от индекса цикла, ...
                                             // ... то проверять нужно это количество, а не 1
  
   //--- Действия для полного перерасчёта индикатора
   int limit=rates_total-prev_calculated;    // количество посчитанных уже баров
   if(limit>1) {                             // если количество больше 1, значит имеем новые данные, и нужно полностью пересчитать индикатор
      limit=rates_total-1;                   // задаём количество требуемых для расчёта баров равным количеству баров в истории,
                                             // если для расчёта требуются некое количество баров слева от индекса цикла, ...
                                             // ... то это количество тоже нужно вычесть из rates_total чтобы не выйти за пределы массива
                                             // так же тут нужно при необходимости произвести инициализацию буферов индикатора
      }
  
   //--- Основной цикл индикатора
   for(int i=limit; i>=0; i--) {
      // тут выполняем нужные расчёты и записываем их результат в нужные буферы, например:
      ExtMapBuffer[i]=(open[i]+high[i]+low[i]+close[i])/4.0;   // Выведем на график среднюю цену каждой свечи (OHLC/4.0)
      }
  
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
Artem, há um erro no compilador: 'ExtMapBuffer' - identificador não declarado

 
Andrey Koldorkin:
Artem, o compilador deu um erro: 'ExtMapBuffer' - identificador não declarado

É claro que sim. Eu o escrevi do nada. E antes de escrever o exemplo, eu lhe disse que nenhuma variável externa é especificada no modelo (não é necessária) e nenhum buffer para exibir os cálculos dos indicadores é especificado. É claro que há alguns indicadores que não utilizam a saída do buffer, mas não no seu caso.

É por isso que eu coloquei este tampão. Você deve recriar o modelo, mas deve ser mais responsável por esta simples ação e se perguntar - "Mas o que o feiticeiro me pergunta e o que ele precisa?
 
Olá! Há cerca de quatro meses comecei a estudar MQL4 usando o tutorial de Kovalev. Eu também tenho vídeos. Estou assistindo o vídeo, estudando o tutorial, copiando códigos que são usados lá. entendo que este é um assunto muito sério e que leva tempo para dominá-lo. mas sei exatamente que preciso praticar. preciso de tarefas simples e para escrevê-las e alguém verificá-las então poderei ir além! outro problema é que o livro e os vídeos foram atualizados, eu até repito o código do livro, compenso-o, recebo erros, pareço uma ovelha no novo gate...... que é a tristeza!
 
FOTOGRAF14:
Olá! Há cerca de quatro meses comecei a estudar MQL4 usando o tutorial de Kovalev. Eu também tenho vídeos. Assisto ao vídeo e estudo o tutorial, repito os códigos que são usados lá. entendo que este é um assunto muito sério e que leva tempo para dominá-lo. mas sei exatamente que preciso praticar. preciso de tarefas simples e para escrevê-las e alguém verificá-las então poderei ir além! outro problema é que o livro e os vídeos foram atualizados, eu até repito o código do livro, compenso-o, recebo erros, pareço uma ovelha no novo gate...... que é a tristeza!

Leia a documentação por uma vez. O livro didático está desatualizado em alguns lugares. A documentação ajudará com isso. Quanto às tarefas - resolver as mesmas tarefas descritas no livro didático. Leia o problema, olhe para a solução, repita. E assim por diante até que você se apodere dele. É melhor levar as tarefas o mais próximo possível daqueles que você quer aprender a implementar você mesmo.

Tudo, é claro, IMHO.

 
Sergey Gritsay:
Para mim, isso é uma boa compilação.

Ok, você quer explicar por que tais objetos não são diferenciados?

Se você mudar o tipo de objeto, as propriedades irão colapsar com 2 etiquetas ou linhas de tendência

 
Alexey Kozitsyn:

Leia a documentação por uma vez. O livro didático está desatualizado em alguns lugares. A documentação ajudará com isso. Quanto às tarefas - resolver as mesmas tarefas descritas no livro didático. Leia o problema, olhe para a solução, repita. E assim por diante até que você se apodere dele. É melhor levar as tarefas o mais próximo possível daqueles que você quer aprender a implementar você mesmo.

Tudo, é claro, IMHO.

Obrigado!

 
trader781:

Ok, você quer explicar por que tais objetos não são diferenciados?

Se você mudar o tipo de objeto, as propriedades irão colapsar com 2 etiquetas ou linhas de tendência

R Quais objetos não são diferenciados? e o que você quer dizer com a substituição do tipo de objeto, as propriedades vão colapsar?