Ошибки, баги, вопросы - страница 385

 
stringo:
В индикаторе вызываете?
Да, в индикаторе.
 
Dima_S:
Да, в индикаторе.

 

В индикаторах запрещён вызов некоторых функций, занимающих вычислительные ресурсы и тормозящие расчёт - торговые функции, Sleep, MessageBox

Документация по MQL5: Торговые функции
Документация по MQL5: Торговые функции
  • www.mql5.com
Торговые функции - Документация по MQL5
 

Добрый день!

Тут возник такой вопрос: на каком сервере можно испытытать разные типы исполнения?

SYMBOL_TRADE_EXECUTION_REQUEST

Торговля по запросу

SYMBOL_TRADE_EXECUTION_INSTANT

Торговля по потоковым ценам

SYMBOL_TRADE_EXECUTION_MARKET

Исполнение ордеров по рынку

 

 Везде только исполнение по потоковым ценам. Необходимо отладить код в том числе по рынку, и по запросу.

Да, естественно код на MQL5. 

Спасибо!

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 
stringo:

 

В индикаторах запрещён вызов некоторых функций, занимающих вычислительные ресурсы и тормозящие расчёт - торговые функции, Sleep, MessageBox

Понятно. Значит, придется вручную вычислять. Хотя в МТ4 данная функция
MarketInfo("EURUSD",MODE_MARGINREQUIRED)

и в индикаторе работает прекрасно.

 
Dima_S:
Понятно. Значит, придется вручную вычислять. Хотя в МТ4 данная функция

и в индикаторе работает прекрасно.

 

SymbolInfoDouble (MarketInfo) - это простой запрос существующей информации. А OrderCalcMargin - вычислительная функция (при расчёте на кроссах либо на отсутствующем в данный момент символе она может запрашивать недостающую информацию с сервера со всеми вытекающими последствиями)

 

Добрый день!

1. Будет ли добавлено в список событий  OnChartEvent() событие скроллинга графика?

2. Почему функция CopyBuffer, помещенная в пользовательском индикаторе, приводит к ошибке 4806,

в то время, как эта же функция с теми же самыми параметрами в коде эксперта работает нормально? 

Переход на новые рельсы: пользовательские индикаторы в MQL5
Переход на новые рельсы: пользовательские индикаторы в MQL5
  • 2009.11.23
  • Андрей
  • www.mql5.com
Я не буду перечислять все новые возможности и особенности нового терминала и языка. Их действительно много, и некоторые новинки вполне достойны освещения в отдельной статье. Вы не увидите здесь кода, написанного по принципам объектно-ориентированного программирования — это слишком серьезная тема для того, чтобы просто быть упомянутой в контексте как дополнительная вкусность для кодописателей. В этой статье остановимся подробней на индикаторах, их строении, отображении, видах, а также особенностях их написания по сравнению с MQL4.
 

Еще есть вопрос. Хотелось бы знать время окончания торговой сессии по инструменту в пятницу.

Для этого использую функцию: 

  datetime bt,et;
  SymbolInfoSessionTrade("EURUSD",FRIDAY,0,bt,et);

 

 Но почему то функция возвращает все время значение false. Непонятно  еще что за номер сессии и откуда его брать?

Документация по MQL5: Получение рыночной информации / SymbolInfoSessionQuote
Документация по MQL5: Получение рыночной информации / SymbolInfoSessionQuote
  • www.mql5.com
Получение рыночной информации / SymbolInfoSessionQuote - Документация по MQL5
 
bobsley:

Еще есть вопрос. Хотелось бы знать время окончания торговой сессии по инструменту в пятницу.

Для этого использую функцию: 

Но почему то функция возвращает все время значение 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.14 19:51:02 ******* Session: from 1970.01.01 00:00:00 to 1970.01.02 00:00:00
2011.05.14 19:51:02 ******* Session: from 0 to 86400

Следовательно для определения окончания торговой сессии в пятницу останется определить дату начала отсчета (00:00 конкретной пятницы) и прибавить к этому времени результат который функция вернула как время окончания сессии.

PS

Также стоит учитывать что сервер обычно закрывает сессию со смещением +/- от 1 до 2 секунд.

Как на это дело влияет летнее/зимнее время тоже вопрос, но если мне глаза не врут при закрытии на выходные последние котировки были получены в 23:00:00 и 23:00:01 (в зависимости от символа).

 

Разработчикам!

Обратите плиз внимание на мою заявку #105082.

Выявлены проблемы компилирования библиотек с использованием модификатора export!

 

build 448
При попытке открыть свойства окна
или свойства любого индикатора,
или попытке установить на график любой индикатор,
клиентский терминал закрывается.
W XP3 32

По-моему, это "лучшее" обновление из всех. 

Причина обращения: