[ARCHIVO] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 3. - página 116
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
Chicos, ¿podéis decirme por qué puede haber un error de no poder abrir un indicador en un EA?
Esta condición se cumple:
-Lista de parámetros (si es necesario). Los parámetros transmitidos deben coincidir con el orden de declaración y el tipo de variables externas (extern) del indicador personalizado.
Debe comprobar el nombre del indicador. Podría ser
Tendría que comprobar el nombre del indicador. No sé qué puede ser.
He comprobado el nombre. Está bien. Lo que se está calculando...
P.D. He creado un terminal DC de cinco dígitos, he movido todo allí, he vuelto a comprobar todo, he editado mucho código, y ya no se produce ese error.
1. Abre una orden y asigna el valor del precio de apertura a la variable PriceBuy y muestra un mensaje al respecto.
2. Abrir una nueva orden con las mismas condiciones cuando se alcance el TakeProfit.
Este es el código del programa:
extern double PriceBuy = 0;
extern bool Buy = true;
extern bool number = false;
int start()
{
if(Buy)
{
int ticket=OrderSend(Symbol(),OP_BUY,0.01,Ask,3,Bid-100*Point,Bid+100*Point);
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)
PriceBuy=OrderOpenPrice();
Alert("Buy Price = ",PriceBuy);
Buy = false;
number = true;}
if (Bid+100*Point<=PriceBuy && number)
{PriceBuy = 0;
number = false;
Buy=true;}
return;
}
Gracias de antemano
O Los gurús de la programación MQL, ayudan a un novato a resolver un problema. El programa no funciona correctamente, no hace lo que se supone que debe hacer. ¿Podría decirme cuál es mi error? El programa necesita:
1. abrir una orden y asignar el valor del precio abierto a la variable PriceBuy y mostrar un mensaje al respecto.
Para abrir una nueva orden con las mismas condiciones cuando se alcance el TakeProfit.
Aquí está el código del programa:
extern double PrecioCompra = 0;
extern bool Comprar = true;
extern bool number = false;
int inicio()
{
si(Comprar)
{
int ticket=OrderSend(Symbol(),OP_BUY,0.01,Ask,3,Ask-100*Point,Ask+100*Point);
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
PrecioCompra=PrecioAbierto();
Alert("Precio de compra = ",Precio de compra);
Comprar = falso;
número = true;}
if(Oferta+100*Punto<=PrecioCompra && número)
{PrecioCompra = 0;
número = falso;
Buy=true;}
volver;
}
Gracias de antemano
Oferta>=PrecioCompra+100*Punto
Quiero conectar la función CreateNamedPipe() de kernel32.dll. Necesito prescribir banderas de tipo Dword.
Lo estoy haciendo de esta manera:
#define ACCESS_SYSTEM_SECURITY 0x01000000L
Naturalmente, el compilador jura la L al final. ¿Podría decirme qué hacer?
Tengo que comprobar el nombre del indicador. Puede ser.
Sí, de verdad, Víctor, mi error fue que intenté abordarlo automáticamente... :-))) al indicador a través de
... No he encontrado los nombres "cortos" y "normales", al dirigirse a los valores del indicador a través de iCustom(), es decir, cuando no coinciden, el indicador debe dirigirse sólo por su nombre "normal".
Gracias.
Hola.
Por favor, ayúdenme a encontrar un error.
El código está diseñado para cerrar todas las posiciones cuando el precio cruza la línea dibujada en el gráfico. La mayoría de las veces sí. Pero periódicamente hay 2 fallos: 1. El precio cruza la línea, pero las posiciones no se cierran. 2. La línea cruza el nivel de precios actual (en un ángulo), pero no coincide con él (no afecta a la vela actual), mientras que todas las posiciones están cerradas (lo que no debería ocurrir).
Se lo agradezco de antemano.
Por favor, ayúdenme a encontrar el error.
Retirando la pregunta, lo he resuelto.
Quiero conectar la función CreateNamedPipe() de kernel32.dll. Necesito prescribir banderas de tipo Dword.
Lo hago de esta manera:
#define ACCESS_SYSTEM_SECURITY 0x01000000L
Naturalmente, el compilador jura la L al final. ¿Algún consejo sobre qué hacer?
Quita el dígito. Sólo puede haber 8 bits. MQL4 no funciona con los grandes.
Tienes que quitar un cero de más. Inténtalo así: 0x1000000L
No funciona así. El compilador da el error '0x1000000L' - número no válido
No funciona así. El compilador genera el error '0x1000000L' - número no válido
No pensar en absoluto por la noche... :-)) En el sistema de 16 bits no existe ese número. Es un identificador de tipo constante.
L debe ser eliminado:0x01000000