![MQL5 - Lenguaje de estrategias comerciales para el terminal de cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Sí, así es. Sólo que aún no lo he probado así.
Pruébalo...
Añadido por
if (trans.order != my_order_ticket)
{
if(trans.symbol==Symbol())
{
if(проверяем магик)
{
//Сработал SL или TP
}
}
}
break;
¿Qué tiene de malo este método?
if (trans.order != my_order_ticket)
{
//Сработал SL или TP
}
break;
Porque las últimas posiciones conocidas de SL y TP pueden no coincidir con el precio de la operación y no habrá nada con lo que comparar.
Y no te gusta compartir tus códigos, pero miras los de los demás con gran placer...
Esto no siempre funcionará:
double G_LastSLlevel = 0.0; //Последний известный уровень SL
double G_LastTPlevel = 0.0; //Последний известный уровень TP
//——————————————————————————————————————————————————————————————————————————————
void OnTradeTransaction (const MqlTradeTransaction &trans, // структура торговой транзакции
const MqlTradeRequest &request, // структура запроса
const MqlTradeResult &result) // структура ответа
{
if(trans.type == TRADE_TRANSACTION_DEAL_ADD)
{
if(PositionsAny (G_Symbol))
{
G_LastSLlevel = GetSLlevel (G_Symbol);
G_LastTPlevel = GetTPlevel (G_Symbol);
Print ("SLlevel: " + G_LastSLlevel);
Print ("TPlevel: " + G_LastTPlevel);
}
if(trans.deal != G_LastTicket)
{
if(trans.price == G_LastSLlevel)
Print ("Сработал SL");
if(trans.price == G_LastTPlevel)
Print ("Сработал TP");
}
}
}
Pruébalo...
¿Qué tiene de malo este método?
Tienes que guardarmi_orden_ticket
¿Sabes siquiera de qué estás hablando?
my_order_ticket - esta orden tiene un lugar para vivir si tiene
y estás obligado a mantenerlos.
Tienes que almacenarmi_pedido_ticket
Lo probaré algún día. Gracias. En este momento estoy ocupado con otras tareas.
Y no sólo eso.
Sí, en realidad se propone mantener y almacenar el propio entorno, comparándolo con lo que produce OnTradeTransaction.
Esto no es una solución.
Sí, en realidad se propone mantener y almacenar el propio entorno, comparándolo con lo que produce OnTradeTransaction.
Esto no es una solución.
Simplemente no estás siguiendo el tema de cerca. :)
El iniciador del tema original escribió:
"¿Cómo puedo saber enOnTradeTransaction() que el SL/TP se ha activado? "
¿Cuál debería ser la solución?
No se puede recordar ni comprobar nada en absoluto, excepto la propia posición, siempre que
No operó ninguna otra orden
if (!PositionSelect(Symbol())
{
//Сработал SL или TP
}
break;
Simplemente no estás siguiendo el tema de cerca. :)
El iniciador del tema original escribió:
El que está poco atento eres tú, yo no soyel que inicia el tema.
También debería mostrar un código como este:
void OnTradeTransaction (const MqlTradeTransaction &trans, // структура торговой транзакции
const MqlTradeRequest &request, // структура запроса
const MqlTradeResult &result) // структура ответа
{
}
Bueno, cuál es el problema, quién lo necesita, lo termina él mismo, no le gusta, ¡hay trabajo! ¿Es así?