Пожелания для МТ5 - страница 31

 

Прошу рассмотреть


предложение добавить в MQL5 функционал позволяющий  менять из индикатора или эксперта или из скрипта

Макс кол баров в окне... 

бывает полезно сделать контролируемое из программы ограничение



 
Разработчикам. Обратите внимание плиз на мою заявку 18097 (понимаю вещица спорная, но всеж)...


PS

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

Или это такой хитрый ход, чтобы можно было в любой момент подсмотреть?

 
Interesting:


PS

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

Или это такой хитрый ход, чтобы можно было в любой момент подсмотреть?

Я бы возразил против такого предложения. После оптимизации мне для анализирования результатов требуется проверить по отдельности множество проходов в обычном режиме (достигается кликаньем на соответствующем проходе). Если результаты оптимизации исчезнут после первого же тестирования в обычном режиме, то будет потеряна ценная возможность работы с результатами.

 
Yedelkin:

Я бы возразил против такого предложения. После оптимизации мне для анализирования результатов требуется проверить по отдельности множество проходов в обычном режиме (достигается кликаньем на соответствующем проходе). Если результаты оптимизации исчезнут после первого же тестирования в обычном режиме, то будет потеряна ценная возможность работы с результатами.

 

Ну яж не настаиваю, о чем и говорит строка - > Или это такой хитрый ход, чтобы можно было в любой момент подсмотреть?

 

1)Необходимо добавить нормальные события, а не то что у вас реализовано.

первое что в голову пришло

OnBar,OnBarClose,OnQuote,OnDomChanged...

OnPositionOpened,OnPositionClosed...

OnConnected,Ondisconnected..

изменения статусов заявок и тп

2) переделать документацию в человечский вид, примерно как здесь: http://msdn.microsoft.com/en-us/library/system.data.aspx

3) "даешь API в массы" -)

ps Создается такое впечатление что разработчики или делают софт для новичков или сами же ими явлюятся 

System.Data Namespace ()
System.Data Namespace ()
  • msdn.microsoft.com
The namespace provides access to classes that represent the ADO.NET architecture. ADO.NET lets you build components that efficiently manage data from multiple data sources. In a disconnected scenario such as the Internet, ADO.NET provides the tools to request, update, and reconcile data in multiple tier systems. The ADO.NET architecture is...
 
anubis:

1)Необходимо добавить нормальные события, а не то что у вас реализовано.

первое что в голову пришло

OnBar,OnBarClose,OnQuote,OnDomChanged...

OnPositionOpened,OnPositionClosed...

OnConnected,Ondisconnected..

изменения статусов заявок и тп

2) переделать документацию в человечский вид, примерно как здесь: http://msdn.microsoft.com/en-us/library/system.data.aspx

3) "даешь API в массы" -)

ps Создается такое впечатление что разработчики или делают софт для новичков или сами же ими явлюятся 

Существует такая вещица как ПОЛЬЗОВАТЕЛЬСКИЕ события. Реализовать самостоятельно можно их любое число.

Я к примеру, давно уже отлавливаю OnConnected и OnDisconnected через таймер. Если Вам так хочется, создайте также OnBar и OnBarClose или любые другие события.

После чего спокойно отлавливайте их в OnChartEvent при помощи вот такого блока (все это в справке есть, зачем колесо изобретать?)

  if(id>CHARTEVENT_CUSTOM)
  //User event is received / Получено пользовательское событие
  {
  }

PS

А на уровне классов вообще любое (ну почти любое) событие можно соорудить и обработать...

 
Interesting:

Существует такая вещица как ПОЛЬЗОВАТЕЛЬСКИЕ события. Реализовать самостоятельно можно их любое число.

Я к примеру, давно уже отлавливаю OnConnected и OnDisconnected через таймер. Если Вам так хочется, создайте также OnBar и OnBarClose или любые другие события.

После чего спокойно отлавливайте их в OnChartEvent при помощи вот такого блока (все это в справке есть, зачем колесо изобретать?)

PS

А на уровне классов вообще любое (ну почти любое) событие можно соорудить и обработать...

 

 

