Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 769

 
Vitaly Muzichenko:

Gracias por la respuesta, pero cómo hacer que funcione, no tengo ni idea

Intentaré por última vez llegar... No tengo una cuenta con las herramientas indicadas en el problema, pero aquí hay un script que funciona en forex. El resultado coincide con los valores que aparecen como pista como en esta captura de pantalla

Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategias

FAQ de principiantes MQL5 MT5 MetaTrader 5

Vitaly Muzichenko, 2017.07.26 23:56

Tengo un lote de compra abierto, y cuando establezco el takeprofit, la terminal lo recalcula en dólares, porque mi cuenta está denominada en dólares,

Pero cuando lo calculo usando la fórmula (precio_cerrado-precio_abierto)*Lotes*PrecioTick/TamañoTick, entonces mi cantidad de takeprofit se calcula en rublos.

En el gráficoSBRF-9.17

Si dividimos el rublo por la cotización del dólar 174,99/USDRUR = 2,93 dólares, obtendremos el beneficio en dólares.

¿Cómo escribirlo programáticamente y hacer que se calcule solo?

/********************Script program start function*******************/
void OnStart()
{
 for(int i = 0; i < PositionsTotal(); i++)
  {
   ulong positionTicket = PositionGetTicket(i);
   string positionSymbol = PositionGetString(POSITION_SYMBOL);
   ENUM_POSITION_TYPE positionType = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE);
   double positionTP = PositionGetDouble(POSITION_TP);
   double positionOpen = PositionGetDouble(POSITION_PRICE_OPEN);
   double point = SymbolInfoDouble(positionSymbol, SYMBOL_POINT);
   int profitPoint = int(fabs(positionOpen-positionTP)/point);
   double positionProfit = PositionGetDouble(POSITION_PROFIT);
   string symbolCurrencyProfit = SymbolInfoString(positionSymbol, SYMBOL_CURRENCY_PROFIT);
   int currentProfit = positionType == POSITION_TYPE_SELL
    ? int((positionOpen-PositionGetDouble(POSITION_PRICE_CURRENT))/point)
    : int((PositionGetDouble(POSITION_PRICE_CURRENT)-positionOpen)/point);
   Print("PositionSymbol ", positionSymbol);
   Print("SymbolCurrencyProfit ", symbolCurrencyProfit);
   Print("PositionTP ", DoubleToString(positionTP, (int)SymbolInfoInteger(positionSymbol, SYMBOL_DIGITS)));
   Print("PositionOpen ", DoubleToString(positionOpen, (int)SymbolInfoInteger(positionSymbol, SYMBOL_DIGITS)));
   Print("PositionProfit ", DoubleToString(positionProfit, 2));
   Print("ProfitPoint ", profitPoint);
   Print("CurrentProfit ", currentProfit);
   Print("ИТОГО ", positionProfit/currentProfit*profitPoint);
  }
   
}/*******************************************************************/

Tengo dos puestos vacantes. Este es el resultado del script

2017.07.27 13:30:48.517 posi (EURUSD,M15)       PositionSymbol EURGBP
2017.07.27 13:30:48.517 posi (EURUSD,M15)       SymbolCurrencyProfit GBP
2017.07.27 13:30:48.517 posi (EURUSD,M15)       PositionTP 0.88697
2017.07.27 13:30:48.517 posi (EURUSD,M15)       PositionOpen 0.89197
2017.07.27 13:30:48.517 posi (EURUSD,M15)       PositionProfit 14.47
2017.07.27 13:30:48.517 posi (EURUSD,M15)       ProfitPoint 500
2017.07.27 13:30:48.517 posi (EURUSD,M15)       CurrentProfit 109
2017.07.27 13:30:48.517 posi (EURUSD,M15)       ИТОГО 66.37614678899082
2017.07.27 13:30:48.517 posi (EURUSD,M15)       PositionSymbol EURJPY
2017.07.27 13:30:48.517 posi (EURUSD,M15)       SymbolCurrencyProfit JPY
2017.07.27 13:30:48.517 posi (EURUSD,M15)       PositionTP 130.940
2017.07.27 13:30:48.517 posi (EURUSD,M15)       PositionOpen 130.440
2017.07.27 13:30:48.517 posi (EURUSD,M15)       PositionProfit -0.90
2017.07.27 13:30:48.517 posi (EURUSD,M15)       ProfitPoint 500
2017.07.27 13:30:48.517 posi (EURUSD,M15)       CurrentProfit -9
2017.07.27 13:30:48.517 posi (EURUSD,M15)       ИТОГО 50.0


