[Arquivo!] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por ela. Não poderia ir a lugar algum sem você - 2. - página 79

 
albion:
Peço a todos os especialistas que analisem o tópico https://forum.mql4.com/ru/38745#429784.

Por favor, comece a escrever seu próprio código e discuta qualquer coisa que você não entenda neste tópico, e não se esqueça de mostrar a parte do código onde você encontra dificuldades
 
drknn:

Alguma idéia?
 
NameLess:


point_low=NormalizeDouble(iBands(NULL,0,50,2,0,PRICE_CLOSE,MODE_LOWER,0),Digitos);

wot)


E o que os dígitos são iguais? Crie um novo roteiro no qual você escreva apenas uma linha:

Print("Дигитс данной валютной пары нормализует до ",Digits," знаков после запятой");
 
drknn:


O que os dígitos são iguais? Crie um novo roteiro no qual você escreva apenas uma linha:


já verificado, está correto (é uma constante terminal.
 
drknn:


O que os dígitos são iguais? Crie um novo roteiro no qual você escreva apenas uma linha:


Estou tentando encontrar o código fonte do iMA, talvez a conversão não esteja funcionando corretamente, porque todos os cálculos vêm do ima, eu não tenho mais idéias((
 
NameLess:

já verificado, está correto (é uma constante terminal.

Você não respondeu à minha pergunta. Quais são os dígitos deste par de moedas? E a propósito, que tipo de par de moedas é e quantas casas decimais ele tem e quantos pips por tick ele se move?
 
drknn:

Você não respondeu à minha pergunta. O que os dígitos são iguais para este par de moedas. E, a propósito, que tipo de par de moedas é?

Os dígitos são 5, é uma constante e não pode levar nenhum outro valor. eurobucks
 
NameLess:

dígitos iguais a 5, esta constante não pode ter um valor diferente. par eurobucks


Tente de outra forma. Escreva o seguinte na primeira linha da função Start:

string SMB=Symbol();
int DGS=MarketInfo(SMB,MODE_DIGITS);
Print("Дигитс = ",Digits,"  DGS = ",DGS);
string Val="";
Val = iBands(NULL,0,50,2,0,PRICE_CLOSE,MODE_LOWER,0);
double point_low=iBands(NULL,0,50,2,0,PRICE_CLOSE,MODE_LOWER,0);
Print("Val = ",Val,"  point_low до нормализации = ",point_low);
point_low = NormalizeDouble(point_low,5);
Print("point_low после нормализации = ",point_low);
 

Talvez o valor ali termine com um zero e este último zero seja simplesmente descartado no processo de normalização? Descartado porque a entrada 0,1 é equivalente a 0,10 e zero é melhor descartado?

P.S.

Não ter acesso ao terminal e àquelas citações que você usa, é problemático entender o que é o que - só resta uma coisa - experimentos.

 
drknn:


Tente de outra forma. Escreva o seguinte na primeira linha da função Start


Obrigado! Vou tentar!