Интересно посмотреть как вы это реализуете (OnConnected?)

 

 

dentraf:

Интересно посмотреть как вы это реализуете (OnConnected?)

Да пожалуйста :)

Приведу пример обработки этих событий в советнике при помощи класса CMqlManagerConnect (модуль прикреплен к посту).

1. Копируем модуль в каталог \MQL5\Include\ (желательно в подкаталог)

У меня это все лежит тут - \MQL5\Include\Units\Objects

2. В эксперт добавляем линк на этот файл, у меня так

////////////////////////////////////////////////////////////////////////////////
//              Object classes, used in working the trade system              //
////////////////////////////////////////////////////////////////////////////////
#include <\Units\Objects\UManagerConnect.mqh> //Class - CMqlManagerConnect

3. Создаем переменную с типом CMqlManagerConnect.

////////////////////////////////////////////////////////////////////////////////
//             Global variables, used in working the trade system             //
////////////////////////////////////////////////////////////////////////////////
//****************************************************************************//
//               Objects created on the grounds of the classes                //
//****************************************************************************//
CMqlManagerConnect ManagerConnect; //Менеджер контролирующий состояние коннекта

4. В таймере пишем так

void OnTimer()
{
//----------------------------------------------------------------------------//
//Work variables / Служебные переменные
//----------------------------------------------------------------------------//
//****************************************************************************//
//                  Контроль состояния соединения с сервером                  // 
//****************************************************************************//
ManagerConnect.OnEventTimer();
//----------------------------------------------------------------------------//
}

5 В OnChartEvent пишем так

void OnChartEvent(const int id,         // идентификатор события  
                  const long& lparam,   // параметр события типа long
                  const double& dparam, // параметр события типа double
                  const string& sparam  // параметр события типа string
                  )
{
//----------------------------------------------------------------------------//
//Work variables / Служебные переменные
//----------------------------------------------------------------------------//

//****************************************************************************//
//                          Processing user events                            //
//****************************************************************************//
  if(id>CHARTEVENT_CUSTOM)
  //User event is received / Получено пользовательское событие
  {
  //Выводим текстовое сообщение о событии в комментарий
  Comment("User Event ",sparam);

    if(id==CHARTEVENT_CUSTOM+1)
    //Соединеие с сервером востановлено
    {
    //тут обрабатываем все что нам нужно
    }

    if(id==CHARTEVENT_CUSTOM+2)
    //Соединеие с сервером потеряно
    {
    //тут обрабатываем все что нам нужно
    }

  }
//----------------------------------------------------------------------------//  
}

PS

Можно конечно не передавать события в OnChartEvent, а обрабатывать их прям в классе (прям в базовом или в наследниках). Но рекомендую даже при таком подходе оставить обращение к OnChartEvent, поскольку возможно понадобится и остальным чартам рассказать о случившемся... :)

Файлы:
 
Interesting:

Да пожалуйста :)

Приведу пример обработки этих событий в советнике при помощи класса CMqlManagerConnect (модуль прикреплен к посту).

1. Копируем модуль в каталог \MQL5\Include\ (желательно в подкаталог)

У меня это все лежит тут - \MQL5\Include\Units\Objects

2. В эксперт добавляем линк на этот файл, у меня так

3. Создаем переменную с типом CMqlManagerConnect.

4. В таймере пишем так

5 В OnChartEvent пишем так

PS

Можно конечно не передавать события в OnChartEvent, а обрабатывать их прям в классе (прям в базовом или в наследниках). Но рекомендую даже при таком подходе оставить обращение к OnChartEvent, поскольку возможно понадобится и остальным чартам рассказать о случившемся... :)

Класс CMqlManagerConnect, сами писали? есть ли у вас решение о переборе серверов, при потери соединения с сервером? 
 
dentraf:
Класс CMqlManagerConnect, сами писали? есть ли у вас решение о переборе серверов, при потери соединения с сервером? 
Писал конечно сам (для примера), а сам я по другому этот вопрос решаю. Решения перебора нет (по крайней мере пока), но нужно будет решать и этот вопрос (народ по поводу уже обращался к разработчикам)...
Причина обращения: