[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 143

 
todem:

O que uma ordem seleta tem a ver com isso?

Pegamos os dados do indicador, as ordens não estão envolvidas aqui


Você usa OrderSymbol() -- Retorna o nome do instrumento financeiro para a ordem atualmente selecionada.
A ordem deve ser pré-selecionada usando a função OrderSelect().

Aqui está o seu código:

double CC1=0,CC2=0;
  if(OrderSymbol()=="EURUSD"){ CC1 = iCustom("EURUSD",60,"CC2",3,6,0,1); CC2 = iCustom("EURUSD",60,"CC2",3,6,1,1); }
  if(OrderSymbol()=="GBPUSD"){ CC1 = iCustom("GBPUSD",60,"CC2",3,6,0,1); CC2 = iCustom("GBPUSD",60,"CC2",3,6,2,1); }
  if(OrderSymbol()=="USDCHF"){ CC1 = iCustom("USDCHF",60,"CC2",3,6,0,1); CC2 = iCustom("USDCHF",60,"CC2",3,6,3,1); }
  if(OrderSymbol()=="USDJPY"){ CC1 = iCustom("USDJPY",60,"CC2",3,6,0,1); CC2 = iCustom("USDJPY",60,"CC2",3,6,4,1); }
  if(OrderSymbol()=="USDCAD"){ CC1 = iCustom("USDCAD",60,"CC2",3,6,0,1); CC2 = iCustom("USDCAD",60,"CC2",3,6,5,1); }
  if(OrderSymbol()=="AUDUSD"){ CC1 = iCustom("AUDUSD",60,"CC2",3,6,0,1); CC2 = iCustom("AUDUSD",60,"CC2",3,6,6,1); }
  if(OrderSymbol()=="NZDUSD"){ CC1 = iCustom("NZDUSD",60,"CC2",3,6,0,1); CC2 = iCustom("NZDUSD",60,"CC2",3,6,7,1); }
  if(OrderSymbol()=="EURGBP"){ CC1 = iCustom("EURGBP",60,"CC2",3,6,1,1); CC2 = iCustom("EURGBP",60,"CC2",3,6,2,1); }
  if(OrderSymbol()=="EURCHF"){ CC1 = iCustom("EURCHF",60,"CC2",3,6,1,1); CC2 = iCustom("EURCHF",60,"CC2",3,6,3,1); }
  if(OrderSymbol()=="EURJPY"){ CC1 = iCustom("EURJPY",60,"CC2",3,6,1,1); CC2 = iCustom("EURJPY",60,"CC2",3,6,4,1); }
aqui CC1, CC2 recebem valores correspondentes ao instrumento da ordem selecionada

se você citar o código inteiro, você poderia dizer com certeza qual é o problema em vez de adivinhar

 
100yan:

duplo MA13=iMA(NULL,..... etc.)
Então você quer primeiro calcular o valor da máscara, ou seja, algum número, e depois descobrir com que período ela foi calculada? Não, não funciona dessa maneira))
 
eddy:
Por que o MainBuffer[i] excede 100? Onde está o erro?
MathMax e MathMin devolvem o número da barra, não o extremo em si
 
abolk:


você usa OrderSymbol() -- Retorna o nome do instrumento financeiro para a ordem atualmente selecionada.
A ordem deve ser pré-selecionada usando OrderSelect().

aqui está o seu código:

CC1, CC2 obtêm valores correspondentes ao instrumento da ordem selecionada

se você citasse todo o código, você poderia dizer com certeza qual é o problema em vez de adivinhar

omitir PEDIDO... então seria Symbol()
 
Sergey_Rogozin:

O interessante é que ela dá os mesmos valores em todos os casos.

Ou seja, ele dá os mesmos valores para todos os personagens.

double CC1=0,CC2=0;
  if(Symbol()=="EURUSD"){ CC1 = iCustom("EURUSD",60,"CC2",3,6,0,1); CC2 = iCustom("EURUSD",60,"CC2",3,6,1,1); }
  if(Symbol()=="GBPUSD"){ CC1 = iCustom("GBPUSD",60,"CC2",3,6,0,1); CC2 = iCustom("GBPUSD",60,"CC2",3,6,2,1); }
  if(Symbol()=="USDCHF"){ CC1 = iCustom("USDCHF",60,"CC2",3,6,0,1); CC2 = iCustom("USDCHF",60,"CC2",3,6,3,1); }
  if(Symbol()=="USDJPY"){ CC1 = iCustom("USDJPY",60,"CC2",3,6,0,1); CC2 = iCustom("USDJPY",60,"CC2",3,6,4,1); }
  if(Symbol()=="USDCAD"){ CC1 = iCustom("USDCAD",60,"CC2",3,6,0,1); CC2 = iCustom("USDCAD",60,"CC2",3,6,5,1); }
  if(Symbol()=="AUDUSD"){ CC1 = iCustom("AUDUSD",60,"CC2",3,6,0,1); CC2 = iCustom("AUDUSD",60,"CC2",3,6,6,1); }
  if(Symbol()=="NZDUSD"){ CC1 = iCustom("NZDUSD",60,"CC2",3,6,0,1); CC2 = iCustom("NZDUSD",60,"CC2",3,6,7,1); }
  if(Symbol()=="EURGBP"){ CC1 = iCustom("EURGBP",60,"CC2",3,6,1,1); CC2 = iCustom("EURGBP",60,"CC2",3,6,2,1); }
  if(Symbol()=="EURCHF"){ CC1 = iCustom("EURCHF",60,"CC2",3,6,1,1); CC2 = iCustom("EURCHF",60,"CC2",3,6,3,1); }
  if(Symbol()=="EURJPY"){ CC1 = iCustom("EURJPY",60,"CC2",3,6,1,1); CC2 = iCustom("EURJPY",60,"CC2",3,6,4,1); }
Esta é a maneira correta de fazer isso
 
alsu:
MathMax e MathMin devolvem o número da barra, não o extremo em si

MathMax retorna o valor máximo de 2 valores - Alto[i] e 0, se encontrar um Alto[i] maior que HighesBuffer[i] - ele o retorna.

MathMin retorna o valor mínimo de 2 valores - Low[i] e 99999, se o Baixo[i] for menor que LowesBuffer[i] - ele retorna o valor mínimo de 2 valores - Low[i] e 99999, s e o Baixo[i] for menor que LowesBuffer[i] - ele retorna o valor mínimo.

 
alsu:
Então você quer primeiro calcular o valor de uma ondulação, ou seja, algum número, e depois descobrir com que período ela foi calculada? Não, isso não vai funcionar))

Nem por isso... É possível confiar em algum indicador de MA (não necessariamente o valor). Mas eu não sei como ...
 
em que se apoiar? e por quê?
 
eddy:
A que se referir? E por quê?

há um MA em funcionamento (o período pode variar)

há uma função separada que usa o mesmo período. Para a beleza da solução, é necessário referir-se ao MA, não ao seu período.

você precisa calcular o período do MA...

 
todem:
Assim é mais fácil.

О! Bem, é claro que você está. Algo me pegou no olho. Que grande erro!

Oh, obrigado.

Razão: