Пожелания к MQL5 - страница 100

 
YuraZ >>:

Вижу есть функция printf

а как было бы здорово получить еще sprintf

Возможно, ее заменит функция StringFormat():

StringFormat

Форматирует полученные параметры и возвращает строку.

string StringFormat(
string format, // строка с описанием формата
... ... // параметры
);

Параметры

format

[in] Строка, содержащая способ форматирования. Правила форматирования такие же, как и для функции PrintFormat

...

[in] Параметры, разделенные запятой.

Возвращаемое значение

Строка.


 
Rosh писал(а) >>

Возможно, ее заменит функция StringFormat():

Я так понял, что функции StringFormat надо назначить синоним sprintf по аналогии PrintFormat и printf. Но тогда надо будет реализовывать и функцию snprintf

 
Rosh >>:

В справке по MQL5 указано:


Угу... Только это событие для индикаторов, в которых (пока?) запрещена работа с объектами.

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

 
Roffild писал(а) >>

Угу... Только это событие для индикаторов, в которых (пока?) запрещена работа с объектами.

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

В OnCalculate передаётся то количество обработанных баров prev_calculated, которое возвращается предыдущим вызовом OnCalculate. В эксперте Вы сами можете вести подсчёт обработанных баров, использовав какую-нибудь глобальную или статическую локальную переменную.

 
stringo >>:

В OnCalculate передаётся то количество обработанных баров prev_calculated, которое возвращается предыдущим вызовом OnCalculate. В эксперте Вы сами можете вести подсчёт обработанных баров, использовав какую-нибудь глобальную или статическую локальную переменную.

Смогу ли я узнать в эксперте, что юзер сменил таймфрейм графика и нужно сделать перерасчет всех баров?

В индикаторах такой проблемы нет.

 
Roffild писал(а) >>

Смогу ли я узнать в эксперте, что юзер сменил таймфрейм графика и нужно сделать перерасчет всех баров?

Да, сможете. Будет вызвана сначала функция OnDeinit со старыми параметрами, а потом OnInit с новыми параметрами

 
Дайте экспертам выводить свои данные в "Окно данных", раз многим предется переписывать индикаторы на "эксперты"
 

Хотелось бы в mql5 подсветку синтаксиса, а главное скобок при закрытии (пара скобок закрываемая), подстановку функций и текста, корректировку синтаксиса написания команд и знаков сравнения >=,<=,=<,=>, Возможность подключения дополнительных окон в советнике - например ObjWindowCreate(string Name, bool TypeWindow=false) [false - Как окно индикатора, true- Как отдельное окно валютных пар]

Еще посоветовал бы взять интерфейс редактора из NotePade++

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

добавить тип переменной как LineType - чтобы можно было отдельно в свойствах советника допустим выбирать тип отображаемой линии в его настройках

Сделать отдельные Евенты для инициализации настроек во время работы советника - пример int OnChangeProperty() { return(0)}

Добавить функции такие как AccountMaxLot() - максимальная текущая возможная ставка клиента

Также НЕ плохо было бы добавить в окно создания ордера лэйбл отображающий необходимую сумму для выбраного лота

Создать функцию отображения текущей прибыли конкретного ордера с учетом или без учета спреда и свопа - пример int CalculateProfitOrder(int OrderNumberHistoryList, bool spred=false, bool swop=false)

где номер - номер ордера в списке активных ордеров

Сделать поддержку символов строковых переменных в уникоде и функцию вставки- string CharUTF(string Font, string 'u+0021'), где u+ заголовок уникод и 0021 код символа в таблице символов

или так string CharUTF(string Font, string U'0021'), лучше добавить в интерпретатор представление символов как дата или цвет с заголовком U'xxxxx'

также сделать функции переводящих строки по кодировке string CharToUtf(string Text) и string UtfToChar(string UtfText)

А вобще лучше расписать Евенты по типам для удобства:

Включение работы советника OnInit()

Выключение работы советника OnDeinit()

Смена тайм фрейма OnChangeTimeFrame(int TimePeriod=Period())

Смена zoom OnChangeZoom( int CountBarPerWindow=WindowBarsPerChart())

Поступление новой цены OnNewPrice()

Создание отдельного окна OnCreateNewWindow(string NameWindow, int IndexWindow=WindowFind(NameWindow), bool TypeWindow=false)

Поступление запроса инвесnора int OnInvestor (int IndexInvestor - идентификатор инвестора(№счета),string NameInvestor- описание инвестора, .....-через запятую параметры для команды OrderSend( return(Id Create Order) ))

Создание ордера - OnCreateOrder (int IndexOrder=OrderNumberHistoryList)

Редактирование ордера - OnModifyOrder (int IndexOrder=OrderNumberHistoryList)

Евент по закрытию ордера по TP, SL, дате или вручную OnOrderClose (int TypeCloseOrder= CLOSEMODE_ [TP, SL, Date, Manual], int IndexOrder=OrderNumberHistoryList, bool PriceType=true)

где PriceType - флаг завершения ордера true- сделака с плюсовым балансом ордера false - сделка с отрицательным балансом ордера

Файлы:
 
Возможно это уже реализовано в коком-нибудь советнике, но хотелось бы видеть это в базовом варианте программы, а именно, чтобы ярлыки тех графиков, на которых есть открытые или отложенные позиции подсвечивались определенным цветом. К примеру ярлык графика на котором есть открытая позиция подсвечивался желтым цветом, если цена подходит к T/P - зеленым, к S/L соответственно красным. Еще было бы удобно самому помечать нужный ярлык каким-либо цветом. Очень удобно при работе на нескольких (многих или всех) инструментах. В субботу - воскресенье сделал анализ, выбрал пары по которым нужно ждать сигнал, пометил их приятным глазу цветом и только их и смотришь.
 

А можно в нижней части Мт,там где сообщается имя Профиля добавить еще и имя наложенного Шаблона?

Имя Профиля и так можно посмареть по списку прфилей(там галочка всегда-что б знать где находишься),а вот какой шаблон щас наложен нет.