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

 
Kedrov #:

Olá a todos!

Por favor, ajude!

O indicador comum_sr mostra o máximo/mínimo de ontem apenas hoje, no período atual. Ou seja, estes níveis, os limites não são mostrados no dia de ontem - somente hoje. E isto é correto!

E o mesmo indicador, mostrando os níveis máximos/máximos da semana anterior, também os atrai na semana anterior. Apesar de, logicamente, só deve ser sorteada na semana atual.

Tentei representar estas idéias na captura de tela. Se eu tiver alguma pergunta, eu lhe darei as respostas.

Você será capaz de corrigi-lo de alguma forma?

Muito obrigado pela ajuda!

Arquivos anexados:
common_sr.mq4  39 kb
 

Alexander Avksentyev #:

Suponhamos que a partir de agora, a partir de agora, a imagem será mais clara.


double price=NormalizeDouble(Bid - sl_lev,Digits);
if(price < MarketInfo(Symbol(),MODE_STOPLEVEL) * Point) return;
 
Tretyakov Rostyslav #:

Rostislav!

Muito obrigado por sua preocupação!

E para o resultado!

Muito obrigado!

Boa sorte!

 
Tretyakov Rostyslav #:

Rostislav!

E esta "corrente" pode ser permanentemente inserida no código mq4. Não definir o TF necessário a cada vez. Eu não tive sucesso.

 
Kedrov #:

Rostislav!

E esta "corrente" pode ser permanentemente inserida no código mq4. Não definir o TF necessário a cada vez. Não funcionou para mim.

Esta linha no início do código

input ENUM_TIMEFRAMES Precision=PERIOD_D1; // Precision   PERIOD_H1

Substitui-la por


input ENUM_TIMEFRAMES Precision=PERIOD_CURRENT; // Precision   PERIOD_H1
 
Tretyakov Rostyslav #:

Esta linha no início do código

substitui-la por...


Muito obrigado, Rostislav!

Tudo funcionou!

Boa sorte!

 

Conte-me também como MakarFH se tornou Rostislav.

Onde existe alguma consonância... qualquer coisa?

 
Maxim Kuznetsov #:

Conte-me também como MakarFH se tornou Rostislav.

Onde há sequer uma consonância... algo... ali.

descompilar)

 

Olá a todos. Pode me aconselhar, por favor?

Estou tentando calcular um cruzamento em um MACD padrão de uma linha de sinal e um histograma. A idéia é a seguinte: em cada nova barra pegamos as duas velas anteriores e obtemos os valores indicadores em cada uma delas. Se o valor MACD na segunda vela for maior que o valor do sinal e o valor MACD na primeira vela já estiver abaixo do sinal e todos os valores estiverem acima de zero, isso significa que há um cruzamento para cima e vice-versa.

Mas, no momento de obter o valor, ele se torna de alguma forma enorme. E apenas uma - a linha de sinal da segunda vela. Pode ser 8 até que grau, 4,5, 7, etc. Quando a próxima barra aparecer, o valor da linha de sinal da segunda barra da nova barra já pode ser normal. Todos os outros se revelam corretos. E na janela de dados, o valor também é correto. Não consigo entender por que. O que eu estou fazendo de errado?

PrevMACD = iMACD(_Symbol,_Period,12,26,9,PRICE_CLOSE,MODE_MAIN,1);
PrevSignalMACD = iMACD(_Symbol,_Period,12,26,9,PRICE_CLOSE,MODE_SIGNAL,1);
CtrlMACD = iMACD(_Symbol,_Period,12,26,9,PRICE_CLOSE,MODE_MAIN,2);
CtrlSignalMACD = iMACD(_Symbol,_Period,12,26,9,PRICE_CLOSE,MODE_SIGNAL,2);

Сomment(CtrlMACD+" "+CtrlSignalMACD+" "+PrevMACD+" "+PrevSignalMACD);

Tenho a sensação de que se trata de um duplo variável. Porque o valor na janela de dados é 0,000081, mas acaba 8,1....., a mesma coisa que notei com outro valor - na janela de dados 0,000071, mas na variável 7,1..... Mas todas elas são definidas como variáveis duplas.

Arquivos anexados:
 
Maksim Efimov MACD padrão de uma linha de sinal e um histograma. A idéia é a seguinte: em cada nova barra pegamos as duas velas anteriores e obtemos os valores indicadores em cada uma delas. Se o valor MACD na segunda vela for maior que o valor do sinal e o valor MACD na primeira vela já estiver abaixo do sinal e todos os valores estiverem acima de zero, isso significa que há um cruzamento para cima e vice-versa.

Mas, no momento de obter o valor, ele se torna de alguma forma enorme. E apenas uma - a linha de sinal da segunda vela. Pode ser 8 até que grau, 4,5, 7, etc. Quando a próxima barra aparecer, o valor da linha de sinal da segunda barra da nova barra já pode ser normal. Todos os outros se revelam corretos. E na janela de dados, o valor também é correto. Não consigo entender por que. O que eu estou fazendo de errado?

Tenho a sensação de que se trata de um duplo variável. Porque o valor na janela de dados é 0,000081, mas acaba 8,1....., a mesma coisa que notei com outro valor - na janela de dados 0,000071, mas na variável 7,1..... Mas todas elas são definidas como variáveis duplas.

Não há 8 no comentário, há uma continuação.

Сomment(DoubleToString(CtrlMACD)+" "+DoubleToString(CtrlSignalMACD)+" "+DoubleToString(PrevMACD)+" "+DoubleToString(PrevSignalMACD));
Razão: