Muy útil. Gracias.
Steven
El ejemplo final falla con un error.
Programadores, ¡¡¡ayuda con mql5, por favor!!!
¿Es posible utilizar simplemente una función trailing ordinaria como en mql4 sin ninguna clase? Al igual que, por ejemplo, la función TradeSizeOptimised se implementa en Moving Averages.mq5.
Ya he buscado de todo, en ejemplos, artículos, foro - no he encontrado nada. Ya me he perdido completamente.... Tal vez alguien tiene una variante listo, voy a estar muy agradecido!!! - Tengo muchas ganas de participar en el campeonato.
Programadores, ¡¡¡ayuda con mql5, por favor!!!
¿Es posible utilizar simplemente una función trailing ordinaria como en mql4 sin ninguna clase? Al igual que, por ejemplo, la función TradeSizeOptimised se implementa en Moving Averages.mq5.
Ya he buscado de todo, en ejemplos, artículos, foro - no he encontrado nada. Ya me he perdido completamente.... Tal vez alguien tiene una variante listo, voy a ser muy agradecidos!!! - Me gustaría participar en el campeonato.
aquí tienes
int TrailingStop() { if(PositionSelect(Symbol())) // seleccionar posición { //MqlTradeRequest m_request;// declarar la estructura de la petición al servidor //MqlTradeResult m_result;// declarar la estructura de respuesta del servidor double Bid = SymbolInfoDouble(Symbol(), SYMBOL_BID); // escribir el precio de oferta en la variable double Ask = SymbolInfoDouble(Symbol(), SYMBOL_ASK); // escribir en la variable precio de venta double OpenPrice=PositionGetDouble(POSITION_PRICE_OPEN); // escribe el precio de apertura de la posición en la variable double PositionSL=PositionGetDouble(POSITION_SL); // escribir el nivel de stop loss en la variable double PositionTP=PositionGetDouble(POSITION_TP); // escribe el nivel de beneficio en la variable if((ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY) // definir tipo de posición { if(TrailWhileMinus==true || Bid-OpenPrice>_Point*Trail) // no arrastre hasta que podamos alcanzar el punto de equilibrio con la transferencia de la primera parada. { if(Bid-PositionSL>Trail*_Point) //condición básica para la necesidad de mover el stop loss { //--- escribir datos en la estructura request.action = TRADE_ACTION_SLTP; request.symbol = Symbol(); request.sl = NormalizeDouble(Bid-Trail*_Point,_Digits); request.tp = NormalizeDouble(PositionTP,_Digits); //--- return(OrderSend(request,result)); // enviar la solicitud al servidor } } } else { if(TrailWhileMinus==true || OpenPrice-Ask>_Point*Trail) // no arrastre hasta que podamos alcanzar el punto de equilibrio con la transferencia de la primera parada. { if(PositionSL-Ask>Trail*_Point) //condición básica para la necesidad de mover el stop loss { //--- escribir datos en la estructura request.action = TRADE_ACTION_SLTP; request.symbol = Symbol(); request.sl = NormalizeDouble(Ask+Trail*_Point,_Digits); request.tp = NormalizeDouble(PositionTP,_Digits); //--- return(OrderSend(request,result)); // enviar la solicitud al servidor } } } } return(0); }
aquí tienes
Supongo (probablemente no sin razón) que es mejor pasar el resultado como parámetro :)
De lo contrario no hay manera de analizarlo. De alguna manera no es bueno...
PS
También crearía dos funciones - TrailingStopBuy y TrailingStopSell
Supongo (probablemente no sin razón) que es mejor pasar el resultado como parámetro :)
De lo contrario, no hay forma de analizarlo. De alguna manera no es bueno...
PS
Yo también crearía dos funciones - TrailingStopBuy y TrailingStopSell.
Bueno, le di al hombre un ejemplo, porque ya ha hecho su cerebro cómo escribir un trailing ordinaria, y luego dejar que él piensa un poco, que funcionaría sin errores, en el probador en principio, y este diseño funciona bien. en la vida real no comprobó
Aquí tiene.
sergey1294,
Gracias de nuevo, ¡¡¡todo funciona!!!
Hay una pequeña duda más, ¿cómo añadir un check por número mágico a la función? Estoy intentando insertar un check de este tipo:
if (OrderGetInteger(ORDER_MAGIC)==EA_Magic) { ..... }..... pero algo que rompe todo el comercio.....
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Usted acepta la política del sitio web y las condiciones de uso
Artículo publicado Cómo crear tu propio Trailing Stop:
La regla básica del trader -dejar correr el beneficio, cortar las pérdidas! Este artículo aborda una de las técnicas básicas, lo que permite seguir esta regla -mover el tope de pérdida dinámico (Stop Loss level) después de incrementar el beneficio de la posición, es decir el nivel Trailing Stop. Encontrarás el procedimiento paso a paso para crear una clase Trailing Stop en los indicadores SAR y NRTR. Cualquiera podrá insertar este Trailing Stop en sus expertos o utilizarlo independientemente para controlar las posiciones de sus cuentas.
Autor: Dmitry Fedoseev