Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Это упорное желание обманываться и обманывать самого себя :) .
Добавлено: А не пробовали отобразить все символы и показать колонку "Время" в окне "Обзор рынка" и обнаружить символ биткоина по которому торги идут без выходных? Также ещё помогает такая элементарная проверка:
Не универсальное решение, но для меня подходит
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, то через час (или с запасом в несколько минут) покажет фалсе.
// Но наверняка есть ситуации когда реально сейчас можно торговать а через час нельзя - тогда неправильный ответ :(
}
Но наверняка есть ситуации когда реально сейчас можно торговать а через час нельзя
Конечно, есть - каждый раз за час до закрытия рынка )))
Не соглашусь. Последняя дата замершая на экране пятница 21:59. Если я ставлю сдвиг на 3600 сек - то и второй параметр IsTradeAllowed(Symbol(), TimeCurrent()+3600 возвращает труе. Добавил несколько сек запаса чтобы срабатывало. Ну а если будет пятница 21:50, то все должно работать.
Но честно я это не контролировал, у меня просто проверка подключения к брокеру Reconnector (где-то на форуме нашел), который в выходные постоянно переподключался. Так что для меня это не существенно.
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);
}
По-разному бывает, поэтому такая проверка ничего не гарантирует.
тобишь, торговля экспертами запрещена, но рынок то открыт.
Вот сейчас, понедельник, рынок открыт, а экспертам запрет от конторы:
Напротив, бывает, что в некоторых других конторах в выходные дни, когда рынок закрыт, эти проверки указывают, что рынок открыт и экспертам дано разрешение торговать.
вчера маялся
пока работает,
а вот это уже нет:
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Как узнать, что по выходным нет торговли?
Renat Akhtyamov, 2018.02.11 05:27
СПАСИБО!
Для МТ4
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);
}
чо то в 5-рке не проходит функция:
(интересно, почему ???)
https://www.mql5.com/ru/docs/standardlibrary/tradeclasses/cterminalinfo/cterminalinfoistradeallowed