Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
É um desejo persistente de enganar e enganar a si mesmo :) .
Adicionado: Você já tentou exibir todos os símbolos e mostrar a coluna "Tempo" na janela "Visão Geral do Mercado" e descobrir o símbolo do bitcoin que está sendo negociado sem parar? Além disso, essa verificação básica também ajuda:
Não é uma solução de tamanho único, mas funciona para mim
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, то через час (или с запасом в несколько минут) покажет фалсе.
// Но наверняка есть ситуации когда реально сейчас можно торговать а через час нельзя - тогда неправильный ответ :(
}
Mas certamente há situações em que você pode realmente negociar agora e não em uma hora.
Claro que sim - todas as vezes uma hora antes do fechamento do mercado ))))
Eu discordo. A última data congelada na tela é sexta-feira 21:59. Se eu definir o turno em 3600 seg - o segundo parâmetro IsTradeAllowed(Symbol(), TimeCurrent()+3600 retorna trude. Acrescentei alguns segundos adicionais para que funcionasse. Bem, se é sexta-feira às 21:50, tudo deve funcionar.
Para ser honesto, eu não verifiquei, apenas verifiquei a conexão com o corretor Reconnector (encontrei-o em algum lugar no fórum) que sempre se reconectava nos fins de semana. Portanto, não é significativo para mim.
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);
}
Varia, portanto, esta verificação não garante nada.
Portanto, a comercialização por especialistas é proibida, mas o mercado está aberto.
Agora, segunda-feira, o mercado está aberto e os especialistas são proibidos pelo escritório:
Pelo contrário, acontece que em alguns outros escritórios nos fins de semana, quando o mercado é fechado, estas verificações indicam que o mercado está aberto e que os especialistas receberam permissão para negociar.
ontem.
até agora está funcionando,
Este não:
Fórum sobre comércio, sistemas automatizados de comércio e testes de estratégia comercial
Como sei que não há negociação nos fins de semana?
Renat Akhtyamov, 2018.02.11 05:27
OBRIGADO!
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);
}
há algo sobre a função 5p que não funciona:
(Pergunto-me por que ????)
https://www.mql5.com/ru/docs/standardlibrary/tradeclasses/cterminalinfo/cterminalinfoistradeallowed