//+------------------------------------------------------------------+//|| Calcula el nivel de Trailing Stop ||.//+------------------------------------------------------------------+double CalculateTrailingStop(int symbol_number,ENUM_POSITION_TYPE position_type)
{
//--- Variables para los cálculosdouble level =0.0;
double buy_point =low[symbol_number].value[1]; // Valor bajo para Comprardouble sell_point =high[symbol_number].value[1]; // Valor alto para Vender
No será correcto hacerlo. Si la posición y el precio de la barra se abren con un gap, el StopLoss no se establecerá correctamente.
El artículo es ordenado y fácil de seguir, y proporcionar la configuración en los archivos .set. Tuve un problema con los modos de ejecución símbolo, específicamente la condición de comprobar si era instantánea o mercado, y sólo después de que dejar que las órdenes se abren, que tuve que quitar, pero todo funcionó bien .
Tengo una pregunta. He visto muchos planteamientos avanzados, como este, que se construyen desde la base despreciando la estructura Expert, ExpertSignal, ExpertTrade.... proporcionada, aunque dediquen mucho código (y tiempo, supongo) a replicar algunas de sus características. ¿Alguien podría justificarme esto, por favor?
¡Hola a todos!
Estoy intentando probar este EA pero me aparece el siguiente mensaje en Strategy Tester: "Error al abrir la posición: 4753 - 1 Posición no encontrada". No entiendo por qué. Esto sucede cuando se ejecuta la función "trade.PositionOpen" en la línea 159 del archivo "TradeFunctions.mqh". ¿Alguien me puede dar una ayuda por favor?
¿Podría decirme dónde se produce la inversión de posición descrita por el autor? Aquí está su código con la descripción
//--- Si hay una posiciónelse
{
//--- Obtener el tipo de posición
GetPositionProperties(symbol_number,P_TYPE);
//--- Si la posición es opuesta a la señal y la inversión de posición está activadaif(pos.type==opposite_position_type && Reverse[symbol_number])
{
//--- Obtener el volumen de posición
GetPositionProperties(symbol_number,P_VOLUME);
//--- Ajustar el volumen
lot=pos.volume+CalculateLot(symbol_number,Lot[symbol_number]);
//--- Vamos a invertir la posición
OpenPosition(symbol_number,lot,order_type,position_open_price,sl,tp,comment);return;
}
mire la función OpenPosition(número_símbolo,lote,tipo_orden,precio_de_posición_abierta,sl,tp,comentario);
//+------------------------------------------------------------------+//|| Abre una posición|//+------------------------------------------------------------------+void OpenPosition(int symbol_number,
double lot,
ENUM_ORDER_TYPE order_type,
double price,
double sl,
double tp,
string comment)
{
//--- Establecer el número mayor en la estructura comercial
trade.SetExpertMagicNumber(MagicNumber);
//--- Establecer el tamaño de deslizamiento en puntos
trade.SetDeviationInPoints(CorrectValueBySymbolDigits(Deviation));
//--- Modo de ejecución instantánea y modo de ejecución de mercado// *** A partir de la construcción 803, Stop Loss y Take Profit niveles ***// *** puede establecerse al abrir una posición en modo SYMBOL_TRADE_EXECUTION_MARKET ***if(symb.execution_mode==SYMBOL_TRADE_EXECUTION_INSTANT ||
symb.execution_mode==SYMBOL_TRADE_EXECUTION_MARKET)
{
//--- Si la posición no está abierta, imprime un mensaje al respectoif(!trade.PositionOpen(Symbols[symbol_number],order_type,lot,price,sl,tp,comment))
Print("Error al abrir una posición: ",GetLastError()," - ",ErrorDescription(GetLastError()));
}
}
¡Es sólo un bloqueo! No hay inversión... ¡lo mismo con el incremento de lote! ¿Puedes explicar, tal vez estoy equivocado?
Para iniciar sesión y usar el sitio web MQL5.com es necesario permitir el uso de Сookies.
Por favor, active este ajuste en su navegador, de lo contrario, no podrá iniciar sesión.
Ha iniciado sesión. La autenticación de dos factores se ha desactivado. Vuelva a configurarla y escanee un nuevo código QR, o continúe con la autenticación de dos factores desactivada.
No será correcto hacerlo. Si la posición y el precio de la barra se abren con un gap, el StopLoss no se establecerá correctamente.
El artículo es ordenado y fácil de seguir, y proporcionar la configuración en los archivos .set. Tuve un problema con los modos de ejecución símbolo, específicamente la condición de comprobar si era instantánea o mercado, y sólo después de que dejar que las órdenes se abren, que tuve que quitar, pero todo funcionó bien .
Tengo una pregunta. He visto muchos planteamientos avanzados, como este, que se construyen desde la base despreciando la estructura Expert, ExpertSignal, ExpertTrade.... proporcionada, aunque dediquen mucho código (y tiempo, supongo) a replicar algunas de sus características. ¿Alguien podría justificarme esto, por favor?
¡Hola a todos!
Estoy intentando probar este EA pero me aparece el siguiente mensaje en Strategy Tester: "Error al abrir la posición: 4753 - 1 Posición no encontrada". No entiendo por qué. Esto sucede cuando se ejecuta la función "trade.PositionOpen" en la línea 159 del archivo "TradeFunctions.mqh". ¿Alguien me puede dar una ayuda por favor?
¿Podría decirme dónde se produce la inversión de posición descrita por el autor? Aquí está su código con la descripción
mire la función OpenPosition(número_símbolo,lote,tipo_orden,precio_de_posición_abierta,sl,tp,comentario);
¡Es sólo un bloqueo! No hay inversión... ¡lo mismo con el incremento de lote! ¿Puedes explicar, tal vez estoy equivocado?¿Podría decirme dónde se produce la inversión de posición descrita por el autor? Aquí está su código con la descripción
mire la función OpenPosition(número_símbolo,lote,tipo_orden,precio_de_posición_abierta,sl,tp,comentario);
¡Es sólo un bloqueo! No hay inversión... ¡lo mismo con el incremento de lote! ¿Puede explicar, tal vez estoy equivocado?Hay dos tipos de cuentas de trading: netting y hedge.
Existen dos tipos de cuentas de operaciones: de compensación y de cobertura.
¡La tengo! Gracias.