Dima_S: Понятно. Значит, придется вручную вычислять. Хотя в МТ4 данная функция
и в индикаторе работает прекрасно.
SymbolInfoDouble (MarketInfo) - это простой запрос существующей информации. А OrderCalcMargin - вычислительная функция (при расчёте на кроссах либо на отсутствующем в данный момент символе она может запрашивать недостающую информацию с сервера со всеми вытекающими последствиями)
Я не буду перечислять все новые возможности и особенности нового терминала и языка. Их действительно много, и некоторые новинки вполне достойны освещения в отдельной статье. Вы не увидите здесь кода, написанного по принципам объектно-ориентированного программирования — это слишком серьезная тема для того, чтобы просто быть упомянутой в контексте как дополнительная вкусность для кодописателей. В этой статье остановимся подробней на индикаторах, их строении, отображении, видах, а также особенностях их написания по сравнению с MQL4.
Еще есть вопрос. Хотелось бы знать время окончания торговой сессии по инструменту в пятницу.
Для этого использую функцию:
Но почему то функция возвращает все время значение false. Непонятно еще что за номер сессии и откуда его брать?
Насколько я понимаю под сессиями понимаются торговые и котировочные сессии внутри дня. Но на сервере (может быть только для валют) настроена только одна сессия - 0.
Физически определить время начала и окончания торговли можно в свойствах инструмента (на сервере MQ это 00:00 - 24:00).
Програмно можно получить при помощи SymbolInfoSessionTrade(). Есть правда одно но - Вернется не точная дата начала и окончания сессии, а относительное значение в секундах от начала суток до момента начала и окончания сессии (если перевести в секунды конечно).
bool InfoSession;
datetime from = -1,to = -1;
InfoSession = SymbolInfoSessionTrade(Symbol(),FRIDAY,0,from,to);
if(InfoSession)
{
Print("Session: from ",from," to ",to);
Print("Session: from ",(int)from," to ",(int)to);
}
Вот такой пример выдает следующий результат -
2011.05.1419:51:02 ******* Session: from 1970.01.0100:00:00 to 1970.01.0200:00:002011.05.1419:51:02 ******* Session: from 0 to 86400
Следовательно для определения окончания торговой сессии в пятницу останется определить дату начала отсчета (00:00 конкретной пятницы) и прибавить к этому времени результат который функция вернула как время окончания сессии.
PS
Также стоит учитывать что сервер обычно закрывает сессию со смещением +/- от 1 до 2 секунд.
Как на это дело влияет летнее/зимнее время тоже вопрос, но если мне глаза не врут при закрытии на выходные последние котировки были получены в 23:00:00 и 23:00:01 (в зависимости от символа).
build 448 При попытке открыть свойства окна или свойства любого индикатора, или попытке установить на график любой индикатор, клиентский терминал закрывается. W XP3 32
В индикаторе вызываете?
Да, в индикаторе.
В индикаторах запрещён вызов некоторых функций, занимающих вычислительные ресурсы и тормозящие расчёт - торговые функции, Sleep, MessageBox
Добрый день!
Тут возник такой вопрос: на каком сервере можно испытытать разные типы исполнения?
SYMBOL_TRADE_EXECUTION_REQUEST
Торговля по запросу
SYMBOL_TRADE_EXECUTION_INSTANT
Торговля по потоковым ценам
SYMBOL_TRADE_EXECUTION_MARKET
Исполнение ордеров по рынку
Везде только исполнение по потоковым ценам. Необходимо отладить код в том числе по рынку, и по запросу.
Да, естественно код на MQL5.
Спасибо!
В индикаторах запрещён вызов некоторых функций, занимающих вычислительные ресурсы и тормозящие расчёт - торговые функции, Sleep, MessageBox
MarketInfo("EURUSD",MODE_MARGINREQUIRED)и в индикаторе работает прекрасно.
Понятно. Значит, придется вручную вычислять. Хотя в МТ4 данная функция
и в индикаторе работает прекрасно.
SymbolInfoDouble (MarketInfo) - это простой запрос существующей информации. А OrderCalcMargin - вычислительная функция (при расчёте на кроссах либо на отсутствующем в данный момент символе она может запрашивать недостающую информацию с сервера со всеми вытекающими последствиями)
Добрый день!
1. Будет ли добавлено в список событий OnChartEvent() событие скроллинга графика?
2. Почему функция CopyBuffer, помещенная в пользовательском индикаторе, приводит к ошибке 4806,
в то время, как эта же функция с теми же самыми параметрами в коде эксперта работает нормально?
Еще есть вопрос. Хотелось бы знать время окончания торговой сессии по инструменту в пятницу.
Для этого использую функцию:
Но почему то функция возвращает все время значение false. Непонятно еще что за номер сессии и откуда его брать?
Еще есть вопрос. Хотелось бы знать время окончания торговой сессии по инструменту в пятницу.
Для этого использую функцию:
Но почему то функция возвращает все время значение false. Непонятно еще что за номер сессии и откуда его брать?
Насколько я понимаю под сессиями понимаются торговые и котировочные сессии внутри дня. Но на сервере (может быть только для валют) настроена только одна сессия - 0.
Физически определить время начала и окончания торговли можно в свойствах инструмента (на сервере MQ это 00:00 - 24:00).
Програмно можно получить при помощи SymbolInfoSessionTrade(). Есть правда одно но - Вернется не точная дата начала и окончания сессии, а относительное значение в секундах от начала суток до момента начала и окончания сессии (если перевести в секунды конечно).
Вот такой пример выдает следующий результат -Следовательно для определения окончания торговой сессии в пятницу останется определить дату начала отсчета (00:00 конкретной пятницы) и прибавить к этому времени результат который функция вернула как время окончания сессии.
PS
Также стоит учитывать что сервер обычно закрывает сессию со смещением +/- от 1 до 2 секунд.
Как на это дело влияет летнее/зимнее время тоже вопрос, но если мне глаза не врут при закрытии на выходные последние котировки были получены в 23:00:00 и 23:00:01 (в зависимости от символа).
Разработчикам!
Обратите плиз внимание на мою заявку #105082.
Выявлены проблемы компилирования библиотек с использованием модификатора export!
build 448
При попытке открыть свойства окна
или свойства любого индикатора,
или попытке установить на график любой индикатор,
клиентский терминал закрывается.
W XP3 32
По-моему, это "лучшее" обновление из всех.