Niveles de stop y tp predeterminados

 
Hola gente, sabe alguien por aquí si es posible establecer unos niveles de stop y tp fijos, para que cuando cualquier operación (manual o por EA) sea abierta estos se coloquen automáticamente? Muchas gracias!
 
Carlos Moya Corredera:
Hola gente, sabe alguien por aquí si es posible establecer unos niveles de stop y tp fijos, para que cuando cualquier operación (manual o por EA) sea abierta estos se coloquen automáticamente? Muchas gracias!

Sí, es muy fácil. Se puede hacer incluso desde un script aunque tendrías que ejecutarlo con cada nueva operación,

De todas formas mi consejo es que fjies niveles de stop basados en ATR para que el algoritmo sea adaptativo.

 
Pedro Roberto Diez San Jose #:

Sí, es muy fácil. Se puede hacer incluso desde un script aunque tendrías que ejecutarlo con cada nueva operación,

De todas formas mi consejo es que fjies niveles de stop basados en ATR para que el algoritmo sea adaptativo.

Pero quiero decir dejar unos niveles fijos por pips. Por ejemplo, que siempre se coloque el stop a 100 pips y el tp a 80, sea bajo las condiciones que sea. 
 
Carlos Moya Corredera #:
Pero quiero decir dejar unos niveles fijos por pips. Por ejemplo, que siempre se coloque el stop a 100 pips y el tp a 80, sea bajo las condiciones que sea. 

Pues nada, tendrás que encargarlo.

Ya te digo, complicación no tiene ninguna y menos como tú lo pides.

https://www.mql5.com/es/job

Aplicaciones comerciales para MetaTrader 5 por encargo
Aplicaciones comerciales para MetaTrader 5 por encargo
  • 2023.04.19
  • www.mql5.com
El servicio freelance con desarrolladores más grande en MQL5
 

Hola. Mira si esto te sirve, es un script: 

#property version   "1.00"
#property script_show_inputs

#include <Trade\PositionInfo.mqh>
#include <Trade\Trade.mqh>
#include <Trade\SymbolInfo.mqh>

CPositionInfo  posi;    
CTrade         trade;
CSymbolInfo    symb;

input double InpStoploss = 80;  // StopLoss Pips
input double InpTakeProfit = 100;  // TakeProfit Pips

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
{
    //---

    double stoploss = InpStoploss * _Point;
    double takeprofit = InpTakeProfit * _Point;

    trade.SetDeviationInPoints(3 * _Point);

    for (int i = PositionsTotal() - 1; i >= 0; i--)
    {
        if (posi.SelectByIndex(i))
        {
            if (posi.Symbol() == Symbol())
            {
                if (posi.PositionType() == POSITION_TYPE_BUY)
                {
                    trade.PositionModify(posi.Ticket(), posi.PriceOpen() - stoploss, posi.PriceOpen() + takeprofit);
                }

                if (posi.PositionType() == POSITION_TYPE_SELL)
                {
                    trade.PositionModify(posi.Ticket(), posi.PriceOpen() + stoploss, posi.PriceOpen() - takeprofit);
                }
            }
        }
    }
}
Modify SL TP
Modify SL TP
  • www.mql5.com
El script se usa para cambiar el stop-loss y el take-profit de la posición.
Archivos adjuntos:
 
Enrique Enguix #:

Hola. Mira si esto te sirve, es un script: 

Hola Enrique, yo en ese script veo un par de cosas.

Lo primero es que estás utilizando puntos en lugar de pips, por lo que no le servirá.

Y la otra cosa que veo es que en el código fijas las desviación máxima en decimales:

trade.SetDeviationInPoints(3 * _Point);

cuando en mi opinión debería ser un número entero:

trade.SetDeviationInPoints(30);

Que me corrijan si me equivoco.

 
Pedro Roberto Diez San Jose #:

Hola Enrique, yo en ese script veo un par de cosas.

Lo primero es que estás utilizando puntos en lugar de pips, por lo que no le servirá.

Y la otra cosa que veo es que en el código fijas las desviación máxima en decimales:

cuando en mi opinión debería ser un número entero:

Que me corrijan si me equivoco.

Fantástico! Entre los dos lo hemos logrado!

 
Enrique Enguix #:

Fantástico! Entre los dos lo hemos logrado!

De entre los dos nada especialista, si está mal se dice y punto.
 
Muchas gracias a ambos! Lo que ocurre al usar un script es que sería de "un solo uso" si no estoy equivocado, ¿verdad?. Es decir, habría que volver a pegarlo al chart tras cada trade. Conseguí un EA que también hace eso, pero necesito que continúe cumpliendo su función tras cada trade. No sé si es mucho pedir, pero dejaré aquí el código para por si alguno pudiese explicarme que modificación tendría que realizarle. Igual también lo pondré en otro hilo para tratar de llegar a más gente. Mil gracias!
Archivos adjuntos:
 
Carlos Moya Corredera #: Igual también lo pondré en otro hilo para tratar de llegar a más gente.

No duplique hilos sobre una misma cuestión.