[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No podría ir a ningún sitio sin ti - 2. - página 143

 
todem:

¿Qué tiene que ver una orden de selección?

Tomamos los datos del indicador, aquí no intervienen las órdenes


Utiliza OrderSymbol() -- Devuelve el nombre del instrumento financiero para la orden actualmente seleccionada.
El pedido debe ser preseleccionado mediante la función OrderSelect().

Aquí está su 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); }
aquí CC1, CC2 reciben los valores correspondientes al instrumento de la orden seleccionada

si se citara el código completo, se podría saber con seguridad cuál es el problema en lugar de adivinar

 
100yan:

double MA13=iMA(NULL,..... etc
Entonces, ¿quieres calcular primero el valor de la máscara, es decir, algún número, y luego averiguar con qué periodo se ha calculado? No, no funciona así))
 
eddy:
¿por qué mi MainBuffer[i] supera los 100? ¿dónde está el error?
MathMax y MathMin devuelven el número de barra, no el extremo mismo
 
abolk:


utiliza OrderSymbol() -- Devuelve el nombre del instrumento financiero para la orden actualmente seleccionada.
El pedido debe ser preseleccionado mediante OrderSelect().

aquí está su código:

CC1, CC2 obtienen los valores correspondientes al instrumento de la orden seleccionada

si se citara todo el código, se podría decir con seguridad cuál es el problema en lugar de adivinar

omitir ORDER... por lo que sería Symbol()
 
Sergey_Rogozin:

Lo interesante es que da los mismos valores en todos los casos.

Es decir, da los mismos valores para todos los caracteres.

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 es la forma correcta de hacerlo
 
alsu:
MathMax y MathMin devuelven el número de barra, no el extremo en sí

MathMax devuelve el valor máximo de 2 valores - High[i] y 0, si encuentra un High[i] mayor que HighesBuffer[i] - lo devuelve.

MathMin devuelve el valor mínimo de 2 valores - Low[i] y 99999, si al chocar con Low[i] es menor que LowesBuffer[i] - lo devuelve.

 
alsu:
Entonces, ¿quieres calcular primero el valor de la ondulación, es decir, algún número, y luego averiguar con qué periodo se ha calculado? No, eso no funcionará))

En realidad no... ¿Es posible basarse en algún indicador de MA (no necesariamente el valor). Pero no sé cómo...
 
¿en qué apoyarse? y ¿por qué?
 
eddy:
¿A qué referirse? ¿Y por qué?

hay un MA de trabajo (el periodo puede variar)

hay una función separada que utiliza el mismo período. Para la belleza de la solución, es necesario referirse a la MA, no a su período.

necesitas calcular el periodo de la MA...

 
todem:
Eso es más bien.

¡О! Pues claro que sí. Algo me ha llamado la atención. ¡Qué grave error!

Oh, gracias.

Razón de la queja: