Errores, fallos, preguntas - página 1418

 
Hola a todos.
Recientemente he empezado a programar y me he encontrado con un problema de este tipo, el StopLoss no está configurado. ¿Puede indicar dónde está el error?
int inicio()
{
if(CountTrades()==0)
{
double ima=iMA(Symbol(),PERIOD_H1,14,0,MODE_SMA,PRICE_CLOSE,1);
if(Pregunta>ima)
{
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0,",Magic,0,Blue);
if(ticket>0)
{
TP=NormalizarDoble(Pregunta+Toma de Beneficios*Punto,Dígitos);
bool modify1=OrderModify(ticket,OrderOpenPrice(),0,TP,0)
{
SL=NormalizeDouble(Ask-StopLoss*Point,Digits);
bool modify=OrderModify(ticket,OrderOpenPrice(),SL,0,0);
}
}
}
else if(Oferta<ima)
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,0,0,",Magic,0,Red);
if(ticket>0)
{
TP=NormalizarDoble(Oferta-TomaBeneficio*Punto,Dígitos);
bool modify1=OrderModify(ticket,OrderOpenPrice(),0,TP,0)
{
SL=NormalizarDoble(Oferta+StopLoss*Punto,Dígitos);
bool modify=OrderModify(ticket,OrderOpenPrice(),SL,0,0);
}
}
}
si no
{
int tipo_pedido=FindLastOrderType();
if(order_type==OP_BUY)
{
precio=FindLastPrice(OP_BUY);
if(Precio-Paso*Punto)
{
lastlot = FindLastLots(OP_BUY);
lastlot = NormalizeDouble(lastlot * Multiplier, 2);
ticket=OrderSend(Symbol(),OP_BUY,lastlot,Ask,Slippage,0,0,",Magic,0,Blue);
if(ticket>0)
ModificarPedidos(OP_BUY);
}
}
else if(order_type==OP_SELL)
{
precio=FindLastPrice(OP_SELL);
if(Oferta<=precio+Paso*Punto)
{
lastlot=FindLastLots(OP_SELL);
}
lastlot=NormalizarDoble(lastlot*Multiplicador,2);
ticket=OrderSend(Symbol(),OP_SELL,lastlot,Bid,Slippage,0,0,",Magic,0,Red);
if(ticket>0)
ModificarPedidos(OP_SELL);
}
}
}
return(0);
}
Gracias de antemano))
 
Сергей Верещак:
if(Pregunta>ima)
{
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0,",Magic,0,Blue);
if(ticket>0)
{
TP=NormalizarDoble(Pregunta+Toma de Beneficios*Punto,Dígitos);
bool modify1=OrderModify(ticket,OrderOpenPrice(),0,TP,0); establece el Take Profit y el Stop Loss con 0
{
SL=NormalizeDouble(Ask-StopLoss*Point,Digits);
bool modify=OrderModify(ticket,OrderOpenPrice(),SL,0,0); poner a cero el Stop Loss y el Take Profit, es decir, eliminar el establecido anteriormente
}
}
}

Gracias de antemano))
Híncale el diente, dale una propina...
 
Vladimir Pastushak:
Cavar, te di un consejo ...
Gracias Volodya. Investigaré un poco, lo averiguaré antes)))
 
Vladimir Pastushak:
Cavar, te di un consejo ...

Entonces, llevémoslo al estándar de los "nuevos" MQL4 y MQL5.

//TP=NormalizeDouble(Ask+TakeProfit*Point,Digits);
TP=NormalizeDouble(Ask+TakeProfit*_Point,_Digits);
 
Alexey Volchanskiy:

Entonces, llevémoslo al estándar de los "nuevos" MQL4 y MQL5.

//TP=NormalizeDouble(Ask+TakeProfit*Point,Digits);
TP=NormalizeDouble(Ask+TakeProfit*_Point,_Digits);

El 15 de mayo de este año hay un post de Renat Fatkhullin con el siguiente texto:

Guiones bajos para mostrar su condición de obsoleto. No se pueden utilizar variables tan simples declaradas globalmente, sino que se ven como variables locales normales.

Para mantener el lenguaje y el código limpio, deberíamos cambiar a Symbol(), Period(). Es sólo la reflexión y deshacerse de la herencia de la antigua.

Si es necesario, puedes buscar el post con el punto citado. Esta fue la respuesta de Renat a una de las preguntas de uno de los comunitarios, que empezaba así:

En MT4 las variables Punto, Dígitos... En MT5 estas mismas variables comienzan con un guión bajo...


P./S.: En consecuencia, partiendo del hecho de que los guiones bajos están desaprobados (deprecated o disapproved o not recommended for use in the future), entonces el uso de Point() y Digits() sin guiones bajos. /* En MQL4 también, este uso de Point() y Digits() con paréntesis después de sus nombres, como en MQL5, no produce errores en la operación y ningún error o advertencia en la compilación*/.

 

Hola, tengo una pregunta muy interesante, tengo 3 plataformas MT4 en mi ordenador, ¹1 es la principal, donde abrí una cuenta real. No. 2 y 3 - auxiliares, para probar los EAs, se abren cuentas demo. Cuando intento copiar una señal de https://www.mql5.com (selecciono una señal, pulso empezar a copiar, luego aparece una ventana diciendo que inicie MetaTrader4 y me suscriba a una plataforma, pulso esta ventana) se abre la plataforma número 3 en lugar de la plataforma número 1. ¿Cómo puedo corregirlo? ¿Cómo hacer que se abra la plataforma número 1?

 
Mihail Kuzmin:

Hola, tengo una pregunta muy interesante, tengo 3 plataformas MT4 en mi ordenador, ¹1 es la principal, donde abrí una cuenta real. No. 2 y 3 - auxiliares, para probar los EAs, se abren cuentas demo. Cuando intento copiar una señal de https://www.mql5.com (selecciono una señal, pulso empezar a copiar, luego aparece una ventana diciendo que inicie MetaTrader4 y se suscriba a una plataforma) abro la plataforma número 3 en lugar de la plataforma número 1. ¿Cómo puedo solucionarlo? ¿Cómo puedo abrir la plataforma número 1?

Si tienes un "zoo" de varios terminales, debes buscar la señal directamente desde el terminal que quieras copiar.
 
Karputov Vladimir:
Si tienes un "zoo" de varios terminales, debes buscar la señal directamente desde el terminal al que quieres copiar.
El terminal no funciona, sino que da un error...
 
Mihail Kuzmin:
El terminal no funciona y da un error...
¿Qué tipo de error? ¿Qué hace y en qué orden?
 
Karputov Vladimir:
¿Qué tipo de error? ¿Qué está haciendo, en qué orden?

Llevo un mes usando la página, me he suscrito a través de la página, y esta vez, por alguna razón se abre una plataforma completamente diferente.

Hace un mes me apunté a una señal a través de la página web, y me abrió la plataforma que necesitaba nº 1.