[ARCHIVO] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 3. - página 10
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
¿Puede indicar si es posible determinar mediante programación la posibilidad de establecer un stop loss/stake profit inmediatamente al abrir una posición/orden pendiente o después?
Compruebe previamente los niveles de stop y de beneficio.
Los identificadores de solicitud utilizados en la función MarketInfo(). Puede ser uno de los siguientes valores:
Apenas estoy aprendiendo a escribir un EA, como muchos de mis primeros EAs sobre indicadores estándar, acabo de escribir uno nuevo, pero ahora se me ha complicado la tarea. En general, cómo hacer, que en la aparición de las condiciones abrió una posición y en su cierre, vamos a tomar las mismas condiciones cuando se guarda el nuevo no se abrió, y se abrió sólo cuando las condiciones opuestas, etc. ¡¡¡Gracias!!!
hay un ejemplo listo en la ayuda
Comprobación previa de los niveles de ajuste del stop y de los beneficios .
En esta lista no hay ninguna marca para ciertos tipos de cuentas. Este es un párrafo del Reglamento de Operaciones Comerciales para las cuentas NDD:
3.3 Si se abre una posición a través del Terminal del Cliente utilizando un Asesor Experto, el Cliente no puede designar órdenes de Stop Loss y/o Take Profit. Si el Cliente desea colocar estas órdenes, puede hacerlo modificando una posición existente de acuerdo con las cláusulas 5.16 - 5.22 y 9.13 - 9.16.
Me interesa saber si esto se puede comprobar mediante programación. Según tengo entendido, no. Originalmente hay que escribir en un programa una función para abrir posiciones / establecer órdenes pendientes, teniendo en cuenta las condiciones que establece el corredor.En esta lista no hay ninguna marca para ciertos tipos de cuentas. Este es un párrafo del Reglamento de Operaciones Comerciales para las cuentas NDD:
No entiendo muy bien las reglas para fijar las órdenes, intenta jugar con la demo y ver qué puedes y qué no puedes hacer. Por lo que tengo entendido nada impide establecer programáticamente una orden y luego modificarla. Cierto es extraño, a no ser que cortes la conexión después de abrir una posición dejando sin stop .
Me interesa saber si esto se puede comprobar mediante programación. Según tengo entendido, no. Inicialmente hay que escribir en el programa una función para abrir posiciones/establecer órdenes pendientes, teniendo en cuenta las condiciones establecidas por el broker.En esta lista no hay ninguna marca para ciertos tipos de cuentas. Este es un párrafo del Reglamento de Operaciones Comerciales para las cuentas NDD:
No hay ningún problema. Incluso (si no es para uso personal, porque usted sabe en qué cuentas (condiciones de negociación y con quién) para usarlo), pero si usted envía el EA a la orden y el cliente aún no ha decidido en qué cuentas y donde se va a utilizar, incluso en los tipos de cuenta con la posibilidad de establecer una toma y la parada de inmediato, a continuación, por defecto producir la EA con valores cero de estos niveles al establecer todos los tipos de órdenes, a continuación, con su modificación (trabajará allí y allí), mientras que, por supuesto, nadie ha cancelado los requisitos de verificación y restricciones en p.
No entiendo muy bien las reglas para fijar las órdenes, intenta jugar con la demo, lo que puedes y lo que no. Por lo que tengo entendido nada impide establecer programáticamente una orden y luego modificarla. Cierto es extraño, a no ser que cortes la conexión después de abrir una posición dejando sin stop .
))) No. Me has malinterpretado completamente. Yo no escribí sobre "fijar programáticamente", escribí sobre definir programáticamente. En algunos tipos de cuenta no se puede abrir inmediatamente una posición y establecer stops/paradas, lo que sería preferible/seguro para mí. En mql5, si no me equivoco, parece que es posible determinar esto. Me gustaría poder determinar esto y, dependiendo de la definición, elegir qué función utilizar.
No hay ningún problema. Incluso (si no es para uso personal, porque usted sabe en qué cuentas (condiciones de negociación y con quién) para usarlo), pero si usted hace una EA a la orden y el cliente aún no ha decidido en qué cuentas y donde lo va a utilizar, incluso en los tipos de cuentas con la posibilidad de establecer una toma y detener de inmediato, entonces usted todavía hace una EA con valores cero de estos niveles por defecto al establecer todos los tipos de órdenes, a continuación, con su modificación (trabajará allí y allí), mientras que, por supuesto, nadie canceló los requisitos de verificación y restricciones en p
Sí, no hay problema cuando hay una solución. Sólo tienes que usar lo que tienes y usarlo correctamente).
Roman. e ivandurak muchas gracias por sus respuestas, pero esto me sigue costando entenderlo. Encontré una sugerencia en otro foro sobre cómo hacerlo, pero hasta ahora no puedo aplicarlo a mi código habitual
int BuyTrue, SellTrue;// definir las variables que servirán como estos indicadores
....
//--- Condición de compra
if (BuyTrue==0 && ... más sus otras condiciones) //condición de posición abierta
{
....
OrderSend(....); //función para abrir un pedido
BuyTrue=1; // Si BuyTrue=1, la condición para la apertura de la posición no se cumplirá completamente
// En consecuencia, ante una señal de compra repetida no se abrirá una operación
SellTrue=0; // En SellTrue=0 la condición de la apertura de la posición será satisfecha completamente
// por lo que la siguiente operación será sólo de venta
....
}
//--- Condición de venta
if (SellTrue==0 && ... más sus otras condiciones) //condición de posición abierta
{
....
OrderSend(....); //función para abrir un pedido
SellTrue=1; // Si SellTrue=1, la condición de apertura de la orden no se cumplirá completamente
// por lo tanto, en una segunda señal de Venta no se abrirá una posición
BuyTrue=0; // En BuyTrue=0 la condición de apertura de la posición se cumplirá plenamente
// en consecuencia, la siguiente operación será sólo de compra
....
}
Mi código para abrir una posición
total=Total de pedidos();
if(total<1)
{
// no se han identificado órdenes abiertas
if(AccountFreeMargin()<(1000*Lots))
{
Print("No tenemos dinero. Margen libre = ", AccountFreeMargin();
return(0);
}
// comprueba la posición larga (BUY)
if(MACD1<0 && MACD2<MACD1 && MACD2>MACD3 && MathAbs(MACD1)>(MACDOpenLevel*Point))
{
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point, "macd sample",16384,0,Green);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Orden de compra abierta : ",OrderOpenPrice());
}
else Print("Error al abrir la orden BUY : ",GetLastError());
return(0);
}
// comprobar la posición corta (SELL)
if(MACD1>0 && MACD2>MACD1 && MACD1>(MACDOpenLevel*Point))
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,Bid-TakeProfit*Point, "macd sample",16384,0,Red);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Orden de venta abierta : ",OrderOpenPrice())
}
else Print("Error al abrir la orden de VENTA : ",GetLastError());
return(0);
}
return(0);
}
Roman. e ivandurak muchas gracias por vuestras respuestas, pero a mi me sigue costando entenderlo. He encontrado una sugerencia en otro foro sobre como hacerlo, pero hasta ahora no puedo aplicarlo a mi código habitual
int BuyTrue, SellTrue;// definir las variables que servirán como banderas descritas anteriormente
....
//--- Condición de compra
if (BuyTrue==0 && ... más sus otras condiciones) //condición de posición abierta
{
....
OrderSend(....); //función para abrir un pedido
BuyTrue=1; // Si BuyTrue=1, la condición para la apertura de la posición no se cumplirá completamente
// En consecuencia, ante una señal de compra repetida no se abrirá una operación
SellTrue=0; // En SellTrue=0 la condición de la apertura de la posición será satisfecha completamente
// por lo que la siguiente operación será sólo de venta
....
}
//--- Condición de venta
if (SellTrue==0 && ... más sus otras condiciones) //condición de posición abierta
{
....
OrderSend(....); //función para abrir un pedido
SellTrue=1; // Si SellTrue=1, la condición de apertura de la orden no se cumplirá completamente
// por lo tanto, en una segunda señal de Venta no se abrirá una posición
BuyTrue=0; // En BuyTrue=0 la condición de apertura de la posición se cumplirá plenamente
// en consecuencia, la siguiente operación será sólo de compra
....
}
Mi código para abrir un trato.
total=Total de pedidos();
if(total<1)
{
// no se han identificado órdenes abiertas
if(AccountFreeMargin()<(1000*Lots))
{
Print("No tenemos dinero. Margen libre = ", AccountFreeMargin();
return(0);
}
// comprueba la posición larga (BUY)
if(MACD1<0 && MACD2<MACD1 && MACD2>MACD3 && MathAbs(MACD1)>(MACDOpenLevel*Point))
{
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point, "macd sample",16384,0,Green);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Orden de compra abierta : ",OrderOpenPrice());
}
else Print("Error al abrir la orden BUY : ",GetLastError());
return(0);
}
// comprobar la posición corta (SELL)
if(MACD1>0 && MACD2>MACD1 && MACD1>(MACDOpenLevel*Point))
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,Bid-TakeProfit*Point, "macd sample",16384,0,Red);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Orden de venta abierta : ",OrderOpenPrice())
}
else Print("Error al abrir la orden de VENTA : ",GetLastError());
return(0);
}
return(0);
}
En primer lugar, pegar el código en el editor a través de Ctrl + Alt + M (o pulse SRC en la parte superior del menú), de lo contrario es malo, lo que es claro - todo se mezcla bajo una ...:-))
En segundo lugar, leer el tutorial, en particular la información en el enlace que he recomendado, por debajo del código es su descripción y al final de la descripción se describe con precisión - cómo una vez que el informe de un precio por encima / debajo de la MA (que tendrá una analogía con una sola entrada en una condición de comercio dado - el uso de banderas y todo), antes de que el trabajo de su asistente ... :-))
P.D. o búsqueda en google: Cómo insertar correctamente el código site:mql4.com