Изучаем и пишем вместе на MQL5 - страница 3

 
FlyAgaric   :

"Мне представляется совсем простая штука..."

В качестве среды разработки использовать бесплатную MS Visual Studio (или любой аналог).

Мы выпустим штатный "переходник" mql5.exe для включения возможности компиляции из других IDE. Правда отладка будет работать только из MetaEditor.

Правда лично я сомневаюсь, что будет иметь какой-то смысл работать с MQL5 кодом из других IDE.

MetaEditor будет усовершенствоваться, а также получит прямую интеграцию с сайтом MQL5.com и его Code Base. 

А язык MQL4(MQL5) оформить в виде библиотеки на одном из языков (VB, C++, C#). Последний,

на мой взгляд, наиболее выразительный. Получаем отлаженную и проверенную временем среду разработки

со всеми необходимыми атрибутами. И компилированный код наиболее подходящий для Окон.

Если нужно написать максимально быстродействующий код, то можете делать собственные DLL библиотеки и вызывать их из MQL5.

По заявлению авторов в MQL5 всё будет работать в 4-20 раз быстрее. Не заметил. Простой индикатор

Moving Average с небольшими наворотами работает значительно медленнее, нежели в MQL4.

Я высказал своё мнение, если это кого-то задевает - прошу извинить. 

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

Как только подойдем к релизу системы, мы опубликуем с исходниками открытые тесты производительности, чтобы любой мог проверить и удостовериться.
 
Renat :


Если нужно написать максимально быстродействующий код, то можете делать собственные DLL библиотеки и вызывать их из MQL5.


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


Как только подойдем к релизу системы, мы опубликуем с исходниками открытые тесты производительности, чтобы любой мог проверить и удостовериться.

Спасибо за внимание. Никак не думал, что в выходной день кто-то будет читать.

Renat, это были мои мысли вслух. Буду очень рад, если всё задуманное у вас получиться.

Что касается использования DLL, то я не смог зацепить ни в MT4, ни в MT5. Писал в C++ и C#.

Поздравления с наступающим праздником и успехов MetaQuotes Software Corp.

 
FlyAgaric   :

Что касается использования DLL, то я не смог зацепить ни в MT4, ни в MT5. Писал в C++ и C#.

Поздравления с наступающим праздником и успехов MetaQuotes Software Corp.

Приложите обрезанный проект DLL с исходниками в ZIP архиве прямо в форум - наверняка помогут.

Спасибо за поздравления!

 

Всех  с насупающим!

Знатоки, помогите.

Нужно в экспрете  получить время последней котировки. Может есть какой-то простой способ?

Пока, делаю так:

 

      err=0;
      do
        {
         rates_total=CopyTime(NULL,PERIOD_CURRENT,0,1,iTime);
         err++;
        }
      while(rates_total<=0 && err<QUANTITY_OF_ATTEMPTS);
      if(err>=QUANTITY_OF_ATTEMPTS)
        {
         cur_time=TimeCurrent();
        }
      else
        {
         cur_time=iTime[0];
        } 

 Может есть способ по проще? 

Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте - Документация по MQL5
 
vdv2001   :

Всех  с насупающим!

Знатоки, помогите.

Нужно в экспрете  получить время последней котировки. Может есть какой-то простой способ?

Пока, делаю так:

 

 Может есть способ по проще? 

Посмотрите раздел  Структура для получения текущих цен
 

Добрый день.

Мой эксперт расчитывает рыночный профиль на M1, все работает нормально когда его бросаеш на график, но если выключить терминал и включить его через несколько часов, возникает ошибка и эксперт вылетает.

Я подозреваю что это связано с подкачной истории, функция инициализации отрабатывает раньше чем происходит загрузка обновленных данных (основные расчеты производятся при инициализации) из за этого происходит сбой.

Возникает вопрос, как мне из Init определить, что данные по инструменту полностью загружены. Проверка на подключение терминала к серверу не всегда помогает, т.е. если "свежих" данных не очень много то работает нормально, если за несколько дней то вылетает по ошибке, либо не расчитывает последние дни.

Подскажите как поднять флаг, что все данные обновлены? 

Инструмент «Ценовая гистограмма» (Рыночный профиль) и его реализация на MQL5
Инструмент «Ценовая гистограмма» (Рыночный профиль) и его реализация на MQL5
  • 2010.01.26
  • Dmitry
  • www.mql5.com
Рыночный профиль был разработан Питером Стидлмайером (Peter Steidlmayer), который предложил использовать альтернативное представление информации как о горизонтальном, так и о вертикальном движении рынка, что дает полностью отличный набор моделей. Он предположил, что у рынка существует основной рыночный пульс, или фундаментальная модель, которая называется цикл равновесия и неравновесия (cycle of equilibrium and disequilibrium). В данной статье я сделаю попытку дать общие понятия об упрощенной модели Рыночного профиля (Market Profile) – Ценовой Гистограмме (Price Histogram) и расскажу, как реализовал данный инструмент на MQL5.
 
vdv2001   :

Добрый день.

Мой эксперт расчитывает рыночный профиль на M1, все работает нормально когда его бросаеш на график, но если выключить терминал и включить его через несколько часов, возникает ошибка и эксперт вылетает.

Я подозреваю что это связано с подкачной истории, функция инициализации отрабатывает раньше чем происходит загрузка обновленных данных (основные расчеты производятся при инициализации) из за этого происходит сбой.

Возникает вопрос, как мне из Init определить, что данные по инструменту полностью загружены. Проверка на подключение терминала к серверу не всегда помогает, т.е. если "свежих" данных не очень много то работает нормально, если за несколько дней то вылетает по ошибке, либо не расчитывает последние дни.

Подскажите как поднять флаг, что все данные обновлены? 

Перенесите инициализацию на истории из OnInit() в OnTick() (придется поставить проверку, чтобы код исполнялся только 1 раз) и все проблемы с подкачкой исчезнут

 
Кроме того, посмотрите раздел Организация доступа к данным
 
alsu   :

Перенесите инициализацию на истории из OnInit() в OnTick() (придется поставить проверку, чтобы код исполнялся только 1 раз) и все проблемы с подкачкой исчезнут

Одна проблема исчезла, но после переноса расчотов в OnTick() появилась другая теперь на рынках которые в двнный момент не работают получается пустой график, функция OnTick() не вызывается.

 
Rosh   :
Кроме того, посмотрите раздел Организация доступа к данным


Спасибо удалось решить таким образом:

int OnInit()
  {
//---
   while(!(bool)SeriesInfoInteger(Symbol(),0,SERIES_SYNCRONIZED))
     {
      Sleep(20);
     }
   if(ExtExpert.Init())
      return(0);
   else
      return(-1);
  }
Причина обращения: