Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 113
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
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().
"possível perda de dados devido à conversão do tipo"
Como superar este aviso?
Aviso do compilador:
"possível perda de dados devido à conversão do tipo"
Como posso superar este aviso?
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
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, o compilador deu um erro: 'ExtMapBuffer' - identificador não declarado
É 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. 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.
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
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!
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