Знаю что нельзя но очень хочется - страница 4

 

mql5:
Спасибо за подробное описание

1) Создание и копирование файлов *.ex4 и *.ex5 будет под запретом.
2) Проверку на выход за песочницу при загрузке MQL программ сделаем

Значит, все таки дыра.

3) При загрузке шаблона графика, прописанная в нём программа MQL флаг DLL наследует из MQL программы которая применяет шаблон к графику.
Если что-то запускается из маркета, то не должно быть (защита от дурака) вообще возможности включить DLL, даже если пользователь очень хочет.
 
hrenfx:

Значит, все таки дыра.

Если что-то запускается из маркета, то не должно быть (защита от дурака) вообще возможности включить DLL, даже если пользователь очень хочет.
Да, дыра, особенно для пользователей, которые разрешили использование DLL по умолчанию.

С Вашим предложением(выделено) я согласен, обсудим его.
 

Из описания дыры должно быть понятно, как реализовывается это:

hrenfx:

Можно запускать любые индикаторы в режиме separate или chart.

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

Фактически, задачи ветки решены.

 
hrenfx:

Из описания дыры должно быть понятно, как реализовывается это:

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

Фактически, задачи ветки решены.

  а вот это можно было бы оставить
 
FAQ:
  а вот это можно было бы оставить
Заделывание дыры эту возможность оставит.
 
У всех в Украине скайп не работает ?
 

 у всех в мире... был сбой. уже починили.

а не... опять упал 

 

Из примера все должно быть ясно:

#property strict

#define GRID_STRING "grid="

class CHART
{
private:
  static void FileRewriteString( const int handle, const string Str )
  {
    ::FileSeek(handle, -::StringLen(Str) - 2, SEEK_CUR);

    ::FileWriteString(handle, Str);

    ::FileSeek(handle, 2, SEEK_CUR);

    return;
  }

public:
  static void ChangeGrid( void )
  {
    const string FileName = ::WindowExpertName() + ".tpl";

    if (!::ChartSaveTemplate(0, "..\\MQL4\\Files\\" + FileName))
      return;

    const int handle = ::FileOpen(FileName, FILE_READ|FILE_WRITE|FILE_CSV);

    if (handle < 0)
      return;

    while (!::FileIsEnding(handle))
    {
      const string Str = ::FileReadString(handle);

      if (::StringFind(Str, GRID_STRING) == 0)
        CHART::FileRewriteString(handle, (string)(1 - ::StringToInteger(::StringSubstr(Str, ::StringLen(GRID_STRING)))));
    }

    ::FileClose(handle);

    ::ChartApplyTemplate(0, "\\Files\\" + FileName);

    return;
  }
  
  static void ChangeGrid2( void )
  {
    ::ChartSetInteger(0, CHART_SHOW_GRID, 1 - ::ChartGetInteger(0, CHART_SHOW_GRID));
    
    return;
  }
};

void OnStart( void )
{
  CHART::ChangeGrid();
//  CHART::ChangeGrid2(); // Выполняется заметно медленней
  
  return;
}
 
Попробуйте использовать ChartRedraw в ChangeGrid2
 
mql5:
Попробуйте использовать ChartRedraw в ChangeGrid2
Спасибо, не догадался.