Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 328
![MQL5 - Lenguaje de estrategias comerciales para el terminal de cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
{
for (int i = 3; i<=Bars; i++)
if (iFractals(Symbol(),PERIOD_M5,MODE_UPPER,i) != 0) return (i);
double LastUpperFractalPrice = High [i]; return (LastUpperFractalPrice);
}
¿Es eso correcto? ¿Esta función devolverá el precio del último fractal superior?
¿es esto correcto? ¿Esta función devolverá el precio del último fractal superior?
Ejemplo de búsqueda fractal
{
for (int i = 3; i<=Bars; i++)
{
if (iFractals(Symbol(),PERIOD_M5,MODE_UPPER,i) != 0) return (i);
{
double LastUpperFractalPrice = High [i];
}
}
return (LastUpperFractalPrice);
}
¿Funcionará o no?
double GetLastUpperFractalPrice()
{
for (int i = 3; i<=Bars; i++)
{
if (iFractals(Symbol(),PERIOD_M5,MODE_UPPER,i) != 0)
{
double LastUpperFractalPrice = High [i];
}
}
return (LastUpperFractalPrice;)
}
¿Funcionará o no?
Así, por ejemplo, lo hará:
Tal y como lo tienes, no lo hará.
double GetLastUpperFractalPrice()
{
for (int i = 3; i<=Bars; i++)
{
if (iFractals(Symbol(),PERIOD_M5,MODE_UPPER,i) != 0) return (i);
{
double LastUpperFractalPrice = High [i];
}
}
return (LastUpperFractalPrice);
}
¿Funcionará o no?
No. Introduzca el código a través del SRC en el panel.
return (ХХХ) regresará de la función del usuario - lo que fue introducido allí será devuelto por esta función - el valor de ХХХ o un resultado de algunas funciones de cálculo.
Por lo tanto, cuando se encuentra un fractal, escribe return (High [i]) - no tienes que inventar nada más.
Muy por delante de ti))
Esta es una función elemental de colocación de órdenes pendientes, los parámetros no son importantes, pero es importante para que el Asesor Experto (puede utilizar el bucle existente de órdenes pendientes) después de recibir un "nuevo precio" o para buscarlo, o para evitar de alguna manera la colocación de órdenes al mismo precio. En este caso, el bucle de colocación de órdenes no debe detenerse.
doble Dist=10000,0;
cadena SMB;
double NewPrice;
int i;
int inicio()
{
RefreshRates();
SMB=Símbolo();
{UstanOtlozh();}
}
return(0);
void UstanOtlozh()
{
double OldPrice=WindowPriceOnDropped(); // Aquí se lanza el script
RefreshRates();
SMB=Símbolo();
{
int i=1;
while(i<=Total de pedidos())
{
if (OrderSelect(i-1,SELECT_BY_POS)==true) // si hay un
{ // Análisis de pedidos:
if (OrderSymbol()!= SMB) continue; // No es nuestro instrumento financiero.
int Tip=Tipo de pedido(); // Tipo de pedido
if (Tip<2) continue; // Orden de mercado
double NewPrice=OrderOpenPrice(); // Precio del pedido
{
while(Precio nuevo<=Precio+200*Punto||Precio nuevo>=Precio+50*Punto)
{
NuevoPrecio=NuevoPrecio+50*Punto;
OrderSend(SMB,OP_BUYSTOP,0.01,NewPrice,3,0,0,NULL,0,CLR_NONE);
if(Precio nuevo>Precio+200*Punto||Precio nuevo<Precio+50*Punto)
romper;
}}}}}}
He arreglado para compilar - y el uso de 555 construir de MT4 EDITOR - que realmente ayuda a encontrar los problemas rápidamente. acaba de leer el manual antes de instalar - las primeras 15 páginas.
Nunca pensé que preguntaría por una cosa tan sencilla. Al compilar, recibo un mensaje de que la función BU() no está involucrada. Lo pongo de esta manera (se da el código) ahora todo compila, pero la función de equilibrio no funciona. Funciona en otros EAs y tiene la misma función de Breakeven.
Nunca pensé que preguntaría por una cosa tan sencilla. Al compilar, recibo un mensaje de que la función BU() no está involucrada. Lo pongo así (se da el código) ahora todo compila, pero la función de equilibrio no funciona. En otros EAs funciona exactamente la misma función de equilibrio.
La única razón es el retorno incorrecto del operador if(...); parece que sólo tiene uno - al principio del programa.
¡¡Caballeros!! ¿En qué se confunden ustedes?
iFractals() devuelve el precio, no el número de barra del fractal.
La única razón es un retorno incorrecto del operador if(...); parece que tiene uno - al principio del programa.