¡¡¡PERO!!! Desgraciadamente, en el momento de cerrar la posición, nadie podrá adivinar cuál será la cotización de la moneda de los beneficios a la de los depósitos. En este sentido, es imposible determinar un valor absolutamente preciso. Bueno, no hay manera de mirar hacia el futuro.

 
Vitaly Muzichenko:

No, para calcular el beneficio/pérdida antes de abrir una posición, pero en la moneda del depósito, no del instrumento

¿Por qué necesita conocer las pérdidas y ganancias en su caso, no para controlar los riesgos? - La moneda del depósito está clara, aunque no está claro en qué condiciones del mundo real se utilizaría.
 
Alexey Viktorov:

Trataré de llegar una última vez... No tengo una cuenta con las herramientas mencionadas en el problema, pero aquí hay un script que funciona en forex. El resultado coincide con los valores que aparecen como pista como en esta captura de pantalla


Tengo dos puestos vacantes. Este es el resultado del trabajo del script


¡¡¡PERO!!! Desgraciadamente, en el momento de cerrar la posición, nadie podrá adivinar cuál será la cotización de la moneda de los beneficios a la de los depósitos. En este sentido, es imposible determinar un valor absolutamente preciso. Bueno, no hay manera de mirar hacia el futuro.

Esto es lo que mostró el script:

2017.07.27 18:22:33.684 Seascape (SBRF-9.17,M15)        PositionSymbol SBRF-9.17
2017.07.27 18:22:33.684 Seascape (SBRF-9.17,M15)        SymbolCurrencyProfit RUR
2017.07.27 18:22:33.684 Seascape (SBRF-9.17,M15)        PositionTP 16777
2017.07.27 18:22:33.684 Seascape (SBRF-9.17,M15)        PositionOpen 16677
2017.07.27 18:22:33.684 Seascape (SBRF-9.17,M15)        PositionProfit 1.07
2017.07.27 18:22:33.684 Seascape (SBRF-9.17,M15)        ProfitPoint 100
2017.07.27 18:22:33.684 Seascape (SBRF-9.17,M15)        CurrentProfit 64
2017.07.27 18:22:33.684 Seascape (SBRF-9.17,M15)        ИТОГО 1.671875
 
Vitaly Muzichenko:

Esto es lo que mostraba el guión:

Vitaly, puedes averiguarlo tú mismo... El principio es más simple que 3 rublos...

PositionGetDouble(POSITION_PROFIT);

Devuelve el beneficio de la posición en la moneda del depósito. Si se divide este valor por el número de puntos entre el precio de apertura y el actual, se obtiene el valor en puntos de la moneda de depósito... Sólo queda multiplicar el valor por el número de pips desde la apertura hasta el tp y ya está... Pero como no puedo, y me da pereza registrar una nueva cuenta para esto, tienes que averiguarlo tú mismo. Pero simplemente no sabe lo que debe obtener, ¿cómo puede saber si el resultado es correcto o no? Es posible que tenga que imprimir algunos valores adicionales para entenderlo. ¿Qué cuenta como cláusula? No sé, tal vez haya que tenerlo en cuenta de alguna manera. ¿O se tiene en cuenta de alguna manera el tamaño del contrato estándar... No lo sé.

 

Cómo entender el gráfico gris


en modo de imagen normal


 

En MT4 apuntas con el ratón en el gráfico y puedes ver en qué punto está - pero aquí la imagen es estática - fea.

 
¿Cómo puedo trazar la optimización por un indicador específico (beneficio/pérdida/fv)?
 
Hola a todos. Tengo un problema, he cargado dinero en mi cuenta MQL5 y he descargado la aplicación MetaTrader 5, pero no puedo transferir el dinero a ella para empezar a operar. Necesito ayuda.
 
Minora125:
Buenas tardes a todos . Tengo un problema, he cargado dinero en mi cuenta MQL5 y he descargado la aplicación MetaTrader 5, pero no puedo transferir el dinero a ella para empezar a operar. Necesito ayuda.

MQL5 no es una empresa de corretaje, no permite operar en una cuenta real. Para el dinero transferido puede utilizar los servicios: Freelance, Market, Cloud.

Envíe su solicitud al Servicio de Atención al Cliente (hay un enlace en su perfil) y solicite el reembolso del dinero transferido erróneamente.

 

Después de un pase en el probador, un gráfico se abre con las operaciones, ¿cómo puedo desactivar esto?

Razón de la queja: