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
Es un deseo persistente de engañar y engañarse a sí mismo :) .
Añadido: ¿Has probado a desplegar todos los símbolos y mostrar la columna "Tiempo" en la ventana "Visión general del mercado" y descubrir el símbolo de bitcoin que está cotizando de forma ininterrumpida? Además, una comprobación tan básica también ayuda:
No es una solución única, pero a mí me funciona
bool CanTrade()
{
bool res1=IsTradeAllowed(Symbol(), TimeCurrent());
bool res2=IsTradeAllowed(Symbol(), TimeCurrent()+4000); //с запасом,
if (!res1) return false; //сейчас торговать запрещено
if (res1 && res2) return true; //и сейчас и через час торговать можно
return false; //если зависло разрешение от TimeCurrent, то через час (или с запасом в несколько минут) покажет фалсе.
// Но наверняка есть ситуации когда реально сейчас можно торговать а через час нельзя - тогда неправильный ответ :(
}
Pero seguro que hay situaciones en las que realmente se puede operar ahora y no en una hora
Por supuesto que sí - cada vez que una hora antes del cierre del mercado ))))
No estoy de acuerdo. La última fecha congelada en la pantalla es el viernes a las 21:59. Si establezco el desplazamiento a 3600 seg - el segundo parámetro IsTradeAllowed(Symbol(), TimeCurrent()+3600 devuelve trude. He añadido algunos segundos adicionales para que funcione. Bueno, si es el viernes a las 21:50, todo debería funcionar.
Para ser honesto, no lo comprobé, sólo comprobé la conexión con el broker Reconnector (lo encontré en algún lugar del foro) que siempre se reconectaba los fines de semana. Así que no es significativo para mí.
bool MarketOpen(string Symbl)
{
if(IsTradeAllowed(Symbl,TimeCurrent()+1)==false)return(false); //рынок закрыт
return(true);
}
bool MarketOpen(string Symbl)
{
if(IsTradeAllowed(Symbl,TimeCurrent()+1)==false)return(false); //рынок закрыт
return(true);
}
Varía, por lo que esta comprobación no garantiza nada.
Así que la negociación por parte de los expertos está prohibida, pero el mercado está abierto.
Ahora, el lunes, el mercado está abierto y los expertos están prohibidos por la oficina:
Por el contrario, ocurre que en algunas otras oficinas los fines de semana, cuando el mercado está cerrado, estas comprobaciones indican que el mercado está abierto y los expertos han recibido permiso para operar.
ayer.
hasta ahora está funcionando,
Este no lo hace:
Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias de trading
¿Cómo sé que no hay comercio los fines de semana?
Renat Akhtyamov, 2018.02.11 05:27
¡GRACIAS!
Para MT4.
bool IsSessionOpen(string smb)
{
//MqlDateTime dt; datetime tc=TimeTradeServer(dt);
datetime tc= TimeCurrent();
// проверяем время торгов по инструменту
datetime t=(datetime)SymbolInfoInteger(smb, SYMBOL_EXPIRATION_TIME);
if (tc>t && t>0) return(false);
t=(datetime)SymbolInfoInteger(smb, SYMBOL_START_TIME);
if (tc<t && t>0) return(false);
// проверяем сессии инструмента
datetime ds=tc/(60*60*24); ds*=(60*60*24); // начало сегодня
datetime sec=tc-ds; // число секунд от начала дня
bool b=false;
for (int l=0; l<10; l++) // подразумеваем, что админ сделал не более 10 сессий в сутки
{
datetime fs, ts;
if (!SymbolInfoSessionTrade(smb, TimeDayOfWeek(TimeCurrent()), l, fs, ts)) break; // данные сессии
if (sec>=fs && sec<=ts) return(true);
}
return(false);
}
hay algo en la función 5p que no funciona:
(Me pregunto por qué...)
https://www.mql5.com/ru/docs/standardlibrary/tradeclasses/cterminalinfo/cterminalinfoistradeallowed