Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 836
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
¿Está bien que diga
nada, el hilo es para MT4, así que no le hagas caso
OK, ponte a trabajar, esto es aburrido
Saludos a todos. Buena suerte en la vida y provecho en el trabajo.
Estoy pidiendo ayuda (inesperadamente, ¿eh? :) ).
En Mql soy un zerobom, 2 días "en el tema". Si el EA real me obliga a usar el trading automático, estoy tratando de escribir (recogerlo en tiempo real de diferentes partes) búho para mi EA plana y, por supuesto, me estoy cansando de ella :). Llevo unas 10 horas intentando solucionar otro problema y aún no lo he conseguido. Si el consejo de alguien o un ejemplo será muy agradecido (verbalmente y por escrito, y lo más importante en la ducha).
En general... Hay TC, utilizado con éxito por mí durante mucho tiempo. En las condiciones de comercio en el mismo instrumento puede multidireccional órdenes de mercado (no pendientes). A la posición bajada se puede llenar en una señal de comercio, siempre que la posición ha caído por lo menos X pips, a veces sucede y hacer una adición al relleno (en las mismas condiciones (señal de comercio + tamaño drawdown)). El problema (actual) está en la apertura de posiciones adicionales, es decir... cómo comprobar y devolver el valor de la pérdida en una posición larga. Siguiendo el ejemplode https://www.mql5.com/ru/forum/117061, he retocado el código para asignar a cada posición su propio Magik, pero eso es todo. Cómo seleccionar exactamente una posición que se ha sentado y devolver su valor de pérdida.... :(.
"mi" código para abrir operaciones.
//-----------------
if (NumberOfPositions(Symbol(),OP_BUY, Magic)<1)
{
si (mis condiciones de entrada)
{
si (takeprofit!=0) TP = NormalizeDouble(Ask + takeprofit*Point,Digits); si no TP = 0;
si (stoploss!=0) SL = NormalizeDouble(Bid - stoploss*Point,Digits); si no SL = 0;
ticket=OrderSend(Symbol(),OP_BUY,LOT,NormalizeDouble(Ask,Digits),5,SL,TP, "BUY",Magic,0,Blue);
if(ticket < 0) { Print("Error al abrir la orden BUY #", GetLastError());}
}}
if(NumberOfPositions(Symbol(),OP_SELL, Magic)<1)
{
si (mis condiciones de entrada)
{
si (takeprofit!=0) TP = NormalizeDouble(Bid - takeprofit*Point,Digits); si no TP = 0;
si (stoploss!=0) SL = NormalizeDouble(Ask + stoploss*Point,Digits); si no SL = 0;
ticket=OrderSend(Symbol(),OP_SELL,LOT,NormalizeDouble(Bid,Digits),5,SL,TP, "SELL",Magic,0,Red);
if(ticket < 0) { Print("Error al abrir la orden de VENTA #", GetLastError());}
}}
//---------------
Está previsto que se abran órdenes adicionales con el siguiente código
//---------------
if (NumberOfPositions(Symbol(),OP_BUY, Magic)==1 && NumberOfPositions(Symbol(),OP_BUY, Magic_2)<1)
{
si (mis condiciones de entrada && GetProfitOpenPosInPoint(Symbol(),OP_BUY,Magic)>= LEVEL_1)
{
ticket=OrderSend(Symbol(),OP_BUY,LOT,NormalizeDouble(Ask,Digits),5,SL,TP, "Extra Buy",Magic_2,0,Blue);
if(ticket < 0) { Print("Error al abrir el pedido BUY #", GetLastError()); }
} }
//---------------
Y ahí es donde me quedé atascado :). Qué utilizar en lugar de GetProfitOpenPosInPoint(Symbol(),OP_BUY,Magic). Creo que necesito usar Drawdown_level(Symbol(),OP_BUY,Magic) pero cómo conseguirlo...
Ayuda POR FAVOR, sean amigos.
Z.U. Si me aconsejas, por favor, ten en cuenta que todavía estoy nubyara que no demasiado perezoso para enviarme un poco más de detalle, ya sabes, como si: FOREST THERE, entonces no olvide especificar la dirección <------ || ------>.
Gracias por su atención :).
Nada, el hilo es para MT4, así que no le prestas atención.
Ok, ponte a trabajar, esto es aburrido
Dime dónde está una rama similar para MT5, preguntaré allí...
Dime dónde hay un hilo similar para MT5, preguntaré allí...
¿Está bien especificar
En MT4 la llamada a la función desde el Indicador va sin errores y funciona como es necesario(int handle=iEnvelopes(Symbol(), tf, period, method, shift, price, Deviation(kanal), buff);) Pensé que podría ser lo mismo en MT5.
Por favor, aconséjeme cómo hacerlo correctamente.
En MT4 la llamada a la función desde el Indicador va sin errores y funciona como es necesario(int handle=iEnvelopes(Symbol(), tf, period, method, shift, price, Deviation(kanal), buff);) Pensé que podría ser lo mismo en MT5.
¿Pueden decirme cómo hacerlo correctamente?
Así que es imposible obtener los datos de Envelopes en mql4
Este es el código de MT4
Todo funciona perfectamente. Me gustaría lo mismo en MT5
Este es el código de MT4
Todo funciona perfectamente. Me gustaría lo mismo en MT5
Bueno, eso es porque es un código diferente y funcionará.
Corregido el código de MT5 para enviar datos al Indicador:
Pero el error es el mismo.
Este es el código de MT4
Todo funciona perfectamente. Me gustaría lo mismo en MT5
Cuidado con las manos:
En mi post anterior se destaca esto en su código
y en el código de este, el mensaje citado es una declaración de función. También destacó.
Y esto
Llamar a una función de usuario que existe. Aunque este método de programación es inaceptable para mí, sigue siendo comprensible. Pero cómo describir el error en ese código, estoy perdido.